Strategy Provisioning for Application Management b...
Glenn Block has posted to the ALT.Net mailing list that the P&P team are working on a dependency injection application block.
At this point, I am not really sure what to think. ObjectBuilder was bad. I am still having to deal with fallout from that failure.
The OSS community already has several mature IoC products.
Just in case Microsoft has missed them:
1/ Castle Windsor
2/ Structure Map
If they want to decouple themselves from an IoC implementation, there is a way to do that already in .Net. It is called IServiceProvider, and is already supported by the IoC implementation. A default implementation can be done with 15 lines of code, if they want to provide one.
I would really like to know, why the hell do we need another duplication of OSS?
Many IT shops will only adopt a technology or feature that has been "ordained" by MS.
The current organisation I am contracting for has a .NET development guidance document that locks developers exclusively into the Enterprise Library. It has a very small and tentative mention of nUnit - probably on the basis that MS haven't reinvented that wheel just yet.
MS has the "power" to reach out to the other 80% of programmers. Something that many OSS projects, no matter how great, find hard to do.
Just take a look at the MVC mindshift on Web Forms. Surely due to pressure from the ALT.NET community actually feeding back into the MS monolith?
I strongly strongly agree with you!
Why Ms do this?
I agree with Stuart Cam. Plus there are many businesses that don't allow OSS products to be used.
I've heard excuses ranging from 1. Needing someone to sue, 2. Liability, 3. scared of loosing their intellectual property because of licensing restrictions (cough -- GPL)
So developer in this predicament have to choose between rolling their own (IOC can be written fairly easily, but you don't get a full featured product), or use what comes from Microsoft. Often the other accepted products: StructureMap, Spring, and Windsor, aren't worth the hassle of getting management and legal to sign off on.
I wonder if licensing is one of the issues? All 3 of those projects use the Apache 2.0 license which is similar in may ways to the MS-PL license, but there are some differences:
I think Hammett summed it up best somewhere when he mentioned the"throat to choke" when something goes wrong.
@Stuart - "It has a very small and tentative mention of nUnit - probably on the basis that MS haven't reinvented that wheel just yet."
You don't count MSTest?
To be honest I've been looking at the OSS world long enough to not notice MS reinvent that wheel!
The part that seems to have gotten missed is that the block allows you to plug in the container of your choice. This means you can use Castle, Spring or even your own homegrown version.
When you're Microsoft you gotta own it so you can provide protection to the people who use it. It's a legal issue as much as a not invented here issue.
This will be very useful.
IoC/DI are here to stay, and will probably show up as language features in C# 5.0 or something like that.
But seriously, we need to have a Microsoft solution to this, and hopefully not something from open source but software that is guaranteed known to be only contributed by Microsoft employees.