<?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: Extension Methods &amp; Single Responsibility Principle</title>
	<atom:link href="http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html</link>
	<description>Productive software development using ASP.NET, C#, Adobe Flex, and other technologies and tools.</description>
	<lastBuildDate>Mon, 26 Jul 2010 02:01:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Luciano Evaristo Guerche (Gorše)</title>
		<link>http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html/comment-page-1#comment-1346</link>
		<dc:creator>Luciano Evaristo Guerche (Gorše)</dc:creator>
		<pubDate>Wed, 11 Feb 2009 13:26:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html#comment-1346</guid>
		<description>Jason,

I believe extension methods must be used with very high caution in that they don&#039;t belong to the class or interface they act in, so when extending the class or implementing the interface, extension methods code are not inherited. Talking about interfaces, as extension methods are not part of the interface&#039;s contract, their existence and signatures aren&#039;t even checked on implemented classes.</description>
		<content:encoded><![CDATA[<p>Jason,</p>
<p>I believe extension methods must be used with very high caution in that they don&#8217;t belong to the class or interface they act in, so when extending the class or implementing the interface, extension methods code are not inherited. Talking about interfaces, as extension methods are not part of the interface&#8217;s contract, their existence and signatures aren&#8217;t even checked on implemented classes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Weekly Link Post 79 &#171; Rhonda Tipton&#8217;s WebLog</title>
		<link>http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html/comment-page-1#comment-1320</link>
		<dc:creator>Weekly Link Post 79 &#171; Rhonda Tipton&#8217;s WebLog</dc:creator>
		<pubDate>Mon, 02 Feb 2009 03:20:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html#comment-1320</guid>
		<description>[...] Jason Young does a great job explaining Extension Methods &amp; Single Responsibility Principle. [...]</description>
		<content:encoded><![CDATA[<p>[...] Jason Young does a great job explaining Extension Methods &amp; Single Responsibility Principle. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jay</title>
		<link>http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html/comment-page-1#comment-1316</link>
		<dc:creator>Jay</dc:creator>
		<pubDate>Wed, 28 Jan 2009 06:37:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html#comment-1316</guid>
		<description>Hi
Does subversion VM has LDAP authentication ?</description>
		<content:encoded><![CDATA[<p>Hi<br />
Does subversion VM has LDAP authentication ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Marisic</title>
		<link>http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html/comment-page-1#comment-1312</link>
		<dc:creator>Chris Marisic</dc:creator>
		<pubDate>Tue, 27 Jan 2009 07:45:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html#comment-1312</guid>
		<description>I just hate static helper classes, they are so .NET 2.0. I feel any method that can be put into a static helper class should be an extension method in .NET 3.5. If there&#039;s ever a point where the implementation might need to change based on the object implementation or what class implements the interface that it should be moved internally to the class as a regular method.</description>
		<content:encoded><![CDATA[<p>I just hate static helper classes, they are so .NET 2.0. I feel any method that can be put into a static helper class should be an extension method in .NET 3.5. If there&#8217;s ever a point where the implementation might need to change based on the object implementation or what class implements the interface that it should be moved internally to the class as a regular method.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html/comment-page-1#comment-1311</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Mon, 26 Jan 2009 22:56:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html#comment-1311</guid>
		<description>Tuna, your approach would work fine. Maybe my example wasn&#039;t the best since reporting is probably an involved operation. Most of the time, I do it as you described. I just thought this was a fairly elegant solution for certain cases where the overhead of your approach might be a bit too much.

The point was that there are other ways of separating your code while still operating a certain interface.

People may already be doing this, and the other point I was trying to make was that extension methods give us a little more elegant way of &quot;attaching&quot; this functionality.</description>
		<content:encoded><![CDATA[<p>Tuna, your approach would work fine. Maybe my example wasn&#8217;t the best since reporting is probably an involved operation. Most of the time, I do it as you described. I just thought this was a fairly elegant solution for certain cases where the overhead of your approach might be a bit too much.</p>
<p>The point was that there are other ways of separating your code while still operating a certain interface.</p>
<p>People may already be doing this, and the other point I was trying to make was that extension methods give us a little more elegant way of &#8220;attaching&#8221; this functionality.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tuna Toksoz</title>
		<link>http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html/comment-page-1#comment-1310</link>
		<dc:creator>Tuna Toksoz</dc:creator>
		<pubDate>Mon, 26 Jan 2009 21:51:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html#comment-1310</guid>
		<description>Hi Chris,
The thing is that Extension methods should be used when you can&#039;t modify the code. I also believe that, if you want to provide an SRP with a lot flexibility, you can have 
IReportGenerator
{
     IReport GenerateReport(ReportData);
}

I _believe_ you shouldn&#039;t use Extension Methods jst for the sake of SRP. 

Anyway this issue sounds more of a personal taste, doesn&#039;t it?</description>
		<content:encoded><![CDATA[<p>Hi Chris,<br />
The thing is that Extension methods should be used when you can&#8217;t modify the code. I also believe that, if you want to provide an SRP with a lot flexibility, you can have<br />
IReportGenerator<br />
{<br />
     IReport GenerateReport(ReportData);<br />
}</p>
<p>I _believe_ you shouldn&#8217;t use Extension Methods jst for the sake of SRP. </p>
<p>Anyway this issue sounds more of a personal taste, doesn&#8217;t it?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Marisic</title>
		<link>http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html/comment-page-1#comment-1309</link>
		<dc:creator>Chris Marisic</dc:creator>
		<pubDate>Mon, 26 Jan 2009 21:20:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html#comment-1309</guid>
		<description>Tuna, why would you feel that way?

I think this is the absolute intention of extension methods.

I agree with you poster that this is a much preferred solution than having helper classes every where.</description>
		<content:encoded><![CDATA[<p>Tuna, why would you feel that way?</p>
<p>I think this is the absolute intention of extension methods.</p>
<p>I agree with you poster that this is a much preferred solution than having helper classes every where.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tuna Toksoz</title>
		<link>http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html/comment-page-1#comment-1302</link>
		<dc:creator>Tuna Toksoz</dc:creator>
		<pubDate>Mon, 26 Jan 2009 18:19:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.ytechie.com/2009/01/extension-methods-single-responsibility-principle.html#comment-1302</guid>
		<description>I believe this is an abuse of Extension methods.</description>
		<content:encoded><![CDATA[<p>I believe this is an abuse of Extension methods.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
