Patron MVC (Model View Controller)

 


MVC es un patrón de diseño que se utiliza para desacoplar la interfaz de usuario (vista), los datos (modelo) y la lógica de la aplicación (controlador). Este patrón ayuda a lograr la separación de preocupaciones.

Usando el patrón MVC para sitios web, las solicitudes se enrutan a un controlador que es responsable de trabajar con el modelo para realizar acciones y / o recuperar datos. El controlador elige la vista para mostrar y le proporciona el modelo. La vista representa la página final, según los datos del modelo.



Modelo: Representa datos, terminos procesos, reglas, clases, POCOs (Plain Old CLR Objects) y es independiente de la interface de usuario. Es la representación de la información con la cual el sistema opera, por lo tanto gestiona todos los accesos a dicha información, tanto consultas como actualizaciones, implementando también los privilegios de acceso que se hayan descrito en las especificaciones de la aplicación (lógica de negocio). Envía a la 'vista' aquella parte de la información que en cada momento se le solicita para que sea mostrada (típicamente a un usuario). Las peticiones de acceso o manipulación de información llegan al 'modelo' a través del 'controlador'


Vista: Codigo en html que ve el usuario. Presenta el 'modelo' (información y lógica de negocio) en un formato adecuado para interactuar (usualmente la interfaz de usuario), por tanto requiere de dicho 'modelo' la información que debe representar como salida.

Controlador: Maneja la respuesta http. Responde a eventos (usualmente acciones del usuario) e invoca peticiones al 'modelo' cuando se hace alguna solicitud sobre la información (por ejemplo, editar un documento o un registro en una base de datos). También puede enviar comandos a su 'vista' asociada si se solicita un cambio en la forma en que se presenta el 'modelo' (por ejemplo, desplazamiento o scroll por un documento o por los diferentes registros de una base de datos), por tanto se podría decir que el 'controlador' hace de intermediario entre la 'vista' y el 'modelo'

Router: Hay un componente que no esta en el acronimo MVC que es el router. La responsabilidad del router es seleccionar el correcto controlador ante una demanda. El ruter basado en determinadas reablas sabe a que controlador dirigirle la petición. por ejemplo  ante la petición:

https://turnos.com/pac

el router la dirige en base a reglas al controlador pac

Los metodos que hacen esto se llaman Action. por eso las action son responsables de manejar la peticion o pedido


Configurar de la ruta

Cada aplicación MVC debe configurar (registrar) al menos una ruta configurada por el marco MVC de forma predeterminada. Puede registrar una ruta en la clase RouteConfig, que se encuentra en RouteConfig.cs en la carpeta App_Start. La siguiente figura ilustra cómo configurar una ruta en la clase RouteConfig.




La estructura de la url es la siguiente

En celeste en nombre del sitio

luego en verde el controlador

luego en rojo la Acción y 

luego en azul el parámetro



















Cada controlador tiene su vista 


Como se ve en la imagen el nombre de la vista  es igual al nombre del controlador

para  AccesoController - Acceso, para AgendaMedicaController -AgendaMedica y así sucesivamente como se ve en la figura de arriba.



Dentro de vistas tenemos Global.asax es un archivo opcional usado en las aplicación web de ASP.NET para declarar y manejar eventos y objetos a nivel de aplicación y de sesión. Global.asax es la extensión de archivo Global.asa utilizado en ASP. El archivo Global.asax reside en el directorio virtual raíz de una aplicación ASP.NET en IIS. En tiempo de ejecución, antes de la llegada de la primera solicitud, Global.asax es analizado y compilado en una clase dinámicamente generada del .NET Framework. ASP.NET está configurado para que cualquier solicitud directa del Global.asax sea automáticamente rechazada, los usuarios externos no pueden ver o descargar el código en el. Asax es el archivo de aplicación para todo proyecto ASP.NET, se encuentra en la raíz del proyecto. En él se declaran todos los eventos a nivel de aplicación como el inicio y fin de la misma, las peticiones web, etc..

El código para manejar eventos de aplicación (tales como el inicio y el final de una aplicación) residen en el Global.asax. Tales códigos de eventos no pueden residir en una página web o en un servicio web, pues durante el inicio o el final de la aplicación, su código no ha sido cargado (o descargado). Global.asax es también usado para declarar datos que están disponibles en diferentes solicitudes de la aplicación y a través de diferentes sesiones del navegador. Este proceso es conocido como administración del estado de sesión y aplicación.

El archivo Global.asax debe residir en la raíz virtual del IIS. Un directorio virtual puede ser visto como un contenedor de una aplicación web. Los eventos y estado especificados en el archivo global son entonces aplicados a todos los recursos alojados dentro de la aplicación web. Si, por ejemplo, Global.asax define una variable de estado a nivel de aplicación, todos los archivos .aspx dentro del directorio virtual tendrá acceso a la variable.

El archivo Global.asax de ASP.NET puede coexistir con el archivo Global.asa de ASP. El archivo Global.asax puede ser creado en un diseñador WYSIWYG o como una clase compilada que se distribuye en el directorio \Bin de la aplicación o en un ensamblado. Sin embargo, en el último caso, necesitas un archivo Global.asax que haga referencia al ensamblado.

Al igual que las páginas ASP.NET, el archivo Global.asax es compilado durante la llegada de la primera solicitud de cualquier recurso de la aplicación. La similitud continúa cuando algún cambio es hecho al archivo Global.asax: ASP.NET automáticamente detecta los cambios, recompila el archivo, y dirige todas las solicitudes a las nueva compilación.

¿Que hace el Package Manager?


Es donde va a estar toda la informacion de los paquetes que instalemos como las Nuget


En el Webconfig tenemos informacion sobre el conexion string

Tambien tenemos los seteos para nuestra aplicacion


Referencias

https://www.youtube.com/watch?v=guXU53g6v50

https://www.youtube.com/watch?v=E7Voso411Vs&t=2s

https://dotnet.microsoft.com/apps/aspnet/mvc

https://estandaresparadummies.blogspot.com/2021/01/mvc-asp-net-5.html

https://estandaresparadummies.blogspot.com/2021/05/como-crear-un-modelo-en-aspnet-mvc-c.html

https://estandaresparadummies.blogspot.com/2021/05/como-publicar-un-proyecto-mvc-c.html

https://estandaresparadummies.blogspot.com/2021/05/como-crear-una-vista-con-razor-en.html

https://estandaresparadummies.blogspot.com/2021/06/mcv-c-crud-crear-leer-actualizar-y.html

https://estandaresparadummies.blogspot.com/2021/07/que-es-angular.html

Comentarios

Entradas populares de este blog

¿Qué es la JCAHO Joint Commission on Accreditation of Healthcare Organizations?

PARSEO DEL CODIGO PDF417 DEL DNI ARGENTINO

¿Como instalar El Cliente de SOPHOS VPN ?