Microsoft Enterprise Library has somewhat controversial feedback. Some developers like it, some say it is overengineered. Are there any alternatives to it? Both free and commercial.
You can take a look at Rockford Lhotka’s CSLA .NET framework. Not sure how popular it is though.
You will find a number of different libraries available, both commercially and Open Source, that tackle the same problems targeted by the Enterprise Library.
Some of them may do a better job than the Enterprise Library at solving a particular class of problems, while others may provide richer functionality.
The real advantage of Enterprise Library is that it offers a complete set of solutions that are deeply integrated with each other.
These solutions are implemented as modules that can be used independently but can also be combined together, depending on the particular needs of the application.
I would recommend considering the Enterprise Library in two main scenarios:
- You need a particular piece of functionality that is not available in any other library (like Exception Handling)
- You plan to use multiple modules to solve a series of problems (like Logging and Exception Handling), in which case you can benefit from a unified configuration model and some nice tooling support around it.
I don't think there is an alternative that maps one to one to Enterprise Library.
The Spring.NET Framework has some of the EL functionality. It provides:
But Spring.NET also provides much more functionality and is a bigger architectural decision than EL (IMO).