I'm the development lead on the next version of Enterprise Library. The big feature we're adding, as mentioned by Grigori Melnik, is the Dependency Injection Application Block. There's already been quite a bit of discussion on the blogosphere about it, and I don't want to reopen the discussion here. What I do want to ask about is about the underpinnings of many p&p assets, that will play an important role in the implementation of the block: ObjectBuilder.
For those who don't know, ObjectBuilder (OB) is a fairly small library that is used at the heart of EntLib, CAB, and WCSF. It's p&p's current implementation of a dependency injection system. And the overall concensus is that it sucks.
The problem with concensus is that, after a while, folks remember the conclusions, but nobody actually remembers how or why that conclusion is reached. So I ask you: why does OB suck?
For what it's worth, my personal opinions on the matter are:
- There are no docs other than pretty useless XML doc comments.
- OB is only half of the DI story. The other half, the DI container itself, doesn't exist (yet). Without the container, you've got to deal with an extremely general API which doesn't make any sense at first glance.
- Perf needs to be improved.
We're going to be working on all three of these for Entlib 4.
So, tell me: other than the above, why do YOU think OB sucks?