Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA....

27
Arquitectura de Proyectos de IT © 2005 Arquitectura de Presentación Gastón Coco Nicolás Passerini Jorge L García

Transcript of Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA....

Page 1: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT

© 2005

Arquitectura de Presentación

Gastón CocoNicolás PasseriniJorge L García

Page 2: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT2

¿Qué es Presentación?

Es lo que permite al usuario interactuar con el modelo de dominio de la aplicación (ui / gui)

Page 3: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT3

Problemas

Su lógica puede ser muy compleja, más que la de negocio a veces (muchas veces diría).

Casos de uso simples tener problemas de:– Navegación– Múltiples formas de ser invocados – Ingreso de datos (interfaz visual)– Mostrar resultados

Es muy difícil hacer algo bonito, que sea usable, que sea rápido de construir.

Page 4: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT4

¿Por qué es tan complejo?

También hay problemas en el análisis– Es compleja porque cuesta separar las cuestiones de

negocio de las visuales.– Al pensar en las pantallas uno se aleja del concepto /

dominio / negocio.– Distintos usuarios quieren hacer la misma tarea de

distintas formas– Suele ser lo que más rápidamente cambia.

Cuesta encontrar buenas abstracciones.– Encontrar abstracciones– Representarlas con las herramientas

Page 5: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT5

Secuencia Típica de Presentación

Mostrar las distintas acciones a realizar. Inicio de un caso de uso. Ingreso de datos del usuario. Validación de los datos ingresados. Transformación de los datos del formato de

ingreso al formato de negocio. Invocación de la lógica de negocio. Transformación de los resultados. Manejo y presentación de los errores. Selección de la siguiente pantalla – vista – x.

Page 6: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT6

Decisiones a Tomar

1. ¿Cómo distribuirlo? ¿Cliente liviano o pesado?

2. ¿Quién controla el flujo de la aplicación?

3. ¿Cómo se estructura la navegación?

4. ¿Cómo se maneja el estado conversacional?

5. ¿Cómo se relaciona con la lógica de dominio?

6. ¿Dónde se integra la lógica?

Page 7: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT7

1- Distribución de la Lógica

¿Por qué?– Muchos clientes = muchas máquinas– Los usuarios están en distintos lugares

¿Dónde está la lógica?– Server side– Client side– Mix

Page 8: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT8

1- Distribución de la Lógica (Cont.)

Interfaces de usuario– Línea de comando– Terminales– Cliente Servidor– Web– RIA

Page 9: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT9

2- Control de la Iniciativa User Initiative

– Pedido-Respuesta– Orientado a Eventos

Application Initiative– Usuario contesta preguntas– Wizard– Alarmas y eventos disparados por la aplicación

Combinada– Interactivo, Conversación– Continuation

Page 10: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT10

3- Formas de Navegación Pantallas y Formularios

– Stateless– Terminal boba / Mainframe, Web Tradicional

Ventanas o Diálogos– Stateful / Wizards– Cliente – Servidor, RIA

Manipulación Directa– Objetos– Casos de Uso

Page 11: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT11

4- Estado conversacional

Cliente

En cada pedido

Servidor (Session)

Compartido

Caso de Uso (Flow)

Page 12: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT12

5- Integración con el dominio de la aplicación

Stateless– Servicios– Procesos

Stateful– Eventos– Objetos

Page 13: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT13

6- ¿Dónde se integra la lógica? Campo a campo

– Validaciones– Máscaras– Pickers y otros controles más elaborados

Por formulario o pantalla– Lo más utilizado– Más cerca de la tecnología, a veces menos conceptual

Por caso de uso– Ejecución de un caso de uso de negocio

Page 14: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT14

4 Visiones Orientado a la presentación

– RAD - Rapid Application Development– Visual Basic

Orientado a datos– Hibernate, Struts.

Orientado a servicios.

Orientado a Objetos– Naked objects.

Page 15: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT15

Otros Problemas (I)

Navegabilidad

Usabilidad– Drag & Drop– Máscaras– Eventos disparados por el server

Múltiples tareas simultáneas

Transacciones

Page 16: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT16

Otros Problemas (II)

User Session Management

Internacionalización

Validación

Manejo de errores– Cómo mostrarlos– Múltiples errores simultáneos

Unit Testing de la UI

Page 17: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT17

Formas de desarrollar presentación

Visual

Programática– Template– Componentes

Declarativa

Automática / Introspectiva

Page 18: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT18

Ideas de Diseño

MVC – MMVC – MVP – Model 2

Morphic

MDP (Model Driven Presentation)– MDD

Page 19: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT19

Clientes pesados tradicionales

AWT, Swing, SWT – Java

.Net Desktop - VB6

Delphi

Dolphin – Smalltalk

Adobe Air (Flash)

Page 20: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT20

Web tradicionales

PHP JSP / Servlets ASP Cold Fusion Perl

Algunas herramientas Struts – Stripes Taglibs XSL

Page 21: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT21

Web + Components

Tapestry

JSF

ASP .Net

Web Objects

Page 22: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT22

Flujo Tradicional

Cliente Servidor

pedido de archivos, submit de formularios

HTMLs con javascript embebido, librerías de javascript, imágenes varias

Page 23: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT23

Flujo RIA

Cliente Servidor

pedido de archivos, pedido o envío de información

HTMLs simples, librerías de javascript, mapa de imágenes, información

Page 24: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT24

Herramientas RIA

Javascript + DHTML

Applets

ActiveX

AJAX

Flash

SVG (gráfico de vectores escalares)

Page 25: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT25

Plataformas RIA

XUL (XML + Javascript + Stylesheets)

Flex (Macromedia, MXML)

Lazslo

GWT

Active Widgets

Java Web Star (JNLP)

Page 26: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT26

MDP (Model Driven Presentation)

Naked Objects

Ruby on Rails

JRapid

Spring Roo

Page 27: Capa de Presentaciónapit.wdfiles.com/local--files/start/03_apit_presentacion.pdf · – RIA. Arquitectura de Proyectos de IT 9 2- Control de la Iniciativa User Initiative – Pedido-Respuesta

Arquitectura de Proyectos de IT27

Patrones de presentación

Front Controller Application Controller Use Case Object

– Unit Of Work Filtros Templates View Helpers IOS