Inversion Of Control Application Block

Topics: Development Team Discussion
May 31, 2007 at 5:10 PM
Fair enough... there has been a lot of requests on a DI or IoC application block on the Enterprise Library community.
I'll pose the question: Is this something we should do within in Contrib Community?

Are there people that want to work on this? It seems like a relatively large chunk of work.
What would be important for such an Application Block?
I'd assume something like the following (from the top of my head, just to get a discussion started):

1) Container + ObjectBuilder based kernel.
2) Configuration that can be edited through the configuration console.
3) Some strategies that make use of Policy Injections, event broker, EntLib-style instrumentation... whatever people have been using in their own containers so far :-)

Extensibility with regards to:
- The kernel's strategies (and possibly their deisigntime within the configuration console)
- The Container
May 31, 2007 at 5:10 PM
Edited May 31, 2007 at 5:13 PM
This discussion has been copied to a work item. go to the work item to vote on it.

Lets keep the discussion on the forum, though.
Jun 1, 2007 at 5:18 PM
I think we could do this in the community, but I think it should have been done already by the P&P Teams ;)

A Container + ObjectBuilder approach makes sense. There are a number of examples out there already that we can grab from the ObjectBuilder CodePlex Site as well as the Software Factories. Configuration Tool support would be a must.

Strategies for additional integration with instrumentation and other blocks is a nice-to-have as long as we don't make developers pay for something they don't use.

I will help with the project.




David Hayden
Microsoft MVP C#
Jun 4, 2007 at 9:24 PM
We are working on it at here. We (Brad and I) have forked ObjectBuilder to make changes to make OB better and support a spring like container. We are also adding the Injection pieces to this code to support a PIAB. At this point I can finsih off my EntLibRefactored to get Config properly injected and not have blocks rely on config at all (not even the hokey way we did it with the IDictionaryConfigSource :)).