MVC ArchiArquitectura y marco de trabajo con ejemplos
โก Resumen inteligente
El patrรณn arquitectรณnico Modelo-Vista-Controlador (MVC) separa una aplicaciรณn en tres componentes (Modelo, Vista y Controlador), aislando la lรณgica de negocio de la capa de presentaciรณn para crear aplicaciones web y de escritorio mantenibles y comprobables utilizando frameworks como Spring, Django y Laravel.

ยฟQuรฉ es el marco MVC?
El Model-View-Controller (MVC) Un framework es un patrรณn arquitectรณnico que separa una aplicaciรณn en tres componentes lรณgicos principales: modelo, vista y controlador. De ahรญ la abreviatura MVC. Cada componente de la arquitectura estรก diseรฑado para gestionar aspectos especรญficos del desarrollo de una aplicaciรณn. MVC separa la lรณgica empresarial y la capa de presentaciรณn entre sรญ. Tradicionalmente se utilizaba para interfaces grรกficas de usuario (GUI) de escritorio. Hoy en dรญa, la arquitectura MVC en la tecnologรญa web se ha vuelto popular para diseรฑar aplicaciones web y mรณviles.
Historia de MVC
- La arquitectura MVC fue discutida por primera vez en 1979 por Trygve Reenskaug
- El modelo MVC se introdujo por primera vez en 1987 en el lenguaje de programaciรณn Smalltalk.
- MVC fue aceptado por primera vez como concepto general, en un artรญculo de 1988.
- En los รบltimos tiempos, el patrรณn MVC se utiliza ampliamente en las aplicaciones web modernas.
Caracterรญsticas de MVC
- Comprobabilidad fรกcil y sin fricciones. Marco altamente comprobable, extensible y conectable
- Para diseรฑar una arquitectura de aplicaciรณn web utilizando el patrรณn MVC, ofrece control total sobre su HTML, asรญ como sobre su URLs
- Aproveche las funciones existentes proporcionadas por ASP.NET, JSP, Django, etc.
- Separaciรณn clara de la lรณgica: modelo, vista y controlador. Separaciรณn de las tareas de la aplicaciรณn, es decir, lรณgica empresarial, lรณgica de interfaz de usuario y lรณgica de entrada.
- URL Enrutamiento para optimizaciรณn SEO URLs. Potente URL-mapaping para que sea comprensible y se pueda buscar. URLs
- Soportes para el desarrollo basado en pruebas (TDD)
MVC Architectura
Ahora que los beneficios son claros, aquรญ estรก la arquitectura detallada del framework MVC:

Tres componentes importantes de MVC son:
- Modelo: Incluye todos los datos y su lรณgica relacionada.
- Ver: presenta datos al usuario o maneja la interacciรณn del usuario.
- Controlador: una interfaz entre los componentes Modelo y Vista
Veamos cada uno de estos componentes en detalle:
Ver
Una Vista es esa parte de la aplicaciรณn que representa la presentaciรณn de datos.
Las vistas se crean a partir de los datos recopilados del modelo. Una vista solicita al modelo que proporcione informaciรณn para que este presente la salida al usuario.
La vista tambiรฉn representa los datos de grรกficos, diagramas y tablas. Por ejemplo, cualquier vista de cliente incluirรก todos los componentes de la interfaz de usuario, como cuadros de texto, menรบs desplegables, etc.
Control
El controlador es la parte de la aplicaciรณn que gestiona la interacciรณn del usuario. El controlador interpreta las entradas del ratรณn y del teclado del usuario, informando al modelo y a la vista para que se modifiquen segรบn corresponda.
Un controlador envรญa comandos al modelo para actualizar su estado (por ejemplo, guardar un documento especรญfico). El controlador tambiรฉn envรญa comandos a su vista asociada para modificar su presentaciรณn (por ejemplo, desplazar un documento en particular).
Modelo
El componente del modelo almacena datos y su lรณgica relacionada. Representa datos que se transfieren entre componentes del controlador o cualquier otra lรณgica empresarial relacionada. Por ejemplo, un objeto Controlador recuperarรก la informaciรณn del cliente de la base de datos. Manipula datos y los envรญa de regreso a la base de datos o los usa para representar los mismos datos.
Responde a las solicitudes de las vistas y tambiรฉn a las instrucciones del controlador para actualizarse. Ademรกs, es el nivel mรกs bajo del patrรณn, responsable del mantenimiento de los datos.
Ejemplos de MVC
Veamos un ejemplo de Model View Controller de la vida diaria:
Ejemplo
- Supongamos que vas a un restaurante. No irรกs a la cocina a preparar comida, lo que seguramente podrรกs hacer en tu casa. En lugar de eso, vas allรญ y esperas a que llegue el camarero.
- Ahora el camarero se acerca a ti y pides la comida. El camarero no sabe quiรฉn es usted ni quรฉ quiere, simplemente anotรณ los detalles de su pedido de comida.
- Luego, el camarero se dirige a la cocina. En la cocina, el camarero no prepara la comida.
- El cocinero prepara tu comida. El camarero recibe tu pedido junto con tu nรบmero de mesa.
- Cocine y luego prepare la comida para usted. Utiliza ingredientes para cocinar la comida. Supongamos que pides un sรกndwich de verduras. Luego necesita pan, tomate, patata, pimiento, cebolla, trocitos, queso, etc. que consigue en el frigorรญfico.
- Finalmente el cocinero entrega la comida al camarero. Ahora es trabajo del camarero sacar esta comida fuera de la cocina.
- Ahora el camarero sabe quรฉ comida ha pedido y cรณmo se sirve.
En este ejemplo de arquitectura MVC,
View= You Waiter= Controller Cook= Model Refrigerator= Data
Veamos un ejemplo mรกs de modelo MVC,
Ejemplo
El mecanismo de conducciรณn del automรณvil es otro ejemplo del modelo MVC.
- Cada coche consta de tres partes principales.
- Vista: Interfaz de usuario: (Palanca de cambios, paneles, volante, freno, etc.)
- Controlador- Mecanismo (Motor)
- Modelo- Almacenamiento (Tanque de gasolina o diรฉsel)
El automรณvil funciona con el motor y toma combustible del almacenamiento, pero solo funciona utilizando los dispositivos de interfaz de usuario mencionados.
Marcos web populares de MVC
Aquรญ hay una lista de algunos marcos MVC populares:
- Ruby on Rails
- Django
- CakePHP
- Yii
- cerezapy
- Primavera MVC
- Catalizador
- Rieles
- Zend Framework
- CodeEncendedor
- Laravel
- PHP de combustible
- Symphony
Ventajas de MVC: beneficios clave
Estos son los principales beneficios de utilizar la arquitectura MVC:
- Mantenimiento de cรณdigo sencillo que es fรกcil de ampliar y hacer crecer.
- El componente del modelo MVC se puede probar por separado del usuario
- Soporte mรกs sencillo para nuevos tipos de clientes
- El desarrollo de los distintos componentes se puede realizar en paralelo.
- Le ayuda a evitar la complejidad al dividir una aplicaciรณn en tres unidades: modelo, vista y controlador.
- Solo utiliza un patrรณn de controlador frontal que procesa solicitudes de aplicaciones web a travรฉs de un รบnico controlador.
- Ofrece el mejor soporte para desarrollo basado en pruebas
- Funciona bien para aplicaciones web respaldadas por grandes equipos de diseรฑadores y desarrolladores web.
- Proporciona una clara separaciรณn de responsabilidades (SoC).
- Compatible con optimizaciรณn de motores de bรบsqueda (SEO).
- Todas las clases y objetos son independientes entre sรญ para que puedas probarlos por separado.
- El patrรณn de diseรฑo MVC permite grupos lรณgicosping de acciones relacionadas en un controlador en conjunto.
Desventajas de usar MVC
- Difรญcil de leer, cambiar, probar unitariamente y reutilizar este modelo.
- La navegaciรณn del marco puede ser a veces compleja, ya que introduce nuevas capas de abstracciรณn.tracciรณn que requiere que los usuarios se adapten a los criterios de descomposiciรณn de MVC.
- Sin soporte de validaciรณn formal
- Mayor complejidad e ineficiencia de los datos
- La dificultad de utilizar MVC con la interfaz de usuario moderna
- Es necesario que varios programadores realicen programaciรณn paralela.
- Se requiere conocimiento de mรบltiples tecnologรญas.
- Mantenimiento de lotes de cรณdigos en Controller
3 niveles Architectura versus MVC Architectura
| Parรกmetro | 3-Tier Architectura | MVC Architectura |
|---|---|---|
| Comunicaciรณn | Este tipo de patrรณn de arquitectura nunca se comunica directamente con la capa de datos. | Todas las capas se comunican directamente mediante topologรญa triangular. |
| Uso | 3 niveles: ampliamente utilizado en aplicaciones web donde el cliente, los niveles de datos y el middleware se ejecutan en plataformas fรญsicamente separadas. | Generalmente se utiliza en aplicaciones que se ejecutan en una รบnica estaciรณn de trabajo grรกfica. |


