For my criteria and a list of other frameworks see the 'Part 1' post.
Ninject | StructureMap | MicroKernel | Puzzle.Net | Importance | |
License | Apache 2 OSS | essential | |||
C# | 5 | 5 | 4 | ||
Doco | 3 | 4 | X | X | 4 |
XML config | 0 | 4 | 2 | ||
Programmatic config | 5 | 4 | 10 | ||
Constructor injection | 4 | Y | 20 | ||
Method injection | 4 | ? | 4 | ||
Private field injection | 4 | ? | 3 | ||
Setter injection | 4 | 4 | 3 | ||
Singleton activation | 4 | 4 | 10 | ||
Transient activation | 4 | 4 | 10 | ||
Other activation | 4 | 5 | 3 | ||
Simple to use | 4 | ? | 20 | ||
Multiple configs | 4 | 5 | 5 | ||
Contextual binding | 4 | 5 | 4 | ||
Generic types | 3 | 4 | 2 | ||
NMock injection | 3 | 4 | 4 | ||
Maturity | 5 | 4 | |||
SCORE | 58 | 57 | X | X |
Note: Above chart updated following Nate's comment (see comments below).
I eliminated MicroKernel as I could not find focused documentation (not related products) and what I could find turned out to be links to Porn site adverts. I gave up on Puzzle.Net as I could not find any documentation web pages.
So I'm down to Ninject & StructureMap and wondering if I ought to take a closer look at Spring.Net as it mentioned often on the web.
I will continue to update this another night. Looks like the next step is to try some sample code.
2 comments:
Hi Rob! Glad to see you're taking a look at Ninject. A couple of alterations to your chart: first, Ninject does support setter injection (which I've called "property injection"). Second, it does support generic types, including inference via bindings to "open" generic types. I'm working on the documentation (available at http://ninject.org/users-guide.html)... a little slow since I'm busy at my "day job" but it's coming along. :) If you have questions, feel free to post them in the Google group at: http://groups.google.com/group/ninject .
Thanks, I will update the chart.
Post a Comment