Comparación GUI Web Introducción

Documentos relacionados
Web Components. En este capítulo veremos los conceptos de Web Component y Embedded Page (página embebida).

Dossier Cursos. Desarrolle mejores aplicaciones, para más plataformas, en menor tiempo.

Behavior Client side events grammar

Smooth web user experience

Patterns: Escenario. Paginación

Comunicación entre objetos. A continuación mencionaremos los objetos Web y de qué manera interactúan entre ellos.

Events. Video filmado con GeneXus X Evolution 3

Comunicación entre objetos

Orden y lugar de ejecución de los eventos de Web Panels

Las marcas en la pantalla indican las posibles posiciones que puede tomar una ventana dentro del IDE.

Eventos en Smart Devices

Designing: App Navigation Style

Online Arquitecture. Page1. Video filmado con GeneXus tm 15

Examen "Analista GX X"

NÚMERO DE HORAS: 160H PROGRAMACIÓN WEB EN EL ENTORNO CLIENTE OBJETIVO

Cuando el web panel tiene un grid, entonces para determinar tabla base GeneXus observa lo que se indica arriba.

Ahondaremos acerca de este otro uso posible de web panels sin tabla base más adelante.

Conceptual Model. Aquí podemos ver los cuatro tipos de pantallas que tenemos disponibles:

El modelo conceptual de las aplicaciones móviles

Examen "Analista JUNIOR GX X Ev1"

Base Tables and Navigation

Release Notes Versión 6.0 Upgrade 1

BEHAVIOUR : INVOCATION BETWEEN OBJECTS

BUSINESS OBJECTS VISUALIZACIÓN DE REPORTES

Offline Mobile Applications with GeneXus (Part II)

Tipos de datos estructurados SDT

Cargando los tipos de datos estructurados

PATRONES DE DISEÑO FRAMEWORKS

Web Services Tecnologías asociadas

Modelo conceptual de Smart Devices

Introducción a GAM. Ahora queremos agregarle Seguridad a la aplicación, tanto a la parte web como a la de Smart Devices. Page1

Supongamos que queremos definir un botón en la pantalla WWCountry, que invoque un listado pdf (objeto procedimiento) previamente definido.

Data Provider que carga colección con valores fijos (no extraídos de la base de datos)

SISTEMA INTEGRADO DE GESTIÓN ADMINISTRATIVA SIGA.NET

MANUAL DE USUARIO SISTEMA DE COSTOS ABC SICUD ABC

Examen "Analista JUNIOR GX X Ev1"

Release Notes Versión 6.0

Aplicaciones Web. Aplicaciones Distribuidas

Transacción de 2 niveles usada como Business Component y manejo de errores.

Integridad Transaccional

Developing ASP.NET MVC 4 Web Applications

PL/SQL avanzado: Secuencias, triggers, cursores y subprogramas

Behavior: Caching. Video filmado con GeneXus X Evolution 3

INDICE 1. LICENCIA MAPBENDER Estándares Implementados PRE-REQUISITOS: INICIO Parámetros de un módulo: Pág.

Personas que posean nociones básicas de programación, sea o no profesionales y estén interesadas en introducirse en el Desarrollo de Sitios Web.

1 Objetivo 3 2 Estructura de seguridad 3 3 Uso K2BTools Fast Start 4. 4 Customización: 15

Características de la práctica

Script Data Selectors: reusing definitions

Hasta el momento hemos visto ejemplos de aplicación de Data Provider que requieren acceder a la base de datos para recuperar información.

Actualización de la Base de Datos - Business Components

Data Providers - Más conocimientos

PHP 7 Desarrollar un sitio web dinámico e interactivo

Características de las aplicaciones móviles

La funcionalidad de la aplicación, consiste en el registro de los pagos en línea realizados por los

Controles: Múltiples layouts por fila de un grid

OBJETO WEB PANEL 246

Arquitectura de aplicaciones para Smart Devices

Ya hemos visto anteriormente el concepto general de Business Component y su aplicación en una transacción de un solo nivel.

Software para la evaluación de encuestas de usuarios en salud. Manual de Usuario de SEEUS

Actualización a GX Ev3. Ejercicios Prácticos

Manual de usuario RVE 2.0. Módulo de Consultas

MANUAL DE USUARIO FINAL Generalidades en Dynamics AX2012

MANUAL DE USUARIO. Farma crm

Al invocar GUIDE en cualquiera de estas formas aparecerá la siguiente ventana.

GOBIERNO REGIONAL DEL CALLAO Oficina de Tecnologías de la Información y Comunicaciones MANUAL DE USUARIO

SISTEMA INTEGRADO DE GESTIÓN ADMINISTRATIVA SIGA.NET

BUSINESS OBJECT: SERVIDOR DE BANNERS

Cómo visualizar la información detallada de un material (desde el trabajar con materiales del SAP ERP)

Actualización de la Base de Datos - Business Components

Administre la seguridad de redes de hasta 250 equipos desde una única consola basada en la nube

MANUAL DE USUARIO Educación Continua Programas. VICERRECTORIA ADMINISTRACIÓN Y ASUNTOS ECONÓMICOS Desarrollo de Sistemas

Nombre del curso: Excel Curso para la Certificación Oficial

07 Variables. 7.1 Variables globales Definición

Orders Searchs Conditions

Hasta ahora hemos visto que por cada objeto transacción se crea una tabla por cada nivel, para almacenar sus datos y luego recuperarlos.

Pantallas interactivas: objeto Web Panel (continuación) Agreguemos primeramente una nueva variable al grid, de nombre newtrip, character de 10

Introducción a Web Services

Desarrollo y servicios web

Este capitulo contiene una análisis de los posibles soluciones que se pueden presentar en el momento de desarrollar aplicaciones con J2EE

Ingeniería de Sistemas

FTP y Telnet. FTP /// Protocolo de transferencia de archivos (protocol transfer files) :) TELNET /// Emulador de terminales en sistemas remotos.

Curso Developing ASP.NET MVC 4 Web Applications (20486)

Cargando los tipos de datos compuestos

K2B WebPanelBuilder Presentación general

En el siguiente documento usted encontrará información sobre como instalar y ejecutar el programa para la Empresa CEBAR LMTDA.

Curso ebavel v6 Básico

Bolsa Nacional de Valores. Manual de Usuario Generalidades del Sistema Versión Elaborado por: BNV Servicios de Back Office BNV-SGC-MU-006

PROCEDIMIENTOS ALMACENADOS

Introducción a la certificación

Índice. Tutor de casilleros Página 1 de 10

Smart courses for smart people. Nombre del curso: AP77727 Excel 2016: Análisis, Manipulación y Presentación de Datos

SIGPRE Sistema de Gestión Presupuestaria

Advanced Reporting Services

Transacción base. A partir de GeneXus X Ev3, se incorpora el concepto de transacción base.

4.1 Conceptos Básicos de Matlab. Matlab es creado por The MathWorks, el cual es un idioma de alto rendimiento

Ahora queremos agregarle Seguridad a la aplicación, tanto a la parte Web como a la de Smart Devices.

Terra Desarrollos. Desarrollo de sistemas informáticos

Muchos manejadores de bases de datos (DBMSs) cuentan con sistemas de recuperación ante fallos, que permiten dejar la base de datos en estado

Transcripción:

Migración Win a Web Cada vez más, el uso masivo de Internet propicia el desarrollo de aplicaciones de mayor versatilidad y complejidad para el ambiente Web. Es por esto que está surgiendo la necesidad de aplicar una reingeniería a las aplicaciones existentes y también, en muchos casos, la necesidad de desarrollar nuevas aplicaciones para Internet. Existen varias diferencias entre los ambientes GUI (aplicaciones con Interfaz de Usuario Gráfica) y Web, las que deberán considerarse en la conversion de la KB. La migración no debería verse como una conversión objeto a objeto sino que normalmente es una modernización de la aplicación usando otras herramientas tales como Patterns, GXportal, GXflow, Reporting, etc.. 295

Aplicaciones GUI: Comparación GUI Web Introducción Compuestas por uno o varios programas GeneXus, utilizando objetos de tipo: Transacción, Work Panel, Procedimientos y Reportes Aplicaciones (Full) Web Las que la interfaz de usuario es únicamente realizada utilizando los siguientes objetos: Web Panels, Transacciones Web, Procedimientos (call protocol: HTTP), ejecutados desde un browser. Aplicaciones con Interfaz de Usuario Gráfica Las aplicaciones con Interfaz de Usuario Grafica (GUI) están compuestas por uno o varios programas GeneXus que utilizan objetos de tipo: Transacción, Work Panel, Procedimientos y Reportes. Aplicaciones Web Se entenderá por aplicaciones Full Web a aquellas aplicaciones en las que la interfaz del usuario es únicamente realizada utilizando el lenguaje HTML y son accedidas desde un browser. En GeneXus estas aplicaciones se implementan con objetos Web como ser: Web Panels,Transacciones Web o Procedimientos (call protocol: HTTP). 296

Comprender: Objetivos Funcionamiento de la interfaz Web Manejo de Integridad Transaccional en Aplicaciones Web Para crear o migrar aplicaciones Web, tener en cuenta: Requerimientos y proceso de instalación de la aplicación final, en uno o más servidores. Diseño gráfico (se puede tercerizar a especialistas) Manejo de las LUW (Unidades de Trabajo Lógica en Transacciones) Otras características que veremos a continuación 297

Work Panels a Web Panels: Tener en cuenta el disparo de Eventos Filtros Comando Refresh Cuando se ejecuta un Web Panel por primera vez, se ejecuta un GET de la página ( ver disparo de eventos en GET). Cuando se ejecuta algún evento de usuario, se vuelven a ejecutar todos los eventos (Start, Refresh, Load), siguiendo un orden establecido (ver disparo de eventos en POST). Si se vuelve desde un Web Panel a otro con return (o se vuelve invocándolo mediante un CALL o link), se ejecutan los eventos del Web Panel llamado siguiendo el orden para el disparo de eventos en el GET explicado anteriormente. Esto tiene como consecuencia lo siguiente: 1.- Filtros ingresados en un Web Panel A se pierdan cuando se llama a otro Web Panel ( B ) y se vuelve hacia A nuevamente, por lo cual, se deben guardar los filtros en la sesión como se explicara más adelante. 2.- Se deriva también de la diferencia en el comportamiento del disparo de eventos, que no es necesario forzar un Refresh del Web Panel A si un cambio en B (llamado por A ) produce un cambio en A, puesto que en la ejecución de A se re-disparan los eventos, incluido el evento Refresh. 3.- Si se tiene un Web Panel en donde mediante un evento de usuario se realiza un cambio en una tabla de la base de datos (llamando a un procedimiento por ejemplo) y dicho Web Panel tiene un grid que navega por la misma tabla, no es necesario hacer grid.refresh o grid.load, puesto que la carga del grid se realiza a causa de la ejecución de los eventos del POST (Start, Refresh, Load). 298

Work Panel Trabajar con. Posibilidad de generarlo automáticamente aplicando el Pattern WorkWith. Procesamiento de varias filas en grid For Each Selected Line Persistencia de Filtros. Work Panel Trabajar Con Es muy común el uso de Web Panels del estilo Trabajar con donde se despliega un grid con registros y una cantidad de opciones aplicables a cada una de las líneas del mismo. Manejo de opciones La primera opción es implementarlo con el Pattern WorkWith. También existen otras alternativas para implementar el Web Panel: 1. Agregar en el grid una variable de tipo Combobox y programar las diferentes acciones en el evento Click de la misma. 2. Definir una imagen o un text block en el grid por cada una de las opciones y programar la acción en el evento click. 3. Si se utiliza un grid Free Style, puede utilizarse en lugar de una imagen con el evento click, un botón para cada una de las opciones. 4. Configurar la propiedad AllowSelection del grid. Para profundizar en el tema de grids, ver Capítulo Grids. Filtros Si un Web Panel Trabajar con tiene variables que se aplican como filtro a los registros desplegados en el grid, al seleccionar un registro y llamar a otro objeto (por ej. Transacción Web) que tiene un Return, se vuelve al Web Panel Trabajar con pero se pierden los valores ingresados en los filtros. Para poder mantener el comportamiento de los Work Panels Trabajar con se deberían utilizar cookies o websessions que almacenen los filtros ingresados. 299

Procesamiento De Varias Filas En Grid - For Each Selected Line En Web Panels, no existe la forma de seleccionar con el mouse varias líneas del grid. Para implementar la selección múltiple, se debe definir una variable en el grid y asignarle un valor a cada una de las líneas que se quieren procesar. Luego, se debe usar el comando For each line para procesar cada una de las líneas y filtrar por las que estén seleccionadas (&valor = X). Debe considerarse que se puede utilizar únicamente para invocar a objetos sin interfaz. Si se invoca a otro Web Panel, solamente se ejecuta para el último registro del grid. Para la selección de una línea se cuenta con la propiedad AllowSelection. Si se realiza una invocación a objetos con interfaz desde un loop, solo se invocará una vez a dicho objeto, y la llamada corresponderá a la última recorrida del loop. Por ejemplo, se desea llamar desde un evento de usuario que recorre un grid a una Transacción para actualizar los elementos del grid: Event Update For each line in CustomerGrid TCustomer.call(CustomerId, UPD ) //Customer es la Transacción de clientes EndFor EndEvent Dicho código no es correcto, porque el comportamiento no es el mismo que para Work Panels, y deberá recodificarse con algunas de las opciones vistas anteriormente para implementar un Work With.

Transacciones: Disparo de reglas y fórmulas. Disparo de Eventos. Integridad Transaccional: Manejo de LUW Hay diferencias en el orden del disparo de eventos (para profundizar en el tema ver Capítulo Transacciones). Las reglas de las Transacciones comprenden reglas de negocio ( el saldo del cliente no puede ser negativo ), y reglas de "flujo" (llamadas a objetos con interfaz). Las reglas de negocio en general no requieren de conversión, mientras que el resto de las reglas (las que implican llamadas a objetos con interfaz) deben convertirse. Integridad Transaccional: Manejo de LUW Una opción es usar Business Components en el form e ir guardando en una session la información hasta que llegue el momento de hacer el commit en el cual se debe levantar la información de la session. La otra opción es usar tablas temporales o actualizaciones lógicas y no físicas. (Ver Capítulo Transacciones para profundizar en el tema). 301

Uso de Tab Dialogs y menús. Master Pages, WebComponents y Estilos Uso De Tab Dialogs En las aplicaciones GUI, se pueden definir tab dialogs para organizar los datos del form en varias secciones. Igualmente, en aplicaciones GUI se puede usar objetos menú y menúbar. En las aplicaciones Web, podemos usar "User Controls" que permiten simular estos tabs, menús y cualquier tipo de control. Master Pages, Webcomponents y Estilos Los styles en Win se usan con dos propósitos: a. Definir un estándar para el form, manteniendo dinamismo (básicamente del Style Area) b. Inicializar los objetos con algunas partes predefinidas (variables, código de eventos, propiedades, etc.). En Web, los styles solo sirven para inicializar los objetos, pero no se mantiene el vínculo luego, por lo cual no hay dinamismo con los cambios realizados en el Style. Con el mismo propósito de los estilos en Win (mantener el dinamismo, primordialmente en cuanto a la lógica de los objetos); en Web se usan Web Components para centralizar en un solo objeto la implementación de una cierta funcionalidad, y reducir el impacto del mantenimiento y de los cambios. Asimismo, se usan las Master Pages para optimizar la reutilización de código y agilizar el mantenimiento. Es decir, en Web no se tendrán N objetos basados en un estilo, sino que se tiende a tener un solo objeto que implementa cierta funcionalidad y es reutilizado en el resto de los objetos. En cuanto al diseño estético de la aplicación puede tercerizarse a especialistas y se recomienda por motivos de performance de la aplicación final, y facilidad de mantenimiento de la misma el uso de la tecnología CSS a través de GeneXus Themes. El uso de los Themes asegura que el diseño estético de la aplicación esté centralizado en un solo objeto. 302

Persistencia de estado Invocación a Objetos GeneXus y parámetros Persistencia de estado: En los Web Panels no hay noción de estado, en el sentido en que luego de ejecutado un evento que asigna valores a variables, debe persistir el valor de esas variables para poder recuperarlas en otro evento. Una de las maneras de hacerlo es teniendo esas variables (hidden) en el form. Si por ejemplo se tiene un evento que usa una variable cargada por otro evento disparado anteriormente (en el mismo Web Panel), la variable tiene que estar en el form y ubicada después del control que la carga. El funcionamiento de esto está basado en el orden de disparo de los eventos. (Ver Capítulo Web Panels, orden de disparo de los eventos). Otra manera de hacerlo es guardando la información en variables de sesión. Invocación a objetos: 1. no se puede llamar a objetos con interfaz dentro de un loop. 2. cuando se vuelve de un objeto invocado se vuelve a ejecutar los eventos (GET) del llamador. 3. no se puede pasar por parámetros a objetos con interfaz (Web Panels, Web Transactions, Procedimientos HTTP): colecciones, SDTs, o arrays. Se debe usar sesiones en caso de querer almacenar dicha información. Por ejemplo, una técnica usada es que luego de almacenar la información en el SDT o collection se usa el método TOXML para pasar dicha información a un string y poder almacenarla en la sesión, y luego FROMXML para hacer el proceso inverso. En Web Panels no hay parámetros de retorno. 303

Interacción con el usuario en Web Objects: Los programas no pueden quedar esperando por una respuesta: Tener en cuenta que el programa está ejecutando en el servidor! Cómo se haría entonces? Un Web Panel que solicite la información. Mediante Javascripts: 304

Reportes Impresión local vs Impresión en el servidor Impresión gráfica: reportes PDF Las posibilidades de impresión dentro de lo que es modo gráfico, son en general, formato PDF o reportes gráficos usando la herramienta ReportViewer. El uso de cualquiera de estas variantes depende de la plataforma y la interfaz usada. En interfaz GUI Windows, es válido el uso del ReportViewer. En interfaz GUI linux no lo es, debido a que la implementación del Report.Viewer está basada en dlls para su funcionamiento. En interfaz Web tampoco es válido el uso de dicha herramienta, porque no es posible ejecutar el ReportViewer dentro del browser (es una aplicación GUI). En plataforma Web, los reportes mayoritariamente usados, son los reportes gráficos en formato PDF, que se despliegan en el browser del cliente, dentro del cual ejecuta el Acrobat Reader. Este tipo de reportes se puede imprimir directamente en la impresora del cliente, sin necesidad de interacción alguna por parte del usuario final. Por más información, referirse a: http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?4042 305