En en XIV Encuentro Internacional de Usuarios GeneXus hicimos una presentacion enfocada en el Software Testing.
La presentacion que habla sobre el testeo unitario, puede encontrarse aqui
Mejor BetaTester GeneXus
Por tercera vez, me dieron el premio a "Mejor BetaTester de GeneXus" esta vez para la nuevas funcionalidades de la version 8.0.
Pa los contra!!.
Mas detalles en http://genexusxiv.montevideo.com.uy/118
El tiempo y su representacion
Desde hace un tiempo me tiene preocupado un problema de como representar intervalos de tiempos (sobre todo vigencias) en base de datos relacionales, sobre todo las hechas con GeneXus.
Los principales problemas que tenemos son:
Auditoria
Mantener una copia de las modificaciones que los datos tienen a traves del tiempo
Borrado de datos historicos.
Para evitar el crecimiento excesivo de las base de datos es necesario tener programas que hagan la limpieza de los datos historicos. Generalmente no son triviales para dejar la base de datos relacional coherente.
Intervalos/Vigencias
Es comun tener tablas en las cuales una clave tiene diferentes atributos secundarios a traves del tiempo y hay que guardarlos todos.
Por ejemplo:
Productos
*PrdId
*FechaInicial
FechaFinal
PrdNombre
Movimientos
*MovId
MovFch
PrdId
Cantidad
El problema basico, consiste en recuperar el PrdNombre, correspondiente a la fecha del movimiento de MovFch, con FechaInicial <= MovFch <= FechaFinal.
Esto trae varios problemas:
La integridad referencial no sirve
Se complica la programacion
Es dificil validar los intervalos en la transaccion de Productos.
Parece un buen patron para automatizar o para agregar como funcionalidad de GeneXus.
Mas sobre el tiempo y su representacion...
Coincidencias de la vida:
En lo laboral, estoy desde hace tiempo dandole vueltas al problema de la representacion de intervalos de tiempos en base de datos, de una forma coherente, lo que me ha hecho pensar en el tiempo y lo mal modelado que lo tenemos.
Por otro lado y en mi tiempo libre, estoy leyendo un libro sobre fisica "The fabric of the cosmos" (Muy recomentable) donde explica, de una forma entendible para no fisicos, sobre las dificultades que tiene la fisica para entender el tiempo, y sobre todo la definicion del ahora. Y tambien explica que nada en las ecuaciones de la relatividad, ni en la cuantica, explica que el tiempo fluya, sino que parece mas una dimension del espacio/tiempo.
El fin de semana pasada, fui a ver con mis niños "Harry Potter y el prisionero de Azkaban" (me gusto :) ) donde Hermione usa el GiraTiempo para retroceder en el tiempo.
De noche fuimos a ver la ultima de Woody Allen (Anything else), que hace referencia al tiempo y a la mecanica cuantica
Todo estos estimulos (de forma desordenada) me han hecho pensar en lo poco que realmente sabemos del tiempo, de lo mal que lo represntamos y que provecho le podriamos sacar al tiempo si lo entendieramos mejor.
SQLServer 64-bits en aduana de Costa Rica.
La semana pasada me toco instalar la primera aplicación desarrollada por Concepto, para una arquitectura en tres capas con .NET en la Aduana de Costa Rica.La plataforma de instalacion, incluye servidores Itanium (un cluster) para correr SQLServer 2000, en su versión de 64 bits.
La performance fue muy buena, pero me lleve una desilución grande, cuando vi que no posee Enterprise Manager, por lo que toda la administración hay que hacerla en forma remota. Realmente me parece un paso atras.
Por lo demas, la instalación fue todo un exito, pero nos encontramos con un problema, de Kerberos delegation, que necesitamos hacer llegar la identidad del cliente, pasando por el servidor de procesos, hasta la base de datos, y hasta el momento no lo hemos logrado.
Contamos con el apoyo de la gente de Microsoft Costa Rica (Gracias!) pero aun no han podido resolverlo. Si alguien sabe como resolver el DOUBLE HOP O KERBEROS DELEGATION, se agradece. Todos los articulos que hemos encontrado en TechNet y MSDN, no logran solucionar el problema.
GeneXus YI
Empece a testear la nueva versión BETA de GeneXus (Codigo YI).
Lo que me interesa probar es fundamentalmente la posibilidad de generar aplicaciónes multi-idioma. Si esto funciona bien, nos posibilitará tener aplicaciones para diversos mercados, que hoy no estamos pudiendo ofrecer (fundamentalmente, de habla inglesa).
Después cuento como nos fue...
En la proxima version de la beta, estan prometidos los Business Components, que también me interesan mucho para poder probarlos.
GeneXus YI (Noviembre 2004)
Muchas horas de betatesting de esta version de Genexus me ha enseñado, que aun le quedan unos cuantos bugs por encontrar, pero se han incorporado unas cuantas mejoras importantes.
Ahora podemos manejar archivos y directorios con los nuevos tipos de datos File y Directory. Es un pequeño cambio pero que va a ayudar mucho en las futuras migraciones. Siempre nos han complicado mucho la vida, el manejo de los archivos cuando tenemos que movernos de una plataforma a otra.
En este momento estamos migrando 2 KB grandes desde Visual FoxPro a java y seria impecable poder contar con esta funcionalidad, pero lamentablemente, tendremos que hacerlo en Genexus 8.0.
De los errores encontrados
Performance al especificar programas de redundancias. OK.
Property Call Protocol OK.
Property de Cache de tablas OK.
File y Directory DataType en .NET OK.
UDF OK.
spc0053 OK.
isam error in funcion Save_parameter OK
iTextdotNET (PDF con .NET) OK
Demora al Generar OK.
===============
Otros errores / reportes que aun no tengo resueltos.
Generate Prompts rule A LA ESPERA.
Compilacion de Build Assemblies A LA ESPERA
Log en RollingFile con .NET Lo cambiamos a loguear en la base.
Err 212 A LA ESPERA
Isam error al borrar grupo A LA ESPERA.
La funcionalidad de Busines Component, aun no he podido testarla a fondo, pero es una de las features mas prometedoras de esta version. De cualquier forma, quiero probarlo cuando este funcionando con varios niveles.
Marcos, ha probado el generador de codigo, realizado con los GXPatterns y el resultado resulto muy bueno.
Mi meta es tener para marzo otro pattern de lectura/escritura de archivos xml que utilice los Business Components para la creacion de WebServices de una forma mas facil.
No comments:
Post a Comment