Comparador de Objetos GeneXus

GeneXus provee varias funcionalidades de comparación entre objetos. Se puede comparar diferentes revisiones del mismo objeto, el mismo objeto en dos versiones dentro de la misma KB y también se puede comparar un objeto que voy a importar con el objeto que tengo en la KB.

Sin embargo, hay varios casos de uso que no se pueden resolver aun con estas herramientas, por ejemplo:
  • * Un modulo común, instalado en dos KB diferentes y quiero comparar las diferencias entre los módulos. 
  • * KB en dos versiones de GeneXus diferentes (por ej, Evo2 y Evo3)
  • * Comparar versiones, en KB grande, donde el comparador entre versiones de GeneXus demora tanto que se hace muy poco practico. 

Para esto, programé una nueva opción en el KBDoctor (version 11, que aun no publiqué) que permite seleccionar un conjunto de objetos y generar un archivo de texto con el contenido de cada uno de dichos objetos. Luego utilizo un comparador de archivos, para ver cuales son las diferencias.

Traté de hacerlo lo mas sencillo posible, de forma de que sea bastante rapido y me resultara util para compara dos KB grandes, una en Evo1 y otra en Evo3.

Esto va a generar un directorio con un archivo de texto por objeto seleccionado.

Por ahora, estoy poniendo el contenido de procedures, workpanels, webpanels, transacciones, atributos y tablas.  Me faltan agregar, data providers, data selectors, menu bar y algunos mas.

No pongo aun todo el contenido de los archivos, sino solo reglas, fuentes, eventos.
En el caso de los atributos, pongo el tipo de datos y también la formula en caso que lo sea.
En el caso de las tablas, estoy poniendo únicamente los atributos que la componen.
Esta version no va a comparar WinForms, WebForms, Themes y layout de reportes, porque aun no los estoy necesitando.

Un ejemplo de procedure es:


Luego puedo comparar con DiffDotNet el contenido de los directorios, uno generado en Evo1 y otro en Evo3 y veo las diferencias por archivos.


 También se puede usar cualquier comparador de directorios y de archivos para esta comparación, como pueden ser el Beyond Compare, WinMerge, etc.

Queda aun programar bastante para que quede bien, pero en el estado actual, ya me resulta util.


Comentarios

Entradas más populares de este blog

Aplicación monolítica o distribuida?

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

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