INSTITUCIONAL
COMUNIDAD
BLOG
AYUDA
MI CUENTA
EN PT ES

Imagen6632S

Una mirada sobre la nueva herramienta: Patterns

Marcos Crispino, de Concepto, nos cuenta su visión y experiencia como betatester en el uso de la herramienta Patterns, cuya versión beta se liberó junto a la beta 1 de GeneXus Yi

¿Qué es un pattern?
El concepto de "pattern" (patrón) es bastante usado en la programación orientada a objetos, y consiste en la descripción de un problema recurrente y la mejor solución para el mismo, que ya ha sido utilizada con anterioridad para resolver este mismo problema. Esto facilita la resolución de estos problemas, ya que no es necesario "reinventar la rueda" cada vez.

La herramienta Patterns de ARTech es un marco que permite generar código GeneXus a partir de estos patrones. Esta herramienta cuenta con algunos patrones ya implementados, y tiene la posibilidad de implementar nuevos o adaptar los ya existentes. Por ejemplo, el patrón Work With permite, dada una transacción, generar todos los objetos necesarios para implementar un "trabajar con ..." web para esa transacción.

En el caso de Concepto, esta idea de generación de código GeneXus en forma automática viene siendo usada desde hace tiempo.

¿Cómo se venía utilizando en Concepto la idea que proponen los Patterns?
El primer generador de código que desarrollamos ya tiene dos años y utiliza GXPublic para acceder a la estructura de la base de conocimientos y genera el código que luego es incorporado a la misma base de conocimiento.

Algunos ejemplos de las cosas que hemos venido usando son:

  • Dada una transacción, generar el código de un procedimiento GeneXus que cargue (y otro que lea) un XML con la estructura de la transacción.
  • Dada la estructura de una Data Warehouse, generar automáticamente el código necesario para realizar la carga de la información en las tablas.
  • Generación de scripts SQL a partir de las tablas y las columnas en la base de datos (este punto es independiente de GeneXus).
  • Dada una transacción (que representa un mensaje), generar el XML Schema con su misma estructura, para poder validarlo
  • Dada una tabla (que representa un mensaje), generar el procedimiento GeneXus que cargue (y otro que lea) archivos ASCII delimitado por comas con los campos del mensaje y haga validaciones de tipos de datos.

¿Qué ventajas ofrece el uso de Patterns?
Las ventajas de usar estos patrones (o generadores de código) son bastante evidentes. Por ejemplo, el caso de salvar el contenido de una transacción en un XML, solamente depende de la estructura de la transacción (siempre que tengamos la posibilidad de definir nosotros la estructura del XML). En este caso, todos los programas que realicen esta tarea serán similares, solo cambiando los atributos que se utilizan.

Este ejemplo presenta un caso claro donde conviene usar los patrones. Esto es porque solo tenemos que programar una vez el generador de código, y luego "instanciarlo" para cada vez que queramos hacer el programa para salvar el contenido de la transacción a XML.

Las ventajas más importantes son:

  • Con muy poco esfuerzo (unos pocos clicks) podemos generar programas con la funcionalidad deseada.
  • Se evitan errores en el código. Pueden haber errores en el generador de código, pero con el uso estos errores se van corrigiendo. En cambio si se programa a mano, con cada programa nuevo podemos estar introduciendo errores.

Lo mismo ocurre con el patrón Work With, que ya viene con la herramienta Patterns. Este patrón permite generar varios objetos, que conforman un "trabajar con ...", a partir de la transacción seleccionada. La herramienta permite configurar las propiedades para cada transacción, como por ejemplo los filtros que se usarán en el web panel de selección, los atributos y el orden de las grillas, el folder donde se crearán los objetos, etc.

¿Cuál ha sido la experiencia de Concepto en el uso Patterns?
En Concepto estuvimos haciendo pruebas para crear nuevos patrones o adaptar los ya existentes. Por ejemplo, extendimos el patrón Work With, para que tenga la posibilidad de generar una planilla Excel con los datos de la grilla de selección. Nuestra experiencia fue buena, ya que nos permitió evaluar la dificultad que presenta el desarrollo de estos patrones, que nos permitan generar código de forma automática. La principal dificultad es que para poder desarrollar estos patrones, es necesario programar en C#.

Creo que es muy bueno que haya un marco estándar para desarrollar estos patrones, como lo es la herramienta Patterns. Esto va a permitir a la comunidad desarrollar nuevos patrones que van a facilitar aún más el desarrollo de aplicaciones con GeneXus.

En nuestro caso, estamos evaluando realizar la migración de los generadores de código a Patterns, ya que en este momento, los generadores de código que tenemos no están estandarizados, sino que fueron desarrollados cada uno en forma independiente. Tenerlos definidos como patrones, va a facilitar el uso de los mismos, y el intercambio con otros miembros de la comunidad, quienes a su vez podrían realizar aportes.

Petroglifo:
http://www.concepto.com.uy/petrocsharp  

Más información de Patterns en el Wiki:
http://wiki.gxtechnical.com/wiki/tiki-index.php?page=Patterns

 

 

 

Relacionado
Se liberó la Beta 1 de Patterns
Patterns GeneXus en acción
Se liberó la versión Release Candidate de GeneXus Patterns
PATTERN WW: cuando menos es más!
#Destrancate: Este 25 de abril acercate a la nueva propuesta del GUG Montevideo