Usos de ajgenesis

17 views
Skip to first unread message

Fernando Claverino

unread,
Jun 26, 2009, 4:33:52 PM6/26/09
to CodeGeneration
Hola, buenas tardes

Queria comentar cómo estamos usando y exprimiendo esta herramienta.
Les comento un poco cual es el contexto. Tenemos una aplicación de
reporting que permite construir reportes facilmente. Cada reporte es
básicamente un archivo xml con su definición (layout y origen de
datos) y un provider que es el proveedor de datos (pagina asp).

Modelo:

No definimos un archivo models.xml que apunta a cada item del modelo.
Tenemos una carpeta models y hay una task que la recorre
recursivamente y levanta todos los archivos del modelo (*.mod.xml).
Cuando se hace esto, seteamos dinámicamente a cada objeto cargado una
propiedad con el path relativo, que luego usamos en otras tasks. Los
artefactos se generan en la misma estructura de carpeta, pero dentro
de la carpeta build.

Plugins:

Aca estamos haciendo algo de trampa. Si bien todos los artefactos
generados deberían construirse a partir del modelo, hay algunas cosas
que son dificiles de modelar. En nuestro caso generamos las consultas
MDX. Es muy difícil definir un modelo que soporte la riqueza de este
lenguaje. Asi que lo que hicimos fue definir en el archivo de
tecnología cual es el plugin a utilizar. El plugin es un template (que
genera la consulta MDX a partir del modelo). Vi en los ejemplos que en
la tecnología se suele definir el dialecto (esto sería algo parecido,
me parece).

Esta técnica que nosotros llamamos plugin, la usamos siempre que
queremos generar un caso particular no cubierto por los templates que
ya tenemos. En el archivo de tecnología podemos definir el onrows,
oncols y where de la consulta, pero en muchos casos esto varía en
función del modelo. Es como favorerer convención sobre configuración.
Si no configuro nada, uso el template que corresponde. Si defino un
plugin, uso ese.

Nivel de abstracción:

Aprovechamos la libertad del modelo para trabajar en un nivel más
abstracto. Es decir, en lugar de definir un reporte, definimos una
sección (grupo de reportes) y las posibles navegaciones. La
combinación de estas definen los reportes. Es decir, a partir del
modelo definido, una task lo combina y genera un nuevo modelo a partir
del cual se aplican los templates.

Cuando evaluamos otras herramientas para hacer esto, no encontramos
una que nos diera tanta libertad en la definición de los modelos, en
poder manipular el modelo dinámicamente y en la flexibilidad que dan
las task. Quizas las hay, pero en el poco tiempo que tuvimos, a simple
vista no lo vimos. Felicitaciones por la herramienta y gracias por
hacerla pública.

saludos,

Angel Java Lopez

unread,
Jun 30, 2009, 6:16:09 AM6/30/09
to codegen...@googlegroups.com
Hola gente!
Fernando, bienvenido a la lista!
 
Gracias por comentar tu experiencia. Creo que comentar la experiencia que uno tiene con la herramienta, es importante, para que los demas veamos las facilidades, dificultades, que otros encuentran.
 
Y, personalmente, es reconfortante encontrar a alguien que este usando AjGenesis y lo comente.
 
Al ser una lista publica, me permiti comentar en mi "daily post":
 
 
En el proyecto actual, Medusa, estamos trabajando con .NET y un framework, Mere Mortals Framework. Uno de los integrantes del grupo, y de esta lista, Alejandro Nelis, ha estado produciendo reportes de Reporting services, a partir del modelo, que en nuestro caso, parte de la base de datos (de su estructura) y de metadata adicional que hemos ido agregando. Algo descripto lo que hacemos, al comienzo del post:
 
 
Miembros del equipo tambien produjeron aplicaciones (practicamente completas) desde AjGenesis, pero no han publicado su experiencia.
 
Alguien mas trabajando con AjGenesis?
 
Nos leemos!

 
2009/6/26 Fernando Claverino <fernando....@gmail.com>
Reply all
Reply to author
Forward
0 new messages