Entradas

Fortaleciendo la Comunidad GeneXus: Desafíos y Oportunidades

Imagen
En los últimos años, la cantidad de usuarios GeneXus ha experimentado un crecimiento. Esto es evidente con la llegada de nuevos desarrolladores y la continuidad de los que, como yo, llevamos años en este mundo. Las tendencias hacia el desarrollo Low Code, la integración de inteligencia artificial y la creciente demanda de sistemas por parte de empresas y personas sugieren un futuro prometedor con espacio para más desarrolladores. ¿Por qué es tan crucial una comunidad sólida? Una comunidad fuerte permite mejorar las metodologías de trabajo, haciendo que los proyectos GeneXus sean más eficientes y productivos. Pero para que una comunidad prospere, hay factores esenciales a considerar: Compromiso : Una comunidad saludable se caracteriza por la activa participación de sus miembros, quienes deben sentirse impulsados a colaborar y aportar. Comunicación Abierta : Es vital facilitar canales de comunicación efectivos entre miembros y líderes. Y, por supuesto, todo debe basarse en el respeto mut...

Consejos de uso de Google Analytics para el desarrollador GeneXus.

Imagen
En las aplicaciones Genexus, es muy fácil habilitar Google Analytics para que la misma informe sobre su uso. Esta herramienta tiene muchisimos usos para entender como usan los usuarios la aplicación. En particular, queria mostrar algunas que son utiles para quienes desarrollan aplicaciones web, y pueden ayudar a desarrollar aplicaciones mas faciles de usar.  Usuarios en Real Time Permite ver cuantos usuarios estan conectados en este momento al sitio y desde donde se están conectando. Es útil para ver como afectan alguna nueva instalación.  Muestra desde que dominio, pais se conectan y  cuales son las paginas mas utilizadas en ese momento.  Ranking por paises  Para conocer un poco mejor la audiencia de mi aplicacion, es bueno ver desde que pais es mas usada la aplicación. Por ejemplo en este caso, la gran mayoria de la misma es accedida desde Uruguay.  Que navegador usan mis usuarios?  Ver esta consulta ayuda a definir con que navegadores debemos conce...

KBDOCTOR para Genexus 18

Imagen
  Intenté subir una versión de KBDOCTOR para Gx18 al marketplace y no lo logré, pues da errores de validación que no logre superar. Dejé un zip en la wiki , por si alguien lo quiere  Descomprimir en el directorio Packages y luego ejecutar genexus /install  en el directorio de Genexus 18. Tiene muy poco testeo y no tiene opciones nuevas. No está en condiciones optimas de ser liberado, pero como me lo pidieron varias veces, lo libero. 

Eventos en webpanels y transacciones GeneXus.

Imagen
  Este post es parte de una serie de artículos sobre como hacer KB mas mantenibles y actualizables a nuevas versiones de GeneXus. Los objetos que tiene interfaz de usuario, soportan eventos en su programación. Dichos eventos son necesarios para permitir al usuario hacer acciones sobre los datos. Los eventos pueden dispararse por diferentes motivos como ser apretar un botón, cambiar algún valor, salir de un control, paginar, cargar una grilla, etc.  Una practica que recomiendo fuertemente para hacer la KB mas fácil de mantener y sobre todo mas migrable a nuevas versiones, es la de solo incluir en el código de los eventos, aquellas cosas que interactúan con los elementos de las pantalla, y todo lo demás, resolverlo con otros objetos (procedures, data providers, etc).  Cosas que SI deben hacer los eventos: Mostrar mensajes al usuario Ocultar/Mostrar controles (botones, grillas, tablas) Actualizar datos en pantalla, dependiendo de lo ingresado por el usuario Cambiar texto de...

No code, low code, high code = CODE

Imagen
La evolución de la forma de interacción entre humanos y máquinas ha experimentado cambios significativos a lo largo del tiempo. Voy a tratar de mostrar con diagramas como ha evolucionado el proceso de desarrollo de software y la interacción entre los desarrolladores y las computadoras. En las primeras etapas, se muestra que los desarrolladores interactuaban directamente con las computadoras utilizando lenguaje máquina. En esta fase, el desarrollo de software requería un conocimiento profundo de la arquitectura y los códigos de bajo nivel de las máquinas. Era un enfoque muy técnico y laborioso. A medida que avanzamos en el tiempo se observa una progresión hacia niveles de abstracción más altos. La siguiente etapa muestra el uso de lenguaje ensamblador (assembler), que proporcionaba una capa de abstracción sobre el lenguaje máquina, facilitando un poco más la tarea de programación. En esta etapa, los programadores tenían que hacer manejo de memoria, acceso a disco y programar las operaci...

GeneXus: Usar un workspace controlado - O como organizar el espacio de trabajo en GeneXus.

Imagen
GeneXus es altamente configurable en su espacio de trabajo. Permite que sus diferentes componentes, se agrupen en el IDE de diferente formas y los mismos pueden quedar flotantes, auto ocultarse, agrandarse, achicarse, verlos arria, abajo, etc.  Tambien es muy comun, que con el trabajo alguna de estas ventanas se oculten sin querer, o queden en lugares incomodos.  Por ejemplo, cuando trabajo en monitores que son Full HD o superiores, me gusta tener : siempre visible a la derecha el KBExplorer / Preferences,  siempre visible y a la izquierda las Propiedades, Toolbox y los resultados de los Test.  siempre visible y abajo, la ventana de output.  el espacio central con el editor de texto  un tab para KBdoctor.  GeneXus nos brinda la posibilidad de ejecutar con la opción /NoWorkSpace, con la cual se levanta con las opciones por defecto, donde las propiedades , el KB Explorer y el Output se ocultan cuando no tienen el foco.  Acomodarlo a la forma que yo ...

Modelo de datos temporales (o bi-temporales).

Imagen
Imaginemos una aplicación de gestión de ventas de una tienda en línea que utiliza una base de datos relacional para almacenar su información. Esta aplicación tiene una tabla "Ventas" que almacena información sobre las ventas realizadas en la tienda. La tabla tiene las siguientes columnas: VENTAS * VentasID      Ventas ID           Numeric (8)   VentasFecha   Ventas Fecha        Date   ClienteID     Cliente ID          Character (10)   VentasImporte Importe de la venta Numeric (10.2) CLIENTE * ClienteID     Cliente ID          Character (10)   ClienteNombre Cliente Nombre      VarChar (100)   CiudadID      Ciudad ID           Character (10) La aplicación tiene la capacidad de registrar las ventas que se realizan, incluyendo la fecha en que se llevan a ...

Usabilizando GeneXus: Poder salvar el estado del Workspace (y dejarlo por defecto)

Imagen
GeneXus es muy configurable, en la forma de posicionar las diferentes ventanas de trabajo (workspace).  Es habitual mover y/o agrandar las ventanas de:  Output  Properties  KB Explorer  Toolbox  Search y un montón de etcéteras.  Genexus por defecto, recuerda el estado del espacio de trabajo y la próxima vez que entro, me muestra las ventanas tal cual las dejé la ultima vez. Esto trae como problema, que cuando uno trabaja un rato largo, puede mover alguna ventana por error y queda mal configurada. Volver a la situación anterior deseada, no es difícil, pero es engorroso.  Una opción que hoy nos brinda Genexus es la de correr GeneXus con la opción /NoWorkSpace que abre la configuración default de GeneXus.  En monitores grandes, a mi me gusta trabajar con la opción por defecto de GeneXus, pero con el KB Explorer y Properties fijadas/ancladas (no se como se traduce pinned) y la ventana de Output siempre visible abajo.  Muestro un ejemplo, en ...

Primera prueba de GeneXus Next

Imagen
  La primera prueba de GeneXus Next me gustó mucho, para ser una primerísima versión. Tiene mucho potencial que deberá verse en futuras versiones.  Cómo otras herramientas orientadas a interfaz por un chat, nos presenta un prompt donde podemos escribir unas  pocas palabras. La idea ahí es describir que es el sistema que quiero realizar, y de ahí infiere cuales serán las principales entidades que va a tener el backend para dicho sistema.  Lo probe en español y en inglés y no noté diferencias sustanciales, aunque lo que genera siempre está en ingles.  Por ejemplo, si escribo en el prompt: "Manejo de Seguridad, con usuarios, roles y permisos. Autenticar y Autorizar los diferentes Objetos de la aplicación" Me plantea las siguientes entidades: Based on your business description, the following 4 entities were identified: Object:  Resources that users can access Permission:  Actions that users can perform Role:  Permissions assigned to each user User: ...

Desarrollo con GeneXus ayudado con Inteligencia Artificial

Imagen
La industria entera se vio sacudida por las nuevas posibilidades que brindan los modelos de inteligencia artificial del tipo ChatGPT . Por la calidad de las respuestas que brinda, puso nervioso a mas de una empresa, que pueden ver sustituido gran parte de su trabajo por este tipo de herramientas.  ChatGPT es la cara mas visible de esta nueva ola y tuvo la importancia de mostrar el potencial del uso de la inteligencia artificial para ayudar a hacer tareas que hasta el momento no parecían automatizables.  A mi me gusta verlo como la  oportunidad de hacer un pair-programming con un programa en vez de un ser humano. No será lo mismo, pero tener algo que conteste las dudas que te surgen cuando estoy programando, ayuda muchísimo.  Pero hay otra cantidad de tareas que no necesitan ese grado de sofisticacion o modelos tan grandes como para poder ser muy útiles, ahorrarnos horas de trabajo y hacernos mas productivos.  He estado pensando, que cosas podrían automatizarse m...