Qué es MVC - Nota: 9.5 PDF

Title Qué es MVC - Nota: 9.5
Author francia ordonez
Course Redes l
Institution Universidad Católica de Honduras
Pages 19
File Size 471.8 KB
File Type PDF
Total Downloads 97
Total Views 120

Summary

que es mvc...


Description

UNIVERSIDAD CATOLICA DE HONDURAS CAMPUS SANTA CLARA

Catedrático: Adonis Sinclair

Catedra: Desarrollo de Portales Web 1101

Luis Gerardo García

18

OBJETIVOS

Dar a conocer la importancia de los MVC, sus aplicaciones y desarrollo y cómo usarlas al momento de ser necesario. Dar a conocer las ventajas y desventajas de este modelo y frameworks. Dar el objetivo primordial del patrón que es dar soporte a los modelos funcionales y mapas mentales de la información relevante para los usuarios, permitiendo un modelo que facilite la consulta y manejo de los mismos.

18

INTRODUCCION

MVC es una propuesta de diseño de software utilizada para implementar sistemas donde se requiere el uso de interfaces de usuario. Surge de la necesidad de crear software más robusto con un ciclo de vida más adecuado, donde se potencie la facilidad de mantenimiento, reutilización del código y la separación de conceptos. Su fundamento es la separación del código en tres capas diferentes, acotadas por su responsabilidad, en lo que se llaman Modelos, Vistas y Controladores, o lo que es lo mismo, Model, Views & Controllers, si lo prefieres en inglés. En este artículo estudiaremos con detalle estos conceptos, así como las ventajas de ponerlos en marcha cuando desarrollamos. MVC es un "invento" que ya tiene varias décadas y fue presentado incluso antes de la aparición de la Web. No obstante, en los últimos años ha ganado mucha fuerza y seguidores gracias a la aparición de numerosos frameworks de desarrollo web que utilizan el patrón MVC como modelo para la arquitectura de las aplicaciones web.

18

INDICE

OBJETIVOS..................................................................................................................1 INTRODUCCION...........................................................................................................2 INDICE...........................................................................................................................3 ¿Qué es MVC?..............................................................................................................4 Historia...........................................................................................................................5 Bases de datos con MVC..............................................................................................7 Componentes del Patrón MVC....................................................................................10 Uso en aplicaciones Web............................................................................................13 Frameworks.................................................................................................................14 CONCLUSIÓN.............................................................................................................17 BIBLIOGRAFIA............................................................................................................18

18

¿Qué es MVC? El MVC o Modelo-Vista-Controlador es un patrón de arquitectura de software que, utilizando 3 componentes (Vistas, Models y Controladores) separa la lógica de la aplicación de la lógica de la vista en una aplicación. Es una arquitectura importante puesto que se utiliza tanto en componentes gráficos básicos hasta sistemas empresariales; la mayoría de los frameworks modernos utilizan MVC (o alguna adaptación del MVC) para la arquitectura, entre ellos podemos mencionar a Ruby on Rails, Django, AngularJS y muchos otros más. En web, el MVC funcionaría así. Cuando el usuario manda una petición al navegador, digamos quiere ver el curso de AngularJS, el controlador responde a la solicitud, porque él es el que controla la lógica de la app, una vez que el controlador nota que el usuario solicitó el curso de Angular, le pide al modelo la información del curso. El modelo, que se encarga de los datos de la app, consulta la base de datos y digamos, obtiene todos los vídeos del curso de AngularJS, la información del curso y el título, el modelo responde al controlador con los datos que pidió (nota como en la imagen las flechas van en ambos sentidos, porque el controlador pide datos, y el modelo responde con los datos solicitados). Una vez el controlador tiene los datos del curso de AngularJS, se los manda a la vista, la vista aplica los estilos, organiza la información y construye la página que vez en el navegador.

18

Ilustración 1 Diagrama de Flujo de MVC

Historia El Modelo Vista Controlador (MVC) Surge de la necesidad de crear software más robusto con un ciclo de vida más adecuado, donde se potencie la facilidad de mantenimiento, reutilización del código y la separación de conceptos. El patrón MVC fue una de las primeras ideas en el campo de las interfaces gráficas de usuario y uno de los primeros trabajos en describir e implementar aplicaciones software en términos de sus diferentes funciones. Controlador Vista Modelo 5 Fue descrito por primera vez en 1979 por Trygve Reenskaug, entonces trabajando en Smalltalk en laboratorios de investigación de Xerox. Para los años 70 seguidamente en los años 80 Jim Althoff y otros implementaron una versión de MVC para la biblioteca de clases de Smalltalk-80. Solo más tarde, en 1988, MVC se expresó como un concepto general en un artículo sobre Smalltalk-80. En esta primera definición de MVC el controlador se definía como "el módulo que se ocupa de la entrada" (de forma similar a como la vista "se ocupa de la salida"). Esta definición no tiene cabida en las aplicaciones modernas en las que esta funcionalidad es asumida por una combinación de la 'vista' y algún framework moderno para desarrollo. El 'controlador', en las aplicaciones modernas de la década de 2000,

18 es un módulo o una sección intermedia de código, que hace de intermediario de la comunicación entre el 'modelo' y la 'vista', y unifica la validación (utilizando llamadas directas o el "observer" para desacoplar el 'modelo' de la 'vista' en el 'modelo' activo).

18

Bases de datos con MVC En el mundo del desarrollo web existen varias formas de desarrollar aplicaciones, una de estas es utilizar la arquitectura MVC-Model View Controller con la cual Microsoft vino a ponerse a la par de otros lenguajes para desarrollo web, ya que antes de ASP NET MVC solamente con el paradigma de ASP NET Web Forms se podía programar. MVC es una arquitectura que nos permite ordenar nuestra forma de desarrollar una aplicación web, y además nos obliga a separar conceptos y a su vez a ordenar nuestra forma de trabajo. Detallare cada concepto y hare algunas apreciaciones de cada concepto y referencias a que tecnología o técnicas utilizar para cada caso.

Modelo Empezaré con el Modelo que es la representación de la conectividad a datos, el cual centraliza el acceso a los datos, ASP NET MVC nos permite utilizar nuestra propia implementacion de clases de entidades, o utilizar un ORM(object relational mapping) como lo son LINQ to Classes o Entity Framework para representar el Modelo, mi recomendación es utilizar Entity Framework. Con Entity Framework tenemos la posibilidad de representar de una forma ágil los registros de la base de datos en memoria en clases de tipo entidad. Con Entity Framework por default funciona correctamente con SQL Server, pero existen implementaciones para Oracle con el Oracle Data Provider(ODP) de la 11g, de Sybase con el Open Client 15, de Sybase Anywhere con la open client 12, MySQL con MySQL Data Provider 6; en fin busquemos en internet ya que casi para todas las bases de

18 datos actualmente existe una implementación la cual ha desarrollado cada proveedor de base de datos.

Controlador Continuo con el Controlador que se preguntarán porque en ese orden, y se los comento, lo de mas bajo nivel a entender es el Modelo y como accede a los datos, posteriormente quien interactúa con los datos es el Controlador, el cual contiene lógica para definir que Vista utilizará según sea la acción requerida por el usuario.

Eso significa que el Controlador es quien definirá dependiendo de la acción requerida por el usuario y de la lógica implementada según las necesidades de los requerimientos, así será la Vista que retorne al usuario.

El Controlador ASP NET MVC se implementa heredando de la clase System.Web.Mvc.Controller, en la cual se definen las Acciones a las cuales el usuario podrpa requerir en la interacción con la opción. Para el caso existe un módulo HTTP que se encarga de rutear las acciones del usuario al controlador solicitado a través del módulo URLRoutingModule quien se encarga de convertir las llamadas HTTP y rutearlas al controlador y accion específica.

18 Vista La vista es la representación de forma visual de los datos o pantallas de entrada de datos que se le presentan al usuario en una aplicación web con MVC. La diferencia es que en el concepto de MVC la vista separa su lógica del Modelo y es el Controlador el que se encarga de enviarle la data a la vista para que esta la convierta en HTML (render). Para la renderización la Vista utiliza la los HTML Helpers que son clases que se encargan de crear el HTML, como por ejemplo una caja de texto, un caja de chequeo, etc. Puede ser desde un simple HTML hasta un control más complejo como una tabla de datos.

ASP .NET permite crear vista altamente tipeadas(Strongly-Typed Views) que no son mas que una vista que desde su declaración depende directamente de un tipo de datos, para lo cual utiliza Generics para su definición, esto lo que permite es hacer referencia al Tipo de Dato de una Entidad del Modelo, con lo cual el editor permite hacer intellisense y acceder mas facilmente a las propiedades del Modelo, para esto se tienen los Strongly-Typed HTML Helpers que nos ayudan a tener un codigo mas limpio, ya que desde el tiempo de compilación nos daremos cuenta si estamos haciendo referencia a Propiedades de las entidades del Modelo que realmente existen.

18

Componentes del Patrón MVC El patrón Modelo – Vista – Controlador fue inventado en el contexto de Smalltak para realizar una separación entre la interfaz gráfica y el código del funcionamiento de una aplicación. Esta idea teórica afectó, de forma importante, a gran parte del código de Smalltalk y fue posteriormente aplicada a los lenguajes que están basados en objetos.

En el paradigma MVC, las entradas del usuario, los modelos del mundo exterior y la retroalimentación visual son explícitamente separados y manejados por tres tipos de objetos, cada uno especializado para un conjunto de tareas específicas.

El objetivo primordial del patrón es dar soporte a los modelos funcionales y mapas mentales de la información relevante para los usuarios, permitiendo un modelo que facilite la consulta y manejo de los mismos. La única manera de construir artefactos manejables es ayudar al usuario a construir modelos del sistema. Pero esto es imposible si el modelo mental no ha sido diseñado dentro del artefacto desde el principio. Intentar adicionar los modelos mentales del usuario cuando ya se ha avanzado en el desarrollo puede ser imposible.

Modelo El modelo es un conjunto de clases que representan la información del mundo real que el sistema debe reflejar. Es la parte encargada de representar la lógica de negocio de una aplicación. Así, por ejemplo, un sistema de administración de datos geográficos tendrá un modelo que representara la altura, coordenadas de posición, distancia, etc.

18 sin tomar en cuenta ni la forma en la que esa información va a ser mostrada ni los mecanismos que hacen que esos datos estén dentro del modelo, es decir, sin tener relación con ninguna otra entidad dentro de la aplicación.

Vista Las vistas son las encargadas de la representación de los datos, contenidos en el modelo, al usuario. La relación entre las vistas y el modelo son de muchas a uno, es decir cada vista se asocia a un modelo, pero pueden existir muchas vistas asociadas al mismo modelo. De esta manera, por ejemplo, se puede tener una vista mostrando la hora del sistema como un reloj analógico y otra vista mostrando la misma información como un reloj digital.

Controlador El controlador es el encargado de interpretar y dar sentido a las instrucciones que realiza el usuario, realizando actuaciones sobre el modelo. Si se realiza algún cambio, comienza a actuar, tanto si la modificación se produce en una vista o en el modelo. Interactúa con el Modelo a través de una referencia al propio Modelo.

Procesamiento de la petición Una vez que el Controlador determine la operación a realizar, procede a ejecutar las acciones pertinentes, invocando para ello a los diferentes métodos expuestos por el Modelo.

18 Dependiendo de las acciones a realizar (por ejemplo, un alta de un usuario en el sistema), el Modelo necesitará manejar los datos enviados por el cliente en la petición, datos que le serán proporcionados por el controlador. De la misma manera, los resultados generados por el Modelo (por ejemplo la información resultante de una búsqueda serán entregados directamente al controlador).

18 Uso en aplicaciones Web

Ilustración 2 Diagrama de Uso de Aplicaciones



El usuario solicita una acción al servidor



El servidor atiende la petición y manda a llamar al controlador



El controlador llama al modelo necesario o

El modelo atiende la petición y realiza las operaciones de datos correspondientes

o 

El modelo regresa el resultado

El controlador llama a la vista, enviándole los datos procesados del modelo o

La vista presenta los datos



El controlador devuelve la vista al servidor



El servidor presenta el resultado al cliente

18

Frameworks Existen varios tipos de frameworks Web: orientados a la interfaz de usuario, como Java Server Faces, orientados a aplicaciones de publicación de documentos, como Coocon, orientados a la parte de control de eventos, como Struts y algunos que incluyen varios elementos como Tapestry. La mayoría de frameworks Web se encargan de ofrecer una capa de controladores de acuerdo con el patrón MVC o con el modelo 2 de Servlets y JSP, ofreciendo mecanismos para facilitar la integración con otras herramientas para la implementación de las capas de negocio y presentación. El concepto framework se emplea un muchos ámbitos del desarrollo de sistemas software, no solo en el ámbito de aplicaciones Web. Podemos encontrar frameworks para el desarrollo de aplicaciones médicas, de visión por computador, para el desarrollo de juegos, y para cualquier ámbito que pueda ocurrírsenos. En general, con el término framework, nos estamos refiriendo a una estructura software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación. En otras palabras, un framework se puede considerar como una aplicación genérica incompleta y configurable a la que podemos añadirle las últimas piezas para construir una aplicación concreta.

Para comprender como trabajan los frameworks Web existentes es imprescindible conocer el patrón MVC. El patrón Modelo-Vista-Controlador es una guía para el diseño de arquitecturas de aplicaciones que ofrezcan una fuerte interactividad con usuarios. Este patrón organiza la aplicación en tres modelos separados, el primero es un modelo que representa los datos de la aplicación y sus reglas de negocio, el segundo es un

18 conjunto de vistas que representa los formularios de entrada y salida de información, el tercero es un conjunto de controladores que procesa las peticiones de los usuarios y controla el flujo de ejecución del sistema. La mayoría, por no decir todos, de los frameworks para Web implementan este patrón. Una aplicación de este patrón en entornos Java para programación Web es lo que se conoce con el nombre de arquitectura model 2.

Ilustración 3 Diagrama Controlador - Vista - Modelo

18

Ilustración 4.1 Diagrama Controlador - Vista - Modelo

Ilustración 5.2 Diagrama Controlador - Vista - Modelo

18

CONCLUSIÓN

Utilizar MVC en vez de Web Forms es una buena alternativa si inicias tu proyecto desde cero, pero si ya tienes un proyecto con Web Forms y quieres migrarlo a utilizar MVC, tus diseños y conceptos que tengas, tendrás que desecharlos y volver a diseñar todo pensando en MVC.

MVC te ayuda a ordenar tu forma de trabajo, ya que no te “ayuda” sino que te obliga a hacerlo. Su curva de aprendizaje desde mi punto de vista es más alto que con Web Forms, pero te ayuda a que pruebes más fácilmente las opciones con pruebas unitarias. MVC es un patrón de diseño enfocado a separar las responsabilidades dentro de nuestra aplicación y es muy utilizado en la web por su enfoque y las ventajas que ofrece con respecto a algunas otras formas o patrones de desarrollo de aplicaciones web. Así que no hay excusa para comenzar a usar este genial patrón de diseño si es útil para el problema que estas atacando.

18

BIBLIOGRAFIA

https://blog.michelletorres.mx/mvc-y-su-importancia-en-la-web/ https://elmercarias.wordpress.com/2012/07/30/que-es-asp-net-mvc/ http://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/122 https://espejodeantagno.files.wordpress.com/2016/04/modelo-vista-controladormvc.pdf https://codigofacilito.com/articulos/mvcmhttp://www.lsi.us.es/~javierj/investigacion_ficheros/Framework.pdf

http://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/122 odel-view-controller-explicado...


Similar Free PDFs