Piensa en Web, pantallas ligeras y rápidas
18/01/2011 -
Para aquellos equipos acostumbrados al desarrollo en entornos cliente-servidor, el paso al desarrollo de aplicaciones web no debería únicamente implicar el cambio de herramientas y tecnología a usar por parte del equipo de programación. Es tarea del equipo de analistas funcionales entender los cambios en la interficie de usuario, o a nivel transaccional que el paradigma web conlleva. Debemos tener en cuenta que un diseño funcional donde en una pantalla ponemos dos o tres relaciones maestro-detalle con multitud de ítems, si bien será implementable en web, su rendimiento será muy pobre, y además estaremos mareando al usuario llenando su navegador con una cantidad excesiva de información.
En un caso como el planteado, si realmente el usuario va a tener que rellenar toda esa información, lo más indicado sería presentarle la información en bloques (como en un wizard, con botones de “anterior” y “siguiente”; en cambio, si los datos a introducir or modificar es una parte del total, lo mejor sería que el usuario pudiera navegar a los diferentes bloques que él seleccione.
Cito un par de factores importantes que deberían ser tenidos en cuenta:
- Layout: En un entorno tipo Cliente-Servidor (como Oracle Forms) disponemos de un runtime propietario y controlado que nos permite entre otras cosas el posicionamiento absoluto de items. En cambio en el entorno web no sabemos a priori sobre qué navegador va a correr nuestra aplicación. Incluso diferentes versiones del mismo navegador (léase MS Explorer) tienen comportamientos diferentes. Debemos asegurarnos que nuestra aplicación sea capaz de mostrarse correctamente en cualquier navegador. El uso de componentes estándar de ADF 11g simplifica en gran medida este punto.
- Simplicidad: El tráfico que genera una aplicación web es significativamente mayor que el generado por una aplicación Cliente-Servidor ejecutada en un entorno de tres capas (con servidor de aplicaciones), y además la representación es más lenta (el navegador debe interpretar el código html, javascript, css, etc que le llega). Para no penalizar el rendimiento de la aplicación, es aconsejable “aligerar” al máximo las pantallas. Al mismo tiempo estaremos generando pantallas más “atómicas”, y por tanto, más fáciles de reutilizar desde diferentes puntos de la aplicación. Frameworks como ADF 11g facilitan este tipo de diseños, mediante el uso de task flows.