Richmond .NET has put together a great meeting on Thursday, Feb 19th at 6:30 PM at Fahrenheit Technologies.

Brian Noyes is going to cover the User Interface Process Application Block. This is one of the application blocks from Microsoft's Patterns and Practices Group. This group provides guidance on how to architect practical solutions using Microsoft technology. One of the approaches they've taken is to create pre-built application blocks. These are .NET code that contains Microsoft's best thinking about specific parts of a .NET application's architecture. One example is the Data Access Application Block. This provides ADO.NET code that is a reusable data access layer you can plug directly into your applications. Essentially, we've written and tested the data access code so you don't have to. (I cover the data access application block in my ASP.NET Tips and Tricks Seminar.)

The application blocks have some cool features:

  • They are free. Just download them when you need to use them.
  • They represent Microsoft's best thinking on the solution to a problem.
  • They are free. Include them into your own application at will.
  • They have been thoroughly tested, so you don't need to do unit testing of the application block.
  • We give you the source code. If you need to change the code, you are welcome to do so.
  • The source code is free.
  • We give you thorough documentation on using the application blocks. You don't have to figure out how to implement these design patterns yourself.
  • The documentation is free.
  • Did I mention that the price is quite affordable?

Currently, we have the following application blocks, but more are on the way:

  1. Asynchronous Invocation.
  2. Application Updater.
  3. Authorization and Profile.
  4. Caching.
  5. Configuration Management.
  6. Data Access.
  7. Exception Management.
  8. Logging.
  9. Service Aggregation.
  10. Updater.

SecureCoder's list has more detail.

The User Interface Process Application Block implements the model view controller pattern. This allows you to separate the navigation through your application from the details of the forms used in the presentation layer.

For folks who are used to 3-tier architecture: presentation, business logic, and data layer, you can think of the model as the business logic that represents the state of the application. Essentially, it models the application's world. The presentation layer is divided into the view and the controller. The view typically consists of a series of forms that implement the IView interface. The application block provides two implementations called WebFormView and WinFormView. The controller controls the navigation through the program. The benefit of this comes when you maintain the program. If you want to change the navigation flow through the program without re-writing each individual screen, model view controller supports it.

Brian's a very knowledgeable speaker. I spent yesterday enjoying his .NET Essentials Ultra-Compressed One Day Training at CapArea.NET. I may even drive to Richmond myself for this session.