lunes, 20 de abril de 2009

GXPublic Applets

Si bien es cierto que con GeneXus X deja de existir, para quienes seguimos trabajando con GeneXus 9.0 GXpublic sigue siendo una herramienta muy valiosa.

A lo largo de los años, han ido surgiendo necesidades que son difíciles o imposibles de resolver usando solamente GeneXus, por lo que hemos ido desarrollando pequeñas (por eso lo de applets del título) aplicaciones que usan GXPublic y que resultan de utilidad en el desarrollo.

Algunas de estas aplicaciones son públicas y se pueden obtener de GXOpen, otras no, son desarrollos internos que nunca vieron la luz. Algunas se podrían llegar a necesitar también en GeneXus X, otras ya están integradas, no tienen sentido o hay una alternativa que ya existe.

A continuación detallo las que más uso...

KBQuery

KBQuery en una aplicación que permite ejecutar consultas SQL sobre una KB GeneXus.

Ya había escrito sobre esta herramienta acá, así que no voy a decir mucho más, salvo que me resulta sumamente útil.

GXLGenerator

En el ciclo de desarrollo que tenemos en Concepto, todos los cambios de programación que se hacen quedan asociados a una solicitud, y a su vez a una solicitud se le adjunta un GXL con los objetos modificados.

El nombre de la aplicación dice casi todo, lo que hace es generar un texto con formato GXL a partir de una lista de nombres de objetos y su tipo. Además chequea que el objeto exista en la KB, para que no haya posibilidad de que quede un objeto que no existe.


KVCVSP - Control de versiones (sin pretensiones)

Esta aplicación es parte de las KBTools. Tiene una interfaz gráfica, pero para KBs grandes no resulta práctica, porque demora mucho.

Lo que hace esta aplicación es distribuir en la noche (mediante un proceso batch agendado) todos los objetos modificados desde la última distribución, dejando el XML en un directorio determinado.

Cada archivo generado tiene la forma tipo_nombre_fecha.xml, por ejemplo: PRC_Prueba_200904201534.xml.

De esta forma, queda toda la historia de cambios de todos los objetos. Usando el comparador de distributes que viene con GeneXus 9.0, se puede comparar de forma muy fácil la versión actual de un objeto con una versión anterior.

Claro que para GeneXus X deja de tener sentido, porque ya tiene la historia de los objetos incorporada.

Neptuno.net

El origen del nombre de esta aplicación desconozco de donde viene, ya que la versión original no es mía. Neptuno estaba hecho en GeneXus/Visual Basic, y funcionaba con la versión 8.0 de GeneXus. Neptuno.net es una variante del programa original pero escrito enteramente en C#.

Lo que hace ese programa es mostrar un "call tree" a partir de un objeto dado, mostrando pintados de rojo aquellos objetos que hacen commit o rollback.

El objetivo es poder encontrar problemas de integridad transaccional a partir de un objeto, que es algo que para hacerlo "a mano" resulta muy tedioso.

Las cosas que toma en cuenta son:
  • que el programa tenga commit o rollback en el código
  • que tenga la propiedad commit on exit y haga algún cambio en la base de datos (procesa el sp0 correspondiente)
  • si ejecuta en una nueva UTL asume que está bien.
Tiene muchas cosas para mejorar, por ejemplo la interfaz de usuario, la performance, o podría tener un botón que recorriera el árbol en profundidad y se parara en el primer nodo con problemas. Pero para una primer versión, cumple con su función y resulta sumamante útil.


CodeReviewr

Esta es la última incorporación y todavía estoy tratando de decidir si sirve o no...

El objetivo es poder hacer code review de los últimos cambios (objetos modificados ayer) por parte de todo el equipo de desarrollo.

El programa busca en la KB los objetos con una determinada fecha de modificación, y usa los distributes generados por el control de versiones (KBCVSP) para comparar la versión actual del objeto con la versión inmediatamente anterior, usando el comparador de distributes de GeneXus 9.0.

La revisión de código no es algo que hagamos sistemáticamente, pero en las pruebas que he hecho sirvió para detectar algunas cosas...



2 comentarios:

  1. Marcos, no se si por éste medio me podés ayudar, necesitaría poder tomar fotografias desde mi aplicación desarrollada en Genexus 9.0, plataforma .Net SQL Server 2000.
    La idea es que tengo instalada una filmadora panasonic y de alguna forma con alguna aplicación externa poder ver la imagen que tengo que capturar y colocarla en un formulario.
    Desde muy agradecido de que puedas o no ayudarme. Slds Julio

    ResponderEliminar
  2. Julio:

    Yo no te puedo ayudar, pero se que Marcos Canán hizo algo parecido para GeneXus X... Tal vez él te pueda ayudar.

    Más información en http://www.tacuati.com/genexus-controls/webcam-control.php

    ResponderEliminar