jueves, 16 de septiembre de 2010

Iniciando un nuevo proyecto MVC


Hola a todos. En esta oportunidad voy a mostrarles como iniciar un proyecto MVC, a partir de una plantilla predeterminada, utilizando el framework ASP MVC 2.

Descarga e Instalación

Si estas utilizando el Visual Studio 2010, el framework ya se encuentra instalado en tu máquina, pero si utilizas Visual Studio 2008 deberás descargarte dicho framework desde la página oficial de ASP MVC.

Link de descarga: ASP.NET MVC 2 RTM

Actualmente se encuentra disponible la versión ASP MVC 2 RTM, la cual puede ser instalada tanto en VS 2008 como en VS 2010 (si es que no tienes instalado por defecto el mencionado framework en tu VS 2010). El paquete de instalación incluye plantillas y herramientas que facilitará el desarrollo de aplicaciones siguiendo el patrón MVC.
Para instalar el paquete descargado basta con ejecutar el mismo y listo, ya tendremos instalado el framework ASP MVC 2 en nuestra máquina.

Crear un nuevo Proyecto

Para iniciar un nuevo proyecto MVC, vamos al clásico “Inicio -> New Proyect” del VS. Dentro del grupo de proyectos Web vamos a encontrarnos con dos tipos de proyectos MVC. El primero de ellos es el “ASP.NET MVC 2 Web Application”, que tiene como objetivo crear un proyecto predeterminado, a partir de una plantilla básica. El segundo proyecto “ASP.NET MVC 2 Empty Web Application”, crea un proyecto vacío de MVC para iniciar un proyecto MVC desde cero.     



En este caso, vamos a tomar como ejemplo el primero que mencionamos (ASP.NET MVC 2 Web Application).
Le ponemos un nombre a nuestro proyecto y damos “ok” para confirmar la creación de un nuevo proyecto. En nuestro ejemplo lo renombre como “TestMVCApplication”, pero pueden nombrarlo como ustedes quieran.
Como muestra la siguiente pantalla, se nos ofrecerá la opción de crear un proyecto de testeo unitario, pero está opción la dejaremos para otro artículo. Por el momento respondemos que no y pulsamos ok para continuar con la creación del proyecto.



Ahora sí, hemos creado nuestro primer proyecto MVC. En la siguiente imagen verán que crea un directorio de carpetas por defecto. De ellas, las más significativas son Controllers, Model y Views, donde se alojan los controladores, el/los modelos y las vistas respectivamente.


Contenido del Proyecto


Controladores

Por defecto se crean dos controladores:
AccountController: encargado de manejar las acciones de una sesión, como el inicio y cierre de una sesión, registrar nueva cuenta, cambiar la contraseña, en fin, uno puede ir agregando acciones que considere necesaria. Realizará las llamadas a las vistas asociadas a la gestión de sesión.
HomeController: gestiona las llamadas a las vistas Index y About.

Modelos

En este caso se crea un solo modelo, la clase “AccountModels.cs”, la cual contiene los modelos de cuentas, además de agregados como servicios y validaciones sobre el modelo. Es un ejemplo completo que sirve de base para iniciar una aplicación profesional y de manera más rápida.

Vistas

Dentro de la carpeta Views, podemos observar que contiene varias subcarpetas, a saber:
Account: contiene vistas que permitirá al usuario gestionar su cuenta.
Home: está conformada por las vistas básicas como Index y About.
Shared: esta es una carpeta especial, ya que en ella se almacenan aquellas vistas que necesitamos que sean compartidas. De esta manera pueden ser utilizadas por otras vistas. Un claro ejemplo de ello es la página maestra Site.Master, la cual es una vista compartida que contiene definiciones comunes a todas las vistas.

Ejecución

Ejecutan la aplicación y listo, tienen corriendo un proyecto que sirve como modelo para desarrollar y extender una aplicación MVC. Les dejo la tarea de visualizar la aplicación y jugar un poco con ella.



Saludos.

viernes, 10 de septiembre de 2010

Introducción a MVC

MVC

¿Qué es MVC?

Hola a todos mis seguidores, bien en este artículo quiero compartirles lo que he aprendido acerca de este concepto.

MVC son las siglas de Modelo-Vista-Controlador, pero que es realmente MVC, ¿un modelo? ¿Una tecnología? ¿Una herramienta? Ninguna de ellas. MVC es un patrón de desarrollo de software. Como lo dice en las siglas, este patrón está compuesto por Modelos, por Vistas y por Controladores, los cuales interactúan entre sí para lograr desarrollar aplicaciones de una manera más eficiente y sencilla. A continuación les dejo un esquema del patrón:


Pero antes de explicar de qué manera interactúan estos conceptos pasaré a explicar que son cada uno de ellos:

Componentes del Patrón

Modelo

Un modelo es una abstracción de la realidad y reflejada en una librería de clases, en un objeto de entidad (EntityDataModel), un objeto de base de datos, en fin, hay muchas maneras de reflejar dicha realidad en nuestra aplicación. Todo dependerá de la herramienta de desarrollo, de la complejidad del problema y demás factores del entorno. El modelo contiene una estructura que representa el contexto en donde se implementará la aplicación. Ej: En un sencillo ejemplo, nuestro Modelo podría ser algo así:

public class Product

{

public int id { get; set; }

public string detail { get; set; }

public int price { get; set; }

}


public class Category

{

public int id { get; set; }

public string detail { get; set; }

}

Dos clases, Product y Category, que representarán justamente a productos y categorías de nuestro negocio. Debe quedar claro que un modelo no almacena los datos sino que es el “esqueleto” de dichos datos.


Vista

Una vista es una muestra del modelo en la pantalla. Cuando se diseña una vista, lo que se diseña es la presentación de los datos. La vista es la interfaz entre el usuario y la aplicación. En nuestro ejemplo una vista podría mostrar una lista de productos en un gridview, o los productos asociados a una categoría.

Ej:


Controlador

Un controlador es un manejador, un nexo, entre el modelo y la vista. El controlador es el encargado de traer los datos del modelo y llamar a la vista correspondiente para mostrarla en pantalla. Entonces el controlador es el que realiza la acción y la parte dinámica de la aplicación. Para nuestro pequeño ejemplo, el controlador sería algo así:

public ActionResult Products()

{

Product p1 = new Product(){

id = 1,

detail="caramelo masticable",

price = 0.54

};

Product p2 = new Product(){

id=2,

detail="galleta pepito",

price=1.2

};

List<Product> productos = new List<Product>();

productos.Add(p1);

productos.Add(p2);

return PartialView(productos);

}

Síntesis

Entonces el patrón MVC permite desarrollar aplicaciones de tal manera que los componentes (Modelo, Vista y Controlador) interactúen entre sí pero que a su vez sean totalmente independientes. Es decir, que cada componente puede ser desarrollado independientemente, y por personas distintas, para luego ser unificado en un proyecto final. Puede haber un encargado de realizar la vista, mientras el desarrollador .NET se centra en realizar la dinámica de la aplicación y el desarrollador de datos, se ocupa de diseñar el modelo.

En fin una buena opción para desarrollar aplicaciones de una manera práctica y sencilla. Claro que no es la única forma de desarrollar… pero esta comparativa la dejo para otro artículo.


referencia: MVC Overview