Microsoft Patterns & Practices - Enterprise Library Is Not The Layer Of Abstraction in Software Factories
by David Hayden ( Microsoft MVP C# ), Filed: Enterprise Library
I just talked about Enterprise Library being thought of as a provider and not a dependency in the Repository Factory ( and any software factory for that matter ) only to have Chris suggest in a thread that Enterprise Library is the layer of abstraction and adding another would be redundant:
Remove Dependency on DAAB Via Pluggable Database Helper Provider
And my fears have now been substaniated. The folks at Patterns & Practices do think that Enterprise Library is their layer of abstraction ( and a dependency ) in the software factories as opposed to a pluggable provider of services!
That is such the wrong way to think about the software factories and their relationship to Enterprise Library. This is what I think fundamentally gets the Microsoft Patterns & Practices Team in trouble.
The Patterns & Practices Team needs to develop their software factories like Enterprise Library does not exist. Use good development practices around pluggable providers and use Enterprise Library as one of those providers. The .NET Developer Community will praise you for it and more people will adopt your factories.
This isn't by no means a bash to Chris. Chris is a smart guy and doing a helluva job making sure the Repository Factory happens and meets the needs of the community given the budget and timeframe. I love the progress so far. And, given the new info he provides on the timeline, adding a pluggable database provider at this stage probably does not make sense.
Again, I think Microsoft Patterns & Practices provides wonderful tools and guidance and only want them to further exceed in their endeavors. My only point is that they do need to fundamentally change the way they think of Enterprise Library in their software factories. This isn't to say that Enterprise Library does not rock, but that it has become too much a part of the software factories and needs to properly assume its role as a pluggable provider of services.
I'll stop beating that dead horse now :)
Source: David Hayden ( Microsoft MVP C# )
Filed: Enterprise Library