<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>Scott Dorman</title>
        <link>http://geekswithblogs.net/sdorman/Default.aspx</link>
        <description>ephemeral segment</description>
        <language>en-US</language>
        <copyright>Scott Dorman</copyright>
        <managingEditor>sj_dorman@hotmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/us/</creativeCommons:license>
        <image>
            <title>Scott Dorman</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/sdorman/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <geo:lat>27.979114</geo:lat><geo:long>-82.781666</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/ScottDorman" type="application/rss+xml" /><feedburner:emailServiceId>ScottDorman</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FScottDorman" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FScottDorman" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FScottDorman" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/ScottDorman" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FScottDorman" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FScottDorman" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FScottDorman" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FScottDorman" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
            <title>Sams Teach Yourself Visual C# 2010 in 24 Hours</title>
            <category>Sams Teach Yourself C# 2010</category>
            <category>.NET (C#)</category>
            <category>.NET (General)</category>
            <link>http://feedproxy.google.com/~r/ScottDorman/~3/l3yjNn9hYLw/sams-teach-yourself-visual-c-2010-in-24-hours.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/sdorman/WindowsLiveWriter/SamsTeachYourselfVisualC2010in24Hours_143D1/0672331012_4.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 5px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="0672331012" border="0" alt="0672331012" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/sdorman/WindowsLiveWriter/SamsTeachYourselfVisualC2010in24Hours_143D1/0672331012_thumb_1.jpg" width="188" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I have &lt;a href="http://geekswithblogs.net/sdorman/archive/2009/06/26/sams-teach-yourself-c-2010-in-24-hours.aspx"&gt;previously mentioned&lt;/a&gt; that I’m working on the upcoming &lt;u&gt;Sams Teach Yourself Visual C# 2010 in 24 Hours&lt;/u&gt; book.&lt;/p&gt;  &lt;p&gt;Things are progressing nicely, if a bit slower than I’d prefer. I have the draft for the cover art, which looks really good.&lt;/p&gt;  &lt;p&gt;I’m also very pleased to announce my technical editors – Claudio Lasaala and Eric Lippert.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://claudiolassala.spaces.live.com" target="_blank"&gt;Claudio&lt;/a&gt; is a Senior Developer at &lt;a href="http://eps-software.com/" target="_blank"&gt;EPS Software Corp&lt;/a&gt;. He has presented several lectures at Microsoft events such as PDC and various other Microsoft seminars, as well as several conferences and user groups across North America and Brazil. He is a multiple winner of the Microsoft MVP Award and also holds the MCSD for .NET certification. He has articles published on several magazines, such as MSDN Brazil Magazine, CoDe Magazine, UTMag, Developers Magazine, and FoxPro Advisor.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/ericlippert" target="_blank"&gt;Eric&lt;/a&gt; is a senior software design engineer at Microsoft has been working full time in the developer division since 1996, where he assisted with the design and implementation of VBScript, JScript, JScript.NET, Windows Script Host, Visual Studio Tools for Office and C#. &lt;/p&gt;  &lt;p&gt;I am looking forward to working with both Claudio and Eric through the technical editing process and getting this book completed and available, which should happen sometime early in 2010.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e2c1b31f-005e-4de6-99b5-352723dad9be" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Books" rel="tag"&gt;Books&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Sams+Teach+Yourself+C%23+2010" rel="tag"&gt;Sams Teach Yourself C# 2010&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136051"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136051" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/136051.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-IrNeL2VqDykAU1rWCdZ2I4z3kk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-IrNeL2VqDykAU1rWCdZ2I4z3kk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-IrNeL2VqDykAU1rWCdZ2I4z3kk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-IrNeL2VqDykAU1rWCdZ2I4z3kk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=l3yjNn9hYLw:NiQ_XrvdIcc:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=l3yjNn9hYLw:NiQ_XrvdIcc:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=l3yjNn9hYLw:NiQ_XrvdIcc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=l3yjNn9hYLw:NiQ_XrvdIcc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=l3yjNn9hYLw:NiQ_XrvdIcc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=l3yjNn9hYLw:NiQ_XrvdIcc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=l3yjNn9hYLw:NiQ_XrvdIcc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=l3yjNn9hYLw:NiQ_XrvdIcc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=l3yjNn9hYLw:NiQ_XrvdIcc:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=l3yjNn9hYLw:NiQ_XrvdIcc:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=l3yjNn9hYLw:NiQ_XrvdIcc:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=l3yjNn9hYLw:NiQ_XrvdIcc:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=l3yjNn9hYLw:NiQ_XrvdIcc:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=l3yjNn9hYLw:NiQ_XrvdIcc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=l3yjNn9hYLw:NiQ_XrvdIcc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=l3yjNn9hYLw:NiQ_XrvdIcc:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=l3yjNn9hYLw:NiQ_XrvdIcc:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=l3yjNn9hYLw:NiQ_XrvdIcc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=l3yjNn9hYLw:NiQ_XrvdIcc:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=l3yjNn9hYLw:NiQ_XrvdIcc:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ScottDorman/~4/l3yjNn9hYLw" height="1" width="1"/&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/sdorman/archive/2009/11/05/sams-teach-yourself-visual-c-2010-in-24-hours.aspx</guid>
            <pubDate>Fri, 06 Nov 2009 04:01:43 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/136051.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2009/11/05/sams-teach-yourself-visual-c-2010-in-24-hours.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/136051.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/136051.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/sdorman/archive/2009/11/05/sams-teach-yourself-visual-c-2010-in-24-hours.aspx</feedburner:origLink></item>
        <item>
            <title>Visual Studio 2010 Beta 2</title>
            <category>Visual Studio</category>
            <category>.NET (General)</category>
            <category>.NET (C#)</category>
            <link>http://feedproxy.google.com/~r/ScottDorman/~3/1MTTqE02Au8/visual-studio-2010-beta-2.aspx</link>
            <description>&lt;p&gt;Visual Studio 2010 Beta 2 is now available for &lt;a href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx"&gt;MSDN subscribers&lt;/a&gt;, and generally available on October 21. I haven’t had a chance yet to play around with it, but some of the CLR changes that are &lt;strong&gt;very&lt;/strong&gt; exciting to hear about are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The new &lt;a href="http://msdn.microsoft.com/en-us/library/system.string.isnullorwhitespace(VS.100).aspx" target="_blank"&gt;String.IsNullOrWhiteSpace&lt;/a&gt; method indicates whether a string is null, empty, or consists only of white-space characters. &lt;/li&gt;    &lt;li&gt;New overloads have been added to the &lt;a href="http://msdn.microsoft.com/en-us/library/system.string.concat(VS.100).aspx" target="_blank"&gt;String.Concat&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/system.string.join(VS.100).aspx" target="_blank"&gt;String.Join&lt;/a&gt; methods that concatenate members of an &lt;a href="http://msdn.microsoft.com/en-us/library/9eekhta0(VS.100).aspx" target="_blank"&gt;IEnumerable&amp;lt;T&amp;gt;&lt;/a&gt; collections.&lt;/li&gt;    &lt;li&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/dd991828(VS.100).aspx" target="_blank"&gt;String.Concat&amp;lt;T&amp;gt;&lt;/a&gt; method lets you concatenate each element in an enumerable collection without first converting the elements to strings.&lt;/li&gt;    &lt;li&gt;The new &lt;a href="http://msdn.microsoft.com/en-us/library/system.enum.hasflag(VS.100).aspx" target="_blank"&gt;Enum.HasFlag&lt;/a&gt; method determines whether one or more bit fields or flags are set in an enumeration value. &lt;/li&gt;    &lt;li&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/dd991876(VS.100).aspx" target="_blank"&gt;Enum.TryParse&amp;lt;TEnum&amp;gt;&lt;/a&gt; method returns a Boolean value that indicates whether a string or integer value could be successfully parsed.&lt;/li&gt;    &lt;li&gt;You can now easily copy one stream into another with the &lt;a href="http://msdn.microsoft.com/en-us/library/system.io.stream.copyto(VS.100).aspx" target="_blank"&gt;CopyTo&lt;/a&gt; method in classes that inherit from the &lt;a href="http://msdn.microsoft.com/en-us/library/system.io.stream(VS.100).aspx" target="_blank"&gt;System.IO.Stream&lt;/a&gt; class.&lt;/li&gt;    &lt;li&gt;New &lt;a href="http://msdn.microsoft.com/en-us/library/system.io.path.combine(VS.100).aspx" target="_blank"&gt;Path.Combine&lt;/a&gt; method overloads enable you to combine file paths.&lt;/li&gt;    &lt;li&gt;You can now parse &lt;a href="http://msdn.microsoft.com/en-us/library/system.guid(VS.100).aspx" target="_blank"&gt;System.Guid&lt;/a&gt; structures. &lt;/li&gt;    &lt;li&gt;The new &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.win32.registryoptions(VS.100).aspx" target="_blank"&gt;Microsoft.Win32.RegistryOptions&lt;/a&gt; enumeration lets you specify a volatile registry key that does not persist after the computer restarts.&lt;/li&gt;    &lt;li&gt;Registry keys no longer are restricted to a maximum length of 255 characters.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I’m really looking forward to these improvements, particularly &lt;a href="http://msdn.microsoft.com/en-us/library/system.enum.hasflag(VS.100).aspx" target="_blank"&gt;Enum.HasFlags&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/dd991876(VS.100).aspx" target="_blank"&gt;Enum.TryParse&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/system.string.isnullorwhitespace(VS.100).aspx" target="_blank"&gt;String.IsNullOrWhiteSpace&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/system.guid.tryparse(VS.100).aspx" target="_blank"&gt;Guid.TryParse&lt;/a&gt;, and &lt;a href="http://msdn.microsoft.com/en-us/library/dd991142(VS.100).aspx" target="_blank"&gt;Path.Combine(string[])&lt;/a&gt;. Of course, since some of these weren’t in Beta 1 (at least as far as I saw), it means revising some of the chapters for my &lt;a href="http://geekswithblogs.net/sdorman/archive/2009/06/26/sams-teach-yourself-c-2010-in-24-hours.aspx" target="_blank"&gt;book&lt;/a&gt;.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a70bc1ed-edf2-4fb9-846e-4a250de745b7" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Visual+Studio+2010" rel="tag"&gt;Visual Studio 2010&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Beta+2" rel="tag"&gt;Beta 2&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.NET+4.0" rel="tag"&gt;.NET 4.0&lt;/a&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:right; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;a href="http://digg.com/submit?url=http%3a%2f%2fgeekswithblogs.net%2fsdorman%2farchive%2f2009%2f10%2f19%2fvisual-studio-2010-beta-2.aspx&amp;amp;title=Visual+Studio+2010+Beta+2"&gt;&lt;img src="http://digg.com/img/badges/100x20-digg-button.png" width="100" height="20" alt="Digg This" title="Digg This" border="0" style="border: 0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135560"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135560" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/135560.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/n2oh_ho0T7Q596ivH-qFF79zms0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/n2oh_ho0T7Q596ivH-qFF79zms0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/n2oh_ho0T7Q596ivH-qFF79zms0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/n2oh_ho0T7Q596ivH-qFF79zms0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=1MTTqE02Au8:W1-hcXrTaF8:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=1MTTqE02Au8:W1-hcXrTaF8:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=1MTTqE02Au8:W1-hcXrTaF8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=1MTTqE02Au8:W1-hcXrTaF8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=1MTTqE02Au8:W1-hcXrTaF8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=1MTTqE02Au8:W1-hcXrTaF8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=1MTTqE02Au8:W1-hcXrTaF8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=1MTTqE02Au8:W1-hcXrTaF8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=1MTTqE02Au8:W1-hcXrTaF8:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=1MTTqE02Au8:W1-hcXrTaF8:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=1MTTqE02Au8:W1-hcXrTaF8:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=1MTTqE02Au8:W1-hcXrTaF8:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=1MTTqE02Au8:W1-hcXrTaF8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=1MTTqE02Au8:W1-hcXrTaF8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=1MTTqE02Au8:W1-hcXrTaF8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=1MTTqE02Au8:W1-hcXrTaF8:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=1MTTqE02Au8:W1-hcXrTaF8:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=1MTTqE02Au8:W1-hcXrTaF8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=1MTTqE02Au8:W1-hcXrTaF8:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=1MTTqE02Au8:W1-hcXrTaF8:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ScottDorman/~4/1MTTqE02Au8" height="1" width="1"/&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/sdorman/archive/2009/10/19/visual-studio-2010-beta-2.aspx</guid>
            <pubDate>Mon, 19 Oct 2009 18:09:29 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/135560.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2009/10/19/visual-studio-2010-beta-2.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/135560.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/135560.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/sdorman/archive/2009/10/19/visual-studio-2010-beta-2.aspx</feedburner:origLink></item>
        <item>
            <title>Interesting .NET Framework Statistics</title>
            <category>.NET (General)</category>
            <link>http://feedproxy.google.com/~r/ScottDorman/~3/Lmy2e3qRAsQ/interesting-.net-framework-statistics.aspx</link>
            <description>&lt;p&gt;I’ve been very “heads down” working on my upcoming book from Sams Publishing, &lt;u&gt;Teach Yourself C# 2010 in 24 Hours&lt;/u&gt;, so I haven’t been blogging as much as I usually do. In doing some research for the book, I’ve been taking an in-depth look at the .NET Framework and thought I would share some interesting statistics.&lt;/p&gt;  &lt;p&gt;There are 18,435 total types in the .NET Framework 3.5 SP1, with 13,995 classes, 1,216 interfaces, 2,100 enums, and 1,124 structs. The complete breakdown is shown below.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/sdorman/WindowsLiveWriter/Interesting.NETFrameworkStatistics_12ABF/image_14.png" width="613" height="589" /&gt; &lt;/p&gt;  &lt;p&gt;Of the 13,995 classes, 303 of them are exceptions. There are 227 public and 76 non-public exceptions. The complete breakdown is shown below.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/sdorman/WindowsLiveWriter/Interesting.NETFrameworkStatistics_12ABF/image_15.png" width="613" height="103" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:92a0535e-90f0-48b1-b08c-aaf9eef02386" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/.NET+Framework" rel="tag"&gt;.NET Framework&lt;/a&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:right; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;a href="http://digg.com/submit?url=http%3a%2f%2fgeekswithblogs.net%2fsdorman%2farchive%2f2009%2f09%2f20%2finteresting-.net-framework-statistics.aspx&amp;amp;title=Interesting+.NET+Framework+Statistics"&gt;&lt;img src="http://digg.com/img/badges/100x20-digg-button.png" width="100" height="20" alt="Digg This" title="Digg This" border="0" style="border: 0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134939"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134939" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/134939.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FO3fXqB-gBvYhd0a9rHKZ6TgNJA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FO3fXqB-gBvYhd0a9rHKZ6TgNJA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FO3fXqB-gBvYhd0a9rHKZ6TgNJA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FO3fXqB-gBvYhd0a9rHKZ6TgNJA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=Lmy2e3qRAsQ:dmQ-biEIGrM:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=Lmy2e3qRAsQ:dmQ-biEIGrM:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=Lmy2e3qRAsQ:dmQ-biEIGrM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=Lmy2e3qRAsQ:dmQ-biEIGrM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=Lmy2e3qRAsQ:dmQ-biEIGrM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=Lmy2e3qRAsQ:dmQ-biEIGrM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=Lmy2e3qRAsQ:dmQ-biEIGrM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=Lmy2e3qRAsQ:dmQ-biEIGrM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=Lmy2e3qRAsQ:dmQ-biEIGrM:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=Lmy2e3qRAsQ:dmQ-biEIGrM:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=Lmy2e3qRAsQ:dmQ-biEIGrM:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=Lmy2e3qRAsQ:dmQ-biEIGrM:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=Lmy2e3qRAsQ:dmQ-biEIGrM:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=Lmy2e3qRAsQ:dmQ-biEIGrM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=Lmy2e3qRAsQ:dmQ-biEIGrM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=Lmy2e3qRAsQ:dmQ-biEIGrM:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=Lmy2e3qRAsQ:dmQ-biEIGrM:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=Lmy2e3qRAsQ:dmQ-biEIGrM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=Lmy2e3qRAsQ:dmQ-biEIGrM:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=Lmy2e3qRAsQ:dmQ-biEIGrM:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ScottDorman/~4/Lmy2e3qRAsQ" height="1" width="1"/&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/sdorman/archive/2009/09/20/interesting-.net-framework-statistics.aspx</guid>
            <pubDate>Mon, 21 Sep 2009 01:15:01 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/134939.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2009/09/20/interesting-.net-framework-statistics.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/134939.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/134939.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/sdorman/archive/2009/09/20/interesting-.net-framework-statistics.aspx</feedburner:origLink></item>
        <item>
            <title>Premature optimization is the root of all evil</title>
            <category>.NET (C#)</category>
            <category>.NET (General)</category>
            <link>http://feedproxy.google.com/~r/ScottDorman/~3/cfw3V0cUBhM/premature-optimization-is-the-root-of-all-evil.aspx</link>
            <description>&lt;p&gt;I’ve lost count how many times I’ve heard that quote. It’s a great quote said by one of the leading minds in computer programming and formal mathematics, &lt;a href="http://en.wikipedia.org/wiki/Donald_Knuth" target="_blank"&gt;Donald Knuth&lt;/a&gt;. The problem with this quote is that, like so many other things, people have only remembered (or only quote) a small portion of the entire thing.&lt;/p&gt;  &lt;p&gt;To read the full quote, you need to look at a paper published in December 1974 titled &lt;u&gt;Structured Programming with go to Statements&lt;/u&gt; in Computing Surveys.&lt;/p&gt;  &lt;p&gt;The full quote is this (in reference to a loop optimization technique that provides a 12% performance improvement):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The conventional wisdom shared by many of today's software engineers calls for ignoring efficiency in the small; but I believe this is simply an overreaction to the abuses they see being practiced by pennywise-     &lt;br /&gt;and-pound-foolish programmers, who can't debug or maintain their "optimized" programs. In established engineering disciplines a 12% improvement, easily obtained, is never considered marginal; and I believe the same viewpoint should prevail in software engineering. Of course I wouldn't bother making such optimizations on a oneshot job, but when it's a question of preparing quality programs, I don't want to restrict myself to tools that deny me such efficiencies.&lt;/p&gt;    &lt;p&gt;There is no doubt that the grail of efficiency leads to abuse. Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.&lt;/p&gt;    &lt;p&gt;Yet we should not pass up our opportunities in that critical 3%. A good programmer will not be lulled into complacency by such reasoning, he will be wise to look carefully at the critical code; but only after that code     &lt;br /&gt;has been identified. It is often a mistake to make a priori judgments about what parts of a program are really critical, since the universal experience of programmers who have been using measurement tools has been      &lt;br /&gt;that their intuitive guesses fail. &lt;font size="1"&gt;(Computing Surveys, Vol. 6, No. 4, December 1974, p. 268 [p. 8 of the &lt;a href="http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf" target="_blank"&gt;PDF&lt;/a&gt;])&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;While the overall sentiment could be summed up simply as “premature optimization is the root of all evil”, I think the point being made here is that &lt;strong&gt;well-known optimizations&lt;/strong&gt; can and should be applied otherwise time spent on optimizing code should be focused on that small percent of critical code and should be performed with quantitative means.&lt;/p&gt;  &lt;p&gt;What are well-known optimizations? That partly depends on your programming language and partly on your problem domain. Optimizations specific to a problem domain are very domain specific and not easily communicated outside of that domain. However, language specific well-known optimizations are a different story.&lt;/p&gt;  &lt;p&gt;Take string concatenation inside a loop, particularly for languages like C# where strings are immutable objects. Why is that important? Since strings are immutable, they cannot be changed once created. When concatenating two strings you incur overhead from the creation of temporary strings. For example, consider the following code:&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;string s = "this is " + "a test.";&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;While this is an arbitrary example, in order for this line to execute it would be necessary to create 3 strings. (Yes, I know the compiler (and if not the compiler, the JIT) would optimize this to remove the concatenation, but pretend for a moment that it didn’t.) Now, imagine this line running inside a loop 10 times. That loop has just created approximately 30 temporary string objects to perform that concatenation. In such a situation, it should be intuitive that the use of a StringBuilder to perform the string concatenation is preferable as you no longer have the intermediate string object creation and result in one allocation to create the StringBuilder and one allocation to convert the StringBuilder to an actual string object. There is always the possibility that while iterating through the loop the StringBuilder may need to perform a few additional buffer reallocations, but that still results in less overhead than creating immutable string objects.&lt;/p&gt;

&lt;p&gt;The point here is that while it is true that premature optimization is the root of all evil, optimization should be a measured undertaking and well-known optimizations applied early are not premature.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:left; margin:0px; padding:4px 4px 4px 4px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://geekswithblogs.net/sdorman/archive/2009/08/28/premature-optimization-is-the-root-of-all-evil.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://geekswithblogs.net/sdorman/archive/2009/08/28/premature-optimization-is-the-root-of-all-evil.aspx&amp;amp;bgcolor=0080C0&amp;amp;fgcolor=FFFFFF&amp;amp;border=000000&amp;amp;cbgcolor=D4E1ED&amp;amp;cfgcolor=000000" alt="DotNetKicks Image" border="0/" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134372"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134372" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/134372.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Iw3gx_kNB_0d6YpQ80k-nCv4OZo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Iw3gx_kNB_0d6YpQ80k-nCv4OZo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Iw3gx_kNB_0d6YpQ80k-nCv4OZo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Iw3gx_kNB_0d6YpQ80k-nCv4OZo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=cfw3V0cUBhM:GEHmJHjlB4w:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=cfw3V0cUBhM:GEHmJHjlB4w:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=cfw3V0cUBhM:GEHmJHjlB4w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=cfw3V0cUBhM:GEHmJHjlB4w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=cfw3V0cUBhM:GEHmJHjlB4w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=cfw3V0cUBhM:GEHmJHjlB4w:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=cfw3V0cUBhM:GEHmJHjlB4w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=cfw3V0cUBhM:GEHmJHjlB4w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=cfw3V0cUBhM:GEHmJHjlB4w:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=cfw3V0cUBhM:GEHmJHjlB4w:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=cfw3V0cUBhM:GEHmJHjlB4w:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=cfw3V0cUBhM:GEHmJHjlB4w:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=cfw3V0cUBhM:GEHmJHjlB4w:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=cfw3V0cUBhM:GEHmJHjlB4w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=cfw3V0cUBhM:GEHmJHjlB4w:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=cfw3V0cUBhM:GEHmJHjlB4w:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=cfw3V0cUBhM:GEHmJHjlB4w:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=cfw3V0cUBhM:GEHmJHjlB4w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=cfw3V0cUBhM:GEHmJHjlB4w:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=cfw3V0cUBhM:GEHmJHjlB4w:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ScottDorman/~4/cfw3V0cUBhM" height="1" width="1"/&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/sdorman/archive/2009/08/28/premature-optimization-is-the-root-of-all-evil.aspx</guid>
            <pubDate>Sat, 29 Aug 2009 03:24:41 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/134372.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2009/08/28/premature-optimization-is-the-root-of-all-evil.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/134372.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/134372.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/sdorman/archive/2009/08/28/premature-optimization-is-the-root-of-all-evil.aspx</feedburner:origLink></item>
        <item>
            <title>Sams Teach Yourself C# 2010 in 24 Hours</title>
            <category>Books</category>
            <category>Sams Teach Yourself C# 2010</category>
            <link>http://feedproxy.google.com/~r/ScottDorman/~3/-dUiHif2jsw/sams-teach-yourself-c-2010-in-24-hours.aspx</link>
            <description>&lt;p&gt;I’m sure most of you are familiar with the Sams Teach Yourself books, at least in passing if not in owning one. I am very excited to announce that I will be joining the Sams Publishing authoring team for their upcoming &lt;u&gt;Teach Yourself C# 2010 in 24 Hours&lt;/u&gt; book.&lt;/p&gt;  &lt;p&gt;This new edition will be quite a bit different from the previous editions since it will be much more language-focused and will take a more holistic view of the language. If you have already looked at one of the earlier editions and decided that it wasn’t for you, please give the new edition a chance to change your mind; for those of you who already have an earlier edition, I hope this one will be of interest to you as well.&lt;/p&gt;  &lt;p&gt;As it gets closer to the release date, I’ll be sure to let everyone know when it will be available.&lt;/p&gt;  &lt;p&gt;I also want to thank &lt;a href="http://keithelder.net/blog/" target="_blank"&gt;Keith Elder&lt;/a&gt;, &lt;a href="http://drowningintechnicaldebt.com/blogs/ShawnWeisfeld/default.aspx" target="_blank"&gt;Shawn Weisfeld&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/brada/" target="_blank"&gt;Brad Abrams&lt;/a&gt;, and &lt;a href="http://blogs.msdn.com/kcwalina/" target="_blank"&gt;Krzysztof Cwalina&lt;/a&gt; for providing some excellent feedback on the table of contents.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c5743e5e-bff5-4e9f-9c41-484e4fb43856" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Books" rel="tag"&gt;Books&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Sams+Teach+Yourself+C%23+2010" rel="tag"&gt;Sams Teach Yourself C# 2010&lt;/a&gt;&lt;/div&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:left; margin:0px; padding:4px 4px 4px 4px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://geekswithblogs.net/sdorman/archive/2009/06/26/sams-teach-yourself-c-2010-in-24-hours.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://geekswithblogs.net/sdorman/archive/2009/06/26/sams-teach-yourself-c-2010-in-24-hours.aspx&amp;amp;bgcolor=0080C0&amp;amp;fgcolor=FFFFFF&amp;amp;border=000000&amp;amp;cbgcolor=D4E1ED&amp;amp;cfgcolor=000000" alt="DotNetKicks Image" border="0/" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133088"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133088" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/sdorman/aggbug/133088.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AMCdvCOExXh_B1BZkEUuO8NZfsc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AMCdvCOExXh_B1BZkEUuO8NZfsc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AMCdvCOExXh_B1BZkEUuO8NZfsc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AMCdvCOExXh_B1BZkEUuO8NZfsc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=-dUiHif2jsw:soXQfnwwM2E:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=-dUiHif2jsw:soXQfnwwM2E:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=-dUiHif2jsw:soXQfnwwM2E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=-dUiHif2jsw:soXQfnwwM2E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=-dUiHif2jsw:soXQfnwwM2E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=-dUiHif2jsw:soXQfnwwM2E:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=-dUiHif2jsw:soXQfnwwM2E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=-dUiHif2jsw:soXQfnwwM2E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=-dUiHif2jsw:soXQfnwwM2E:JEwB19i1-c4"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=-dUiHif2jsw:soXQfnwwM2E:JEwB19i1-c4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=-dUiHif2jsw:soXQfnwwM2E:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=-dUiHif2jsw:soXQfnwwM2E:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=-dUiHif2jsw:soXQfnwwM2E:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=-dUiHif2jsw:soXQfnwwM2E:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=-dUiHif2jsw:soXQfnwwM2E:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=-dUiHif2jsw:soXQfnwwM2E:bcOpcFrp8Mo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=bcOpcFrp8Mo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=-dUiHif2jsw:soXQfnwwM2E:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=-dUiHif2jsw:soXQfnwwM2E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ScottDorman?a=-dUiHif2jsw:soXQfnwwM2E:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ScottDorman?i=-dUiHif2jsw:soXQfnwwM2E:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ScottDorman/~4/-dUiHif2jsw" height="1" width="1"/&gt;</description>
            <dc:creator>Scott Dorman</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/sdorman/archive/2009/06/26/sams-teach-yourself-c-2010-in-24-hours.aspx</guid>
            <pubDate>Fri, 26 Jun 2009 23:54:33 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/sdorman/comments/133088.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/sdorman/archive/2009/06/26/sams-teach-yourself-c-2010-in-24-hours.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/sdorman/comments/commentRss/133088.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/sdorman/services/trackbacks/133088.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/sdorman/archive/2009/06/26/sams-teach-yourself-c-2010-in-24-hours.aspx</feedburner:origLink></item>
    </channel>
</rss>
