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