Entradas

Codigo generado con Genexus integrado al desarrollo tradicional

Imagen
En la comunidad de GeneXus, muchos estamos acostumbrados a ver el código Java y C# generado como un simple paso intermedio para obtener nuestras aplicaciones finales. Es casi equivalente al “Java Bytecode” o al “CIL (Common Intermediate Language)” de .NET: algo que cumple un rol técnico, pero que rara vez requiere manipulación humana directa. Sin embargo, cuando llega el momento de entregar una aplicación a un cliente que no utiliza GeneXus —o que no está dispuesto a integrarlo en su proceso—, surgen algunos desafíos. El código generado, visto desde fuera, puede ser poco intuitivo y difícil de mantener mediante herramientas habituales en desarrollo nativo, como Visual Studio, GitHub y otros entornos de programación. Dificultades para la integración sin GeneXus Cuando un cliente no desea incorporar GeneXus a su proceso, necesita un acceso lo más “limpio” posible al código fuente. Sin embargo, el desarrollador nativo que abre estos archivos suele encontrar: Complejidad Estructural: Pat...

Cambio en la forma de encriptar parametros en GX17

Imagen
 Estamos en medio de una migración de GX16 a GX18.  Un usuario nos reportó un problema, con links viejos que tenia en un QR (generado en GX16) que daba error al acceder a la aplicación en GX18.  El error que da es  403 - Forbidden: Access is denied. Investigando el tema, encontramos que se cambió en el SAC 49927 SAC #49927: Se cambia la función de encriptación de parámetros para usar el alfabeto Base64 URL Safe Abstract Se cambia el mecanismo de encriptación de parámetros (cuando se tiene Encrypt URL Parameters <> None). Se pasa a utilizar una función que retorna un string con caracteres del alfabeto Base64 URL Safe. Con esto se evita generar caracteres del alfabeto Base64 como la barra (/) o el signo de más (+). Descripción Detallada Hasta el momento la función de encriptación de parámetros generaba un string del alfabeto Base64. Esto incluye los caracteres: 62: / 63: + Que el Query String de la URL (encriptada) venga con esos caracteres podría causar algunos...

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

Imagen
 Estoy leyendo el libro " Designing Data-Intensive Application " (es viejo, pero es muy recomendable)    Cubre casi todos los temas que aparecen en aplicaciones que manejan muchos datos.  Tambien cubre bien las aplicaciones distribuidas.  Es una pena que no lo leyera antes. Lo recomiendo.  Anuncian una segunda edicion para fin de 2025.  Por lo que pude leer en lo que llevan liberado , va a estar mejor aun que la primer versión. 

Posibles agentes y asistentes para el desarrollo de aplicaciones en GeneXus

Imagen
Estamos presenciando una etapa donde se van a producir en poco tiempo la aparición de asistentes o agentes que nos ayuden con la tarea de desarrollar aplicaciones.  Con el fin de imaginarme cómo puede ser el desarrollo futuro, me puse a pensar cuales serian algunos de los posibles asistentes se podrían desarrollar y evaluar ventajas de los mismos.  1. Análisis de Requerimientos Agente de Recolección de Requerimientos: Captura requisitos a través de texto o conversaciones con el cliente. Identifica contradicciones en los requerimientos.  Sugiere modelos iniciales basados en ejemplos previos. Genera historias de usuario o especificaciones funcionales. Asistente de Priorización: Ayuda a priorizar requerimientos utilizando técnicas como MoSCoW o análisis de valor. 2. Diseño Agente de Prototipado Rápido: Genera prototipos visuales interactivos basados en la definición de requerimientos. Sugiere layouts optimizados para UX/UI según las mejores prácticas. Asistente de Arquitect...

Environments dentro de la KB GeneXus

Imagen
Un escenario común en aplicaciones Genexus en clientes grandes (y chicos) es el siguiente: Desde la KB, programo y genero los instalables (pueden ser imágenes docker, war/jar, zip, etc) con los ejecutables y todos lo necesario para ejecutar. Esto tambien tiene los archivos de configuración necesarios para ejecutar con los valores que tengo en la KB o algunos que saco de las propiedades de la KB (web.config, client.cfg, appconfig.json y varios mas). Luego que hago una instalación en un ambiente de TEST, cuando el responsable lo aprueba (luego de correr test automático, test manuales, o que se cumplan los criterios de aprobación definidos, se pasa al ambiente de pre-produccion, que es mas parecido al ambiente de producción (en algunas instalaciones no existe el ambiente de PRE-Produccion y pasan directo a PRODUCCION).  En este pasaje, los instalables que se instalan SON EXACTAMENTE LOS MISMOS, pero se cambian los archivos de configuración y las variables de ambiente del sistema opera...

Pasarisa y Pampin

Hoy me entere que hace unos meses falleció Edgardo Pampin que junto con Gerardo Pasarisa fueron uno de nuestros primeros clientes. Teñían un estudio de fotografía y publicidad . Recién des-exiliados desde Holanda, se instalaron en Uruguay y tenian mucho trabajo porque trajeron maquinas y metodologías que no eran tan conocidas en el mercado.  Le instalamos una aplicacion en Clipper y estaba pensada para algo medio temporal, pero la usaron por muchisimos años. Aprendi mucho de ellos dos, sobre todo la dedicación y cariño que le ponía a cada una de sus producciones.  Si les gustan las buenas fotos, pueden ver algunas de las que publicaba en Instagram.  View this post on Instagram A post shared by Edgardo Pampin (@edgardopam)

Migrar a GeneXus 18 (+20.000 objetos después)

Hemos realizado unas cuantas migraciones a GeneXus 18, de muy diversos tipos. La idea es contar algunas de las diferencias encontradas para que a otros le sea más fácil.  Como siempre, y como no esta recomendado, hemos realizado algunos cambios para aprovechar nuevas funcionalidades.  Migración de .NET Framework a .NET Core. (.NET Core) El generador .NET Framework va a ser discontinuado, por lo que conviene empezar a realizar la transición de uno a otro. El mayor problema que tuvimos aquí, es con el código C# externo que tenemos en la aplicación.  La mayoría de los cambios fueron por temas de namespaces cambiados y otros por el uso de WCF (Windows Communication Foundation).  También tuvimos que re-programar funcionalidad para manejo de PDF (concatenar, firmar, reemplazar dentro de PDF) porque usábamos un componente que no tiene soporte en .NET Core.  No carga la grilla - Smooth y Automatic Refresh = NO (.NET Framework) En varios paneles, que estaban como Smooth ...