Relación entre Modelo, Vista y Controlador

Relación entre Modelo, Vista y Controlador – Explicación y ejemplo teórico

En esta entrada hablábamos de los fundamentos de ASP.NET MVC y las tres grandes capas que lo componen. En esta entrada hablaremos de la relación entre Modelo, Vista y Controlador para que puedas aplicar este paradigma de programación sin problemas.

A continuación, os dejamos un diagrama en el que se especifican todas las relaciones existentes en una aplicación ASP.NET MVC, así como las relaciones con el usuario, en este caso, a modo de web. Cabe destacar que hay diferentes variantes en cuanto a las relaciones entre las diferentes capas, pero aquí sólo vamos a comentar la interpretación básica, que es la que tenemos en el FrameWork de ASP.NET MVC.

En el gráfico podemos observar la relación entre Modelo, Vista y Controlador en el que el usuario (a través del ordenador del gráfico) se comunica única y exclusivamente con el controlador. Lo hace a través de acciones y, aunque esas acciones se muestran en la parte del Cliente, no es la vista la que interactúa con el usuario.

Sin embargo la vista es la única encargada de devolver la información al usuario que él mismo ha solicitado al controlador a través de una acción. Lo hará a través de interfaces de usuario y sirve para enviar la información del sistema al usuario.

Como ya se especificó en la entrada en la que hablábamos del controlador, es el intermediario de la vista y el modelo. Sorprende la relación bidireccional entre Modelo y Controlador, pero se debe a que el controlador es capaz de actualizar el modelo o invocar a sus métodos como de consultar los datos del dominio, al que se accede a través del Modelo.

Sin embargo el Modelo no tendrá conocimiento ninguno de cómo funciona el controlador, simplemente sabrá que desde el Controlador se puede llamar a los métodos implementados en el Modelo, pero no las clases que lo invocan ni como se deben utilizar. Del mismo modo, en Modelo tampoco sabrá el modo en el que se representan sus datos y por tanto no tendrá relación ninguna con la Vista.

El Controlador es el único que se relaciona con la Vista ya que es el encargado de seleccionar la mejor Vista en función de la acción que ha solicitado por el usuario, trasmitiendo toda la información necesaria para que la Vista pueda construir la interfaz. suministrándole toda la información que necesite para componer el interfaz.

La Vista no puede en ningún momento comunicarse directamente con el Modelo, sin pasar previamente por el Controlador.

Ejemplo teórico de funcionamiento

Ya hemos hablado de la relación entre Modelo, Vista y Controlador de una aplicación ASP.NET MVC, pero sin verlo con un claro ejemplo, puede ser difícil de entender. Como ya comentamos arriba, nos centramos en la aplicación MVC básica, la que se especifica en el Framework ASP.NET MVC.

En el caso que hemos planteado, tenemos una aplicación en la que se puede visualizar los datos de los clientes. El usuario solicita a la aplicación que desea ver los datos de un cliente en concreto.

Veamos el flujo completo que se maneja en la aplicación desde que el usuario solicita dicha acción, hasta que obtiene la respuesta.

  • El usuario solicita en pantalla, poder visualizar los datos de un cliente
  • El Controlador recibe la orden de visualización de los datos de un cliente, por lo que obtiene su identificador.
  • El Controlador, con el parámetro que recibe en la acción del Id del cliente, consulta con el Modelo.
  • El Modelo consulta con el Dominio los datos solicitados por el Controlador. Podría ser una llamada a una Base de Datos de SQL Server para traer la Tabla Clientes.
  • El controlador recibe todos los datos del cliente, que viene del Modelo.
  • El Controlador busca la mejor Vista posible para construir la interfaz.
  • El Controlador envía a la vista seleccionada, los datos que vienen del Modelo para que puedan ser mostrados al usuario través de la Vista.
  • La Vista renderiza la interfaz de usuario utilizando los datos de que ha recibido del Controlador.
  • El usuario recibe por pantalla la Vista con los datos solicitados en la primera acción.

Una vez finalizado este proceso, iniciado por una acción del usuario. Éste podría solicitar otra diferente, que iniciaría una nueva secuencia.

Flujo de Prueba ASP.NET MVC

La imagen anterior muestra un diagrama de secuencia de una acción en un sistema MVC para mostrar los datos de un cliente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *