I'm not exactly sure when to use Enterprise Library, and when not to... and that is making me not learn it at all. I feel that I have enough of a reason to start learning then perhaps one day I'll use it.

Are there times when I should use EntLib?

When shouldn't I use it?


I've used EntLib for many years (since they were indiviual App Blocks). I've found that at times it can be pretty heavy as far as the size of the components, especially if you only need one block and it needs to be downloaded. Often I'll use the Data and Logging components together and that feels like enough functionality to justify the size. If your app is strictly on the server side then this really isn't too much of an issue. One of the things that is nice about it is that if you need more than one block you don't have to go to multiple implementations from multiple vendors that are configured in different ways. They also provide a tool to help with the configuration (that's a plus and a minus, a plus that they make it easy, a minus that they NEED a tool to help configure it).

I've had the pleasure of being invinted to a couple of Patterns and Practices workshops where I was working side by side with the team members who wrote EntLib. The intent in creating EntLib was to implement Microsoft's Best Practices in common components that everyone needs that are not part of the base Framework. They are very stable, provide very good performance and very good flexibility.

I would start by using some of the easier blocks, like Data and Logging. They're not too hard to configure and get started with. Then once you understand those it will be a bit easier to move on to some of the other blocks. I have not found a situation where you shouldn't use them, other than when you don't need them.


There is a lot of good stuff in EntLib, but there are reasons those things are not in the full framework. The logging stuff is excellent, but the data parts have been surpassed by later additions to full framework in my opinion. I have also found that some of the blocks do not fit very well in certain situations.

As mentioned the overhead is significant in some cases as well and the config can be quite confusing.

Most of my apps have some degree of performance constraints, so I tend to use the EntLib stuff as an example and write my own features more often than using the EntLib things.

Used this way it has been an excellent learning tool.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.