Para GeneXus X Evolution 3

Algunas cosillas que me gustarían tener en la Evo 3 de GeneXus.

Módulos
Poder modularizar la KB, de forma de poder achicar las dependencias que existen entre objetos, para achicar los tiempos de generacion y especificacion. Tambien va a servir para ayudar al deploy KB Grandes.Tambien facilitara la integracion entre diferentes modulos, lo cual va a redundar en mayor productividad.

Pruebas de regresion integradas en la KB.
Tener dentro de la KB pruebas que permitan asegurar que los objetos no cambiaron su comportamiento.
Esto puede incluir navegacion, sentencias SQL, performance, etc.

Generador de datos de prueba. 
Dada una transaccion, generar automaticamente datos de pruebas de la misma. Se puede elegir la cantidad de datos a generar y respeta la integridad referencial.

Registro de Ejecución. 
Las aplicaciones generadas, pueden ejecutarse en modo "Grabacion", lo cual permite almacenar un script, para luego volver a correrlo y ver las diferencias entre las corridas.

Comparador de Navegaciones Integrado. 
Tener un comparador de navegaciones integrado dentro de Genexus y que sea facil de usar.

Dominios con Datos estructurados. 
Poder definir dominios con SDT, por ejemplo Addres, que estará compuesto por {Pais, Ciudad, Direccion}

Mejoras en el manejo de SDT. 
Poder definir campos clave en los SDT que son Collection.
Navegar las collection de SDT con for each.
Poder hacer "join" entre SDT Collection y tablas del sistema.

Generador para WP7 y Windows 8 (Metro). 
Poder generar para Windows Phone 7 y Windows 8.

Etiquetar Objetos. 
Estaría bueno poder definir etiquetas y asociarla a los objetos, de forma de poder tener "Propiedades" de los objetos, que sean faciles de crear por los usuarios. Por ejemplo poder tener etiquetas de "a Probar", "Probado", "issue 45678". Poder seleccionar todos los objetos que tiene una determinada etiqueta y realizar operaciones con dichos objetos (commit, especificar, generar, etc).
Serian como categorías, pero mas "livianas", lo cual permitiría agrupar objetos, sin tener una nueva revisión del objeto.

KBQuery. 
Tener una herramienta de consulta dentro de la KB con una potencia mayor a lo que hoy se tiene.
Por ejemplo
Ejemplo 1)
Objetos que hacen commit y estan incluidos en un determinado exe.
(Property("Commit on Exit")=YES OR (ObjectCode contain "Commit" ) AND ReachablesFrom(Procedure:MyMain)


Ejemplo 2)
Objetos modificados en los ultimos treinta dias y que aun no se verificaron.
(Modified between &today-30 and &today) and Label = "No Verificado"

Compilacion en background. 
Poder configurar que la especificacion, generacion y compilacion se realice en background cuando se salva un objeto.

Permitir borrar objetos aunque esten referenciados. 
Al borrar un objeto que esta siendo referenciado, preguntar si efectivamente se quiere borrar y guardar una referencia a un objeto que quede en To Be Defined.

No dejar ningun mensaje de especificacion sin codificar
Existen muchos mensajes que aun no se codifican con codigos del tipo spcXXXX, por lo cual no puede pasarse a error o ignorarse. Seria bueno que no existan mensajes no codificados, porque complican los procesos de migracion.
Por ejemplo ahora, no estan codificados los mensajes de comandos deprecated como Hidden, DeleteFile, Nocheck, etc.

Integracion Continua. 
Tener una herramienta de integracion continua que realice una instalacion cada vez que se cambia algo en la KB.

Reorganizar los directorios de la KB. 
Hoy los directorios se generan en forma desordenada dentro de la KB.
Hay directorios que tienen fuentes, objetos temporales de usuarios, objetos de la KB, todos al mismo nivel.
Fundamentalmente, me gustaria que quedara en una rama de directorios, todo (y solo) lo que se tiene que instalar (como dll, class, java script, etc) y tener los fuentes separados. Todos los archivos intermedios (*.ari, xml, navegaciones, configuracion de usuario, spc, sp0, etc) deberian almacenarse en directorios que claramente fueran temporales y que pudieran ser eliminados sin causar problemas.
No es lindo llegar a instalar a un cliente y que nos falte un archivo Images.txt que hace que no se vea nada en la aplicacion.


Creo que con poco esfuerzo, se puede reorganizar de forma que quede mucho mas funcional y mas facil para el deployment para los usuarios que recien comienzan.

Search & Replace Integrado. 
Una vez que podamos hacer busquedas mejoradas en la KB, estaria bueno poder hacer search and replace globales.
De esta forma, si quiero cambiar en todos los lugares que dice CSHARP y cambiarlo por // CSHARP, lo puede hacer en forma facil.
Solo RUN.
Tener una forma facil de ejecutar la aplicacion, sin que se realicen todas las generaciones necesarias

Prueba de WebServices. 
Tener la opcion de generar programas que permitan invocar a los web services, deduciendo parametros y metodos.

Propiedades de KB, Version, Environment como objetos. 
Seria bueno tener las propiedades de la KB, Version y Environment como objetos, de forma de tener revisiones de las mismas, y tambien poder exportarlas y consolidarlas de forma mas facil que lo que se tiene hoy.
Tambien poder comparar las propiedades de una revision anterior.

Tienen alguna mas que le gustaria incorporar?

Comentarios

  1. Solo quisiera dar un VOTO adicional a lo referente a la INTEGRACION CONTINUA

    ResponderBorrar
  2. Poder trabajar en 2o más KB's sin necesidad de abrir dos IDE's, tipo lo que se hace con word, se abre un solo ide, y se trabaja con dos instancias de word cada una con diferentes docuementos.

    ResponderBorrar
  3. Lo de las etiquetas me parece muy buena idea, y no creo que sea muy dificil de agregar, ayudaria bastante a organizar mejor.

    ResponderBorrar
  4. Enrique, muy buena la lista de features.

    Estas son las que más me entusiasman:
    Pruebas de regresion integradas en la KB.
    Generador de datos de prueba.
    Registro de Ejecución.
    Integracion Continua.
    Prueba de WebServices

    La que agregaría es la posibilidad de tener una análisis de cubrimiento cuando ejecutamos pruebas sobre aplicaciones GX.
    Lo ideal sería en distintos niveles: objetos, eventos, líneas, etc

    ResponderBorrar
  5. Algo que me gustaria sería poder especificar para cada tabla el esquema al que va ir y no que todas las tablas queden en el mismo esquema

    ResponderBorrar
    Respuestas
    1. Si, es algo que puede lograrse con Data View, pero da mas trabajo, en las reorganizacion, pues hay que hacerlas manuales.

      Borrar
  6. QUE SE PUEDA INTEGRAR CON REPORTEROS COMO CRYSTAL O REPORTING SERVICES PARA WEB.

    ResponderBorrar
  7. Que se integre con Crystal o Reporting services ó mejorar o cambiar la creacion de reportes

    ResponderBorrar
  8. Sabes como subir un .doc en una grilla y que me deje descargarlo despues??

    ResponderBorrar
    Respuestas
    1. Alejandro, lo que podes hacer es cargar el .DOC en un campo Blob en la base de datos y luego en la grilla, poner un link con el resultado de la funcion PathToUrl(CampoBlob).

      Revisa la documentacion de http://wiki.gxtechnical.com/commwiki/servlet/hwiki?PathToURL+Function, y del Blob Data Type http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Blob+Data+Type,

      Borrar
  9. Hola Buenas tardes jovenes ,me he encontrado con problema de migracion de genexus 9 a genexus evolution 3 error: Unknown function 'Execute'

    ResponderBorrar
    Respuestas
    1. Deberias ver en que objeto te esta dando ese error y corregirlo en GeneXus 9 y volver a hacer la migracion o importar solamente es objeto.

      Borrar

Publicar un comentario

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.

Entradas más populares de este blog

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Aplicación monolítica o distribuida?

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.