WorkWithKB (v2.0)

Ayer publiqué un post sobre una posible herramienta para facilitarle la vida a los desarrolladores GeneXus.

Me preguntaron que problema intentaba resolver y es una muy buena pregunta, pues en el post no lo dejo claro.

Problema 1) 
Tengo una KB que funciona perfecto en GeneXus 16 Upgrade 5 y usa GAM y GXFlow.
Instalo GX16 U9 y lo ejecuto.
Como me olvide de ponerle /NoLastKB al ejecutar GeneXus, me abre la ultima KB que use, y la convierte a la nueva version. 
No encuentro una forma de volverla atrás y tengo que bajar la KB de nuevo desde el server y hacer un build all (pierdo cerca de un dia entero).

Problema 2)
Tengo una KB que usa 3 User Controls, bajados del MarketPlace.
Instalo una version nueva de GeneXus, hago un Rebuild all de la KB. Al compilar detecto que da errores, porque me faltaron instalar los User Controls en la nueva instalación.

Problema 3) 
Tengo 2 KB en GeneXus 16 Upgrade 7.
Ambas usan el mismo User Control, pero con versiones diferentes.

Todos estos escenarios, implican tener mas de una instalación GeneXus en la maquina de desarrollo. Ademas, implica tener muchisimo cuidado de que KB abro con que version de GeneXus.

La idea de tener un Manejador de KB, es que la configuración de con que version de GeneXus abro una KB sea una configuracion que hago una vez y cambio de vez en cuando y me libero de tener que pensar en el tema.

Como hacer Wireframes es la etapa mas barata de cualquier diseño de aplicaciones, voy a hacer la version 2 de la herramienta.


Esta pantalla tiene una lista de algunas de la tareas mas comunes a realizar con una KB.
Open - Si quiero abrir una KB con una version de GeneXus que no es la ultima con que se abrio, se muestra un dialogo que avisa que se va a realizar una conversion a la nueva version.
Build All, Rebuild All - son las tradicionales.
Update & Build All - En caso que este conectado a GXServer, actualiza y hace un build all (esto se deberia hacer todos los dias al comenzar a trabajar).
Run Unit Test - Corre todos los testeos unitarios de GXTest
Run UI Test - Corre todos los testeos de interfaz de GXTest
Pack - Enpaqueta en un zip/jar/war los diferentes Deployment Unit de la aplicacion
Deploy - Mueve a un ambiente o a varios ambientes de ejecucion, personalizadon los archivos de configuracion.
List Dependencies - Lista todo lo "externo" que necesita esa KB, como son user controls, external objects, etc.
Freeze Navigation - saca una foto de las navegaciones/API/Base de Datos, para poder hacer luego comparaciones.
API, DB, Navigation impact analisis - Compara la version anterior con una version nueva y muestra las diferencias.
Verify & Compress - Verifica la KB arreglando problemas internos y de paso defragmenta y comprime la KB.
Delete KB - Borra una KB y opcionalmente todo lo que la misma genero (webapps, directorios virtuales, base de datos, archivos, etc).
User Script - El usuario puede definir un conjunto de scripts personalizados para ejecutar con dicha KB, como puede ser borrado de variables no usadas, borrar objetos no alcanzables, hacer una analisis con el SecurityScanner, registrar indicadores de la KB.
Podría agregar un script que compare los UC de la KB con los UC que tiene la instalación de GeneXus que lo va a abrir para saber (antes de hacer el rebuild all) si me falta algo.

El botón de Search KB in Disk, pide un directorio, (por ejemplo c:\models\) y recorre todo los subdirectorios buscando KB (*.gxw?) y haciendo la carga automática en este sistema.


Cada KB tiene un directorio, con que version de GeneXus se abre, sus parametros y un conjunto de etiquetas que sirven para filtrar en caso que se tengan muchas KB catalogadas.
También se pueden definir algunos scripts que quiera ejecutar en esta KB especifica.



Se puede tener una lista de todas las instalaciones de GeneXus que tengo y hay opciones para facilitar la tarea de mover los UC/módulos/patterns de una instalación a otra.
Lo dificil aca, es saber cuales son los componentes que vienen con GeneXus en forma oficial (y van a ser sustituidos en próximas versiones) y cuales son los que el usuario instalo.  Estaria buenisimo poder reconocerlos fácilmente.

En esta version, se agrega el boton de buscar las instalaciones de genexus.exe que hay en un disco y las catalogo en forma automática.

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.