domingo, julio 20, 2008

Redescrubriendo GeneXus X ... Otra de tantas.

Si tienes experiencia con la versión X de GeneXus no vale la pena leer este post pero tengo que admitir que al ir usando la versión le voy encontrando pequeñas cosas que están buenas o por lo menos un poco mejor que en la versión GeneXus 9.

Hoy en la tarde estaba trabajando y me di cuenta de que el Insert Function muestra las funciones que se pueden agregar pero ordenadas de forma alfabética, en versiones anteriores las funciones se ordenaban por uso o según la aplicación o algo así. jeje

Insert Function GeneXus 9:



Insert Function GeneXus X:



Estaría 10 puntos si se pudiera mostrar el Insert Function como en GeneXus X pero brindando la información que nos daba en las versiones anteriores, me refiero a que en GeneXus 9 se podía ver los parámetros y el tipo de datos que nos devolvía cada versión.


Otra cosa que me gusta de la nueva versión es que si le damos doble click sobre un botón nos lleva directo al evento y no como antes que teníamos que dar dos o tres click para poder ver el código del evento asociado al botón.


La última del día de hoy es que estaba haciendo un código en donde tenía que hacer un new de casi todos los atributos de una tabla. Por costumbre para poder hacer esto y no olvidarme de ningún atributo iba al inert atribute y filtraba por tabla, seleccionaba todos los atributos que me mostraba y eso me insertaba en el código todos los atributos.

En GeneXus 9 me quedaban los atributos de la siguiente manera:

new
CobNro, CobFecha, CobHora, CobUsuario, CobTerminal, CobCaja, CobCajLin
endnew

Lo que hacía era ir quitando las comillas y le daba un enter para que el atributo me fuera quedando abajo y ordenado.

En GeneXus X sin tocar nada ya que queda de la forma que quiero:

Ej:
new
CobNro
CobFecha
CobHora
CobUsuario
CobTerminal
CobCaja
CobCajLin
endnew

Esto puede parecer una tontería pero nos ayuda mucho cuando tenemos que hacer este tipo de trabajo y no podemos usar un BC.

En el día de hoy se me dio por escribir tres ejemplos de la cantidad de cosas que voy encontrando a diario al usar GeneXus X, sin duda que la nueva versión de GeneXus tiene muchos cambios buenos que nos van a ayudar a mejorar nuestra performance aparte de hacernos mas fácil el trabajo. jejee

miércoles, julio 09, 2008

Auto Desafió GeneXus Extensions

Auto Desafió con GeneXus Extensions

Las extensions son algo realmente interesante que nos trae la nueva versión de genexus, básicamente podemos extender las funcionalidades del IDE. Lo interesante es que podemos personalizar nuestro IDE por decirlo de una manera simple.

Desde las primeras CTP´s de GeneXus X estuve siguiendo los diferentes comentarios que se mandaron a los foros y me quede con la impresión que para poder realizar una extension hay que ser una especie de “guru” en C#.

Por otro lado si revisamos las extensiones que se encuentran disponibles digamos que el 95% son desarrolladas por desarrolladores de Artech. Esto se puede dar por falta de interés de parte de la comunidad de extender el IDE o por que realmente es complejo realizar una extension. Nota: Gracias al comentario de Marcos, me di cuenta que el % que puse no es el correcto ya que estuve contando los user controls. Digamos que lo correcto es un 50%.

Hace tiempo que tengo un par de ideas para realizar un par de extensions con algo que traía la vieja versión de GeneXus y aparentemente en GeneXus X no van a estar, en realidad es una especie de capricho personal. jeje

En síntesis me puse como desafió construir aunque mas no sea una extension, al no tener mucho tiempo me puse como plazo un año. Hay que tener en cuenta que mis conocimientos de C# son básicos y que hace muy poco tiempo me puse a leer la información necesaria para poder realizar este desafió.

Quiero quitarme la duda que tengo en cuanto a las extenions y es una buena prueba intentar realizar una ya que mis conocimientos sobre el tema son casi nulos.

Información relacionada:
GXPlatform Gallery - Extensions

GeneXus Extensions

martes, julio 01, 2008

Window Data Type, Drag and Drop y otras yerbas

Por suerte tengo que admitir que de a poco le voy agarrando la mano al nuevo IDE de GeneXus. En realidad creo que lo estoy controlando ya que el primer mes que estuve trabajando con GeneXus X el nuevo IDE me controlaba a mí. :-)

Hace aproximadamente tres meses que estamos trabajando en serio con GeneXus X desarrollando una aplicación que en breve saldrá en producción, por lo menos la versión Beta. jeje

En estos tres meses puede aprender bastante del nuevo IDE aparte de quedarme con muchas dudas de en donde aplicar las nuevas funcionalidades ya que son muy lindas cuando las vemos en los ejemplos pero ponerlas en una aplicación real no siempre es tan fácil.

Lo más fácil de aplicar son los user controls ya que creo que casi todas las aplicaciones tienen que contar con un menú y por suerte tenemos varios para elegir, en mi caso estoy usando el User Control Slide Down Menu.

Por otro lado le encontré un uso interesante para el nuevo tipo de datos Windows y el famoso Drag and Drop. En realidad quiero que mi desarrollo sea GeneXus X oriented por lo que estoy buscando meter algo de GeneXus X en cada funcionalidad de mi aplicación. :-)

El sistema que estamos desarrollando es un manejador de las relaciones sociales de la empresa y un poco mas, hablando en criollo es un CRM extendido por lo que el nombre que le pusimos es extendedCRM. Una funcionalidad es la posibilidad de importar direcciones desde Microsoft Outlook ya que este programa nos brinda la posibilidad de exportar en un formato separado por comas por lo que me quedo fácil hacer el programa de importación, lo interesante de esto es que uso un tipo de datos Windows para desplegar una especie de Wizard que comienza pidiendo el archivo a importar y luego nos muestra otra pantalla en donde en una grilla nos muestra los cabezales de los campos (Títulos) y tiene otra grilla al lado donde utilizando Drag and Drop puedo mover los campos de la Grilla que contiene los campos del archivo a la otra grilla que contiene los campos que realmente quiero migrar ya que no todos los campos que usa Outlook tienen correspondencia en el sistema.

La verdad que lo podía haber realizado de otra forma pero me gusto tener la posibilidad de darle un buen uso al tipo de datos Windows y al Drag and Drop.

El código es bastante sencillo, por ej. para el tipo de datos Windows el código que estoy usando es el siguiente:

Event 'Importar Libreta de Direcciones'
&MiVentana.Height = 400
&MiVentana.Width = 540
&MiVentana.Object = AuxArchivo.Create()
&MiVentana.Open()
EndEvent


El código para el drop es el siguiente:

Event GrillaDrop.Drop(&AuxFechaHora,&AuxTextoPosCabezal,&AuxTextoCabezal)
MarcaCampoAImportar.Call(&AuxFechaHora_Usados, &AuxTextoPosCabezal)
GrillaDrop.Load()
EndEvent


Para que esto funcione hay que habilitar las propiedades AllowDrop y AllowDrag de las grillas o de los objetos que intervengan.

Lo del Drag and Drop se encuentra bien explicado en el wiki de la comunidad ya que no quiero marear a los lectores de este blog por lo que prefiero que lean la documentación sobre el tema en el wiki: Drag and Drop in Applications


Hoy en día tengo una versión mejorada pero dejo un pequeño video que hice hace un tiempito para mostrarle a un amigo las cosas que se podían hacer con GeneXus X.




Creo que esto es un ejemplo muy pequeño de las cosas que se pueden llegar a realizar con GeneXus X. A medida que voy encontrando aplicación de las nuevas cosas las voy a ir subiendo al blog. Hasta la próxima. :-)