Iniciación a MVC4 Contenido 1. Qué significa MVC ..................................................................................................................................................... 3 2. Componentes de la arquitectura MVC ..................................................................................................................... 3 3. 2.1. Modelo .............................................................................................................................................................. 3 2.2. Vista................................................................................................................................................................... 3 2.3. Controlador ....................................................................................................................................................... 3 ASP.NET MVC ............................................................................................................................................................ 4 3.1. Creación de un proyecto nuevo ........................................................................................................................ 4 3.2. Estructura de un proyecto MVC........................................................................................................................ 6 1. Qué significa MVC (M)odelo (V)ista (C)ontrolador El Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos y la lógica de negocio de una aplicación de la interfaz de usuario y el módulo encargado de gestionar los eventos y las comunicaciones. Para ello MVC propone la construcción de tres componentes distintos que son el modelo, la vista y el controlador, es decir, por un lado define componentes para la representación de la información, y por otro lado para la interacción del usuario. 2. Componentes de la arquitectura MVC 2.1. Modelo 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'. Generalmente son clases que representan los datos de la aplicación y que contienen la lógica de negocio. Es el único componente que debería poder manipular el almacén de datos (base de datos, XML, Json, etc…). 2.2. Vista 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. Son la representación gráfica de un modelo. En ella se introducen datos o se realizan acciones que se comunicarán al controlador. 2.3. Controlador 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 de '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'. 3. ASP.NET MVC 3.1. Creación de un proyecto nuevo .NET Framework 4.52: esa es la versión de Framework que se utilizará en el proyecto. En función de la versión elegida puede variar el tipo de proyectos disponibles. Una vez creado el proyecto se puede cambiar de versión si la nueva versión es compatible con el tipo de proyecto. Nombre: nombre del proyecto Ubicación: directorio donde se creará la carpeta con el proyecto Solución1: Crear nueva solución / Añadir a una solución 1 Una ‘Solución’ es un contenedor de proyectos. Si por ejemplo tuviésemos que hacer una aplicación con una versión web y una versión de escritorio, podríamos hacer un proyecto para cada entorno e incluirlos dentro de la misma solución. 2 El Framework es el que aporta la funcionalidad al lenguaje. Como norma general siempre deberíamos utilizar la penúltima versión de Framework para que nuestro producto funcione en un mayor número de entornos. Para que nuestro programa funcione, el entorno donde se ejecuta debe tener instalada la versión de Framework requerida por el proyecto. 3.2. Estructura de un proyecto MVC App_Data: contiene los diferentes almacenes de datos del proyecto (ficheros XML, ficheros Json, BBDD, etc) App_Start: contiene clases que realizan procesos para inicializar el proyecto Content: contiene los ficheros de estilo del proyecto (ficheros CSS, iconos, etc…) o Carpeta no incluida en un proyecto básico Controllers: contiene los controladores del proyecto Filters: contiene atributos que se asocian a una acción de un controlador o a un controlador entero para modificar la forma en que se ejecuta la acción (más adelante) Images: Models: contiene los modelos del proyecto Scripts: contiene los ficheros Javascript del proyecto Views: contiene las vistas y los “layouts” del proyecto o Dentro de la carpeta Views habrá una carpeta por cada controlador del proyecto que tenga vistas que contendrá las vistas de ese controlador o La carpeta “Shared” no está relacionada con ningún controlador, en ella se guardan las vistas que se usan desde más de un sitio y los “layouts”. Global.asax: es el primer fichero que se ejecuta al arrancar el proyecto. Por lo general en él se realiza la inicialización del proyecto cargando los datos necesarios para que el proyecto pueda arrancar. También es el punto donde se debería llamar a las clases definidas en la carpeta App_Start. Packages.config: en este fichero están recogidos los paquetes que está usando el proyecto Web.config: fichero de configuración del proyecto (avanzado)