Post on 10-Nov-2015
description
2005
Arquitectura de Presentacin
Arquitectura de Aplicaciones
2
Qu es Presentacin?
Es lo que permite al usuario interactuar
con el modelo de dominio de la
aplicacin (ui / gui)
Usabilidad
Fcil de aprender Fcil de usar Fcil de recordar Tolerante a errores Robusto Buena impresin (?)
La presentacin es el punto de mayor impacto en la usabilidad.
Por qu es tan complejo?
Se mezcla con la lgica de negocio
Cada usuario es diferente
Cambian los contextos de uso
Cuesta encontrar buenas abstracciones
No suele ser parte del anlisis
No suele haber alguien dedicado
Se mezcla con la lgica
...Y cuando elijo el pas, dependiendo si es Argentina u otro, debe validar
si el CPA es correcto.
Usuarios diferentes
Etnografa Customizacin Accesibilidad
Contexto de uso
Un poco de historia
Botones y luces Impresoras Lnea de comando Terminales Cliente Servidor Engines Grficos Web RIA
Decisiones a Tomar1. Cmo va a estar distribuirlo? 2. Cliente liviano o pesado?3. Quin controla el flujo de la aplicacin?4. Cmo se estructura la navegacin?5. Cmo se maneja el estado conversacional?6. Cmo se relaciona con la lgica de dominio?7. Dnde se integra la lgica?
1- Distribucin
Por qu? Muchos clientes = muchas mquinas Los usuarios estn en distintos lugares Puedo separar la presentacin para solucionarlo O no?
La presentacin puede ser condicionada por el despliegue
72- Cliente pesado y liviano
La decisin impacta bsicamente en Despliegue Cercana con el dominio Ubicacin de la lgica de negocio
3- Control de la Iniciativa User Initiative
Pedido-Respuesta Orientado a Eventos
Application Initiative Usuario contesta preguntas Wizard Alarmas y eventos disparados por la aplicacin
Combinada Interactivo, Conversacin Continuation
4- Formas de Navegacin Pantallas y Formularios
Stateless Terminal boba / Mainframe, Web Tradicional
Ventanas o Dilogos Stateful / Wizards Cliente Servidor, RIA
Manipulacin Directa Objetos
5- Estado conversacional (sesin) Cliente
En cada pedido
Servidor (Session)
Compartido
Caso de Uso (Flow)
6- Integracin con el dominio de la aplicacin Stateless
Servicios Procesos
Stateful Eventos Objetos
7- Dnde se integra la lgica? Campo a campo
Validaciones Mscaras Pickers y otros controles ms elaborados
Por formulario o pantalla Lo ms utilizado Ms cerca de la tecnologa, a veces menos conceptual
Por caso de uso Ejecucin de un caso de uso de negocio
Formas de desarrollar presentacin
Visual
Programtica Template Componentes
Declarativa
Automtica / Introspectiva
Ideas de Diseo y patrones
MVC MVP Morphic Model Driven Presentation (MDP) Templates Components SPA Single Page Application
Clientes pesados tradicionales AWT, Swing, SWT Java
.Net Desktop - VB6
Delphi
Dolphin Smalltalk
Web tradicionales PHP JSP / Servlets ASP Cold Fusion Perl
Algunas herramientas Struts Stripes Taglibs XSL
Web + Components Tapestry
JSF
ASP .Net
Web Objects
Herramientas RIA Javascript + DHTML
Applets
ActiveX
AJAX y Web Sockets
Flash
SVG (grfico de vectores escalares) y Canvas
Plataformas RIA XUL (XML + Javascript + Stylesheets)
Flex (Macromedia, MXML), Lazslo, Air
GWT
HTML5
Java FX, Silverlight (.NET)
MDP (Model Driven Presentation) Naked Objects
Ruby on Rails
Otros Problemas (I)
Usabilidad limitada Drag & Drop Mscaras Eventos disparados por el server
Mltiples tareas simultneas
Transacciones
Otros Problemas (II)
Seguridad
Validacin
Manejo de errores Cmo mostrarlos Mltiples errores simultneos
Unit Testing de la UI
Otros Problemas (III)
Navegabilidad
Mltiples formas de invocar funciones
User Session Management
Internacionalizacin
Nativo VS Multi-plataforma
PhoneGap + (Jquery o Sencha)
Rodhes
Human vs. Robot
SEO