<?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"
	>
<channel>
	<title>Comments for Joe White's Blog</title>
	<atom:link href="http://blog.excastle.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.excastle.com</link>
	<description>Life, .NET, and Cats</description>
	<pubDate>Sun, 27 Jul 2008 00:48:27 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
		<item>
		<title>Comment on TechEd 2008 notes: Best Practices with the Microsoft Visual C# 3.0 Language Features by Joe</title>
		<link>http://blog.excastle.com/2008/06/12/teched-2008-notes-best-practices-with-the-microsoft-visual-c-30-language-features/#comment-26541</link>
		<dc:creator>Joe</dc:creator>
		<pubDate>Fri, 25 Jul 2008 13:10:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/?p=2553#comment-26541</guid>
		<description>Marcel,

The big offender there, I think, is that it doesn't behave like an instance method. If you call an instance method on a null reference, you get a NullReferenceException. If you start having things that look like instance methods but that violate that -- i.e., things that you &lt;em&gt;can&lt;/em&gt; call on a null reference, or that are even &lt;i&gt;meant&lt;/i&gt; to be called on a null reference -- then you're increasing complexity. People working with your code need to remember that much more, and think that much harder about every line of code they write. It violates the principle of least surprise. So make sure you've got a really compelling reason to do it.

It looks like I didn't put this in my notes, but part of the motivation for not putting extension methods on System.Object was that it would be problematic in VB.NET. In VB, when you have a variable declared as Object, all calls on that variable are late-bound. Late-bound won't call an extension method. So if you use VB.NET at all, System.Object extension methods are a bad idea.

If you only use C#, I wouldn't see a big problem with putting extension methods on System.Object, if it was done thoughtfully. I sure as heck wouldn't want my grid vendor to do it, but I wouldn't mind doing them internally, and it'd be fine if my test framework did it. In fact, I'd love to see an &lt;a href="http://www.rspec.info/" rel="nofollow"&gt;RSpec&lt;/a&gt;-style assertion framework for .NET.</description>
		<content:encoded><![CDATA[<p>Marcel,</p>
<p>The big offender there, I think, is that it doesn&#8217;t behave like an instance method. If you call an instance method on a null reference, you get a NullReferenceException. If you start having things that look like instance methods but that violate that &#8212; i.e., things that you <em>can</em> call on a null reference, or that are even <i>meant</i> to be called on a null reference &#8212; then you&#8217;re increasing complexity. People working with your code need to remember that much more, and think that much harder about every line of code they write. It violates the principle of least surprise. So make sure you&#8217;ve got a really compelling reason to do it.</p>
<p>It looks like I didn&#8217;t put this in my notes, but part of the motivation for not putting extension methods on System.Object was that it would be problematic in VB.NET. In VB, when you have a variable declared as Object, all calls on that variable are late-bound. Late-bound won&#8217;t call an extension method. So if you use VB.NET at all, System.Object extension methods are a bad idea.</p>
<p>If you only use C#, I wouldn&#8217;t see a big problem with putting extension methods on System.Object, if it was done thoughtfully. I sure as heck wouldn&#8217;t want my grid vendor to do it, but I wouldn&#8217;t mind doing them internally, and it&#8217;d be fine if my test framework did it. In fact, I&#8217;d love to see an <a href="http://www.rspec.info/" rel="nofollow">RSpec</a>-style assertion framework for .NET.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Can you rent a car without a credit card? by Jason</title>
		<link>http://blog.excastle.com/2006/04/05/can-you-rent-a-car-without-a-credit-card/#comment-26251</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Sun, 20 Jul 2008 04:26:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2006/04/05/can-you-rent-a-car-without-a-credit-card/#comment-26251</guid>
		<description>Enterprise requires a major credit card with an authorization of $200 plus prepayment of the rental.  You can use a debit/check card at local rental offices if you are a resident of that town and can provide a current paystub and a current PAID utility bill.  We are releaseing a 15-20k car to someone we've never meant before, if you have bad credit you have burned others in the past and probably lost your credit card, or can't apply for one.  We use this to let us know who has good credit.  Cash is not king so don't pull out a wad of 20's and think you are all set, Your credit is what matters and for those of you that have already ruined your credit, good luck</description>
		<content:encoded><![CDATA[<p>Enterprise requires a major credit card with an authorization of $200 plus prepayment of the rental.  You can use a debit/check card at local rental offices if you are a resident of that town and can provide a current paystub and a current PAID utility bill.  We are releaseing a 15-20k car to someone we&#8217;ve never meant before, if you have bad credit you have burned others in the past and probably lost your credit card, or can&#8217;t apply for one.  We use this to let us know who has good credit.  Cash is not king so don&#8217;t pull out a wad of 20&#8217;s and think you are all set, Your credit is what matters and for those of you that have already ruined your credit, good luck</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Mere-Moments Guide to installing a Subversion server on Windows by ali</title>
		<link>http://blog.excastle.com/2005/05/31/mere-moments-guide-to-installing-a-subversion-server-on-windows/#comment-26235</link>
		<dc:creator>ali</dc:creator>
		<pubDate>Sat, 19 Jul 2008 17:57:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2005/05/31/mere-moments-guide-to-installing-a-subversion-server-on-windows/#comment-26235</guid>
		<description>hi Joe,
every time i run this command 
svn ls svn://localhost/

this error message appears to me
svn: Can't connect to host 'localhost': No connection could be made because the
target machine actively refused it.

i tried to add a port to allow connecting to it.but the same result appears
i tried to search for this problem solving but nothing helped out
thanks in advance</description>
		<content:encoded><![CDATA[<p>hi Joe,<br />
every time i run this command<br />
svn ls svn://localhost/</p>
<p>this error message appears to me<br />
svn: Can&#8217;t connect to host &#8216;localhost&#8217;: No connection could be made because the<br />
target machine actively refused it.</p>
<p>i tried to add a port to allow connecting to it.but the same result appears<br />
i tried to search for this problem solving but nothing helped out<br />
thanks in advance</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Unfinished Delphi feature of the day: virtual class helper methods by Russell Weetch</title>
		<link>http://blog.excastle.com/2007/08/29/unfinished-delphi-feature-of-the-day-virtual-class-helper-methods/#comment-26107</link>
		<dc:creator>Russell Weetch</dc:creator>
		<pubDate>Thu, 17 Jul 2008 11:31:10 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2007/08/29/unfinished-delphi-feature-of-the-day-virtual-class-helper-methods/#comment-26107</guid>
		<description>I posted this as a bug on CodeGear. The response was "as designed".</description>
		<content:encoded><![CDATA[<p>I posted this as a bug on CodeGear. The response was &#8220;as designed&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Aborting combobox dropdown, showing dialog box by LuvsNPR</title>
		<link>http://blog.excastle.com/2004/07/12/aborting-combobox-dropdown-showing-dialog-box/#comment-25781</link>
		<dc:creator>LuvsNPR</dc:creator>
		<pubDate>Tue, 15 Jul 2008 14:16:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2004/07/12/aborting-combobox-dropdown-showing-dialog-box/#comment-25781</guid>
		<description>Thanks a lot for the tip.  I encountered the same issue yesterday and was astounded to find that your fix is still applicable 3 years later!</description>
		<content:encoded><![CDATA[<p>Thanks a lot for the tip.  I encountered the same issue yesterday and was astounded to find that your fix is still applicable 3 years later!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The coolness that is Rake by Ittay</title>
		<link>http://blog.excastle.com/2006/09/05/the-coolness-that-is-rake/#comment-25474</link>
		<dc:creator>Ittay</dc:creator>
		<pubDate>Sun, 13 Jul 2008 20:14:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2006/09/05/the-coolness-that-is-rake/#comment-25474</guid>
		<description>Brad: Did you look at buildr? It overlays rake with project structure includind dependencies between projects. It is currently very java oriented, but c++ can be added.</description>
		<content:encoded><![CDATA[<p>Brad: Did you look at buildr? It overlays rake with project structure includind dependencies between projects. It is currently very java oriented, but c++ can be added.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on WatchCat by Mike</title>
		<link>http://blog.excastle.com/2004/10/26/watchcat/#comment-25418</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Sun, 13 Jul 2008 16:17:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2004/10/26/watchcat/#comment-25418</guid>
		<description>I someone have the source code for it. It whould be great if you could post a link. :-)</description>
		<content:encoded><![CDATA[<p>I someone have the source code for it. It whould be great if you could post a link. <img src='http://blog.excastle.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TechEd 2008 notes: Best Practices with the Microsoft Visual C# 3.0 Language Features by Marcel Popescu</title>
		<link>http://blog.excastle.com/2008/06/12/teched-2008-notes-best-practices-with-the-microsoft-visual-c-30-language-features/#comment-25221</link>
		<dc:creator>Marcel Popescu</dc:creator>
		<pubDate>Sat, 12 Jul 2008 07:14:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/?p=2553#comment-25221</guid>
		<description>"That’s a worst practice. It violates all three of the above guidelines. Don’t do it just because it’s cool."

Do you have pointers to an article explaining *why* it's wrong to violate those guidelines? Ok, I grok the one about namespaces, but I don't understand the reason for the other two - I am actually using that IsNull() extension method.</description>
		<content:encoded><![CDATA[<p>&#8220;That’s a worst practice. It violates all three of the above guidelines. Don’t do it just because it’s cool.&#8221;</p>
<p>Do you have pointers to an article explaining *why* it&#8217;s wrong to violate those guidelines? Ok, I grok the one about namespaces, but I don&#8217;t understand the reason for the other two - I am actually using that IsNull() extension method.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on End of the Adderall by Joe</title>
		<link>http://blog.excastle.com/2005/01/12/end-of-the-adderall/#comment-24775</link>
		<dc:creator>Joe</dc:creator>
		<pubDate>Wed, 09 Jul 2008 01:11:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2005/01/12/end-of-the-adderall/#comment-24775</guid>
		<description>jake: You're joking, right? There's no exchange rate for drug dosages. It'll be different for everyone. Some drugs work better for some people, and side effects (including the dangerous ones) vary tremendously from person to person. That's why there's more than one drug, you see.

The real question is, why aren't you following your prescription?</description>
		<content:encoded><![CDATA[<p>jake: You&#8217;re joking, right? There&#8217;s no exchange rate for drug dosages. It&#8217;ll be different for everyone. Some drugs work better for some people, and side effects (including the dangerous ones) vary tremendously from person to person. That&#8217;s why there&#8217;s more than one drug, you see.</p>
<p>The real question is, why aren&#8217;t you following your prescription?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on ReSharper, day 11: Code navigation by Derek Greer</title>
		<link>http://blog.excastle.com/2007/02/11/resharper-day-11-code-navigation/#comment-24408</link>
		<dc:creator>Derek Greer</dc:creator>
		<pubDate>Sun, 06 Jul 2008 02:46:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excastle.com/2007/02/11/resharper-day-11-code-navigation/#comment-24408</guid>
		<description>This request has my vote.</description>
		<content:encoded><![CDATA[<p>This request has my vote.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
