Microsoft Application Blocks
I'm sure by now you have heard of the Microsoft Application Blocks. These are sets of source code which provide an infrastructure for different functionality. For example, there is the Data Access Block, the Caching Block, and the Configuration Block, among others. Microsoft has rolled all these into one big "thing" called the
Enterprise Library.
I'm blogging about this because I just read a post by Nick Malik entitled A Case For and Against the Enterprise Library. In his post, Nick addresses the issue of when is it better to use the Enterprise Library, versus building your own code. He addresses some pros and cons for using the Library, and recounts a conversation he had with a developer. In the end, he seems to come to the conclusion that there are no good reasons for NOT using the library.
I tend to agree. I admit, the only block I currently use is the Data Access Application Block v2, but man, I don't think I could live without it. I feel that it really makes my code very clean and very readable. It makes it easy to cut and paste code to other areas of the same, or even separate applications. And I personally found it rather easy to use.
Nick says that his first impression of the application blocks was that they were unnecessarily complex. Again, my experience is just with the Data Access block, but I don't think it was that complex. And I agree with Nick in that the documentation is outstanding, and makes it very quick and easy to pick up on how to use the blocks. I know the Data Access block also came with working examples, so I would guess the others did too, which really helped in getting everything up and running quickly.
I think the reason a lot of developers are not using the Enterprise Library is because they do not want to put the initial time investment into going through the documentation and learning how to use a particular block. But for me, it was worth it for the Data Access block. I figure I put about 2 days into really understanding the ins and outs of how it works, and I feel it was time well spent.
Now I just have to convince myself to make the same investment with the other blocks that make up the Library. See, I still fall into the above trap.
What about you? Are you using the Enterprise Library? Why or why not? Also, has anyone heard anything about the Enterprise Library and VS2005?