Qué Es MVC - mvc5
Qué Es MVC - mvc5
Por qu MVC?
Quizs, para que a todos nos queden claras las ventajas del MVC podamos
echar mano de unos cuantos ejemplos:
Aunque no tenga nada que ver, comencemos con algo tan sencillo como son
el HTML y las CSS. Al principio, en el HTML se mezclaba tanto el contenido
como la presentacin. Es decir, en el propio HTML tenemos etiquetas como
"font" que sirven para definir las caractersticas de una fuente, o atributos
como "bgcolor" que definen el color de un fondo. El resultado es que tanto
el contenido como la presentacin estaban juntos y si algn da
pretendamos cambiar la forma con la que se mostraba una pgina,
estbamos obligados a cambiar cada uno de los archivos HTML que
componen una web, tocando todas y cada una de las etiquetas que hay en
el documento. Con el tiempo se observ que eso no era prctico y se cre el
lenguaje CSS, en el que se separ la responsabilidad de aplicar el
formato de una web.
Al escribir programas en lenguajes como PHP, cualquiera de nosotros
comienza mezclando tanto el cdigo PHP como el cdigo HTML (e incluso el
Javascript) en el mismo archivo. Esto produce lo que se denomina el "Cdigo
Espagueti". Si algn da pretendemos cambiar el modo en cmo queremos
que se muestre el contenido, estamos obligados a repasar todas y cada una
de las pginas que tiene nuestro proyecto. Sera mucho ms til que
el HTML estuviera separado del PHP.
Si queremos que en un equipo intervengan perfiles distintos de
profesionales y trabajen de manera autnoma, como diseadores o
programadores, ambos tienen que tocar los mismos archivos y el diseador
se tiene necesariamente que relacionar con mucho cdigo en un lenguaje
de programacin que puede no serle familiar, siendo que a ste quizs solo
le interesan los bloques donde hay HTML. De nuevo, sera mucho ms fcil
la separacin del cdigo.
Durante la manipulacin de datos en una aplicacin es posible que estemos
accediendo a los mismos datos en lugares distintos. Por ejemplo, podemos
acceder a los datos de un artculo desde la pgina donde se muestra ste, la
Modelos
Es la capa donde se trabaja con los datos, por tanto contendr mecanismos
para acceder a la informacin y tambin para actualizar su estado. Los
datos los tendremos habitualmente en una base de datos, por lo que en los
modelos tendremos todas las funciones que accedern a las tablas y harn
los correspondientes selects, updates, inserts, etc.
No obstante, cabe mencionar que cuando se trabaja con MCV lo habitual
tambin es utilizar otras libreras como PDO o algn ORM como Doctrine,
que nos permiten trabajar con abstraccin de bases de datos y persistencia
en objetos. Por ello, en vez de usar directamente sentencias SQL, que
suelen depender del motor de base de datos con el que se est trabajando,
se utiliza un dialecto de acceso a datos basado en clases y objetos.
Vistas
Las vistas, como su nombre nos hace entender, contienen el cdigo de
nuestra aplicacin que va a producir la visualizacin de las interfaces de
usuario, o sea, el cdigo que nos permitir renderizar los estados de nuestra
aplicacin en HTML. En las vistas nada ms tenemos los cdigos HTML y
PHP que nos permite mostrar la salida.
En la vista generalmente trabajamos con los datos, sin embargo, no se
realiza un acceso directo a stos. Las vistas requerirn los datos a los
modelos y ellas se generar la salida, tal como nuestra aplicacin requiera.
Controladores
Contiene el cdigo necesario para responder a las acciones que se solicitan
en la aplicacin, como visualizar un elemento, realizar una compra, una
bsqueda de informacin, etc.
En realidad es una capa que sirve de enlace entre las vistas y los modelos,
respondiendo a los mecanismos que puedan requerirse para implementar
las necesidades de nuestra aplicacin. Sin embargo, su responsabilidad no
es manipular directamente datos, ni mostrar ningn tipo de salida, sino
servir de enlace entre los modelos y las vistas para implementar las
diversas necesidades del desarrollo.
Las vistas envan al usuario la salida. Aunque en ocasiones esa salida puede
ir de vuelta al controlador y sera ste el que hace el envo al cliente, por
eso he puesto la flecha en otro color.
ASP.NET MVC
Como muchos ya sabrn hace poco Microsoft lanzo nuevas versiones de sus
productos y frameworks, entre ellos Visual Studio 2013 (producto) y ASP.NET
MVC 5(framework).
ASP.NET MVC 5 no trae demasiadas novedades (como en versiones
anteriores) y por el momento solo esta disponible de forma totalmente
integrada con VS2013 (es posible utilizarlo en VS2012 instalando los
binarios por medio de Nuget: Install-Package Microsoft.AspNet.Mvc).
En este post solo vamos a nombrar las nuevas features del framework, y en
siguientes post vamos a ampliar sobre cada una.
Caractersticas:
One ASP.NET
Es una nueva plantilla de proyectos ASP.NET que permite customizar y
configurar nuestras aplicaciones MVC.
ASP.NET Identitity
Los templates de proyectos ASP.NET MVC se han actualizado para
usarASP.NET Identity en cuestiones de autenticacin y gestin de identidad.