Entradas

KBDoctor para GeneXus 18

Ya van varios que me preguntan que no encuentran el KBdoctor para Genexus 18 en el marketplace.  El motivo de esto es que cuando quise subirlo (2023) , no pude hacerlo por una validación que agregaron a las dll y estaba funcionando mal y no me dejaba pasar al proceso de verificación humana (ni siquiera me dejaba subirlo).  Para dejarlo disponible, lo que hice fue subir un zip al wiki de la comunidad, para que puedan bajarlo de ahi.  Los pasos son: Bajar KBDoctor_gx18.zip    Marcar el zip como seguro en Windows Deszipear el contenido en el directorio <InstalacionGX18>/Packages sin usar subdirectorios Ejecutar un GeneXus /install

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 ...

Incluir Bases de Datos de Grafos y Vectoriales en aplicaciones

Imagen
En la actualidad, las empresas enfrentan la necesidad de gestionar grandes volúmenes de datos y extraer información valiosa de ellos de manera rápida y eficiente. Tradicionalmente, las bases de datos relacionales (SQL) han sido la columna vertebral de la infraestructura de datos en muchas organizaciones. Sin embargo, con el crecimiento de la complejidad de los datos y las relaciones entre ellos, y el surgimiento de nuevas tecnologías, las bases de datos de grafos y vectoriales han emergido como soluciones poderosas. Este artículo explora la importancia y las oportunidades de integrar bases de datos de grafos y vectoriales en aplicaciones que utilizan bases de datos relacionales, destacando la oportunidad para las empresas que logren unificar o centralizar el acceso a los datos utilizando SQL, GQL, RAG y Full Text Search de manera coordinada y eficiente. La Importancia de las Bases de Datos de Grafos Las bases de datos de grafos están diseñadas para manejar relaciones complejas entre da...

Haciendo la transición de Servicios Web SOAP a Servicios Web REST con GeneXus

Imagen
En el desarrollo de software moderno, la adopción de servicios web RESTful ha ganado mucha popularidad debido a su simplicidad y eficiencia. Sin embargo, muchos sistemas legados aún utilizan servicios web SOAP. En este post, explicaremos cómo hacer la transición de un servicio web SOAP a un servicio web REST en GeneXus, permitiendo que ambos servicios coexistan durante un periodo de transición. Paso 1: Analizar el Servicio SOAP Existente y separar interfaz de la lógica.  Antes de iniciar la transición, es crucial entender el servicio SOAP existente. Esto incluye: Identificar las operaciones del servicio SOAP. Revisar los contratos de servicio (WSDL). Entender las estructuras de datos (tipos de mensajes, esquemas XML). Una vez realizado esto, conviene separar la interfaz de la lógica de la siguiente manera, suponiendo que el objeto se llama ServicioWEB y tiene la variable &ParmIN como parámetro de entrada y &ParmOUT como parámetro de salida.  ServicioWEB es un objeto pr...