Explicación MVC | qué es y cómo funciona?

19 Feb 2024 10 min (2) Comentarios

Hoy vamos a ver una explicación al patrón o arquitectura MVC (Modelo-vista-controlador), así como sus características, beneficios y por supuesto, inconvenientes. 

 

 

1 - Qué es MVC?

 

MVC es un patrón de diseño o arquitectura el cual su objetivo principal es dividir una aplicación en tres componentes que son el Modelo (Model) la vista (View) y el controlador (Controller). El objetivo del patrón MVC es separar la aplicación en secciones con un propósito claro, para así no mezclar responsabilidades. 

 

NOTA: debe ser de los pocos acrónimos que son iguales en inglés y en español. 

 

 

2 - Cómo funciona el patrón MVC?

Para mi, siempre es más fácil de ver con un caso de uso, y el más común es en páginas web, por ejemplo, este blog: 

Cuando cargas la página lo que estás haciendo es una llamada a un Controlador (la C), que contiene la información de la ruta a la que estás llamado. Y únicamente actúa como intermediario entre el modelo y la vista. 

 

El controlador va a coger la información y dársela al modelo, el cual es el encargado de la lógica de los datos. Y si, es el modelo el que se encarga tanto de acceder a la base de datos, insertar datos, borrarlos, etc. como de hacer validaciones.

Y este es un punto importante, porque lo que se hace en muchas aplicaciones es hacer lógica en el controlador, lo cual no es del todo correcto. Bueno siendo sincero no deberías poner lógica de negocio en el controlador nunca, pero ese es otro tema. 

Una vez el modelo ha terminado de trabajar con los datos, devuelve esa información al controlador.

 

Y el controlador manda o bueno utiliza la vista para presentarle la información al usuario. 

Lo que sucede por detrás es que la vista es una plantilla donde renderizamos el HTML basándonos en los datos que nos ha pasado el modelo a través del controlador. 

como funciona mvc

Lo que nos queda claro a través de este diagrama es que todas las interacciones entre el modelo y la vista se hacen a través del controlador, separando así completamente la presentación de la manipulación de datos. Lo que en teoría simplifica el crear aplicaciones. 

 

 

3 - Beneficios e inconvenientes del patrón MVC

 

Para mi, uno de los beneficios principales de MVC es que lleva utilizándose 40 o 50 años o más. Lo que quiere decir que no solo hay muchas aplicaciones que lo utilizan, sino que por norma general es lo que se estudia en los colegios y universidades.

 

Este patrón además nos adentra en la separación por capas, Si bien es cierto que las capas son limitadas acostumbrarnos a dicha separación es muy bueno para nuestra carrera profesional.

 

Esta limitación de capas se hace notar especialmente si tenemos una app que sea grande, que haya crecido desde una lógica simple a una más compleja nos daremos cuenta de que se va haciendo más difícil de mantener; y quizá partiendo el modelo en varias capas consigamos una app más sencilla de mantener.

Como digo, eso es para aplicaciones grandes, para pruebas de concepto, o apps pequeñas,  MVC es perfecto. 

 

 

4  - MVC en C#

Una vez llegamos a C#, la arquitectura modelo vista controlador es muy popular, de hecho cuando instalamos visual studio con el instalador, si hemos seleccionado los workflows de ASP.NET and web development nos viene con proyectos de ejemplo, y uno de ellos es MVC;

Yo no lo tenía instalado, así que lo estoy instalando ahora… 

Pero bueno, que sepáis que se puede hacer sin los workflows, simplemente tienes que saber cómo hacerlo. Con los workflows o plantillas pues te lo dan a hecho.

 

Una vez instalado, cuando creamos un proyecto ya sea en Visual Studio, Rider o la línea de comandos, tendremos la plantilla de MVC disponible: 

 

Ya ya está, aquí tenemos el código con al estructura y simplemente le damos al play para ejecutar el código:

 

Uso del bloqueador de anuncios adblock

Hola!

Primero de todo bienvenido a la web de NetMentor donde podrás aprender programación en C# y .NET desde un nivel de principiante hasta más avanzado.


Yo entiendo que utilices un bloqueador de anuncios como AdBlock, Ublock o el propio navegador Brave. Pero te tengo que pedir por favor que desactives el bloqueador para esta web.


Intento personalmente no poner mucha publicidad, la justa para pagar el servidor y por supuesto que no sea intrusiva; Si pese a ello piensas que es intrusiva siempre me puedes escribir por privado o por Twitter a @NetMentorTW.


Si ya lo has desactivado, por favor recarga la página.


Un saludo y muchas gracias por tu colaboración

© copyright 2024 NetMentor | Todos los derechos reservados | RSS Feed

Buy me a coffee Invitame a un café