﻿# Application Blocks...again...probably...

<datetime class="hidden">2004-01-05T00:00</datetime>
<!-- category -- mostlylucidcouk, Imported, ASP.NET, C#, Software Development -->

I've written about these before, but if you are planning to develop any sort of ASP.NET
/ other .NET based app, you can save yourself a whole heap of time an aggrovation
by having a look at the .NET application blocks, for instance the [Data
Access Application Block](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/daab-rm.asp) provides a very useful (and quick...and free source)
satatring point for any DAL. 

The [Exception
Management](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/emab-rm.asp) block provides a really useful, extensible interface for reporting
any exceptions in your apps...

A couple of new blocks have also appeared recently, of which the most useful in ASP.NET
apps would seem to the the [Configuration
Management](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/cmab.asp) block. Again, this provides a simple, extensible way to handle configuration
within your app (come on, how many times have you needed a way to have a writable
config file...well, now you've got it!).

Along with these three, there's another 5 blocks, (click on any of the links above
and you'll see links to the others). The Aggregation Block provides a very nice way
to composite information from multiple sources and to provide a consistent interface
to that information, Asynchronous Invocation...does what it says. Caching Application
Block - a consistent way to handle cachining in any .NET app (especially things like
web services!). Last but not least there's the Updater (guess what that does :-P))
and the UI Process block. Now this one is very interesting (and very new!)...here's
the summary:

The User Interface Process Application Block provides a simple yet extensible framework
for developing user interface processes. It is designed to abstract the control flow
and state management out of the user interface layer into a user interface process
layer. This enables you to write generic code for the control flow and state management
of different types of applications (for example, Web applications and Windows-based
applications) and helps you write applications that manage users' tasks in complex
scenarios (for example, suspending and resuming stateful tasks). This leads to simpler
development and maintenance of complex applications. The User Interface Process Application
Block can easily be used as a building block in your own .NET application. 

How cool is that...almost [Struts](http://jakarta.apache.org/struts/) for
.NET (sorry, obscure Java reference...struts is very cool!