I get the impression now and then that some developers consider Enterprise Library to be “not an option” for one reason or another. “Too bloated”, “not flexible”, etc….
At my recent .NET SIG presentation on AzMan, I asked who was using EntLib. I was the only one to raise my hand. Personally, I think that people in the audience use it, but maybe aren’t will to “admit it”?
I don’t get it!
I’m using EntLib 4.1 again on my latest project and it’s awesome. We needed to do exception handling, logging, and tracing for the web service. One of the other developers hadn’t used EntLib personally but had heard that it couldn’t log “custom data” without a lot of extra work. So she added her own custom implementation that saved the log and exception data to the database directly.
We had been planning to use EntLib all along, so I went ahead and implementing the exception handling, logging and tracing with EntLib. After showing her (and my manager) the code, the resulting log data, and the flexibility of configuration (via a nice GUI), they were sold.
One of the features that I like the most is the ability to log messages to MSMQ and then use the MSMQ reader service to distribute them. This guarantees delivery, but doesn’t bog down the application with synchronous calls to save to the database, to a log file, or send emails.
Sure, you could write all this yourself, but why bother? It’s already written, and done much better than I could do in the time span that I get for most projects. EntLib is big and brings a lot of extra assemblies with it, but I think the extra CPU it burns is a more than fair trade off for the functionality that it provides to many “enterprise applications”. Hence the name “Enterprise Library”.