



(This post is a work in progress… I just needed to get an answer up quickly for several friends.)
Finally, something of moderate substance.
At work, I am actively promoting the Microsoft Enterprise Library (ENTLIB) for the project I am currently working on. I’ve now been asked, “What is the ENTLIB?”, enough times that I decided to answer that question here as it’s not a “quick answer”. If the link I’ve provided is too much, here’s my attempt at a simple description.
The Microsoft Enterprise Library is a pool of source code written by Microsoft and made freely available to developers. The source in the ENTLIB represents the collected “best practices” recommended by Microsoft for using the .NET Framework to implement enterprise solutions.
That’s the short answer most people want.
It’s technically correct. It’s also totally useless. It’s not informative enough to really let you know what you are in for if you use the ENTLIB. So, I’ll pick the description apart and explain. Examine this diagram from the ENTLIB documentation:
This diagram is actually from the Enterprise Library 4.1 documentation. Since writing this original post I have migrated my blog and decided to upgrade the diagram.
But just getting started can be daunting! Where do you start the learning process? I’m not an ENTLIB expert but have formed an opinion on where to start.
Step 3 above is a bit outdated. With EL 4.0 and beyond dependency injection is handled by Unity.
Clearly, everyone learns differently and your mileage will certainly vary. The steps I outlined just worked best for me.
To the best of my understanding, the ObjectBuilder was actually designed and implemented during the Composite User Interface (UI) Application Block project (referred to as the CAB) . The ObjectBuilder was so useful, it was refactored into the ENTLIB.
Why is that interesting? Because the CAB is sometimes mistaken as part of the ENTLIB. It’s actually a custom application block written using the ENTLIB. Since the ENTLIB and the CAB are both Microsoft projects, the refactoring of ObjectBuilder into the ENTLIB was logical.
ObjectBuilder, while shown as part of the core is actually an application block. The ENTLIB documentation notes:
ObjectBuilder is a patterns & practices Application Block, but because of its highly specific audience and its recent inception, it is not yet fully documented as a stand-alone asset like the Enterprise Library application blocks are.
The CAB seems like a perfect candidate to have that classic Visual Studio “wizardry” in order to add new CAB “thingies” (Since, this article is about the ENTLIB, the full description of the CAB is left for another time, for now, “thingies” is all I’m willing to say.). That leads us to the Smart Client Software Factory.
The Smart Client Software Factory, is a collection of code-generators, how-to examples, Guidance Automation Toolkit (or GAT), and documentation for creating “smart clients”.
What’s the GAT??? It’s a toolkit to let software development kit (SDK) developers like me add guidance toolkits to Visual Studio using the Guidance Automation Extensions (GAX).
What the hell is the GAX?!?!??!?
It really does take a bit of commitment on your part to go learn the ENTLIB and the related projects that spring up around it. My advice is to download the ENTLIB, play with the quick starts and guidance, read the documentation, buy a book, and just dig in and write a client or your own application block. In my opinion, it’s certainly worth the effort.
One last question… Who is John Galt?






More Options ...
Categories
Tag Cloud
Blog RSS
Comments RSS

Void « Default
Life
Earth
Wind
Water
Fire
Light 
Nice writeup.
So are you a fan of Atlas Shrugged?
Probably more a fan of obscure references…
Actually, I’m a fan of objectivism.
Carey
I know you do your homework but might want to compare Spring .Net and ENTLIB, especially the DI container. I am going to take a closer look at ENTLIB after your write up.
FYI – I have only used ENTLIBs caching block in a few applications at work. And I am slightly bias toward Spring .Net, especially for DI, log4net integration and DAO support for data access.
Good words.
[...] Carey Cilyok [...]