jueves, septiembre 30, 2010

Model View Presenter en ASP.NET WebForms

En la reunión 37 de la comunidad Tijuana Net, realizada el pasado 29 de Septiembre en la Universidad Autónoma de Baja California. Hablé sobre el patrón MVP (Model View Presenter) en aplicaciones escritas usando ASP.NET WebForms.

Actualmente considero una mejor alternativa utilizar el framework ASP.NET MVC sobre WebForms sin embargo, por diversos motivos, muchos de nosotros aun tenemos que trabajar en aplicaciones escritas con WebForms. Es por ello que me pareció buena idea presentar como aplicar este patrón y así quienes aun trabajamos en WebForms podamos obtener algunas de las ventajas de separación de intereses y capacidad de pruebas que brinda MVC.

En la presentación inicie una aplicación WebForms de manera “tradicional” después la modifiqué para poder aplicar el patrón MVP y así tener la posibilidad de realizar pruebas unitarias al código que antes estaba en el code behind. En la segunda parte de la presentación modifiqué una vez mas el código de la aplicación para poder tener una estructura de clases reutilizable, además de utilizar un contenedor de dependencias.

Abajo pueden ver la presentación y el material que se utilizó. Agradezco sus comentarios que puedan ayudar a mejorar siguientes presentaciones. De igual forma si tienen alguna duda sobre la presentación no duden en hacérmela llegar a través de los comentarios del blog.

Agradezco también a todos los asistentes su presencia y participación durante la reunión. Y claro a la comunidad Tijuana Net y a su líder Gabriel Flores por hacer posible estas reuniones.

Screencast

Fotos

Proyecto de ejemplo



Reuniones previas mencionadas (para ver los screencasts):
Test Driven Development
IoC containers

4 comentarios:

  1. Amigo, vi tu codigo y vi que la vista invocas al presentador cuando debe de ser al reves. Recuerda el presentador es el que le dice a la vista que debe de hacer y no al reves. Te recomiendo le echez un vistazo al patrón Passive View.
    En este patron la vista no sabe nada del modelo, por lo que no le pasas una entidad de negocio sino algo mas abstracto un IEnumerable para colecciones y inyectas desde el presentador los valos del modelo a propiedades de la vista que son en el control de usario webcontrols.

    Saludos,

    Manolo Herrera

    ResponderEliminar
  2. Gracias Manolo, le echare un vistazo a Passive View.

    ResponderEliminar
  3. Hola Mario, estoy interesado en el tema de MVP quisiera pedirte si por favor me puedes explicar como empezar un proyecto con MVP desde el principio.

    Saludos.

    ResponderEliminar
  4. Hola Mauricio, en el vídeo empiezo un proyecto desde el principio.

    ResponderEliminar