5. Metadata Knowledge Base GeneXus (SQLServer) Ventajas Escalabilidad Performance Integración ambiente de desarrollo vs. ambiente de producción
6. Lenguaje GeneXus X Evolution 2 (C#) Ventajas Más moderno User controls AJAX Versión Lite
7. Sentencias SQL Funciones Year(InvoiceDate), Str(CustomerId) Métodos InvoiceDate.Year(), CustomerId.ToString() Fórmulas inline "Customer " + CustomerId.ToString() + " - " + CustomerName Filtros con WHEN CustomerId=&CustomerIdwhen not &CustomerId.IsEmpty() SQL
8. Sentencias SQL Parámetros tipo collection CustomerId in &CustomerIds Agregaciones Max() y Min() Max(InvoiceTotalAmount), Min (InvoiceTotalAmount) TOP y DISTINCT Filtros unidos con "OR" CustomerId = 14 orCustomerName = "Juan" Dominios enumerados SQL
16. Interactividad No se redibuja la pantalla AJAX Propiedades activas en todo momento Construcción con Drag & Drop Fácil acceso a los atributos Vista de diseño / vista de datos Cambio de metadata sin salir de GXplorer Página inicial
17. Más moderna Uniforme con GXportal y GXflow Internet Explorer, Firefox, Crome Más linda
18. Funcionalidades Drill Down Formatos condicionales Y además… Integrated security (GAM) Varias fuentes de datos
Un gran cambio es que nuestra base de datos dejó de ser Access para pasar a ser una KB GeneXus (SQLServer en consecuencia).Este cambio arrancó en GeneXus X Evolution 1 con la introducción del objeto Query como un tipo nuevo de objeto GeneXus.Desde esa versión de GeneXus el desarrollador tiene la posibilidad de incluir consultas (desarrolladas en GeneXus) como parte de su aplicación.Con Gxplorer 7.0 estamos disponibilizando la creación o modificación de esas consultas en un entorno de producción, directamente por los usuarios finales.¿Qué ventajas tenemos por este cambio en la base de datos?Mayor escalabilidad, ya que SQLServer se comporta mejor para bases de datos grandesMayor performance, ya que Access era lento cuando el tamaño de la metadata crecía.Y una cosa que veremos más detalle al analizar el punto referente a la metodología que es que al ser la consulta un objeto GeneXus el pasaje de consultas de desarrollo a producción, y viceversa, es un procedimiento trivial.
Otro gran cambio de esta versión es el lenguaje en el que está hecha. Gxplorer 7.0 es un producto hecho enteramente en GeneXus X Evolution 2 y generado en .Net.El lenguaje generado es un lenguaje más moderno, y muy importante: Visual Basic 6.0 es un producto discontinuado y esto plantea problemas de compatibilidad con las nuevas versiones de Windows.GeneXus X Evolution 2 nos da otras ventajas adicionales en comparación a la versión de GeneXus con la que hicimos versiones anteriores de Gxplorer:Los user controls nos dan la ventaja de poder hacer prácticamente todo lo que queramosMediante AJAX podemos ir al server sin tener la necesidad de actualizar toda la pantalla, mejorando así la experiencia de usuarioAl ser 100% hecho en GeneXus nos da la posibilidad de tener algo que siempre quisimos y es una versión que pueda correr en un ambiente Open Source simplemente cambiando la parte de abajo, la de acceso a los datos (que es SQLServer + Business Logic de GeneXus)
El motor de sentencias SQL lo hemos reescrito completamente. Este motor nos permite una mayor expresividad de las consultas a través de una serie de funcionalidades inexistentes en las versiones anteriores de GXplorer.Ejemplos:Funciones: Concat(), Str(), Substr(), Ymdtod(), ...Métodos: .ToString(), .ToNumeric(), .PadLeft(), ...Fórmulas inline: +, -, *, /, atributos, funciones, métodosFiltros condicionales: WHEN
Y además:Parámetros de tipo collectionMax() y Min()Top y DistinctFiltros unidos con “OR”Uso de descripciones de los dominios enumerados definidos en la KB
El hecho de que tanto en el ambiente de desarrollo (en el cual usamos GeneXus) como en el ambiente de producción (donde usamos Gxplorer) tengamos una KB GeneXus hace que el pasaje de información de un ambiente a otro sea un procedimiento trivial.Toda la comunicación se hace usando el Import/Export de GeneXus.Además, los únicos productos involucrados pasan a ser solamente GeneXus y GXplorer:El GXplorer Metadata Manager para la carga de la metadata desaparece, siendo sustituido por un Export desde GeneXus y un Import desde GxplorerEl GXplorer Settings para configurar opciones, dar permisos, etc desaparece y dichas operaciones se hacen directamente desde Gxplorer (entrando con un usuario Administrador).Los tipos de objetos que viajan son:Objetos que definen estructura de la base de datos (transacciones, dataviews y grupos de subtipos) unidireccionalmente de GeneXus a GXplorer. Esto se hace inicialmente para inicializar la metadata y luego todas las veces que sea necesario para actualizar la estructura de la metadata con los cambios de la estructura que se hagan en el ambiente de desarrolloConsultas, en ambas direcciones, e incluyen consultas hechas por el desarrollador para inicializar la metadata y consultas hechas en GXplorer que por alguna razón se quieran incorporar a la KB de desarrollo.Vamos a ver algunos escenarios.
El caso básico es el de la inicialización o carga de la metadata.Aquí el desarrollador GeneXus crea la KB usando GeneXus y opcionalmente un conjunto de consultas que van sobre las tablas de dicha KB.Para que el usuario de GXplorer pueda usarlas (y adicionalmente crear nuevas consultas) es necesario cargar la metadata de GXplorer con la información de la estructura de la base de datos. Esto incluye transacciones, data views y grupos de subtipo. Se copia sólo la parte de estos objetos relacionada con la base de datos. No se copian forms, código procedural o reglas.Esto se puede hacer:Enteramente desde GeneXus, si se tiene conexión directa con el servidor donde está instalado GxplorerEn dos pasos, exportando desde GeneXus e importando desde GXplorer, en caso de no haber conexión.Una opción en el menú Tools de GeneXus permite hacer estas operaciones.
Una vez cargada la metadata y los usuarios de GXplorer haciendo consultas es posible que un cambio en la estructura de la base de datos definida por la KB de desarrollo impacte la metadata (y también las consultas de usuario).En este caso basta exportar la nueva versión de los objetos que definen la estructura desde GeneXus e importarlos en la metadata de GXplorer.
Ciertas consultas originalmente definidas por los usuarios de GXplorer pueden llegar a ser lo suficientemente útiles y genéricas como para merecer ser incluidas en la aplicación GeneXus.Este escenario incluye también el caso en que una de las consultas originalmente definidas en el ambiente de desarrollo sea modificada por un usuario y los cambios vuelvan a la KB de desarrollo.
Este escenario es el caso de la aplicación que incluye ciertas consultas predeterminadas, pero que además se nutre de consultas definidas por los usuarios directamente en GXplorer, las cuales se consultan mediante servicios.
La pantalla con la que el usuario trabaja una vez que ingresa es siempre la misma. Sólo cambian elementos de esa pantalla.Nunca se redibuja la pantalla sino que las idas al server se hacen mediante AJAX. Esto no solo mejora el desempeño sino que mejora la experiencia del usuario en el sentido de que el usuario siempre sabe “donde está parado”. En versiones anteriores se elegía un elemento (atributo) en una pantalla y al pasar a las propiedades se iba a otra pantalla a configurarlas. Incluso el diálogo de propiedades podía tener elementos que a su vez tuvieran propiedades, con lo que se iba a otra pantalla. Esta navegación de BACK/FORWARD para la edición de la consulta confunde pues el usuario tiene que tener en la cabeza cuál fue el elemento que empezó a editar.En GXplorer 7.0 las propiedades de cualquier elemento están disponibles todo el tiempo en un panel en la pantalla principal. Basta con hacer un click sobre el elemento que se quiera para modificar sus propiedades. Dicho panel se puede colapsar si no se desea mostrar.El armado de la consulta se puede hacer mediante drag & drop de atributos directamente en la ventana de edición de la consulta.Se ha facilitado el acceso a los atributos dando varias maneras de llegar a los mismos: grilla y árbol con carpetas, ambos con filtrosLa consulta posee dos vistas, una de diseño donde se la construye y otra de ejecución donde se muestran los datos de acuerdo a cómo está definida la consulta en ese momento.No es necesario salir de GXplorer para cambiar de metadata.Se dispone de una página inicial donde se puede acceder rápidamente a las funciones y consultas más comunmente usadas.
El uso de los controles de la gxui hacen de Gxplorer 7.0 una aplicación a la vista más moderna y también con más funcionalidad (por ejemplo drag & drop).También contribuye a la uniformidad con la interfaz de otros productos de Artech como GXportal y GXflow.Gxplorer 7.0 funciona además en todos los browsers más difundidos sin diferencias de interfaz (Internet Explorer, Firefox y Chrome).En pocas palabras, es más linda
Respecto a la interfaz los dos grandes aportes de esta versión son:La posibilidad de ejecutar un drill down sobre la consulta para poder aumentar el nivel de detalle y “rastrear” un dato que nos resulta sospechoso o interesanteLa posibilidad de definir formatos condicionales en los elementos de la consulta para resaltar valores que se salgan o caigan en determinado rango.Y por último, dos funcionalidades no directamente relacionadas con la interfaz pero sí muy importantes:La posibilidad de compartir usuarios con otras aplicaciones de GeneXus mediante el GAMLa posibibilidad de tener varias fuentes de datos por metadata de manera que algunas consultas vayan sobre una y otras sobre otras (por ahora NO una consulta que vaya a más de una fuente de datos a la vez).
La beta 1 de Gxplorer 7.0 pensamos liberarla el mes que viene (octubre 2011), con la funcionalidad que hemos visto en la demo.Tenemos planeadas dos instancias más, beta 2 y release candidate donde completaremos la lista de funcionalidades que queremos introducir en la versión, y finalmente la liberación final que esperamos que sea en el segundo trimestre del 2012.La versión liberada de GXplorer 7.0 permitirá solamente la consulta de la base de datos mediante el paradigma de atributos, ya sea desde la interfaz web, mediante servicios o una interfaz para Smart Devices.El paso siguiente será incluir el paradigma de indicadores y dimensiones, tanto dentro de GeneXus como en GXplorer y poder hacer consultas utilizando este paradigma.En una etapa posterior se incluirá también la interfaz Excel.Y de aquí en más, nadie sabe