Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)

1,077 views

Published on

[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)

  • Be the first to comment

  • Be the first to like this

[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)

  1. 1. ASP.NET MVC A FULL<br />Matias Juan / mjuan@tecnosoftware.com.ar<br />Jonathan Solarz / jsolarz@tecnosoftware.com.ar<br />Tecnosoftware S.A.<br />
  2. 2. Objetivos<br />Que es ASP.NET MVC<br />Unit Testing con ASP.NET MVC<br />Extendiendo ASP.NET MVC<br />
  3. 3. ASPNET MVC<br />Foco en separación de responsabilidades (MVC)<br />REST (en contraste a Postback)<br />Extensibilidad <br />Mejor soporte para TDD<br />
  4. 4. Componentes principales en MVC<br />Routing, Routetables<br />Model, BussinessLogic & DomainEntities<br />Controllers, PresentationLogic<br />Views, PresentationModel, Modelstate<br />
  5. 5. El framework en funcionamiento<br />Browser<br />MvcHandler<br />Controller<br />Model<br />View<br />Post<br />New<br />InvokeAction<br />InvokeMethod<br />Lookup View<br />Render (ViewData)<br />HTML<br />
  6. 6. Demo<br />Ejemplo simple de que hace el ASPNET MVC<br />
  7. 7. Unit testing<br />Probar partes del sistema de manera individual asegurando que funcionan correctamente<br />Provee un contrato escrito y estricto que una porcion de código debe cumplir<br />Como resultado podemos encontrar problemas de manera temprana y de manera instantánea<br />
  8. 8. Probando la lógica de presentación<br />Aseguremos que todo lo que llega a la vista esta testeado<br />Probamos lógica de navegación<br />Probamos las validaciones<br />La vista la podemos probar navegando el sitio manualmente o con alguna herramienta automatizada<br />
  9. 9. Demo<br />Agregamos algo de unit testing<br />
  10. 10. ModelBinders<br />Extensión del framework que permite crear instancias de clases en base a valores enviados por request. <br />Al action llega el objeto instanciado y no los valores del request<br />Nos permite participar del ciclo de vida de creación de la instancia permitiéndonos por ejemplo validar los atributos y agregar mensajes de error invalidando el modelo<br />
  11. 11. Demo<br />Vemos como simplificamos la responsabilidad del controller agregando el uso de binders<br />
  12. 12. ActionFiltrers<br />Nos permiten interceptar distintos puntos de la ejecución de un action<br />Se decoran controllers y/o actions<br />Reutilizamos lógica de presentación<br />Ejemplos<br />Validaciones<br />Carga de datos en el viewData<br />Caché<br />
  13. 13. Demo<br />Aplicamos lógica de presentación en distintos puntos de la aplicación. La responsabilidad la tiene el filtro<br />
  14. 14. ControllerFactory<br />Necesitamos cambiar la manera de instanciar controllers<br />Por ejemplo: Para integrar la solución con un IoCcontainer y poder inyectar dependencias<br />Request<br />MvcHandler<br />IController<br />MvcRouteHandler<br />IControllerFactory<br />
  15. 15. Demo<br />Integramos la solución con un IoCcontanier y todo es automágicamente inyectado<br />
  16. 16. Contribuciones<br />MvcContrib<br />ViewDataExtensions : nospermitetipar el viewDataparavariosobjetos<br />Factories de controllers para containers IoC: StructureMap, Windsor, Spring.Net, etc<br />UI Helpers<br />ActionResults<br />Filters<br />View Engines<br />Controllers<br />Binders<br />
  17. 17. Referencias<br />ASPNET MVC<br />Referencia: http://www.asp.net/learn/mvc/<br />Books: http://www.asp.net/community/books/<br />Unit Testing y Mocking<br />Nunit: http://www.nunit.org/<br />NMOCK: http://www.nmock.org/index.html<br />RHINO MOCK: http://ayende.com/projects/rhino-mocks.aspx<br />Extras<br />MvcContrib: http://www.codeplex.com/MVCContrib<br />ValidatorToolkit: http://mvcvalidatortoolkit.codeplex.com/<br />
  18. 18. ¿Preguntas?<br />

×