Ron Jacobs

Windows Workflow Foundation

Building Blocks for Everyone

Building Blocks for Everyone

  • Comments 24

I've been thinking about application blocks lately.  It turns out that of all the things that our team (Patterns & Practices) application blocks seem to be the one thing that people most easily connect with.  The problem I have is that there are so many good ideas that could be made into application blocks that our team could never get them all done.  The more I thought about this the more I began to wonder if there was some way in which we could turn the community loose on application blocks and let them build their own.

Of course, the community doesn't really need our permission to do this, however I have found that the community tends to be more active and responsive when we help to organize their efforts a bit.  Our first attempt at doing this was with the Data Access Block workspace.  We shipped this block with support for SQL Server only, but many of our customers said they wanted to have a version that supported Oracle, OLE-DB or DB2.  We took a hard look at this request and decided to give the block to the community and to just let them do it with the hope that the community would extend the block to add this support.  So far I would say that the experiment has been a great success.

Now I am thinking of repeating the process with the Caching application block.  I have a number of enhancements that I would like to see made to this block and so I am putting together a spec which will guide the community on the development.  The question I have in my mind is will people feel comfortable using an application block called “GotDotNet.ApplicationBlock” rather than “Microsoft.ApplicationBlock”. 

My feeling is that if the community block included a full suite of NUnit tests that most people would feel comfortable using it.  What do you think?  Would you feel comfortable using a community block?  What blocks would you like to see the community develop?

  • Just found that MSPetShop v3.0 ( uses the DAAB, it seems it's a modified version of the "official" but it uses parameters caching and it's intented to be hosted in COM+. The benchmark results are also interesting (
  • One more thing. Some people thought that when I said this I was suggesting that we would turn over the entire application blocks program to the community. I'm not suggesting that at all. What I am saying is that there are so many good ideas for blocks out there that our team can never build them all. We need a way to turn the community loose on these ideas that we are not able to build and collaborate with the community in order to build a robust set of blocks, some from Microsoft and some from the community.
  • Rolando -- as I pointed out on the newsgroup, MS PetShop 3.0 only hosts one class and one method in COM+. Not a very compelling case or proof. Plus, they bundle the modified version of the SqlHelper class with the data layer, which is what you would do anyway if you were creating data access library applications in COM+. Again, not very compelling proof, but it is an interesting (and better, in my opinion) approach to use of the DAAB.
  • Cool! MSDN is going to an opensource development model! :)
Page 2 of 2 (24 items) 12