I'm working with a multitier SOA based enterprise application with every complex business logics. Many business validations require large amount of support data from database, which slow down the performance. The number of concurrent users are about 1000. The client is multitier with WinForms on top.
We are considering almost all the enterprise library blocks.
Validation Application Block
In my opinion, there are better tools for most everything the Enterprise Library does.
Data Access Block
I'll admit it has been a couple years since I worked with EntLib on a project, but as I recall the Data block was very limited in what it offered. Full featured ORM's like NHibernate or Entity Framework, or even query tools like SubSonic offer far more. Every project I work on that doesn't use NHibernate, I end up implementing features that I would get "free in the box" with NHib.
Caching Application Block
Using an ORM with caching would cover most everything the caching block does.
Exception Handling Block
There's some good ideas starting here, but the concept can be greatly improved upon. Rinat Abdullin has some good starting info on leveraging action policies for exception handling.
Logging Application Block
Use NLog or log4net. Period. If you need a facade, use Simple Logging Facade or Common.Logging. Logging is a very limited a well defined component. The frameworks are nearly identical and stable. No need overcomplicating this.
Policy Injection & Unity Blocks
Research DI/IoC and pick one. Can't hardly go wrong. Here's a good list of one's to consider.
Security & Validation Blocks
At this point, we've found better options for so much of the EntLib, that bringing it in as a dependency to support Security or Validation feels to heavy. Again, there's plenty of other tools to assist with Security (Rhino Security) and Validation (xVal, Lokad)
I've used (an older version of) the Enterprise Libraries for a while and had no problems.
I think there's definitely an advantage using a cohesive set of libraries rather than piecing together a patch-work of libraries (if you were going to be using a lot).
I've found the logging block to be really good - it's highly configurable, and if you use it well you'll be able to log comprehensively and with great flexibility.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With