In case you’ve missed it, Grigori Melnik has announced that the forthcoming version of the EntLib will include a new application block for Dependency Injection. I know there’s been some level of disquiet about this announcement in ALT.NETish circles, but I think it’s going to be a good thing. I wrote a little bit about it before, but the key points for me are this:
- Used well, Dependency Injection can do a lot of good in creating a modular design (and no, having TypeMock does not entirely replace the need for or value of DI). Hopefully, more developers will be introduced to the concepts and usage of DI and Inversion of Control by the new DIAB.
- From Gigori: “…we plan to refactor individual EntLib blocks and abstract away configuration code (configurators).” Jeremy’s take: EntLib classes will now be usable without having to muck with the configuration Xml. I don’t use EntLib in some small part due to my perception of it being “coding in Xml.”
- Patterns and Practices is reaching out to the OSS teams that have already built successful, working Inversion of Control containers. I think that will alleviate some of the griping about ObjectBuilder from certain folks (like me). Yes, it’s another de facto competitor to working OSS tools from Microsoft, but at least they’re being much more open and cooperative this time around.
- You will be able to swap out the new DIAB for an existing IoC container like StructureMap in both the EntLib and the new WPF Composite client guidance/framework. That’s a huge deal in my book. Just like the new MVC framework, the new WPF Composite client won’t force a choice of IoC tool upon you.
Frankly, I don’t see anything to get all that upset about. All of us StructureMap/Windsor/Spring.Net enthusiasts need to remember that there are unenlightened shops that simply won’t use any OSS tools — and Microsoft choosing to promote any one of the existing IoC tools as the one true path would start a geeky civil war.