Tutorial de MVC Framework para principiantes: ¿Qué es? Architecnología y ejemplo
¿Qué es el marco MVC?
La 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 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 y sus URL.
- 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.
- Enrutamiento de URL para URL compatibles con SEO. Potente mapeo de URL para URL comprensibles y con capacidad de búsqueda
- Soportes para el desarrollo basado en pruebas (TDD)
MVC Architectura
Aquí está la arquitectura detallada del marco 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 este componente 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 de los datos del modelo. Una vista solicita al modelo que proporcione información para que presente la presentación de 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 maneja la interacción del usuario. El controlador interpreta las entradas del mouse y del teclado del usuario, informando al modelo y a la vista para que cambien 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 cambiar la presentación de la vista (por ejemplo, desplazarse por 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 la solicitud de las vistas y también responde a las instrucciones del controlador para actualizarse. También es el nivel más bajo del patrón que es responsable de mantener 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.
- Ver= 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
- CodeIgniter
- 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 separación limpia de preocupaciones (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 la agrupación lógica de acciones relacionadas en un controlador.
Desventajas de usar MVC
- Difícil de leer, cambiar, probar unitariamente y reutilizar este modelo.
- La navegación del framework puede resultar compleja en algún momento ya que introduce nuevas capas de abstracción que requieren 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. |
Resumen
- El MVC es un patrón arquitectónico que separa una aplicación en 1) Modelo, 2) Vista y 3) Controlador.
- 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
- La arquitectura MVC fue discutida por primera vez en 1979 por Trygve Reenskaug
- Arquitectura MVC en Java es un marco altamente comprobable, extensible y conectable
- Algunos marcos MVC populares son Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP, etc.