Ayende @ Rahien

It's a girl

Strategy Provisioning for Application Management b...

image 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

3/ Spring.NET


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?


Stuart Cam
12/01/2007 12:58 PM by
Stuart Cam

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?

Emanuele DelBono
12/01/2007 02:15 PM by
Emanuele DelBono


I strongly strongly agree with you!

Why Ms do this?

Chris Brandsma
12/01/2007 06:33 PM by
Chris Brandsma

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.

Eric Hauser
12/01/2007 06:45 PM by
Eric Hauser


12/01/2007 06:48 PM by

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:


12/01/2007 08:08 PM by

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?

Stuart Cam
12/02/2007 07:59 PM by
Stuart Cam


To be honest I've been looking at the OSS world long enough to not notice MS reinvent that wheel!

My bad.

Glenn Block
12/05/2007 07:27 AM by
Glenn Block

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.

12/12/2007 02:51 PM by

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.

Kenneth Kasajian
12/14/2007 01:45 PM by
Kenneth Kasajian

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.

Comments have been closed on this topic.