Nota del autor

Si la entrada que estás leyendo carece de imágenes, no se ve el vídeo que teóricamente lleva incrustado o el código fuente mostrado aparece sin formato, podéis conocer los motivos aquí. Poco a poco iré restableciendo la normalidad en el blog.
Este blog es un archivo de los artículos situados previamente en Lobosoft.es y ha dejado de ser actualizado. Las nuevas entradas pueden encontrarse en www.lobosoft.es. Un saludo,
Lobosoft.

lunes, 24 de marzo de 2008

ASP.NET MVC Framework

Para todos aquellos que en su día trabajamos con ASP, la llegada de ASP.Net con su clara separación del código de visualización (HTML) respecto al de ejecución (code-behind, escrito en el lenguaje soportado por el CLR que más nos guste) nos supo a verdadera gloria. Sin embargo, después de trabajar durante bastante tiempo con esta arquitectura (versiones 1.1 y 2.0 del .Net Framework), lo que en su día nos pareció la panacea realmente se reveló como un sistema plagado de problemas de desarrollo y mantenimiento. El uso constante del refresco de la página (postbacks) para recuperar datos del servidor, que no llegaba a solucionarse con el uso de AJAX (o ATLAS) y de servicios web, no era el súmmum de la eficiencia. Para dar solución a estos problemas, Microsoft lanzó el pasado diciembre el ASP.NET 3.5 Extensions Preview, destinado al desarrollo web, que incluye entre sus características el soporte para ADO.NET Entity Framework, ADO.NET Data Services, ASP.NET Dynamic Data y ASP.NET MVC. Con este último nos quedaremos en la entrada de hoy.


ASP.NET MVC Framework permite agilizar los desarrollos basados en el patrón de diseño Modelo Vista Controlador, cuyo diagrama de clases sería el siguiente.


MVC


En este patrón, el Modelo constituye la capa de persistencia de la aplicación, es decir, la capa más cercana a dónde y cómo se almacena la información. La Vista, como su nombre indica, es la encargada de la presentación de la aplicación al usuario, brindando al mismo la interfaz de uso correspondiente. Por último, el Controlador es el responsable de determinar la lógica de ejecución a partir de las acciones que se producen en la aplicación.


Entre otras, el uso del ASP.NET MVC aporta las siguientes ventajas:




  • URLs amigables.

  • Control sobre el código de presentación (XHTML puro).

  • Separación de lógica, presentación y control.

  • Como consecuencia de lo anterior, una mayor flexibilidad para la implantación de pruebas unitarias en el software (y facilita las técnicas de desarrollo TDD).

  • Facilita las técnicas de Inversión de Control (IoC).

  • Los componentes existentes pueden ser reemplazados por componentes de terceros.

  • Uso de ASP.NET "clásico" (eliminando postbacks).

  • Integración con VS2008.


Al crear un proyecto ASP.NET MVC, el asistente creará una estructura organizada para el trabajo, basada en la plantilla de proyecto "ASP.NET MVC Web Application" de Visual Studio. Esta plantilla genera una serie de carpetas para almacenar las clases del Modelo (/Models), de la Vista (/Views) y del Controlador (/Controllers).

Una de las características más llamativas del Framework MVC es el mapeo que realiza de las URL a las diversas clases del controlador. Sin efectuar configuración alguna, las direcciones del tipo /xxx/ serán asociadas con la clase del controlador xxxControler. La conversión de los parámetros de la URL a parámetros de entrada del método de la clase del controlador es automática.


Esta extensión del Framework, como ya ocurría, por ejemplo, con la Web Client Sofware Factory, nos permite desarrollar aplicaciones .Net de una forma más cómoda, segura y eficiente.

6 comentarios:

  1. hola

    Creia que no ibas a mencionar la Web Client Sofware Factory, pero al final lo has hecho.

    Con la Web Client Sofware Factory he desarrollado aplicaciones con el modelo vista-presentador que han quedado muy bien.

    Por otro lado, yo no veo tanto problema con el postback. En ASP 3.0 cada vez habia que recargar los datos, como en el postback.

    ResponderEliminar
  2. Hombre, el problema del postback está sobre todo en su "aspecto web" en aplicaciones que, inicialmente, debieron haber sido de escritorio. Como bien sabes, últimamente existe una fiebre por las aplicaciones web en entornos en los que habría sido más eficiente una aplicación de escritorio.

    Siempre me ha gustado el navegador como "aplicación universal", pero es cierto que para algunas aplicaciones el postback continuo resulta un verdadero latazo: la carga de combos, la validación... requerían del postback o del uso de diversos trucos para evitarlo. Con ASP.NET MVC Framework, además de evitar estos trucos mediante el uso de un patrón más adecuado, el código queda bastante bien separado, y posibilita la automatización de las pruebas.

    En cualquier caso, lo que está claro es que Microsoft, como siempre, intenta hacernos la vida más fácil para que nos sumemos a su causa ;) Algo que, en este caso, agradezco al gigante del software.

    ResponderEliminar
  3. David, Mithdraug Amigos espero puedan ayudarme, Siempre desarrollé en Php Postgres o sea herramientas libres pues ahora tengo un trabajo en el cual Debo desarrollar en ese mismo patrón del que mencionan hasta su uso con Web Client Sofware Factory, quisiera saber si por favor podrían darme algunos links datos o medios de donde pudiece extraer mas información para aprender a desarrollar con ellos (MVP-Web Client Sofware Factory).
    Agradezco su ayuda de antemano. IBAR

    ResponderEliminar
  4. Hola Rabi.

    Existen numerosas páginas en Internet con ejemplos de uso del patrón, y algunas otras en las que viene vinculado al uso de la WCSF. Te paso algunos para que puedas usarlos para profundizar en su conocimiento:

    Web Client Software Factory Sample Download.
    Web Client Software Factory - Model-View-Presenter and Page Workflow.
    Web Client Software Factory - Great Design Pattern Examples, Model-View-Presenter, Dependency Injection, Workflow.
    Model View Presenter (MVP) Bundle.

    Por supuesto, existen muchas más referencias y ejemplos en la red, basta con usar Google para descubrir cientos de ejemplos, pero estos que te paso son bastante interesantes para iniciarse con el patrón y su uso desde la librería de Microsoft para .NET.

    ¡Un saludo!

    ResponderEliminar
  5. Holaa.

    Tengo una pregunta para saber si tu puedes responder.

    Tengo instalado el visual Studio 2008 con WCSF, al realizar un proyecto nuevo, el visual me permite crear una pagina con presentador(que es lo que hace wl wcsf), sin embargo, al abrir un proyecyo ya existente, el visual Studio no me permite crear la pagina con presentador.

    mi Sistema operativo es Windows Vista y tengo cuenta administrador.

    ¿Por que y como puedo arreglar eso?

    ResponderEliminar
  6. Muy buenas Yeison.

    En mi caso, utilizo Visual Studio 2008 junto a WCSF y Windows XP Professional, y puedo tanto crear páginas con su presentador al iniciar un nuevo proyecto como sobre uno ya creado previamente.

    En principio, usando una cuenta de administrador en Windows Vista no deberías tener problema para crearlo. A ver si puedo investigarlo o, en cualquier caso, alguno de nuestros lectores se anima a contestar.

    Un cordial saludo.

    ResponderEliminar