1 MVC (Model-View-Controller) (...o la forma de traer orden al caos...) (BORRADOR) Universidad de los Andes Demián Gutierrez Diciembre 2010.

Slides:



Advertisements
Presentaciones similares
Red Social: “Un millón de Amigos”.
Advertisements

Técnicas de Diseño Red Social.
Red Social: “Un millón de Amigos”.
Introducción al patrón MVC
CGI I La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con él. Dicho.
Índice 1. Introducción, objetivos y justificación del proyecto.
Teoría de los lenguajes Proyecto SIGU Equipo Nº3 Universidad Argentina J. F. Kennedy Sede: Don Bosco Integrantes: Irene Arias Fernández Mariana Pacheco.
Curso de Java y Aplicaciones Web
El mecanismo básico de interacción entre el usuario y un sitio web esta dado por el uso de formularios html. El server envía un formulario que el browser.
Diseño de una base de datos Zavaleta Nolasco Karina
SPRING MVC.
Tutor: Ing. Juan E. Talavera Horn 2010 GWT – EJB Patrones de diseño e integración.
FRAMEWORK VS Código fuente
Parameters passed by client One of the most important features to make the web an interactive environment is the passing of parameters from client so the.
Daniel Fernández Lanvin Capa de Presentación. Daniel Fernández Lanvin Capa de Presentación Responsabilidades Navegabilidad del sistema Formateo de los.
I NGENIERÍA DE S OFTWARE L ABORATORIO IX Struts Eduardo Saavedra A. 27/10/2009.
Isabel Gómez Desarrollo & Plataforma Microsoft Ibérica.
Guadalupe Andrade Mociño.  Significa Modelo Vista Controlador  Es un patrón de diseño  Esta compuesto por tres grandes capas: modelo, vista y controlador.
Your Logo ING. FREDY ALEXANDER MARTINEZ. Here comes your footer  Page 2 Este patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación.
Aclaraciones al modelo MVC del Framework de Justicia
ECOM-6030 PASOS PARA LA INSTALACIÓN DE EASYPHP Prof. Nelliud D. Torres © - Derechos Reservados.
¡Hola! ✤ Study for your vocab quiz for 5 minutes! ✤ Unit 2 Apuntes 1 ONLY ✤ Make sure you can translate from English to Spanish!
SYMFONY Información del Framework. Síntesis de Symfony  Es un framework diseñado para optimizar el desarrollo de aplicaciones web creado con PHP5. 
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Sistema de notificación de incidencias de analizadores para dispositivos móviles Master Universitario de Desarrollo de aplicaciones para dispositivos móviles.
Integrantes -Tapia Gastelo, Robint Fernando -Perez Gil, Juan Carlos -Damian Acosta, Edinson -Mejia Vilchez, Antonio -Padilla Huaman, Kely Arquitectura.
1 Ingeniería del Software Diseñó de Software Universidad de los Andes Demián Gutierrez Mayo 2011.
Estándares web 18s 20s 25s 27s 02o. Presentación manuelrecena.com
Javier Smaldone 5tas Jornadas Regionales de Software Libre Noviembre de 2005 Rosario, Santa Fe, Argentina Primeros pasos en.
Ingeniería del Software Diseñó de Software Universidad de los Andes Demián Gutierrez Abril 2009.
Análisis y Diseño de POO Pedro Javier Encabo Checa Pedro J. Encabo.
ARKDIA – CAPACITACIÓN powered by
Tendencias de Construcción Web
ÁREA ACADÉMICA: INFORMATICA TEMA: 1. 3
11 de enero PFC 2016 Proyecto Final de Carrera – 2015 Semestre 2 – Oscar Escudero Sanchez Andorra la Vella - Andorra Copyright © 2016 Adrián Chavero Ramos.
Cómo trabajar con aplicaciones de Google
Ingeniería de Software
ÁREA ACADÉMICA: INFORMATICA TEMA: CONCEPTOS PROFESOR: SANDRA GPE
Programación Orientada a Eventos
Asking Questions P. 184 Realidades 1.
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE HIDALGO ESCUELA SUPERIOR DE ZIMAPÁN
Introducción a programación web Martin Esses
Base de Datos II Almacenamiento.
Estructura de las Aplicaciones con MVC
ARQUITECTURA MVC Modelo Vista Controlador es un patrón de arquitectura de software que se utiliza mucho en aplicaciones web, separándola en tres capas.
ARQUITECTURA DE APLICACIONES WEB.
FUNDAMENTOS DE PROGRAMACION EN ENTORNO WEB. Rodrigo Cabello Ing. Informático Director de proyectos Think – Ideas in Motion FUNDAMENTOS.
DISEÑO WEB Sesion 1.
Page 1. Page 2 Los lineamientos básicos que debe contener las paginas HTML.
Ing. Dahiana Ferreira Ing. Dahiana Ferreira Facultad Politécnica - UNE.
Yii Framework 2. Yii es un framework de PHP de alto rendimiento, basado en componentes para desarrollar aplicaciones web modernas en poco tiempo. El nombre.
Diseño E Implementación En Delphi Del Caso De Posicionamiento 2D
The Preterite Tense of the Irregular Verbs: Ir, Ser, Ver, Dar
Integration Services.
Creación de contenidos Web-HTML
Estar, Dar, Ver To Be, To Give, To See NP 40.
Asking Questions P. 184 Realidades 1.
Expresiones con tener.
Servidor de Reportes basado en Tecnología Java y XML
Asking Questions P. 184 Realidades 1.
Entendiendo PHP En diseño de software en el Front-end es la parte del software que interactúa con los usuarios. Es la persona que se encarga del diseño.
Asking Questions P. 184 Realidades 1.
Asking Questions P. 184 Realidades 1.
UNIVERSIDAD TECNICA DE MACHALA UNIDAD ACADEMICA DE CIENCIAS EMPRESARIALES CARRERA DE ECONOMIA ESTUDENTS: FIRST CONDITIONAL SENTENCES TEACHER: - Calvache.
Unidad 1. Introducción a las Bases de Datos FUNDAMENTOS DE BASE DE DATOS.
Spring Framework.
ARQUITECTURA DEL PROYECTO. La estructura modelo vista controlador se muestra en la siguiente ilustración : ESTRUCTURA DE PROYECTOS DE MVC.
ANTE TODO In Lección 13, you learned that the subjunctive is used in adverbial clauses after certain conjunctions. You will now learn how the subjunctive.
Enfoque: Menti.com Los medios de transporte
Las Preguntas (the questions) Tengo una pregunta… Sí, Juan habla mucho con el profesor en clase. No, Juan no habla mucho en clase. s vo s vo Forming.
Transcripción de la presentación:

1 MVC (Model-View-Controller) (...o la forma de traer orden al caos...) (BORRADOR) Universidad de los Andes Demián Gutierrez Diciembre 2010

2 ¿MVC: Modelo – Vista – Controlador? Ver: index.htmlhttp://heim.ifi.uio.no/~trygver/themes/mvc/mvc- index.html Desarrollado / Ideado originalmente en XEROX PARC (Palo Alto Research Center Incorporated) por Trygve Reenskaug entre 1978 y 1979 El objetivo del patrón MVC es desacoplar la presentación de la información (vista) de su representación (modelo), para así reducir la complejidad en el diseño arquitectónico (de IU) e incrementar la flexibilidad y mantenibilidad del código Tomado de: Controllerhttp://en.wikipedia.org/wiki/Model-View- Controller Desde un punto de vista muy personal (DMI), el patrón MVC es lo que le trae orden al caos, estructura al espagueti, arquitectura a la anarquía en los aspectos relacionados a la implementación de interfaz de usuario

3 ¿Sin MVC? Responsabilidades difusas, todo incrustado en un mismo bloque Interfaz de Usuario (Implementación) HTML JavaScript Manejo de Sesiones Lógica de Negocios Acceso a datos PHP SQL Manejo del ciclo Petición-Respuesta Etc...

4 ¿Modelo Vista-Documento? Si, yo se que es un plagio... (sue me if you can) TODO: Hacer figura propia ;-) Un sólo documento, una sola forma de representar/almacenar la información Múltiples vistas, múltiples formas de mostrar la misma información, por ejemplo, un gráfico, una hoja de cálculo, un resumen estadístico, etcétera

5 ¿MVC: Modelo – Vista – Controlador? ¿Responsabilidades?

6 ¿MVC: Modelo – Vista – Controlador? Mantener en memoria la información que viene de la vista y que servirá de entrada al controlador Mantener en memoria la información generada por el controlador y que servirá de entrada para que la vista se la muestre al usuario Procesar los distintos eventos generados por el usuario, consumir la información proveniente de la vista que se encuentra en el modelo y generar información en el modelo para que la vista pueda mostrarRecibir la entrada del usuario y generar eventos al controlador. Mostrar la información del modelo al usuario

7 ¿MVC: Modelo – Vista – Controlador? En realidad es más de esta forma...

8 MVC y Arquitecturas / Aplicaciones por Capas MVC != Arquitecturas a 3 Capas Capa de Presentació n Capa de Negocios (Lógica de Negocios, Reglas de Negocios, etcétera) Capa de Persistencia BD

9 MVC y Acceso a BD (M) != Modelo de Datos (Aunque se puede) View Controller Model BD

10 MVC y Acceso a BD (M) != Modelo de Datos (Aunque se puede) View Controller Model BD Si no se usa un modelo a tres capas, la lógica de negocios suele terminar aquí Desde este punto de vista el modelo sirve a 2 (o 3 depende del punto de vista) propósitos (¿mal asunto?

11 MVC y Acceso a BD (M) != Modelo de Datos (Aunque se puede) The Model represents your data structures. Typically your model classes will contain functions that help you retrieve, insert, and update information in your database The model is not a database: the 'model' in MVC is both the data and the business/domain logic needed to manipulate the data in the application. Many applications use a persistent storage mechanism such as a database to store data. MVC does not specifically mention the data access layer because it is understood to be underneath or encapsulated by the model. Models are not data access objects; however, in very simple apps that have little domain logic there is no real distinction to be made. Active Record is an accepted design pattern which merges domain logic and data access code - a model which knows how to persist itself. Tomado de: Controllerhttp://en.wikipedia.org/wiki/Model-View- Controller Tomado de:

12 MVC y Acceso a BD (M) != Modelo de Datos (Aunque se puede) View Controller Model BD DAOs, ORM, Framework de Persistencia Value Objects / Data Transfer Objects / JavaBeans / POJOS / etcétera persistencia IU Si no se usa un modelo a tres capas, la lógica de negocios suele terminar aquí Diferencia bien definida entre IU y persistencia

13 MVC y Acceso a BD (M) != Modelo de Datos (Aunque se puede) View Controller Model BD DAOs, ORM, Framework de Persistencia Value Objects / Data Transfer Objects / JavaBeans / POJOS / etcétera persistencia IU Si no se usa un modelo a tres capas, la lógica de negocios suele terminar aquí Diferencia bien definida entre IU y persistencia

14 ¿MVC: Modelo – Vista – Controlador? Un ejemplo en la WEB Vista (IU) (de entrada) MVC (Framework) (Motor) Controlador (Lógica / Reglas de Negocio) Modelo (de entrada) Identifica, busca corresponde, alimenta, rellena alimenta, sirve de entrada Modelo (de salida) Vista (IU) (de salida) crea, rellena define vista + modelo = RESULTADO!!! alimenta, sirve de entrada Todo es orquestado por el Framework MVC (Inversion of Control, ¿recuerdan?)

15 ¿MVC: Modelo – Vista – Controlador? Un ejemplo en la WEB Vista (IU) (de entrada) MVC (Framework) (Motor) Controlador (Lógica / Reglas de Negocio) Modelo (de entrada) Identifica, busca corresponde, alimenta, rellena alimenta, sirve de entrada Modelo (de salida) Vista (IU) (de salida) crea, rellena define vista + modelo = RESULTADO!!! alimenta, sirve de entrada Interacción con el navegador HTML: Estático o generado (Ej, con PHP, JSP, etc) Request (Ej, Submit) Un armazón MVC es quien toma el control (FrontController) No es directo, es el MVC el que rellena Con la información del Request (Ej, GET / POST) Generalmente por alguna convención de nombre con el URL o por un parámetro especial del request HTML: Estático o generado (Ej, con PHP, JSP, etc) Puede ser el mismo modelo de entrada u otro nuevo de salida

16 Ejemplo Struts1: Uso de un MVC Ejemplo PHP: Uso e implementación (básica) de un MVC MVC: Modelo – Vista – Controlador

17 MVC: Modelo – Vista – Controlador MVC (Framework) (Motor)

18 MVC: Modelo – Vista – Controlador Genera este HTML en base al contenido del Form Contiene la información a mostrar por la vista (la lista de productos) así como la información ingresada por el usuario (si existe) Maneja la acción de listar (Va a BD y genera la lista de productos)

19 MVC: Modelo – Vista – Controlador Genera este HTML en base al contenido del Form Contiene la información a mostrar por la vista (el producto a editar) así como la información ingresada por el usuario (originada por los controles de la IU) Maneja las acciones de edición “Actions” Tomados del listar (pantalla anterior)

20 go.php ?act_name=product/ProductListAction&method=listAll MVC: Modelo – Vista – Controlador l Dirección (¿Base?) Script PHP ejecutado (go.php) Parámetros de la petición (los usa el MVC para determinar el Form, el Action y el método dentro del Action a utilizar De querer hacer ingeniería inversa, y comprender como funciona el MVC ¿por dónde comenzamos? Por ejemplo, que pasa si...

21 MVC: Modelo – Vista – Controlador ¡Click!... en este formulario hacemos click en enviar

22 Diagrama de Secuencia A desarrollar en clase... MVC: Modelo – Vista – Controlador

23 Ver: based_frameworks Para una lista (probablemente incompleta) de frameworks que implementan el patrón MVC en distintos lenguajes de programación MVC: Modelo – Vista – Controlador

24 Gracias ¡Gracias!