Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Curso de ASP.NET Core

Curso de ASP.NET Core

Juan Carlos Ruiz

Juan Carlos Ruiz

¿Qúé es el patrón MVC?

6/35
Recursos

Aportes 19

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

En esta imagen se representa con flechas los modos de colaboración entre los distintos elementos que formarían una aplicación MVC, junto con el usuario. Como se puede ver, los controladores, con su lógica de negocio, hacen de puente entre los modelos y las vistas. Pero además en algunos casos los modelos pueden enviar datos a las vistas. Veamos paso a paso cómo sería el flujo de trabajo característico en un esquema MVC.
_

  1. El usuario realiza una solicitud a nuestro sitio web. Generalmente estará desencadenada por acceder a una página de nuestro sitio. Esa solicitud le llega al controlador.
  1. El controlador comunica tanto con modelos como con vistas. A los modelos les solicita datos o les manda realizar actualizaciones de los datos. A las vistas les solicita la salida correspondiente, una vez se hayan realizado las operaciones pertinentes según la lógica del negocio.
  1. Para producir la salida, en ocasiones las vistas pueden solicitar más información a los modelos. En ocasiones, el controlador será el responsable de solicitar todos los datos a los modelos y de enviarlos a las vistas, haciendo de puente entre unos y otros. Sería corriente tanto una cosa como la otra, todo depende de nuestra implementación; por eso esa flecha la hemos coloreado de otro color.
  1. Las vistas envían al usuario la salida. Aunque en ocasiones esa salida puede ir de vuelta al controlador y sería éste el que hace el envío al cliente, por eso he puesto la flecha en otro color.

Modelo: Entidades POCO
Contolador: Es un orquestador de las peticiones. Tiene múltiples acciones que se mapean a múltiples vistas.
Vista: Se encarga de mostrar la respuesta al usuario.

El HTML se puede renderizar en el backend o en el frontend o una mezcla de ambas.

Me encontre esta imagen en internet que describe perfectamente como funciona MVC, espero les sirva.

A nivel de detalle es

El modelo es el responsable de:
Acceder a la capa de almacenamiento de datos. Lo ideal es que el modelo sea independiente del sistema de almacenamiento.
Define las reglas de negocio (la funcionalidad del sistema). Un ejemplo de regla puede ser: “Si la mercancía pedida no está en el almacén, consultar el tiempo de entrega estándar del proveedor”.
Lleva un registro de las vistas y controladores del sistema.
Si estamos ante un modelo activo, notificará a las vistas los cambios que en los datos pueda producir un agente externo (por ejemplo, un fichero por lotes que actualiza los datos, un temporizador que desencadena una inserción, etc.).

Las vistas son responsables de:
Recibir datos del modelo y los muestra al usuario.
Tienen un registro de su controlador asociado (normalmente porque además lo instancia).
Pueden dar el servicio de “Actualización()”, para que sea invocado por el controlador o por el modelo (cuando es un modelo activo que informa de los cambios en los datos producidos por otros agentes).

El controlador es responsable de:
Recibe los eventos de entrada (un clic, un cambio en un campo de texto, etc.).
Contiene reglas de gestión de eventos, del tipo “SI Evento Z, entonces Acción W”. Estas acciones pueden suponer peticiones al modelo o a las vistas. Una de estas peticiones a las vistas puede ser una llamada al método “Actualizar()”. Una petición al modelo puede ser “Obtener_tiempo_de_entrega ( nueva_orden_de_venta )”.

				Modelo Vista Controlador MVC

Modelo: fuente de datos.

Vista: pantalla que le permite a el usuario final manejar la aplicación.

Controlador: puente que permite la interacción entre el modelo y la vista.

POCO es una calse plana, sin funcionalidad adicional, solo la descripcion del objeto y sus campos

El patrón MVC es un patrón de diseño de software, que permite separar separar responsabilidades fácilmente entre un Modelo, una Vista y el Controlador. Por lo general, no queremos que el Modelo sea accesible desde la vista, por eso es el Controlador el encargado de comunicar la Vista con la información que necesita. Para ello el Controlador se comunica con el Backend, y este es el que gestiona la información solicitada.

  • El Modelo, no es más que la información con la que vamos a trabajar. Normalmente, se representa como una clase que solo almacena datos.
  • El Controlador, se encarga de responder las peticiones del usuario, teniendo en cuenta la ruta y el método Http. Para esto, según la petición, responde con la acción correspondiente que nosotros mismos definimos. Por lo general, luego de realizar las operaciones necesarias, el controlador finaliza la ejecución de una acción llamando a la Vista.
  • La Vista, una vez llamada por el Controlador, se encarga de dibujarse a sí misma, mostrando la información que recibe del Controlador.

Normalmente, en .NET la mayor parte del HTML se procesa en el Backend, aunque podrían existir algunas partes que sí se procesen del lado del cliente. Renderizar en el Backend ofrece las ventajas de tener mejor performance, escalabilidad y de SEO.
Sí deseamos añadir mayor fluidez a la experiencia del usuario, es cuando empleamos el renderizado en el frontend mediante Javascript. Esto se puede conseguir mediante .NET con Javascript o cualquiera de sus librerías.

Modelo: Clase C# que da sirve para definir la estructura de los datos
Controlador: Contiene la logica de la aplicacion (por lo general siempre retorna una vista)
Vista: el HTML que ve el usuario (en este caso cshtml)

###MVC => Model View Controller,
POCO : Plain Old CLR Object

El controlador MVC se define como un modelo de capas en el cual encontramos lo siguiente
Modelo
Vista
Controlador

Pantallazo de modelo

MVC----> Modelo Vista Controlador (MVC) es un estilo de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos.

Pensé que no iba a ver nunca mas MVC, pero los caminos de la vida me lo siguen poniendo, Genial explicación.

Se usa este patrón de diseño partiendo de la premisa de dividir responsabilidades, lo cual es una buena práctica en el diseño de software.

Genial!!!

Yo usando los pocos sin saber como se llamaban jaja, cada día se aprende más

similar a java los pocos se parecen a los pojos

por fin logre levantar el HolaMundoMVC, complicado, faltaron algunas cositas por explicar

mvc y poco; patrones clasicos.