lunes, 11 de agosto de 2014

{ MVC } - ¿Cómo lo usamos en Visual Studio?

Hola a tod@s, ya sabemos un poco sobre el patrón de diseño MVC gracias al articulo anterior ¿Qué es MVC? donde pudimos ver cual es su concepto y filosofía. Ahora veamos como aplicamos este concepto en una solución web con tecnología .Net creando una aplicación basada en este patrón.

Cuando le indicamos a Visual Studio que deseamos crear un nuevo proyecto o aplicación web basándonos en el patrón de desarrollo MVC, este nos ofrece la posibilidad de crear proyectos web usando templates o plantillas prediseñadas que nos ahorran mucho trabajo. Veamos las más importantes:

Tipos de plantillas:

Empty

Esta plantilla agrega las referencias, recursos y estructura de directorios mínimos requeridos para que una aplicación de ASP.NET MVC funcione.

Esta opción es ideal si deseas crear todo desde cero.

Basic

Esta plantilla agrega las referencias y recursos o estructura de directorios mínimos requeridos para que una aplicación de ASP.NET MVC funcione. Además de esto, adiciona los directorios content, Script y Shared.

  • El directorio content se usa para guardar los archivos CSS e imágenes que requiera la aplicación, en este la plantilla Basic adiciona archivos CSS básicos.

  • El directorio Script se usa para agregar los archivos de extensión js o javascript, en este la plantilla Basic adiciona archivos js básicos como el framework de JQuery.

  • El directorio Shared se usa para agregar vistas parciales compartidas por toda la aplicación, en este la plantilla Basic adiciona: el layout o página maestra, una vista para manejo de errores no controlados y una vista llamada _ViewStart donde se especifica cual es el layout por defecto que usarán las otras vistas en caso que no se especifique alguno.

Además de lo anterior, la plantilla adiciona al directorio App_Start un archivo llamado BundleConfig.cs que permite optimizar los tiempos de carga de archivos JS y CSS.

Esta opción es ideal si deseas crear todo desde cero pero, con algunos archivos necesarios que deseas se agreguen desde el inicio a diferencia de la plantilla Empty.

Internet Aplication

Esta plantilla, tiene lo de la plantilla anterior y además es totalmente funcional, es decir, si la ejecutamos veremos una aplicación web funcionando en el explorador. Eso gracias a que cuenta con 2 controladores (AccountController y HomeController) con toda la lógica y funcionalidad implementada en acciones y vistas. La funcionalidad implementada le brinda la posibilidad al usuario de registrarse, identificarse o autenticarse, cambiar la contraseña, ver la página de About y Contacto. Este proyecto se puede usar de base para implementar su aplicación web.

Esta opción es ideal si el proyecto que deseas iniciar, ya esta tan claro que sólo requiere agregar las vistas y controller necesario y modificar las plantillas de presentación.

Intranet Aplication

Esta aplicación cuenta con lo mismo de la anterior, pero su autenticación es en base al directorio activo de Windows.

Esta opción es ideal para aplicaciones que se deseen implementar al interior de una empresa.

Mobile Aplication

Esta aplicación es otra variación de la plantilla Internet Aplication, en este caso la plantilla esta optimizada para trabajar con dispositivos móviles.

Esta opción es ideal para aplicaciones que van a usarse en dispositivos móviles.

Web API

Esta aplicación es otra variación de la plantilla Internet Aplication, en este caso la plantilla cuenta con un controlador Web API preconfigurado. Una Web API es un servicio que se consume por HTTP. ASP.NET WebAPI es el nuevo framework de la familia .NET que tiene como objetivo el facilitarnos en gran medida la construcción de aplicaciones RESTFul orientadas a ofrecer servicios, como podría ser Twiter, World of Warcraft, Amazone o Windows Azure(Aquí tienes documentación: DosIdeas).

Esta opción es una gran opción si se desean construir servicios de datos que las aplicaciones puedan consumir fácilmente a través de AJAX.

View Engines

Es el lenguaje que utilizamos para escribir en la vista código del lado del servidor, ese código se ejecuta en el servidor antes de dibujar la vista y este devuelve código HTML que es dibujado en la página. Maneja el rendering de las vistas a la pantalla en forma de HTML o XML. Estos usan diferentes sintaxis, ASP.NET maneja 2 Razor y AXPX (Web Form).

Razor (Aquí tienes documentación: MSDN) es el view engine recomendado para MVC.

Muy bien, espero que esta información les haya servido para identificar los distintos tipos de proyectos que Visual Studio nos permite crear. En la próxima entrega vamos a crear nuestra primera aplicación web basada en el patrón de diseño MVC.

Quedo atento a cualquier inquietud.

¡¡Hasta pronto!!

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 Colombia de Creative Commons

lunes, 4 de agosto de 2014

{ MVC } - ¿Que es MVC?

Hola a tod@s, ya me estaba sintiendo en deuda con todos ustedes porque hace tiempo no publicaba nada. Realmente creo que es obligación de todos compartir el conocimiento adquirido durante el recorrido en este mundo apasionante que es el software, y recibir retroalimentación de la comunidad para seguir creciendo.

En esta ocasión quiero compartir con ustedes una serie de conocimientos que he estado adquiriendo sobre el patrón de diseño MVC. Iniciemos: Primero miremos de que se trata este concepto.

¿Qué es MVC?

Much@s alguna vez nos preguntamos y ¿qué es esa cosa del MV C que tanto se está mencionando actualmente? Aquí te tenemos una definición de eso que tanta curiosidad está generando. MVC es un patrón arquitectónico cuyo principal propósito es establecer una separación clara entre la interfaz de usuario que presenta la aplicación y la lógica de negocio que maneja la misma. Es decir, queremos tener el control de todo en nuestra aplicación y la mejor manera de hacerlo es separando las cosas. Recuerden la filosofía que usamos en software “divide y vencerás” (Aquí tienes documentación: Wikipedia).

Los elementos que componen el patrón son los siguientes:

  • Modelo: Es la representación de los datos o entidades de negocio que modelan la aplicación. Es decir, una aplicación por lo general requiere manejar una cantidad de datos que servirán para realizar una cantidad de operaciones más adelante. El modelo es el lugar donde se encuentra la lógica que nos permite guardar en la base de datos e interactuar con esos datos tan importantes. Estos datos nos permitirán desplegar vistas al usuario con los datos procesados.
  • Controlador: Es el elemento encargado de recibir y procesar las peticiones HTTP para después retornar una vista concreta. Es aquí donde se reciben todas las solicitudes del cliente, se procesa la petición y se envía al mismo la respuesta relacionada.
  • Vista: Es el contenido o resultado que va a ser devuelto como consecuencia de la petición HTTP. También se puede decir que es la representación visual del modelo. Por eso la vista puede recibir el modelo para poder realizar la presentación de los datos.

Visualmente el patrón se ve asi:

Figura sacada de Fuente

Como podemos ver, el controlador es el encargado de interactuar con el modelo y las vistas. Aunque estas pueden acceder al modelo también, la interacción debe estar centralizada en el controlador para tener un solo punto de procesamiento y no regar lógica de negocio en toda la aplicación. La vista puede acceder al modelo porque en muchas ocasiones necesita las propiedades de las entidades de negocio para presentar los datos al cliente.

El flujo que debe seguir una aplicación que esté basada en este patrón es el siguiente: el cliente realiza una petición HTTP al servidor, este revisa la ruta de la misma y dirige la petición hacia una acción del controlador de la aplicación. El controlador procesa la información y solicita, si es necesario, datos al modelo. Recibida la información del modelo, el controlador la procesa y se la pasa a la vista para que esta se la despliegue al cliente. La vista tiene como objetivo mostrar información. Los procesamientos deben realizarse en el controlador.

Muy bien, espero esto les haya servido para aclarar el concepto implementado por el patrón MVC. En la próxima entrega vamos a iniciar con la implementación de una aplicación web que nos ayudará a ver el funcionamiento del patrón en .Net

Quedo atento a cualquier inquietud.

¡¡Hasta pronto!!

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 Colombia de Creative Commons