Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

To use Enterprise Library or not?

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

    1. Is enterprise library right way to go?
    2. Please suggest libraries/frameworks that are better in your opinion, but consider telling way they are better.
    3. Would it be bad practice to mix enterprise library with other libraries? For example we consider using log4net for logging.
like image 574
Amir Rezaei Avatar asked Nov 30 '25 17:11

Amir Rezaei


2 Answers

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)

like image 99
quentin-starin Avatar answered Dec 04 '25 15:12

quentin-starin


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.

like image 31
Adrian K Avatar answered Dec 04 '25 14:12

Adrian K



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!