<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: I finally get the point of inversion of control</title>
	<atom:link href="http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html</link>
	<description>Productive software development using ASP.NET, C#, Adobe Flex, and other technologies and tools.</description>
	<lastBuildDate>Thu, 09 Sep 2010 10:53:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Jason</title>
		<link>http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html/comment-page-1#comment-1248</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Wed, 24 Dec 2008 18:05:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html#comment-1248</guid>
		<description>small comment: IoC and DI  are not synonymous (&quot;aka&quot;). One is an abstract principle, while the other is one way to implement that principle. In other words, there are many ways to implement IoC principle. DI is just one way.</description>
		<content:encoded><![CDATA[<p>small comment: IoC and DI  are not synonymous (&#8220;aka&#8221;). One is an abstract principle, while the other is one way to implement that principle. In other words, there are many ways to implement IoC principle. DI is just one way.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Berridge</title>
		<link>http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html/comment-page-1#comment-610</link>
		<dc:creator>Kevin Berridge</dc:creator>
		<pubDate>Thu, 24 Jul 2008 16:39:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html#comment-610</guid>
		<description>I forgot to post back here, its mostly too late now, but I&#039;ll link my response anyway: http://kevin-berridge.blogspot.com/2008/06/ioc-and-di-complexity.html</description>
		<content:encoded><![CDATA[<p>I forgot to post back here, its mostly too late now, but I&#8217;ll link my response anyway: <a href="http://kevin-berridge.blogspot.com/2008/06/ioc-and-di-complexity.html" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/kevin-berridge.blogspot.com/2008/06/ioc-and-di-complexity.html?referer=');">http://kevin-berridge.blogspot.com/2008/06/ioc-and-di-complexity.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: A Dependency Injection example with Spring.NET</title>
		<link>http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html/comment-page-1#comment-481</link>
		<dc:creator>A Dependency Injection example with Spring.NET</dc:creator>
		<pubDate>Fri, 13 Jun 2008 13:32:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html#comment-481</guid>
		<description>[...] requested, here is a real world example of how I used dependency injection to simplify a project, increase modularity, and subsequently increase [...]</description>
		<content:encoded><![CDATA[<p>[...] requested, here is a real world example of how I used dependency injection to simplify a project, increase modularity, and subsequently increase [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: superjason</title>
		<link>http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html/comment-page-1#comment-477</link>
		<dc:creator>superjason</dc:creator>
		<pubDate>Thu, 12 Jun 2008 12:21:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html#comment-477</guid>
		<description>Egil, great idea. I have a GREAT example too! Subscribe to my feed so you don&#039;t miss it. I&#039;ll try to shot for posting it tomorrow.</description>
		<content:encoded><![CDATA[<p>Egil, great idea. I have a GREAT example too! Subscribe to my feed so you don&#8217;t miss it. I&#8217;ll try to shot for posting it tomorrow.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Egil</title>
		<link>http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html/comment-page-1#comment-475</link>
		<dc:creator>Egil</dc:creator>
		<pubDate>Thu, 12 Jun 2008 08:35:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html#comment-475</guid>
		<description>Jason, thanks for this, I finally get the principle. I would love to see some example code to get my head around it even more.

Regards, Egil.</description>
		<content:encoded><![CDATA[<p>Jason, thanks for this, I finally get the principle. I would love to see some example code to get my head around it even more.</p>
<p>Regards, Egil.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steven Harman</title>
		<link>http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html/comment-page-1#comment-473</link>
		<dc:creator>Steven Harman</dc:creator>
		<pubDate>Thu, 12 Jun 2008 01:50:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html#comment-473</guid>
		<description>@Kevin,
I have to agree with some of the others - the problem you&#039;re describing is not one with the pattern, but with your IDE. 

A weak IDE is not a valid reason to dismiss the Dependency Inversion Principle, nor any of the related SOLID principles (i.e.- Separation of Concerns, Single Responsibility Principle, Liskov Substitution Principle, Law of Demeter, etc...). Following these principles leads to more loosely coupled, highly cohesive code which easily delivers more value than is lost due to the code navigation issues you&#039;ve described with your IDE.

Plus, as a .net guy, likely writing code in Visual Studio - you can easily overcome those navigation issues with ReSharper.</description>
		<content:encoded><![CDATA[<p>@Kevin,<br />
I have to agree with some of the others &#8211; the problem you&#8217;re describing is not one with the pattern, but with your IDE. </p>
<p>A weak IDE is not a valid reason to dismiss the Dependency Inversion Principle, nor any of the related SOLID principles (i.e.- Separation of Concerns, Single Responsibility Principle, Liskov Substitution Principle, Law of Demeter, etc&#8230;). Following these principles leads to more loosely coupled, highly cohesive code which easily delivers more value than is lost due to the code navigation issues you&#8217;ve described with your IDE.</p>
<p>Plus, as a .net guy, likely writing code in Visual Studio &#8211; you can easily overcome those navigation issues with ReSharper.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Riccardo</title>
		<link>http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html/comment-page-1#comment-462</link>
		<dc:creator>Riccardo</dc:creator>
		<pubDate>Tue, 10 Jun 2008 15:16:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html#comment-462</guid>
		<description>@Kevin
Well I don&#039;t know if this applies also to .net, but in java (with most IDE&#039;s) you can look through the stack trace, you can use step filters to avoid stopping at DI framework proxies when you debug; or you can also go to a specific implementation instead of going to method definition while browsing code.
I also found this discussion very interesting and I agree that DI is to be used wisely; I also think that the chance to test code easier is alone worth most downsides of DI.
Thanks to everyone, specially to the author which wrote a very good post.</description>
		<content:encoded><![CDATA[<p>@Kevin<br />
Well I don&#8217;t know if this applies also to .net, but in java (with most IDE&#8217;s) you can look through the stack trace, you can use step filters to avoid stopping at DI framework proxies when you debug; or you can also go to a specific implementation instead of going to method definition while browsing code.<br />
I also found this discussion very interesting and I agree that DI is to be used wisely; I also think that the chance to test code easier is alone worth most downsides of DI.<br />
Thanks to everyone, specially to the author which wrote a very good post.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Berridge</title>
		<link>http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html/comment-page-1#comment-459</link>
		<dc:creator>Kevin Berridge</dc:creator>
		<pubDate>Mon, 09 Jun 2008 15:12:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html#comment-459</guid>
		<description>You are all of course correct.  You should put comments on things to describe requirements like these.  Of course that doesn&#039;t guarantee implementors will follow them, or that the comments will remain up to date, but that&#039;s beside the point.

My argument is, if you weren&#039;t using IoC you wouldn&#039;t have to worry about any of this.  You would simply write your code and be done with it.  It&#039;s only because you&#039;re allowing for arbitrary implementations to be passed in (through DI) that any of this is important.  If you intended for many implementations to be used, it makes sense to worry about this.  But when you&#039;re doing it simply so you can test, is it worth it?

@Riccardo: I&#039;m curious.  Are you talking about stepping through while you&#039;re Debugging, or a &quot;go to definition&quot; type feature when you&#039;re just browsing the code?

Thanks everyone for the responses!  It&#039;s been very educational for me.  I should also point out that I agree with all of you, and that in real life I actually use DI (though not IoC).  I mainly just wanted to spur a discussion about the possible downsides.</description>
		<content:encoded><![CDATA[<p>You are all of course correct.  You should put comments on things to describe requirements like these.  Of course that doesn&#8217;t guarantee implementors will follow them, or that the comments will remain up to date, but that&#8217;s beside the point.</p>
<p>My argument is, if you weren&#8217;t using IoC you wouldn&#8217;t have to worry about any of this.  You would simply write your code and be done with it.  It&#8217;s only because you&#8217;re allowing for arbitrary implementations to be passed in (through DI) that any of this is important.  If you intended for many implementations to be used, it makes sense to worry about this.  But when you&#8217;re doing it simply so you can test, is it worth it?</p>
<p>@Riccardo: I&#8217;m curious.  Are you talking about stepping through while you&#8217;re Debugging, or a &#8220;go to definition&#8221; type feature when you&#8217;re just browsing the code?</p>
<p>Thanks everyone for the responses!  It&#8217;s been very educational for me.  I should also point out that I agree with all of you, and that in real life I actually use DI (though not IoC).  I mainly just wanted to spur a discussion about the possible downsides.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bminews.com</title>
		<link>http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html/comment-page-1#comment-458</link>
		<dc:creator>bminews.com</dc:creator>
		<pubDate>Mon, 09 Jun 2008 15:02:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html#comment-458</guid>
		<description>&lt;strong&gt;Inversion of Control...&lt;/strong&gt;

Discussion about the Inversion of Control design pattern for making modular software....</description>
		<content:encoded><![CDATA[<p><strong>Inversion of Control&#8230;</strong></p>
<p>Discussion about the Inversion of Control design pattern for making modular software&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Renato</title>
		<link>http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html/comment-page-1#comment-457</link>
		<dc:creator>Renato</dc:creator>
		<pubDate>Mon, 09 Jun 2008 14:52:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2008/06/i-finally-get-the-point-of-inversion-of-control.html#comment-457</guid>
		<description>I&#039;d have to agree with Jared. The operations should define how the methods will behave. Using something like Design by Contract helps a lot with this. The final state of the db connection can be defined as a postcondition. The validity of a null parameter can be described as a precondition. And so on.</description>
		<content:encoded><![CDATA[<p>I&#8217;d have to agree with Jared. The operations should define how the methods will behave. Using something like Design by Contract helps a lot with this. The final state of the db connection can be defined as a postcondition. The validity of a null parameter can be described as a precondition. And so on.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
