Modularizando KB con Evo3

Estoy haciendo el cuarto intento de modularizar una KB con GeneXus Evolution 3, con el Upgrade 3.
Para esto, uso el objeto Module , tratando de dividir una KB en grupos de objetos que estén lógicamente relacionados para hacer mas fácil su mantenimiento. 

Los módulos, me parecen una muy buena idea y que puede ser muy util, pero que en su implementación actual (U3/Evo3) hay errores que dificultan mucho su uso. Mis intentos han sido con el generador .NET y apenas empiezo a usar módulos, aparecen errores de compilación. 

Por ejemplo, reporté un error con los módulos en Evo3 Upgrade 1, hace mas de 6 meses y el mismo sigue dando en la Upgrade 3.  SAC #36763
También da problemas cuando un SDT de mas de un nivel, están en módulos. 

Otro problema es cuando se tiene objetos que se usan en ambiente WIN y WEB, se quieren mover a un modulo. Seria bueno que un objeto WIN pudiera estar en un modulo, aunque se generara siempre igual que en el pasado.  Las KB que se van a beneficiar mas de la modularización, son las grandes y que tienen muchos años de desarrollo. Estas suelen contener componentes WIN que aun no han terminado de migrarse a WEB o a Mobile, por lo que seria bueno poder hacer convivir estas dos tecnologías por un tiempo mas. 

Todos estos problemas, tienen forma de ser esquivados, pasando los objetos al modulo Root, pero se pierden muchas de ventaja de la modularización, pues objetos que deberían ser privados quedan públicos y en módulos que no le corresponde. 

Lamentablemente, estos pequeños problemas, hacen que no podamos usar la potencia de los módulos. Conozco algunas empresas que han optado por no migrar a la Evo3 (hicieron la migración pero a la Evo2), hasta tener estos errores solucionados. 

Creo que es un buen momento para redondear la funcionalidades faltantes a los modulos para que puedan ser usados en forma masiva. 

Alguna de las funcionalides/errores a arreglar que me gustaría tener serian:

* Ver los objetos privados de un Modulo.  (SAC # 37397)
Se pueden ver fácilmente los objetos públicos de un modulo determinado, abriendo dicho modulo.
También se pueden graficar las relaciones entre módulos/submodulos o los llamados entre objetos del modulo.
No encontré como ver todos los objetos privados de un modulo, lo cual he necesitado algunas veces.
Me gustaría tener un tab en los módulos que muestre todos los objetos privados de uno de ellos. 

* Cambiar un objeto de modulo,
Al cambiar un objeto de modulo, deberia regenerar todos los objetos que lo llaman. 
Hoy no toma todos los cambios y muchas veces la forma mas "rapida" de solucionarlo es con un Rebuild All, que puede demorar muchisimo. 

* Cut/Paste de Objetos no funciona en modulos. 
Si se hace Cut/Paste de Objetos, los mismos no se mueven de modulos. Esto funcionaba con los folder, pero dejo de funcionar con modulos.
Cuando se tienen KB grandes, es realmente incomodo mover algunos objetos entre folders/modulos, con drag & drop o cambiandole la propiedad. Yo preferiria hacerlo con Cut/Paste, como antes. Cuando estamos modularizando KB, es una accion muy comun y seria bueno que lo arreglaran.

* No se ve el nombre del objeto en la lista Working Set.  (SAC 37257)

Este error, hace que el uso del working set (que uso mucho) quede bastante inútil, pues no se sabe cuales son los objetos que están en la lista. Cuando se agrego el nombre del modulo a la lista, quedo muy chico el nombre del objeto y no se puede cambiar el tamaño del mismo. Lo reporte hace un buen tiempo y también sigue sin arreglarse.


* Poder Manipular objetos desde la ventana de Modulos. (SAC 37369)
Me gustaría poder tener el menú contextual del objeto en la ventana de módulos, para poder abrirlo, moverlo, etc.

No son grandes arreglos, pero creo que seria un buen aporte para toda la comunidad, poder empezar a usar los Modulos en forma masiva. Las potenciales ventajas son muy grandes, como para retrasar mas comenzar a usarlos en forma generalizada.

* Errores con Business Component. 
Al tener BC en modulos, me ha pasado mas de una vez, que empieza a fallar la compilacion del fuente: GXFullTextSearchReindexer.cs, porque no encuentra las fuentes de los SDT internos que se usan para el manejo de los BC.
No conozco ninguna forma trivial de arreglar esto, mas que regenerar todos los BC y rezar para que todo vuelva a compilar.
Este error nunca lo reporte, porque es difícil de reproducir.




Comentarios

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.