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.
- Caching Application Block
- Data Access Application Block
- Exception Handling Application Block
- Logging Application Block
- Policy Injection Application Block
- Security Application Block
- Unity Application Block
-
Validation Application Block
- Is enterprise library right way to go?
- Please suggest libraries/frameworks that are better in your opinion, but consider telling way they are better.
- Would it be bad practice to mix enterprise library with other libraries? For example we consider using log4net for logging.
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)