divendres, 15 d’abril del 2011

MARCO DE TRABAJO ASP.NET MVC: aplicación de inicio

Para iniciarnos en este marco de trabajo crearemos una aplicación sencilla. Esta aplicación listará una categorías, de cada categoría podremos listar los productos que la componen y acceder a los detalles de cada producto.

MVC es un patrón de diseño que divide nuestra aplicación web en tres tipos de componentes:

  • Modelos: que representan a los datos y estarán representadas por las clases entidad, las clases entidad encapsulan los datos y los accesos a ellos.
  • Vistas: que son las interfaces con las que actúan los usuarios
  • Controladores: que son los que gestionan las interacciones entre los usuarios y la aplicación, recogen los requerimientos en las vistas, interactuan con las clases entidades y devuelven vistas.

CREAR UNA APLICACIÓN WEB ASP.NET MVC CON VISUAL STUDIO 2010

Menú: Archivo/Nuevo Proyecto

Cuando aceptamos también nos preguntará se queremos crear directorio de pruebas. Otra de las características de MVC en ASP.NET es la posibilidad de trabajar con pruebas unitarias que nos permitirán validar nuestro código en todo momento.

ESTRUCTURA BÁSICA 

Si elegimos la plantilla MVC nos creará una estructura básica de lo que es una aplicación Web MVC.

Las carpetas Models, Controllers y Views que guardarán los componentes de MVC

Carpeta Content que contendrá aquellos archivos para la personalización de las vistas como los css

Scripts que contendrá los archivos para el código del lado cliente



MAPEADO DE LAS URLS

En Web Forms el mapeado de la URL va a un archivo en el disco (.aspx) que es el que contiene el código que será procesado por el servidor (también en archivo a parte pero referenciados en el .aspx). Sin embargo en MVC el que se encarga de contener la lógica de aplicación es el controlador que accederá a los datos y redireccionará a la vista adecuada.


Las reglas de enrutado se encuentran preconfiguradas en el archivo Global.asax, estas reglas capturan por ejemplo el path de entrada /Productos a la clase controladora Productos, así que para recoger toda la funcionalidad para los productos crearemos la clase controlador ProductosController (todas las clases controladoras acabarán por Controller).

Si nos situamos en la carpeta controllers y pulsamos el botón derecho nos da la opción de añadir una nueva clase y especificaremos una clase controlador para MVC2 así añadiremos el controlador a nuestra aplicación. Ahora deberemos añadir la lógica para gestionar todas las peticiones sobre los productos que como hemos definido serán la de listar las categorías, listar los productos por categoría y ver los detalles e un producto.

Una primera estrategia sería la de hacer un select case que nos llevara a las acciones que queremos pero en la arquitectura MVC el propio mapeo de la url nos llevará, tal y como nos ha llevado al controlador, a la acción correcta ya que las acciones dentro del controlador se corresponderán con los fragmentos en la url, para nuestra aplicación:


URLaccióncomportamiento
/Productos/CategoriasCategorias()Lista las categorias
/Productos/Listar/CategoriaListar()Lista los productos por categoria 
/Productos/Detalle/IDProductoDetalle()Lista los detalles de un producto

Los parámetros también los recogerá de la URL como hace con el nombre de la acción, así /Productos/Listar/Categoria Categoria sería la string de la categoría que queremos listar.

La clase ProductosController quedará:


MODELO DE DATOS

Ahora generaremos las clases entidad que contendrán los datos y las acciones necesarias para que se puedan ver y modificar esos datos. En este caso tenemos una base de datos kmil en SQL Server Express y haremos el modelado de datos con LINQ to SQL. Visual Studio 2010 generará nos permitirá crear el modelo de datos de forma gráfica en un documento .dbml que tendrá el esquema y generará las clases .cs necesaria para los métodos accesores dentro del contexto de datos.

Botón derecho en la carpeta models y añadiremos nueva clase para LINQ to SQL


Codificaremos la clase KmilDataContext.cs que contendrá lo necesario para poder acceder a los datos con las instrucciones Linq necesarias, así la clase controladora no tendrá ninguna instrucción linq. Será una clase parcial puesto que el diseñador ya nos ha definido métodos.

Cap comentari:

Publica un comentari a l'entrada