Ir al contenido



Foto

Spring4D en Delphi Tokyo 10.2 instalación y como empezar a usarla

Spring4D Tokyo 10.2 instalacion

  • Por favor identifícate para responder
28 respuestas en este tema

#1 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.000 mensajes
  • LocationArgentina

Escrito 06 septiembre 2017 - 06:18

Buenas,

Estoy dandole la oportunidad de mirar algunas cosillas nuevas en Delphi (Anuncio publicitario ad honorem: ya he explorado unos componentes de la suite Raize y parecen espectaculares) y me parece que después de un par de comentarios de Agustin Spring4D debería ser una de las primeras cosas a examinar.

 

Tengo una duda, ya que no he visto en ninguna parte de su repositorio en Bitbucket la existencia de documentación de como proceder a instalarlo. Lo más que he encontrado fue un simple "Ejecuta Build.exe y listo".

 

Pues eso hice. Descargué el zip, descomprimí, ejecuté el Build.exe. Seleccioné el tarjet (Tokyo 10.2 32bits) , tildé tanto Release como Debug.

Al proceder a hacer en "build" aparentemente va todo bien (según logro ver lo muestra en consola), hasta el momento en que me pide que de un clic para proceder a ejecutar el test. Ahí es cuando recibo un error:

 

---------------------------
Build
---------------------------
Failed to create the process: "D:\Instaladores\Spring4D\sglienke-spring4d\sglienke-spring4d-4cf6393bf1ae\Tests\Bin\Delphi10Tokyo\Win32\Debug\Spring.Tests.exe".
---------------------------
Aceptar   
---------------------------
 

Y esto me hace asaltar la duda. ¿Se instaló bien? ¿Cómo puedo saberlo? Al no encontrar alguna documentación extra que indique un "How to use" no doy como poner a prueba esta, supuestamente, estupenda biblioteca. Se que tiene su Doc aquí, pero no encuentro algo inicial de como empezar.

 

OFF-TOPIC: ¡Ese tooll Documentation Insight parece estupendo! ¿Es gratis?

 

Saludos,


  • 0

#2 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 802 mensajes
  • LocationArgentina

Escrito 06 septiembre 2017 - 09:03

Creo que el problema es que debe estar intentando ejecutar los tests y por algun motivo no puede. Yo la verdad no corri nunca los tests desde el Build, los corri alguna vez desde el propio IDE. Vaya uno a saber porque "falla al crear el proceso" (algun problema de permisos quiza)

 

Con respecto al documentation insight hasta donde yo se es de pago. Por que te parece que tan estupendo?


  • 0

#3 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.000 mensajes
  • LocationArgentina

Escrito 06 septiembre 2017 - 09:20

Creo que el problema es que debe estar intentando ejecutar los tests y por algun motivo no puede. Yo la verdad no corri nunca los tests desde el Build, los corri alguna vez desde el propio IDE. Vaya uno a saber porque "falla al crear el proceso" (algun problema de permisos quiza)

 

Con respecto al documentation insight hasta donde yo se es de pago. Por que te parece que tan estupendo?

 

¿A ti también te ha pasado de que falla en la ejecución del test? ¿Entonces se ha instalado correctamente? ¿Debería probar entonces con compilar/ejecutar el .dproj que está en la subcarpeta /tests?

 

Lo siguiente sería probar con código de ejemplo o guía para familiarizarme. Porque ir a los tumbos no va. Creo que hay alguna carpeta samples, aunque no me he fijado bien si es efectivamente código de muestra o si son proyectos de prueba y demos o si forma parte del código fuente.

 

Respecto a Documentation Insight, al ver el video que está en su página principal me ha llamado la atención. Para tipos como yo, que les gusta tener documentado el código, esa aplicación nos resulta muy atractiva. Una belleza de aplicación... y más si fuera gratuita. Poder generar un archivo documental de los fuentes, y tener todo bien ordenado, asi de fácil y rápido (y casi automático) es una buena ayuda cuando se tienen muchos proyectos, bibliotecas, frameworks, etc propios.

 

Saludos,


  • 0

#4 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 802 mensajes
  • LocationArgentina

Escrito 06 septiembre 2017 - 09:31

Primero que nada la "instalacion" no es mas que una serie de unidades .pas. Creo que hace poco cuando integraron el ORM Marshmallow aparecio un componente que se llama algo asi como TObjectDataSet que es lo unico que realmente se "instala" en el IDE.

 

El build en realidad lo que hace es compilar todos los fuentes (los .pas) y dejarte los dcu, similar a como se distribuye la Vcl, para no tener que andar recompilando en cada proyecto. En criollo, te genera los .dcu, y te los agrega al path, asi los podes comenzar a usar sin problemas. 

 

Siempre se dice que una buena forma de aprender el codigo es mirando los tests, por suerte en Spring hay bastantes, ya que ultimamente estan siguiendo la filosofia de TDD

Lo que comentas de ejemplos tambien es una buena forma de ir viendo que es lo que se puede hacer

 

Tambien hay un blog , que es de quien mantiene todo, aunque a no es exclusivo del framework y a veces se va muy por las ramas explicando que es lo que pasa por dentro

Luego hay un grupo de google en donde hay consultas

 

Por ultimo hay algunos videos en donde se muestran algunas caracteristicas del framework en vivo:

 

 

https://www.youtube.com/watch?v=j9qvJiDz7ME

 

https://www.youtube.com/watch?v=bjVKtac6bAY

 

Puede que me haya olvidado alguno, pero creo que esos son los mas relevantes


  • 1

#5 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.000 mensajes
  • LocationArgentina

Escrito 06 septiembre 2017 - 10:07

Primero que nada la "instalacion" no es mas que una serie de unidades .pas. Creo que hace poco cuando integraron el ORM Marshmallow aparecio un componente que se llama algo asi como TObjectDataSet que es lo unico que realmente se "instala" en el IDE.

 

El build en realidad lo que hace es compilar todos los fuentes (los .pas) y dejarte los dcu, similar a como se distribuye la Vcl, para no tener que andar recompilando en cada proyecto. En criollo, te genera los .dcu, y te los agrega al path, asi los podes comenzar a usar sin problemas. 

 

Siempre se dice que una buena forma de aprender el codigo es mirando los tests, por suerte en Spring hay bastantes, ya que ultimamente estan siguiendo la filosofia de TDD

Lo que comentas de ejemplos tambien es una buena forma de ir viendo que es lo que se puede hacer

 

Tambien hay un blog , que es de quien mantiene todo, aunque a no es exclusivo del framework y a veces se va muy por las ramas explicando que es lo que pasa por dentro

Luego hay un grupo de google en donde hay consultas

 

Por ultimo hay algunos videos en donde se muestran algunas caracteristicas del framework en vivo:

 

 

https://www.youtube.com/watch?v=j9qvJiDz7ME

 

https://www.youtube.com/watch?v=bjVKtac6bAY

 

Puede que me haya olvidado alguno, pero creo que esos son los mas relevantes

 

Muchas gracias por la orientación Agustín.

He probado con compilar el proyecto test (Spring.Test.Delphi10Tokyo.dproj) y me ha marcado un error:

 

[dcc32 Fatal Error] Spring.Interception.ClassProxy.pas(284): F2084 Internal Error: C12945

 

Puede que haya descargado una versión beta, sin pulir. Tendría que fijarme si hay otra más reciente. Y por lo que veo del proyecto, le faltaron unas cuantas units más que probar asi que vaya a saber que más hay. O quien sabe, si es que algo ha cambiado con el Update a Tokyo y que afecte a Spring4D.

 

Voy a seguir con esto el fin de semana.

 

Saludos,


  • 0

#6 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.000 mensajes
  • LocationArgentina

Escrito 06 septiembre 2017 - 10:18

Definitivamente algo tiene esta versión, que descargué hace unos cuantos días. O es que no se ha hecho la "instalación" adecuadamente. Intenté abrir dos proyectos de muestras y ni caso. Errores de compilación, y entre ellos, lo básico: que no encuentra siquiera la unidad Spring.

 

Saludos,


  • 0

#7 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 802 mensajes
  • LocationArgentina

Escrito 06 septiembre 2017 - 10:26

Es posible que hayas bajado una rama en la que quiza desarrollan con una unica version y no prueban todas. En general la rama estable funciona desde Delphi 2010 en adelante, al menos yo siempre he podido compilar sin problemas
 
Lo que sucede con Spring es que existen casos en los que se "fuerza" al lenguaje, o se lo lleva "mas alla de sus limites" para lograr algunas cosas. Por ejemplo, hace rato estan que quieren tirar el soporte de Delphi 2010 porque cada vez es mas dificil. Un ejemplo es Spring.VirtualInterface en donde implementaron una clase llamada TVirtualInterface que viene a partir de XE2, que si bien segun la documentacion es para cosas de web services, te permite hacer algunas maravillas,(aca otro ejemplo) ya que es una clase que implementa cualquier interfaz
 
Luego, es algo bastante comun que de una version a otra haya errores internos del compilador, de hecho siempre que sale una nueva version hay muchos reportes de usuarios de codigo a veces "no tan raro". Logicamente siempre que toquen el compilador este tipo de cosas puede pasar. Por lo general el codigo que mas sufre este tipo de problemas tiene genericos o metodos anonimos involucrados, a mi me ha pasado alguna vez, pero solucionarlo es simplemente una reescritura menor
  • 0

#8 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.000 mensajes
  • LocationArgentina

Escrito 06 septiembre 2017 - 10:39

Es posible que hayas bajado una rama en la que quiza desarrollan con una unica version y no prueban todas. En general la rama estable funciona desde Delphi 2010 en adelante, al menos yo siempre he podido compilar sin problemas
 
Lo que sucede con Spring es que existen casos en los que se "fuerza" al lenguaje, o se lo lleva "mas alla de sus limites" para lograr algunas cosas. Por ejemplo, hace rato estan que quieren tirar el soporte de Delphi 2010 porque cada vez es mas dificil. Un ejemplo es Spring.VirtualInterface en donde implementaron una clase llamada TVirtualInterface que viene a partir de XE2, que si bien segun la documentacion es para cosas de web services, te permite hacer algunas maravillas,(aca otro ejemplo) ya que es una clase que implementa cualquier interfaz
 
Luego, es algo bastante comun que de una version a otra haya errores internos del compilador, de hecho siempre que sale una nueva version hay muchos reportes de usuarios de codigo a veces "no tan raro". Logicamente siempre que toquen el compilador este tipo de cosas puede pasar. Por lo general el codigo que mas sufre este tipo de problemas tiene genericos o metodos anonimos involucrados, a mi me ha pasado alguna vez, pero solucionarlo es simplemente una reescritura menor

 

Pues no se si es de la rama master o alguna otra. Básicamente lo que hice es descargarme el zip disponible que está en este enlace (Donwload repository). Y por lo que veo a pesar de que se ha estado haciendo cambios recientemente sigue siendo el mismo zip que yo he descargado.

Como no tengo cuenta en Bitbucket, todavía, no he optado por el método de clonar el proyecto como para probar descargarme una versión más reciente.

En última podría probar con colocar la carpeta Spring4D en el path manualmente y tirar a compilarlo desde el IDE, pero si es como sugiere la prueba de test daría lo mismo y obtendría los mismos errores.

 

Saludos,


  • 0

#9 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 802 mensajes
  • LocationArgentina

Escrito 06 septiembre 2017 - 10:55

Si no te lo agrego en el path el problema es otro

 

La version que estoy usando yo es esta: 1b56ec987ef09c672b6acc381ca9cdf4ec1a46e1 de la branch master


  • 0

#10 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 802 mensajes
  • LocationArgentina

Escrito 06 septiembre 2017 - 10:57

No hace falta cuenta para clonar, podes clonar por https: git clone https://bitbucket.or...ke/spring4d.git


  • 0

#11 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.000 mensajes
  • LocationArgentina

Escrito 07 septiembre 2017 - 05:48

Pues efectivamente la versión que he descargado no es la misma que tu tienes. Tu tienes la versión merge que dió origen a la 1.2 que se corresponde a la fecha 22/03. La que yo descargué es otra, la siguiente. Y por lo que he probado parece tener sus bugs.

 

De que no me agrega el path es algo raro. Por un lado veo en el search path la ruta del directorio en donde están los archivos, pero cuando intento compilar algún demo no encuentra las units.

 

Por el momento hice un clean. Y más adelante probaré con la versión que tu indicas. Lo máximo que puedo sospechar es que el Update 1 de 10.2 Tokyo afecta en algo a Spring4D.

 

Saludos,


  • 0

#12 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.000 mensajes
  • LocationArgentina

Escrito 07 septiembre 2017 - 05:26

Pues ni caso. Ni con clonar (aunque me animé a hacerlo con los últimos cambios a la fecha esperando que estuviera todo fixed) se soluciona la cosa.

Ya he pedido asistencia en el grupo de google.

 

Va a tener que elaborar una buena documentación de como proceder con la "instalación" y modo de uso. No basta un "ejecuta el build y disfruta" cuando he visto que ya hay unos cuantos "hilos" con preguntas un tanto similares.

Ha decir verdad, no he visto proyecto tan bellamente cuidado en la elaboración de su documentación como el de Firebird. Desde un Readme, Readme Next, How to Install, y sus ex Command Lines Utilities. ¡Asi es como se documenta! ¡Asi es como se evitan enredos!

 

Saludos,


  • 0

#13 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 802 mensajes
  • LocationArgentina

Escrito 07 septiembre 2017 - 07:01

Totalmente de acuerdo. Igualmente es algo comun en los proyectos open source en donde laburan 2 o 3 gatos locos. Es "logico" que los tipos se enfoquen mas en funcionalidad que en la documentacion

 

De todos modos me llama la atencion que tengas problemas. Voy a hacer una prueba clonando la ultima version y te comento luego

 

Aun asi, reitero: no es necesario que instales nada. Simplemente utilizas las unidades y listo


  • 0

#14 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 802 mensajes
  • LocationArgentina

Escrito 07 septiembre 2017 - 07:03

Ah, otro pequeño detalle: En Starter el "build.exe" no te funciona porque no te permite utilizar el compilador (dcc32) por linea de comandos; debes hacer todo desde el IDE


  • 1

#15 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 802 mensajes
  • LocationArgentina

Escrito 07 septiembre 2017 - 07:39

Pues yo no tuve ningun problema con la ultima version de Spring, y tambien tengo Tokyo Starter. Con Tokyo me refiero a la primera version de Tokyo que sacaron, luego salio la Release 1 (que seria la Update 1, solo que ahora le cambiaron el nombre)

Archivo adjunto  tokyo.png   147,89KB   0 descargas


  • 0

#16 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.000 mensajes
  • LocationArgentina

Escrito 07 septiembre 2017 - 07:53

¡DAFUK! :|

¿Y ahora me entero de que el Build no va a funcionar por ser Starter?

¡No hay ninguna adveretencia de eso en el maldito readme! ¡joder! Eso debe estar bien aclarado. No se puede dejar tan descuidado semejante detalle.

 

Eso último que dices me confirma que entonces la manera de como encararlo es más artesanal y no tan automática. Y debe hacerse con cuidado y en orden.

 

¿Cómo tienes el Library, Browsing y Debug DCU Path? ¿Tu tienes puesto la carpeta base de Spring4D fuera de delphi? Algo como D:\3rdLibrarys\Spring4D o lo tienes dentro del directorio de Delphi? Se que quizá parece algo menor ese detalle, pero debo descargar algunas cosas.

¿En que orden compilastes e hiciste build?

 

Esos tipos de cosas son los que deben documentar en Spring4D. Con todo el respeto que se merece la gigante biblioteca, que bastante difusión tiene y por tanto es merecedor que se tenga el buen cuidado.

 

Me estoy empezando a cabrear :@

 

Saludos,


  • 0

#17 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 802 mensajes
  • LocationArgentina

Escrito 07 septiembre 2017 - 08:07

En realidad yo opino que es una estupides de parte de Embarcadero que no se te permita usar el compilador desde la linea de comandos.. no creo que sea cosa de los que desarrollan componentes ni frameworks aclarar esto, sino que es algo que nosotros como usuarios de Starter deberiamos saber

 

Yo solo abri el proyecto y le di boton derecho sobre el Project Group, y Build All

 

Si tengo el path como comentas, del estilo D:\3rdLibrarys\Spring4D

Library Path --> Aca van los .dcu :: E:\Delphi\Spring4D\Library\Delphi10Tokyo\Win32\Release 

Debug DCU Path --> Aca van los .dcu :: E:\Delphi\Spring4D\Library\Delphi10Tokyo\Win32\Debug

 

Y en Browsing path cada una de las carpetas en donde estan los .pas:

 

Archivo adjunto  path.png   17,7KB   0 descargas

 


 


  • 0

#18 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.000 mensajes
  • LocationArgentina

Escrito 07 septiembre 2017 - 08:22

En realidad yo opino que es una estupides de parte de Embarcadero que no se te permita usar el compilador desde la linea de comandos.. no creo que sea cosa de los que desarrollan componentes ni frameworks aclarar esto, sino que es algo que nosotros como usuarios de Starter deberiamos saber

 

Yo solo abri el proyecto y le di boton derecho sobre el Project Group, y Build All

 

Si tengo el path como comentas, del estilo D:\3rdLibrarys\Spring4D

Library Path --> Aca van los .dcu :: E:\Delphi\Spring4D\Library\Delphi10Tokyo\Win32\Release 

Debug DCU Path --> Aca van los .dcu :: E:\Delphi\Spring4D\Library\Delphi10Tokyo\Win32\Debug

 

Y en Browsing path cada una de las carpetas en donde estan los .pas:

 

attachicon.gifpath.png

 

 

 

Umm. Por algun motivo, se me hace que no tengo todas las carpetas/subcarpetas en Browsing. Algo ha fallado cuando metí mano. 8o|

Voy a hacer una preguntonta... pero a estas alturas, mejor quedar como un pelotudo antes que ir a lo ciego. ¿cual de todos los proyectos abriste? ¿Sólo el Spring.Tests.Delphi10Tokyo.dproj te fue suficiente?

 

Eso de que en Starter no se permite por linea de comandos recién lo noto. Yo había leido un buen par de veces la tabla de features, el FAQ y otros docs sobre Starter y la verdad es que no recuerdo haber leído ese punto. Se me debe haber pasado o estaba junto con el resto de la letra chiquita.

 

Saludos,

 

Saludos,


  • 0

#19 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 802 mensajes
  • LocationArgentina

Escrito 07 septiembre 2017 - 08:26

Jajaja no, abri el .grouproj

 

Fijate como sale en la foto en la que muestro que compila el arbol, la estructura de todo el proyecto


  • 0

#20 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.000 mensajes
  • LocationArgentina

Escrito 07 septiembre 2017 - 08:44

Ya lo dejo para mañana. Borraré los paths y volveré a empezar de cero.

Creo haber encontrado al culpable... yo uso un programa de sincronización en la nube (al estilo dropbox). Y he metido a Spring4D dentro de una subcarpeta en donde tengo todo lo que quiero sincronizar.

Es posible que se produzca una pelea entre Delphi y HubiC por quien accede a los archivos primero, y quien hace la limpieza.

 

Saludos,


  • 0