Este documento discute los caminos hacia la adopción de la tecnología X, incluyendo las razones para la conversión, los beneficios directos e indirectos, y los costos de la actualización y modernización. También describe las etapas de una conversión básica y avanzada, desde actualizar la versión 8.0 a 9.0 hasta adoptar nuevas funcionalidades en Xev1. Se enfatiza la importancia de separar la interfaz de la lógica comercial y adoptar un enfoque más declarativo.
9. Conversión Básica WintoWin / Web to Web Abrir la KB Corregir errores conversión RebuildAll Comparar Navegaciones [Adoptar nuevas funcionalidades] Test, Test
Buenas tardes, mi nombre es Pablo Mazzilli, trabajo en área de soporte de Artech, hace 12 años.En esta presentación vamos a ver en grandes líneas cuáles son los desafíos que implicar migrar a las nuevas versiones y los beneficios que podemos tener de este proceso. Es decir, poder armar un mapa mental con todo lo que implica la conversión, para poder encarar ese proceso que probablemente venimos pateando desde hace un tiempo, y para que ese bien tan preciado que tenemos, que es la KB, tenga el lugar que se merece
La primer pregunta que surge al tratar el tema conversión a nuevas versiones es, por qué? Vale la pena considerando que el sistema funciona y está estable en al versión actual? En algunas situaciones puede que nos encontremos con cierta resistencia por parte del cliente en adoptar una nueva tecnología. Es importante mostrar los beneficios que la nueva solución traer, los puntos de dolor que soluciona, las oportunidades que pueden surgir.Una buena solución debe ser funcionalmente completa y tecnológicamente actualizada, las dos condiciones son estrictamente necesarias.Aferrarse a una tecnología que ha sido superada por otras pondrá en riesgo el negocio de la empresa.El negocio es el mismo, los cambios tecnológicos son cada vez más rápidos, proporcionan nuevas plataformas, soluciones, desafíos, oportunidades. Además, a diferencias de otros tiempos, hoy, en general son los propios usuarios los que reclaman nuevas formas de interacción, porque ya están capacitados a utilizar aplicaciones altamente interactivas, lo hacen todo el día. Entonces, si no son ellos los que reclaman los cambios, igual les parecerán más naturales, habrá menos resistencia que en otros tiempos.Estar con las ultimas versiones: Valor agregado al conocimiento Fácil acceso a ultimas actualizaciones Facilidad para encontrar gente capacitada Equipo motivado
Por qué convertir ahora, en realidad la pregunta correcta es, por qué seguir esperando?Por un lado tenemos una tecnología madura, no solo en lo que respecta a la versión de GX, donde la última versión Xev1 ya tiene más de una año desde su lanzamiento y más de 3 upgrades y muchos sistemas en producción, lo que la convierte en una version muy estable. También el desarrollo Web en sí. La web 2.0 vino para quedarse y seguir expandiendo. Se puede ver el nivel de adopción en la comunidad, en el desarrollo de nuevos patrones, la gran cantidad de controles en el Gallery, etc.Por otro lado hay mucha experiencia en el tema, muchas aplicaciones convertidas y otras tantas migradas a Web, aplicaciones de gran cantidad de objetos, de misión crítica. Esa experiencia se traduce en más facilidades para la conversión y un camino más allanado, no en vano tenemos clientes que han migrados KBs de más de 3000 objetos en menos de 24 hrs! (ver presentación de Heurys en el VII Encuentro de Brasil)Además, soplan nuevos vientos de cambios. No se si todos tuvieron la oportunidad de presenciar la conferencia de Jodal hoy más temprano. Hay una movida impresionante en relación al desarrollo de aplicaciones para SmartDevices. No necesariamente esto implica aplicaciones nuevas, sino además la posibilidad de desarrollar complementos de nuestros sistemas de Gestión. Es decir, ya no hablamos de acceso a los sistemas desde cualquier lugar, sino también desde cualquier dispositivo. Debemos estar preparados para esos cambios.
Para convertir los nros tienen que cerrar. El proceso tiene su costo, dependerá de cuál sea nuestro objetivo con la conversión, que por cierto debe estar alineado con la estrategia de la empresa, considerando desde donde partimos y hasta donde llegar.Es necesario evaluar los costos y los beneficios.Los beneficios los podríamos clasificar en dos tipos:Beneficios Directos: Lo que tiene que ver con mejoras en la aplicación final provista al cliente.Beneficios Indirectos: Mejoras en el ambiente desarrollo y productividad en el equipo para proveer esa solución. “Indirecto” en el sentido que termina siendo también un beneficio no solo para el desarrollo / empresa que produce , sino también para el cliente, que en definitiva es lo que importa.La conversión de una KB no es tirar todo y comenzar de cero como sucede cuando el desarrollo no está basado en el conocimiento. Entonces, en este caso el costo estará determinado por el analisis de compatibilidad de todo aquello que no cambiará (que puede ser todo o gran parte del conocimiento, dependiendo del tipo de conversión), para garantizar que sigua funcionando igual; y por la adopción de nuevas tecnologías (capacitación, desarrollo, etc) para todo lo que deseamos modernizar.Pero nuevamente, aquí Genexus nos provee una forma más fácil de adoptar estas innovaciones rápidamente en nuestros sistemas, ocultando la complejidad que implican asimilar todas estas tecnologías, y evitar el hecho de tomar una decisión respecto a una tecnología que puede no sea la acertada.
La mayor cantidad de beneficios la vamos a encontrar en la versión más actual de GX.Como decíamos, la versión Xev1 ya tiene más de un año desde su liberación, actualmente está en el Upg 3. Lo que la convierte en una version muy estable, con muchos sistemas en producción. Es una versión que viene madurando desde la versión X.Para los que vienen de versiones anteriores a 9.0, es necesario pasar por esta versión antes de dar el salto a la Xev1, sin necesidad de pasar por la versión X, ya no es necesario. La Xev1 es una verdadera evolución de la X.
Qué debemos tener en cuenta para definir el alcance? Las nuevas funcionalidades incluidas en la versión. Éstas se pueden clasificar en dos grupos:Funcionalidades implícitas refiere a aquellas que la versión incluye sin que el desarrollador tenga que intervenir de modo alguno.Funcionalidades explícitas son aquellas que requieren la intervención del desarrollador para sacar provecho de las mismas. La solución convertida mejorará en dos aspectos: en la solución final provista al cliente (beneficio directo) y en el ambiente de desarrollo/productividad del grupo encargado de la misma (beneficio indirecto) El alcance de la conversión lo definirá el encargado del proyecto considerando ambas dimensiones: las que hacen al costo (implícitas o explicitas) y las que hacen al beneficio (directo o indirecto).
Entonces, la conversión dejar ser una limitación técnica y termina siendo un conjunto de decisiones para llevar adelante ese proyecto.El alcance estará dado en base a los beneficios que queremos obtener y el costo de implementarlos. Ese alcance dependerá si vamos a realizar una actualización de la version simplemente y/o una modernización/refactoring.
Actualización o Conversión Básica implica pasar a la nueva versión, sin cambio de plataforma.Este cambio de por sí ya tiene muchas ventajas (implicitas e implicitas) en lo que respecto al desarrollo y mantenimiento de esa KB.En el caso que ya vengamos de una KB Web, entonces los beneficios se amplían aún más. Vean que ya de por sí, sin desarrollo adicional, la aplicación Web será más performante y mucho más interactiva.Caso Heurys.Caso MBS+ 13 KBS, una con +16.000 objetos GreenForm (RPG) y Web.Convirtiendo a xev1 U3.
En qué consiste esa conversión básica?
La comparación de navegaciones es una de las instancias más importantes. Es lo que nos da gran seguridad de que los programas en las nuevas versiones sigan navegando igual que antes y/o saber qué cambió.Hay que tener en cuenta que GX realiza muchas inferencias automáticas en tiempo de especificación. Vean por ejemplo este caso donde involuntariamente se cambia la navegación, pero es por una mejora realizada en el producto.Tener una herramienta que nos indique qué objetos cambian, cuáles son esos cambios y el por qué, nos ayudará a tener más confianza en la conversión, además de hacer el proceso más simple.
Por otro lado tenemos la Conversión Avanzada, y como ejemplo una migración que implica un cambio de plataforma de Win a Web o Green Screen a Web.Este es un proceso que implica más esfuerzo, pero donde el impacto será mayor.
Obviamente que no es tirar todo y comenzar de nuevo, el conocimiento se mantiene. Los cambios más importantes tienen que ver con los aspectos de interfaz, que por el cambio de lenguaje y arquitectura se debe tener algunas consideraciones.
Más detalle sobre estos puntos: http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?13829
No estamos solos en esto. hay empresas que se dedican a realizar herramientas específicamente para la conversión, o brindan servicios donde, juntando el conocimiento que uno tiene del negocios más la experiencia en conversiones, se puede llevar proyectos a Web en pocos meses.Lo que han trabajado con patternsno conciben el desarrollo de una solución si éstos. Los patterns elevaron aún más el nivel de abstracción en el desarrollo y por ende la productividad.---------------------Win2Web Analyzer es una aplicación gratuita capaz de hacer un estudio a fondo de las principales características de su base del conocimiento sin importar si la misma está desarrollada en las anteriores versiones de GeneXus.Win2Web Migrator es una herramienta enfocada en generar una primera aproximación al ambiente WEB de GeneXus X de su base del conocimiento.WorkWithPlus es un pattern licenciado de la empresa DVelop. WorkWithPlus funciona con GXServer.PXToolsEn primer lugarlasPXToolsfueronoriginalmentecreadas con el compromiso de quetodos los Objetos GeneXus generadoscumplierancabalmente con los requerimientos de la Interfaz de Usuario , sin requerirajustesmanualesposteriores.Las Instancias de PXToolssóloguardan el conocimientoestructural y funcional de laspantallas, de todo lo demás se ocupa el generador, cuyasalida son los Objetos GeneXus listosparausar.Poreso se puededecirque con estatecnología, en los casos de Migración, el cliente de PXTools no pasa de Win a Web sino de Win a PATTERNS (quehoygeneranpara Web, peromañanapuedenhacerloparacualquiernuevaplataformaquesoporte GeneXus).En segundolugar, estatecnologíapermitióprogramar en forma automática otros tantos módulos que también guardan un estándar de comportamiento y sólo deben ser personalizados desde las Instancias de PXTools para el sistema al que aplican.
Tambien se disponen de patterns no especificamente para la conversion de Win a Web, pero que permiten acelerar el desarrollo de aplicaciones Web.Los patrones y extensiones de K2B Tools, como Hpatterns de Heurysestán enfocados en asistir en el desarrollo de nuevas aplicaciones Web o migraciones de aplicaciones hacia Web. Provee herramientas para generar automaticamente el 100% de los web forms de una aplicación, ya sean web panels o transacciones.K2b ToolsPatterns: workwith, prompt, multiple selección, trn web form.Extensions: webpanelbuilder y auditoría (a nivel de BD).Trial gratuita www.K2BTools.com
Es importante lograr que el desarrollo de aplicaciones en GX sea cada vez más independiente de la interfaz. El desarrollador GX tiene que tener el foco exclusivo en declarar el conocimiento y lograr que los aspectos de interfaz se resuelvan los más automático posible, lo que facilitará aún más futuras conversiones. En ese sentido se han realizado importantes mejoras en las últimas versiones. Veamos algunos de estos recursos.
Clasificaciones de reglas en las transacciones según interfaz o Business rules.Transacciones como BC. Evito tener Webp + Procs para actualización de la base de datos. Las reglas del negocio están en un único lugar. Mejoras en fórmulas: Evitar tener procedimientos para resolver cálculos, recuperar valores.
Desarrollo basado en Patterns. Lo que el usuario declara es la intención: Tener un “Trabajar Con”. Es el pattern que crea los objetos necesarios para manipular eso(ahora específicamente Web Forms).Data Providers: Es similar a los patterns. Se declara la intención de obtener cierta estructura de datos. La salida es un tema temporal.Query: Idem que DP, declarando la información que se desean recuperar.
Reutilización de Código: Acá entran los Data Selectors + Web Components + MasterPages. Esto es fundamental no solo por las facilidades propias de reutilización (defino 1 vez, uso en N lugares, se actualiza en un solo lugar, etc), sino que además se está transformando un conjunto de pantallas en conocimiento puro. Separar el conocimiento de los aspectos de interfaz o tecnología de turno no solo permite tener una KB más fácil de entender y mantener, sino además nos permitirá que las futuras conversiones sean más fáciles de aplicar.
Programación Declarativa vs Programación Procedural. ¡Es el momento de la transición!Lunes – 17:15Ya es hora de migrar a Web. Tenemos la tecnología y la metodología. ¡Falta que Ud. se decida!Martes – 9:30WorkWithPlus 4.0 -¡Más flexibilidad, más funcionalidades, mayor productividad!Martes – 10:30G2W – La manera más fácil de convertir el 100% de sus aplicaciones existentes para WebMartes – 12:15Migración basada en conocimiento. La comunidad trabajando por la comunidad.Martes – 12:15Lunes – 17:15Programación Declarativa vs Programación Procedural. ¡Es el momento de la transición!Martes – 9:30 Ya es hora de migrar a Web. Tenemos la tecnología y la metodología. ¡Falta que Ud. se decida!Martes – 10:30 WorkWithPlus 4.0 -¡Más flexibilidad, más funcionalidades, mayor productividad!Martes – 12:15 G2W – La manera más fácil de convertir el 100% de sus aplicaciones existentes para WebMigración basada en conocimiento. La comunidad trabajando por la comunidad.