Tuesday 4 October 2011

IoC Container Comparison Matrix (2011)

This is my first Blog and I hope there will be more to come. Me and me mate, Lucas Pains, was doing some research for a good IoC Container to use in our project and even thought, these information widely available in tons of websites and blogs, however, they are all missing this and that. What a drag….. Finally we actually finish compiling a comparison matrix.

I never much of a blogger myself but me best mate (Lucas Pains) persuaded that it would be good to publish this on a blog so I hope this will aid other developers in regard of this topic.




IoC Container Comparison Matrix (2011)


Current version
2.5.2
2.5.3
2.1
2.6.1
1.3.2
2.2
.Net supported Version for current release
3.5 and 4.0
3.5
3.5 and 4.0
3.5
3.5 and 4.0
4.0, 3.5, Mono 2.0, Compact Framework 3.5
NuGet available?
Yes
Yes
Yes
Yes
Yes
Yes
Method injection
Yes
?
Yes
?
Yes
Yes
Constructor Injection
Yes
Yes
Yes
Yes
Yes
Yes
Property injection
Yes
Yes
Yes
Yes
Yes
Yes
Automatic Registration
Yes
Yes, obsolete
No
Yes
Not easy
Yes
Lambda support when creating /resolving objects
Yes
Not found. Documentation is out.
?
Yes
?
Yes
Fluent Interface
Yes
Yes
Yes
Yes
No
Yes
Singleton lifetime support
Yes
Yes
Yes
Yes
Yes
Yes
Transient lifetime support
Yes
Yes
Yes
Yes
Yes
Yes
Custom Lifetime support
Yes
Yes
Yes
Yes
Yes
Yes
Nested Containers
Yes
Yes
Yes
Yes
Probably not.
Yes. Needs extension.
Xml configuration
Yes
Yes
Yes
Yes
Yes
Yes. Needs extension.
Interception
Yes with DynamicProxy2
Yes
Yes
Yes
Yes
Yes. Needs extension.
Supports Auto Mocking
NMock2
No
Needs extension
Rhino Mocks, Rhino Mocks AAA, and Moq out of the box
No
Yes. Needs extension.
Code generation approach
?
?
?
IL generation
?
?
AOP
Yes with DynamicProxy2
Yes
Yes
Yes
Yes
Yes. Needs extension.
Test Framework Integration
?
?
?
?
Nunit, MsTest
?
Windows Phone 7 Integration
Yes
No
No
No
No
Yes
MVC integration
Yes
?
Not really. MVC Turbine is an option.
Not really. MVC Turbine is an option.
Yes. MVC 2.0 and 3.0
Yes. Needs extension.
WCF Integration
Yes
Yes
Not really
?
Yes
Yes. Needs extension.
WPF/Silverlight Integration
Prism, MEF
Yes
Yes
?
?
Yes
Visual Studio Extension/Integration
?
?
?
?
Yes
?
Release Activity
High. Last release August 12th, 2011
High. Last release August 15th, 2011
Very low. Last release on May 2011
Low. Last release on February, 2010
Medium. Last release August 1st, 2011
Medium to low.
License
Open source, MIT License
Open Source, Apache License Version 2.0
Open Source, Microsoft public License (Ms-PL)
Open Source, Apache License Version 2.0
Open Source, Apache License Version 2.0
Open Source, Apache License Version 2.0


In conclusion, they all vary in the features one way or another. It really depends on your needs, taste, comfort zone and various reasons. At this point, I believe that Autofac would be best and sufficient for our solution along with a Mocking framework to assist.

Hope this helps......... Enjoy.


PS: Please contribute some comments as this is my first Blog and would also like to learn from all of you.

No comments:

Post a Comment