• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Clase 10 mvc
 

Clase 10 mvc

on

  • 537 views

 

Statistics

Views

Total Views
537
Views on SlideShare
537
Embed Views
0

Actions

Likes
0
Downloads
33
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Clase 10 mvc Clase 10 mvc Presentation Transcript

    • 1MVC(Model-View-Controller)(...o la forma de traer orden al caos...)Universidad de los AndesDemián GutierrezAbril 2013
    • 2¿MVC: Modelo – Vista – Controlador?Ver: http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.htmlDesarrollado / Ideado originalmente en XEROX PARC (PaloAlto Research Center Incorporated) por Trygve Reenskaugentre 1978 y 1979El objetivo del patrón MVC es desacoplar la presentación dela información (vista) de su representación (modelo), para asíreducir la complejidad en el diseño arquitectónico (de IU) eincrementar la flexibilidad y mantenibilidad del códigoTomado de: http://en.wikipedia.org/wiki/Model-View-ControllerDesde un punto de vista muy personal, el patrón MVC es loque le trae orden al caos, estructura al espagueti yarquitectura a la anarquía en los aspectos relacionados a laimplementación de interfaz de usuario
    • 3¿Sin MVC?(El modelo “mata-tigres”)Interfaz de Usuario(Implementación)HTMLJavaScriptManejo deSesionesLógica deNegociosAcceso aDatosPHPSQLManejo del cicloPetición-RespuestaEtc...responsabilidades difusas,todo incrustado en un mismo bloque
    • 4¿Modelo Vista-Documento?(Una Primera Aproximación)Vista 1Vista 2 DocumentoVista N? Múltiples vistas,múltiples formas demostrar la mismainformaciónUn sólo documento,una sola forma derepresentar lainformación¿En qué direcciónvan lasdependencias?¿Acoplamiento?Esto es un modelo clásico,lo conocí programando con MFC
    • 5HA
    • 6Framework / OrquestadorMVC: Modelo – Vista – Controlador¿responsabilidades?
    • 8MVC y Arquitecturas a 3 CapasMVC != Arquitecturas a 3 CapasCapa dePresentaciónCapadeLógicadeNegociosCapadePersistenciaBD
    • 9MVC y Acceso a BD(M) != Modelo de Datos (Aunque se puede)ViewControllerModel BDPor ejemplo, CodeIgniterhttp://ellislab.com/codeigniter
    • 10MVC y Acceso a BD(M) != Modelo de Datos (Aunque se puede)ViewControllerModel BDSi no se usa un modelo atres capas, la lógica denegocios suele terminaraquíDesde este punto de vista elmodelo sirve a 2 o 3(¿mal asunto?)
    • 11MVC y Acceso a BD(M) != Modelo de Datos (Aunque se puede)The Model represents your data structures. Typically yourmodel classes will contain functions that help you retrieve,insert, and update information in your databaseThe model is not a database: the model in MVC is both the dataand the business/domain logic needed to manipulate the data in theapplication. Many applications use a persistent storage mechanismsuch as a database to store data. MVC does not specificallymention the data access layer because it is understood to beunderneath or encapsulated by the model. Models are not dataaccess objects; however, in very simple apps that have little domainlogic there is no real distinction to be made. Active Record is anaccepted design pattern which merges domain logic and dataaccess code - a model which knows how to persist itself.Tomado de: http://en.wikipedia.org/wiki/Model-View-ControllerTomado de: http://codeigniter.com/user_guide/overview/mvc.html
    • 12MVC y Acceso a BD(M) != Modelo de Datos (Aunque se puede)ViewControllerModelBDDAOs, ORM,Framework dePersistenciaValue Objects / DataTransfer Objects /JavaBeans / POJOS /etcéterapersistenciaIUSi no se usa un modelo atres capas, la lógica denegocios suele terminaraquíDiferencia bien definidaentre IU y persistencia
    • 13¿MVC: Modelo – Vista – Controlador?Un ejemplo en la WEB
    • 14MVC: Modelo – Vista – ControladorMVC(Framework)(Motor)
    • 15MVC: Modelo – Vista – ControladorGenera esteHTML en baseal contenido delFormContiene la información amostrar por la vista (la listade productos) así como lainformación ingresada por elusuario (si existe)Maneja la acción delistar (Va a BD ygenera la lista deproductos)
    • 16MVC: Modelo – Vista – ControladorGenera esteHTML en baseal contenido delFormContiene la información amostrar por la vista (elproducto a editar) así comola información ingresada porel usuario (originada por loscontroles de la IU)Maneja las accionesde edición “Actions”Tomados dellistar (pantallaanterior)
    • 17http://127.0.0.1/MVCPatternPHP/go.php?act_name=product/ProductListAction&method=listAllMVC: Modelo – Vista – Controladorhttp://127.0.0.1/MVCPatternPHP/go.php?act_name=product/ProductListAction&method=listAllDirección(¿Base?)Script PHPejecutado(go.php)Parámetros de la petición(los usa el MVC paradeterminar el Form, elAction y el método dentrodel Action a utilizarDe querer haceringeniería inversa, ycomprender comofunciona el MVC ¿pordónde comenzamos? Por ejemplo, que pasa si...
    • 18MVC: Modelo – Vista – Controlador¡Click!... en este formulario hacemos click en enviar<form method="GET" action="go.php"><!-- CAMPOS DE CONTROL DEL MVC --><input type="hidden" name="act_name" value="product/ProductEditAction"/><input type="hidden" name="frm_name" value="product/ProductEditForm" /><input type="hidden" name="php_self" value="product/product_edit.php" /><input type="hidden" name="method" value="update" /><!-- CAMPOS DE LA ACCIÓN PARTICULAR (Editar) --><input type="hidden" name="mode" value="update"><input type="hidden" name="bean_idnt" value="6"><!-- Los otros campos, el nombre, la descripción, etc -->
    • 19Ver:http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworksPara una lista(seguramente incompleta)de frameworks que implementanel patrón MVC en distintoslenguajes de programaciónMVC: Modelo – Vista – Controlador
    • 20Gracias¡Gracias!