06- Presentacion

29
© 2005 Arquitectura de Presentación Arquitectura de Aplicaciones

description

dfgdsfgsdf

Transcript of 06- Presentacion

  • 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