<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Andrey Shchekin's Blog - Latest Comments in Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://ashmind.disqus.com/</link><description></description><atom:link href="https://ashmind.disqus.com/comparing_net_di_ioc_frameworks_part_2/latest.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Fri, 06 May 2011 06:51:25 -0000</lastBuildDate><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-198253431</link><description>&lt;p&gt;Great article. But a bit dated. A update will do a lot of good.&lt;br&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Naser</dc:creator><pubDate>Fri, 06 May 2011 06:51:25 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-115668092</link><description>&lt;p&gt;If curious about the performance of some of the most popular IOC containers take a look &lt;a href="http://www.iocbattle.com" rel="nofollow noopener" target="_blank" title="www.iocbattle.com"&gt;www.iocbattle.com&lt;/a&gt;.&lt;br&gt;Dynamo included is my own project to test how fast it is possible to go.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin</dc:creator><pubDate>Mon, 20 Dec 2010 22:44:33 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-78573681</link><description>&lt;p&gt;Thanks for sharing this interesting article.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Haarentfernung</dc:creator><pubDate>Fri, 17 Sep 2010 13:01:25 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-60262486</link><description>&lt;p&gt;Now would be a good time :-) Most frameworks are much more matured now and are sporting nice new version numbers, thanks a lot for all the investigation and time you spent on writing all of this, it was a very helpful read! :_)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jos Krause</dc:creator><pubDate>Fri, 02 Jul 2010 05:51:44 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-45010127</link><description>&lt;p&gt;Great article, very interesting. Thanks for sharing&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">rechnungschreiben</dc:creator><pubDate>Thu, 15 Apr 2010 14:54:25 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-40588101</link><description>&lt;p&gt;Thats very interesting. thanks for sharing.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lowrance Mark-5x Pro</dc:creator><pubDate>Fri, 19 Mar 2010 15:42:55 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-24934976</link><description>&lt;p&gt;Awesome, thank you for sharing.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Angelreisen</dc:creator><pubDate>Sun, 06 Dec 2009 01:45:25 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-24325797</link><description>&lt;p&gt;I think frameworks a little bit complicated, but it does an awesome job for sure.&lt;br&gt;Thanks for sharing.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alleinunterhalter Köln</dc:creator><pubDate>Mon, 30 Nov 2009 06:06:58 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-19485790</link><description>&lt;p&gt;I see what you are trying to achieve more as MEF/System.AddIn functionality than as basic IoC.&lt;/p&gt;&lt;p&gt;I will look at it when time allows, in the meanwhile you can use test suite at&lt;br&gt;&lt;a href="http://code.google.com/p/net-ioc-frameworks/" rel="nofollow noopener" target="_blank" title="http://code.google.com/p/net-ioc-frameworks/"&gt;http://code.google.com/p/ne...&lt;/a&gt;&lt;br&gt;to see how it corresponds to common IoC features.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Andrey Shchekin</dc:creator><pubDate>Thu, 08 Oct 2009 04:58:41 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-19428682</link><description>&lt;p&gt;Please, cay you see my framework &lt;a href="http://plugins.codeplex.com" rel="nofollow noopener" target="_blank" title="http://plugins.codeplex.com"&gt;http://plugins.codeplex.com&lt;/a&gt;. I'm luck of time so it hadn't been documented yet, but i'm very interested in comparison to other frameworks.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Guest</dc:creator><pubDate>Wed, 07 Oct 2009 12:57:28 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-12857515</link><description>&lt;p&gt;awesome articel, thanks for sharing  but sometimes frameworks are a bit difficult. &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Veyton</dc:creator><pubDate>Fri, 17 Jul 2009 21:02:48 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-4789385</link><description>&lt;p&gt;Fantastic comparison. Thanks for sharing&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Pavan Kulkarni</dc:creator><pubDate>Tue, 30 Dec 2008 19:02:18 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-4332046</link><description>&lt;p&gt;Really like the overview and nice comparison too! &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Busby SEO Test</dc:creator><pubDate>Thu, 11 Dec 2008 14:22:23 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-2982644</link><description>&lt;p&gt;Great review!  This is exactly what I was looking for to help clear things up for me.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Eric J. Smith</dc:creator><pubDate>Fri, 10 Oct 2008 12:24:10 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-2622911</link><description>&lt;p&gt;Good review, thanks for taking the time to do it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Colin Jack</dc:creator><pubDate>Thu, 25 Sep 2008 05:26:16 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-2621226</link><description>&lt;p&gt;The use case is to create a factory which registers several factory-specific components without polluting the original container with these components and their local scope dependencies (such as connection data). I describe the problem in detail at  &lt;a href="http://blog.ashmind.com/index.php/2008/06/23/di-framework-challenges-1-simple-factories/" rel="nofollow noopener" target="_blank" title="http://blog.ashmind.com/index.php/2008/06/23/di-framework-challenges-1-simple-factories/"&gt;http://blog.ashmind.com/ind...&lt;/a&gt; .&lt;/p&gt;&lt;p&gt;So, if I can create a container in place and then throw it away, it also solves the pollution problem.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Andrey Shchekin</dc:creator><pubDate>Thu, 25 Sep 2008 02:29:47 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-2589469</link><description>&lt;p&gt;On IService[] - point taken, issue raised. In the meantime you can do:&lt;/p&gt;&lt;p&gt;builder.Register(c =&amp;gt; c.Resolve&amp;lt;ienumerable&amp;lt;x&amp;gt;&amp;gt;().ToArray());&lt;/p&gt;&lt;p&gt;..in order to adapt the default collection type onto an array type.&lt;/p&gt;&lt;p&gt;I'll look into the non-generic collection registrations - may look into that in the future if there is demand.&lt;/p&gt;&lt;p&gt;Thanks for the feedback!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nicholas Blumhardt</dc:creator><pubDate>Wed, 24 Sep 2008 23:29:51 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-2578161</link><description>&lt;p&gt;The net effect is almost the same. RegisterTypesMatching() and RegisterTypesAssignableTo() are lazy - there is no scan of loaded assemblies, for instance.&lt;/p&gt;&lt;p&gt;You could always create an extension method ResolveUnregistered() which could check/register first, too.&lt;/p&gt;&lt;p&gt;Not sure what you mean about hierarchical containers relating to this use case - can you clarify a little?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nicholas Blumhardt</dc:creator><pubDate>Wed, 24 Sep 2008 17:12:26 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-2541361</link><description>&lt;p&gt;Definitely not all, I think I'll add a test for that at some point.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Andrey Shchekin</dc:creator><pubDate>Tue, 23 Sep 2008 10:28:36 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-2539357</link><description>&lt;p&gt;Nice comparison! I didn't know that there where so many IoC frameworks :)&lt;/p&gt;&lt;p&gt;Do you know if all containers support registering services/components at any given time?&lt;br&gt;I know Castle can do that, i'm abusing it a bit in my current project.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">alwin</dc:creator><pubDate>Tue, 23 Sep 2008 06:43:11 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-2539227</link><description>&lt;p&gt;Sure, I like the second approach much more.&lt;/p&gt;&lt;p&gt;By the way, is it possible to resolve unregistered types in Autofac?&lt;br&gt;I do not feel that is very important, given hierarchical containers, but I am still interested.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Andrey Shchekin</dc:creator><pubDate>Tue, 23 Sep 2008 06:11:07 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-2539207</link><description>&lt;p&gt;Thanks!&lt;/p&gt;&lt;p&gt;You have a very interesting implementation.&lt;br&gt;I would prefer to have an automatic registration by default, since if I get into situation where I would need more than one ILogger collection, I would probably use some kind of contextual override for a requiring component anyway. But it is a question of preference.&lt;/p&gt;&lt;p&gt;There are only two things that I feel are missing in your implementation -- support for IService[] (since it is simplest way to define collection dependency) and and ability to register collections using non-generic API.&lt;/p&gt;&lt;p&gt;Due to the first one, I can not update tests to pass right now, however, I had fixed the chart and will fix the post text as well.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Andrey Shchekin</dc:creator><pubDate>Tue, 23 Sep 2008 06:07:50 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-2525027</link><description>&lt;p&gt;Cool, great work!&lt;/p&gt;&lt;p&gt;I think I can't update in-post chart, since it'll require me to update post text as well, and that would mean I have to consider and mention all other framework updates.&lt;br&gt;I am looking for a way to keep an up-to-date version of charts at the net-ioc-frameworks page of Google Code, I hope to do it soon enough.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Andrey Shchekin</dc:creator><pubDate>Mon, 22 Sep 2008 16:50:55 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-2520137</link><description>&lt;p&gt;Aaah - and regarding automatic registration - you can always do:&lt;/p&gt;&lt;p&gt;builder.RegisterTypesAssignableTo&amp;lt;object&amp;gt;();&lt;/p&gt;&lt;p&gt;:) Not really recommendable though.&lt;/p&gt;&lt;p&gt;I recently ported some Prism code from Unity to Autofac, and used something similar to:&lt;/p&gt;&lt;p&gt;builder.RegisterTypesMatching(t =&amp;gt; t.Name.EndsWith("View"));&lt;/p&gt;&lt;p&gt;--- just to illustrate that there is no need to use tagging interfaces or inheritance in order to work with this feature.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nicholas Blumhardt</dc:creator><pubDate>Mon, 22 Sep 2008 10:42:40 -0000</pubDate></item><item><title>Re: Comparing .NET DI (IoC) Frameworks, Part 2</title><link>http://blog.ashmind.com/index.php/2008/09/08/comparing-net-di-ioc-frameworks-part-2/#comment-2520060</link><description>&lt;p&gt;Hi Andrey,&lt;/p&gt;&lt;p&gt;Wow! It is very interesting to see a methodical approach to this comparison.&lt;/p&gt;&lt;p&gt;Autofac does also support list registrations - but like 'resolve anything' you have to opt-in. See: &lt;a href="http://code.google.com/p/autofac/wiki/Collections" rel="nofollow noopener" target="_blank" title="http://code.google.com/p/autofac/wiki/Collections"&gt;http://code.google.com/p/au...&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;As you've hinted at - like most containers you can change this behaviour by writing custom extensions. In general, you'll find Autofac is very conservative about working absolutely predictably by default.&lt;/p&gt;&lt;p&gt;Cheers,&lt;/p&gt;&lt;p&gt;Nick&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nicholas Blumhardt</dc:creator><pubDate>Mon, 22 Sep 2008 10:36:11 -0000</pubDate></item></channel></rss>