Migración Win a Web, experiencias, tips y consejos. Ing. Enrique Almeida ealmeida@concepto.com.uy Ing. Alejandro Rinaldi arinaldi@concepto.com.uy
Quienes somos? Consultoría y Desarrollo de Software Knowledge Base Supplier Reconocimientos XII Encuentro GeneXus “Early Adopter of New Technology” “Mejor Betatester GeneXus” 2000 y 2001
Objetivos Brindar ayuda a problemas con soluciones ya probadas Problemas típicos y posibles soluciones Comparación de funcionalidades de GX 7.5 con GX 8.0 Incentivar migraciones a web (páginas dinámicas HTML)
Temas Comparación HTML vs GUI Diseño y estética Programación de Eventos Return Reportes Seguridad Filtros y variables Generación dinámica Confirmación y mensajes Call a WKP vs Call a WBP Integridad transaccional y UTL Interacción con el cliente Nuevas posibilidades del HTML
Comparación HTML vs GUI Son diferentes plataformas!! HTML mas limitado y no estricto Depende del navegador y versión HTML es un estándar mundial Facilita la integración RECOMENDACION: No intentar reproducir el ambiente GUI en un ambiente web
Mayor exigencia en diseño gráfico…
Mayor exigencia en diseño gráfico…
Diseño y estética Win: Styles Web: Mayor exigencia en diseño Desarrolladores son los que hacen el diseño gráfico Web: Mayor exigencia en diseño Aumento del 20% en el desarrollo Necesidad de profesionalizar el diseño gráfico Web: Themes (GX8.0) Desarrolladores se concentran más en la lógica y no tanto en el diseño gráfico
Programación de Eventos Eventos independiente de líneas (ej:agregar) Eventos sobre a una línea (ej:Eliminar) GX7.5 no hay forma de seleccionar una línea de la grilla Una nueva columna y cargar un link en el load “click” en variables combobox o check box GX8.0 Propiedad para seleccionar una línea del la grilla
Programación de Eventos Eventos sobre más de una línea For each line In Subfile1 (ej: Totalizar importes de líneas marcadas con &Op=‘X’).
Return Cambio de comportamiento wkpA … call(wB) call wkpB call(wC) ... return wkpC Return WIN wbpA … call(hB) call wbpB call(hC) ... return wbpC Return WEB
Return Posibles soluciones Hacer un Call(wbpA) No funciona si hay más de un wbp que llama a wbpB Pasar por parámetros call(&llamador) Programar una pila de llamadas GXOpen: Return entre Webpanels http://www.gxopen.com/main/hversion.aspx?123,2
Reportes En papel Problemas Paliativos, hacerlos electrónicos PDF Javascript(windows.print()) Print del navegador Problemas Menor control del formato (diferentes navegadores) Reimpresiones Mayor facilidad de adulteración de listados Documentos Preimpresos Impresiones masivas Paliativos, hacerlos electrónicos Mail/WebWrapper WebServices
Seguridad Se puede acceder a cualquier parte del sistema escribiendo la URL directamente Saltearse los controles de seguridad Controlar la seguridad en el start del objeto protegido Cambiar los parámetros Encriptar parámetros
Filtros y variables Las variables no se preservan Se pierden los filtros al regresar de otra pantalla Pasarlos por parámetros Guardarlos en una cookie al hacer un ‘refresh’ y leerlos en el ‘Start’
Armado de Páginas Los pantallas se arman “on request”
Confirmación y mensajes WorkPanels/Transacciones en medio de un Procedimiento Reprogramar!! Mensaje de confirmación JSEvent() Solo sirve para hacer una confirmación inicial y no para detener un proceso a la espera de la decisión del usuario
Call en WorkPanels vs Call en WebPanels Asincrónico El significado de un CALL a un Web Panel (desde otro) es: mostrará este Web Panel cuando termine la ejecución del evento donde se hizo el call Problemas en casos donde Se hacen call a dos o mas WKP en el mismo evento Call a PRC después de call a un WKP en el mismo evento Reprogramar!
Call en WorkPanels vs Call en Webpanels Evento ... Call(wA) Call(prc) Codigo wA WIN Codigo hA ... Evento Call(hA) Call(prc) WEB
Integridad transaccional y UTL Transacciones Pseudo – Conversacional Commit on exit Webpanels Cada Webpanel es una UTL distinta
Interacción con el cliente Problema:Leer o escribir archivos locales Ejemplo: WorkPanel con GxOffice/Excel Soluciones: Crear en archivo en el servidor y dar la posibilidad de bajarlo Módulo de instalación local (Java) Ejemplo: Upload de archivo al servidor www.GxOpen.com Enviar mail con archivo adjunto
Otros problemas Procesos batch, pueden dar time out. Tab-Control Validación Full Screen Menu Bar
Posibilidades del WEB WebComponents Mail/WebWrapper WebServices Mucha mayor reutilización de objetos Más funcionalidades en una misma pantalla Mail/WebWrapper Eliminar varias impresiones WebServices Facilita modularización Integración con otros sistemas
WebComponents
WebWrapper
Concluyendo: Motivos para NO migrar Nuevos problemas de seguridad Hay que soportar una nueva plataforma Bastante trabajo, sobre todo de ajustes y pruebas en diferentes navegadores.
Concluyendo: Motivos para migrar Porque los clientes lo piden Poder acceder a las aplicaciones desde cualquier lugar Instalaciones mas simples, menor administración Mas dispositivos, Sistemas Operativos heterogéneos Desarrollo tecnológico rápido en el WEB Con Genexus es relativamente sencillo hacerlo
Comparación GX 7.5 GX 8.0 Master Style Wbp y TRN Salvar como WKP -> WebPanel TRN -> WebTrn Ajustes de lógica Ajustes estéticos Testear mucho!! GX 8.0 Master Style Wbp y TRN Definir Theme Salvar como WKP -> WebPanel TRN -> WebTrn Ajustes de lógica (muchos menos) Ajustes estéticos (sin regenerar) Testear mucho!!
CONCEPTO como socio tecnológico Asesoría, presupuestos Desarrollo a distancia Soluciones tecnológicas Migración macro
Migración de Win a Web Conclusiones Se puede hacer Tiene ventajas importantes Es viable GX 7.5 – 2 horas por objeto GX 8.0 – 1 hora por objeto Recomendación: Pasarse a Gx 8.0 Selección de líneas en grillas Themes
Migración Win a Web, experiencias, tips y consejos ¿Preguntas? Ing. Enrique Almeida ealmeida@concepto.com.uy Ing. Alejandro Rinaldi arinaldi@concepto.com.uy