Вы находитесь на странице: 1из 5

Desarrollo de aplicaciones web ASP.

NET MVC Es un framework, un marco de trabajo cuya tercera versin acaba de ver la luz, que ha sido creado por Microsoft con objeto de ayudarnos a desarrollar aplicaciones que sigan la filosofa MVC sobre ASP.NET. Adems del conjunto de libreras (ensamblados) que proporcionan las nuevas funcional idades a nivel de API, incluye plantillas y herramientas que se integran en Visu al Studio 2008 y 2010 (tanto en sus versiones Express como en sus hermanas mayor es) para facilitarnos un poco las cosas. http://lh4.ggpht.com/_O9D62hXq-ng/S925v15P1dI/AAAAAAAABQ0/l8A2BaR4CBU/image5.png ?imgmax=800 Visual Studio 2010 ya incorpora ASP.NET MVC de serie, mientras que en la versin 2 008 es necesario descargar e instalar el software (puedes hacerlo con el Web Pla tform Installer u obtenindolo desde el sitio de Microsoft). En cualquier caso, una vez montado, Visual Studio mostrar un nuevo tipo de proyec to (ASP.NET MVC Web Application) que nos permitir crear el esqueleto bsico de un p royecto de este tipo. Y ya para cuando estemos en faena, el entorno ofrece multitud de utilidades para hacer nuestro trabajo ms fcil, como la herramienta de creacin de vistas automticas, el desplazamiento entre controladores y vistas, o plantillas para la definicin d e controladores, entre otras. Qu es MVC? Aunque de forma algo simplista, podramos definir MVC como un patrn arquitectural q ue describe una forma de desarrollar aplicaciones software separando los compone ntes en tres grupos (o capas): http://i1.asp.net/asp.net/images/mvc/21/image001.png Modelos. Los objetos del modelo son las partes de la aplicacin que implementa n la lgica de dominio de la aplicacin s de datos. A menudo, los objetos del modelo de recuperar y almacenar el estado del modelo en una base de datos. Por ejemplo , un objeto de producto puede recuperar informacin de una base de datos, operar s obre l, y luego escribir la informacin actualizada en una tabla Productos en SQL S erver. Puntos de vista. Puntos de vista son los componentes que muestran la interfa z de la aplicacin s de usuario (UI). Normalmente, esta interfaz de usuario es cre ado a partir de los datos del modelo. Un ejemplo podra ser un punto de vista de e dicin de una tabla de productos que muestra cuadros de texto, listas desplegables y casillas de verificacin basada en el estado actual de un objeto de Productos. Controladores. Los controladores son los componentes que se encargan de la i nteraccin del usuario, trabajar con el modelo y, finalmente, seleccionar una vist a para hacer que se muestra la interfaz de usuario. En una aplicacin MVC, la vist a slo muestra la informacin, el controlador se encarga y responde a la entrada del usuario y la interaccin. Por ejemplo, el controlador se encarga de cadena de con sulta de valores, y pasa a estos valores para el modelo, que a su vez las consul tas de la base de datos mediante el uso de los valores. El Controlador, que acta como intermediario entre el Modelo y la Vista, gesti onando el flujo de informacin entre ellos y las transformaciones para adaptar los datos a las necesidades de cada uno.

MVC son las siglas de Modelo-Vista-Controlador, y se trata de un modelo muy madu ro y que ha demostrado su validez a lo largo de los aos en todo tipo de aplicacio nes, y sobre multitud de lenguajes y plataformas de desarrollo. ======================================================================= ASP.NET MVC es una forma de crear aplicaciones para la web basadas en ASP.NET de una forma radicalmente distinta a los formularios web, para que te hagas una id ea: no existe el postback, no hay viewstate, no hay eventos, el diseador visual deja de tener sentido, como consecuencia no hay controles de servidor, al menos en la forma en que los conocemos, no es necesario utilizar los archivos code-behind de las pginas .aspx, las pginas no siguen complejos ciclos de vida; de hecho, el proceso de una pe ticin es infinitamente ms simple que en Webforms, nosotros controlamos totalmente el cdigo de marcado generado, tambin tenemos control absoluto sobre las URLs de acceso a nuestra aplicacin; ahora, con ASP.NET 4 tambin es posible con Webforms, pero en versiones anteriores (y todava actuales como .NET 3.5) no era tarea fcil, podemos sustituir componentes internos del framework para adaptarlo a nuestr as preferencias, basa muchos aspectos en el concepto convencin sobre configuracin, tan satisfac toriamente utilizado en otros entornos, se integra con Ajax de forma natural, sin artificios como los UpdatePanels y similares, favorece la introduccin de buenas prcticas como la inversin de control o inyecc in de dependencias, y un largo etctera. Realmente, ASP.NET MVC es una tecnologa muy distinta y que req uiere que los desarrolladores tengamos que acostumbrarnos a pensar de otra maner a y dedicar tiempo a aprenderla para sacarle partido. Sin embargo, el hecho de que el framework est creado sobre ASP.NET hace que no te ngamos que partir de cero: muchos de los conocimientos que ya tenemos seguirn sie ndo vlidos y aplicables en este nuevo contexto. ======================================================================= Las ventajas de una aplicacin Web basada en MVC ASP.NET MVC ofrece las siguientes ventajas: Es ms fcil para manejar la complejidad de dividir una aplicacin en el modelo, la vista, y el controlador. No utilizar la vista las formas del Estado o en un servidor. Esto hace que el ideal de framework MVC para los desarrolladores que quieren tener el control total sobre el comportamiento de una aplicacin. Se utiliza un patrn Front Controller que procesa las solicitudes de aplicaci ones Web a travs de un nico controlador. Esto le permite disear una aplicacin que es compatible con una infraestructura de enrutamiento rico. Para ms informacin, cons ulte Front Controller en el sitio web de MSDN. Ofrece un mejor soporte para desarrollo basado en pruebas (TDD). Esto funciona bien para las aplicaciones web que son compatibles con los gr andes equipos de desarrolladores y diseadores web que necesitan un alto grado de control sobre el comportamiento de la aplicacin.

Clara separacin de responsabilidades entre interfaz, lgica de negocio y de co ntrol, que adems provoca parte de las ventajas siguientes. Facilidad para la realizacin de pruebas unitarias de los componentes, as como de aplicar desarrollo guiado por pruebas (TDD). Simplicidad en el desarrollo y mantenimiento de los sistemas. Reutilizacin de los componentes. Facilidad para desarrollar prototipos rpidos. Sencillez para crear distintas representaciones de los mismos datos. Los sistemas son muy eficientes, y a la postre ms escalables. Pero bueno, tambin se pueden citar algunos inconvenientes: Tener que ceirse a una estructura predefinida, lo que a veces puede increment ar la complejidad del proyecto. De hecho, hay problemas que son ms difciles de res olver, o al menos cuestan algo ms de trabajo, respetando el patrn MVC. Al principio puede cierto esfuerzo adaptarse a esta filosofa, sobre todo a de sarrolladores acostumbrados a otros modelos ms cercanos al escritorio, como Webfo rms. La distribucin de componentes obliga a crear y mantener un mayor nmero de fich eros. ========================================================================= La aparicin del framework MVC no significa la muerte prxima de los Webforms de ASP .NET En absoluto. Son simplemente dos filosofas diferentes para conseguir lo mismo, pgin as web! La tecnologa de Webforms es muy til para asemejar el desarrollo de aplicaciones we b a las de escritorio, ocultando la complejidad derivada del entorno desconectad o y stateless (sin conservacin de estado) del protocolo HTTP a base de complejos roundtrips, postbacks y viewstates, lo que nos permite crear de forma muy produc tiva formularios impresionantes y que el funcionamiento de nuestra aplicacin est g uiado por eventos, como si estuviramos programando Winforms. Sin embargo, esta misma potencia a veces hace que las pginas sean pesadas y difcil mente mantenibles, adems de dificultar enormemente la realizacin de pruebas automa tizadas. Y por no hablar de comportamientos extraos cuando intentamos intervenir en el ciclo de vida de las pginas, por ejemplo para la carga y descarga de contro les dinmicos. ASP.NET MVC propone una forma distinta de trabajar, ms cercana a la realidad del protocolo y, curiosamente, ms parecida a cmo se haca unos aos atrs, cuando controlbamo s cada byte que se enviaba al cliente o se reciba de ste. No existen, por tanto, c onceptos como el mantenimiento del estado en el viewstate, ni el postback, ni no s valdrn los controles de servidor basados en estas caractersticas, que en la prcti ca son la mayora. Sin embargo, dado que el framework est creado sobre ASP.NET, ser posible utilizar pginas maestras, codificar las vistas en un .aspx utilizando C# o VB.NET, usar lo s mecanismos de seguridad internos, control de cach, gestin de sesiones, localizac in, etc. ================================================================================ === Qu tipo de tecnologas se puede usar para implementar el Modelo? Curiosamente, una de las cosas sobre el Modelo que ms llam la atencin al aparecer e

l framework MVC fue precisamente la ausencia de directrices o indicaciones sobre cmo deba implementarse ste. De hecho, la carpeta /Models, utilizada por convencin p ara almacenar los componentes de esta capa, vena vaca en la versin 1.0 del producto . La explicacin, sin embargo, era bien sencilla: ASP.NET MVC es completamente indep endiente de del Modelo, es el desarrollador el que elige cmo implementarlo siembr e que se respeten los lmites impuestos por el patrn MVC. Teniendo en cuenta las responsabilidades del Modelo, habitualmente encontraremos en esta capa: entidades de negocio, clases de lgica empresarial, que implementan los procesos y reglas de negocio , mecanismos de acceso a datos, por ejemplo usando directamente las clases de ADO.NET, o mejor an, un ORM que nos asle de la persistencia, como Linq2Sql, Entity framework o el veterano NHibernate. Qu tipo de tecnologas se puede utilizar en las vistas? El objetivo de las vistas es componer el interfaz de usuario y los mecanismos de interaccin con el usuario. Lo habitual, por tanto, ser utilizar algn lenguaje de m arcado, como XHTML HTML, CSS y Javascript, aderezado con bloques de cdigo de serv idor que se ejecutar en el momento de renderizar la pgina. Tambin puedes utilizar la tecnologa Ajax para enviar u obtener informacin desde el servidor, siempre mediante llamadas a acciones definidas en el controlador, que te permitirn crear interfaces ms dinmicos y actuales. Pero sobre todo, nada de utilizar controles de servidor (Label, Button, Dropdown s ). Estos debern ser sustituidos por sus elementos (X)HTML equivalentes, lo que im plica que perderemos los automatismos provistos por Webforms para el mantenimien to del estado de los controles. <for each="var name in names"> <test if="name == 'Jose'"> <p>Yo mismo</p> <else/> <p>Amigo: ${name} </test> </for> Otra posibilidad interesante que aprovecha y demuestra la flexibilidad de la arq uitectura de ASP.NET MVC framework, es la utilizacin de motores de vistas distint os al estndar. Existen multitud de motores ligeros (NHaml, Spark, Brail, NVelocity ), cada uno co n su propio lenguaje de marcas y convenciones, que permiten la definicin de vista s a partir de plantillas como la que se muestra en el lateral (ejemplo de Spark) . De todas formas, ya que has ledo hasta aqu, permteme un consejo: aprende a utilizar ASP.NET MVC framework. Despus podrs decidir con conocimiento de causa si te convi ene o no. Bueno hasta aqu llegamos! Espero que te haya sido de utilidad, y te sirva como mot ivacin para introducirte en esta tecnologa. Puedes encontrar ms informacin en:

http://es.wikipedia.org/wiki/Modelo_Vista_Controlador#Frameworks_MVC http://lh4.ggpht.com/_O9D62hXq-ng/S925v15P1dI/AAAAAAAABQ0/l8A2BaR4CBU/image5.png ?imgmax=800 http://www.asp.net/mvc/tutorials www.youtube.com/watch?v=sRNGSY8us00 http://www.dotnetfunda.com/articles/article1297-how-to-create-a-simple-hello-wor ld-aspnet-mvc-tutorial-no-1.aspx http://www.w3schools.com Documentos originales de definicin de MVC, de Trygve M. H. Reenskaug, en Xero x (ao 1978!) Tutorial de Java, Arquitectura MVC Model-View-Controller Web presentation pattern en MSDN Fuente: www.variablenotfound.com

Вам также может понравиться