Sessions (each session runs approximately 75 minutes):
Session 1: Layer up your ASP.NET MVC Code
Many developers agree that keeping the controller thin is a good thing. However, as the controller gets thinner some other component becomes inevitably larger. The key message of this session is that the controller is part of the ASP.NET MVC infrastructure; as such, it should contain any piece of business logic. All the controller does, therefore, is preparing a call to a new worker object that orchestrates the action and returns data for the view. This component—we’ll call it, the orchestrator—is typically controller-specific and may be injected via containers. The orchestrator should be fully testable and receive anything it needs as plain data from the controller, including session state and cached data. The session shows how to build orchestrators and discusses their role in regard to testability.
Session 2: Using Action Filters to Increase Readability
You cannot realistically write an ASP.NET MVC controller class without using extensively action filters. In ASP.NET MVC, an action filter affects the way in which controller methods execute. An action filter can be used to trap exceptions, authorize access, cache output, and validate requests. This is only the first stage of flexibility, however. In this session, you’ll first see how to create custom filters to perform a variety of custom tasks including compressing the response, adapting to the browser, filling up view dependencies. Up to here, however, filters are only attached to methods statically. The next step consists in defining an infrastructure for you to load filters dynamically thus gaining the ability to toggle certain behavior on or off on the fly.
Dino Esposito is an IDesign software architect and prolific author who writes the Cutting Edge column for MSDN Magazine. Dino is also the author of two popular architecture books for Microsoft Press. They are "Microsoft .NET: Architecting Applications for the Enterprise" (2008) and "ASP.NET and AJAX: Architecting Web Applications" (2009). Get in touch at http://weblogs.asp.net/despos.
If you have any questions regarding this event or would like a Bill to Ship to invoice, or problems with registration, please contact us at:
Phone: 800.793.5697 (toll–free) or 1.970.663.4700
For group rates, please contact customer service