Ir al contenido principal

Hello World con GeneXusM

Hace unos días se liberaron los primeros bits de GeneXus M que, basicamente, es un IDE multiplataforma (Win, Linux y MAC) que atrás tiene la BL de GeneXus en la nube y permite el desarrollo de algunos componentes de una aplicación.


En particular se pueden definir Entities (Transacciones para quienes conocen GeneXus) y las mismas quedan expuestas como REST (Business Objects expuestos como REST) documentados con Swagger.

Con esto es posible crear una Business API que luego sea consumida desde otra aplicación, incluso puede ser consumida desde otra aplicación GeneXus.

Así que decidí hacer un "hello world" que en mi caso fue modelar la info de los clientes (tremendamente simplificada) con GeneXus M y luego consumir dichos servicios desde GeneXus, desarrollando un CRUD (Create, Read, Update y Delete) sobre dicho modelo.


En este sentido bajé Genexus M y cree una entity: Customer solo con un Id y Nombre:



Hice build de dicho modelo (se crea la DB y un CRUD default), el cual quedó accesible aquí.

Luego utilizando la Open Api Integration Tool de GeneXus consumí esos servicios, lo que crea una API en GeneXus que posibilita consumirlos muy facilmente. En mi caso hice un Webpanel que los consume y también hace un CRUD. En ejecución se puede ver acá en .NET y acá en Java.
La KB está disponible acá por si a alguien le aporta.

Dejo un video donde muestro el proceso de desarrollo, desde la creación del modelo en GeneXus hasta el consumo de la API REST desde Genexus:



Si bien son los primeros bits y el ejemplo está tremendamente simplificado, es un camino interesante a explorar y seguramente estará evolucionando fuertemente durante 2018.

Así que invito a quienes quieran experimentarlo a bajarselo y comenzar a utilizarlo!


Comentarios

Entradas más populares de este blog

El miedo, ese asesino silencioso

Hace unas semanas compré por Mercado Libre un tejido de alambre (de esos electrosoldados que se usan para cercos, pérgolas, etc) para armar una pérgola en casa.
Como me suele pasar: compré de más. Así que decidí vender el resto del alambre por el mismo medio (Mercado Libre).

Lo publiqué un Miércoles a las 13:00 y 4 horas después recibo un aviso de Mercado Libre que lo había vendido. Perfecto! Incluso lo había puesto al mismo precio x metro que la compra original así que notable!
Revisé la compra y me pagó mediante Mercado Pago usando una tarjeta VISA, en fin, todo normal.

Un rato después del aviso me llaman de un teléfono fijo al celular un tal Juan Rodriguez que coincidía con el nombre del comprador que me había llegado.
Capitulo 1: ¡para qué abrís la boca! No sé cómo decir esto de un modo "políticamente correcto" pero la manera de expresarse parecía de alguien que no tenía un gran nivel de educación. Demasiado "lunfardo" para hablar con alguien que no conocía.

El…

Abrir links con aplicaciones nativas y no el browser (deeplinking)

El problema que tengo con algunas aplicaciones Android/iOS es que cuando recibo un link por algún medio (mail, tweet, etc) al abrirlo me lo abre con el browser, en lugar de abrirlo con una aplicación nativa asociada a ese “contenido”.

Por ejemplo, si recibo un link a un tweet espero que lo abra con alguna aplicación de twitter que tenga instalada y no con el browser. De modo análogo si recibo un mail con una nota de prensa de un medio X y tengo la aplicación de ese medio X instalada, espero que el link lo abra con la aplicación nativa y no con el browser.
Lo mismo quisiera con mi aplicación de "banking" o cualquiera que tenga instalada y sepa manejar ese "contenido" (link).

Los motivos son bastante obvios pero los resumo en: la experiencia de usuario es mucho mejor en la aplicación nativa que en el navegador.

Parte importante del tema es que el mismo link sea válido tanto para ver el contenido en el browser como para verlo en la aplicación, porque como proveedor de…

¡A la salud de mi KB!

Es bueno, especialmente en "bases de conocimiento" (KB) que han pasado por varias versiones de Genexus, chequear su "estado de salud".

En este sentido KBDoctor es una herramienta que ayuda mucho, principalmente desde el punto de vista del "modelo" Genexus (atributos, calls, definiciones de variables, etc) representado en una KB.

También es útil revisar la salud de los archivos que lo soportan. Hasta la 9.0 eran archivos C-tree (los famosos .DAT) que tenían indices (los famosos .IDX) y teníamos en "rebuild -y" que mejoraba esos archivos y sobre todo reconstruía los indices.

A partir de la X las KBs se almacenan en MS SQL Server por lo cual la administración de la misma pasó de ser un "file server" a un "database server".

En este sentido algo que me ha dado muy buenos resultados es el "CheckKnowledgeBase".