<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>.Net Smoothie &#187; C# 3.0 migration upgrade refactor</title>
	<atom:link href="http://www.richardbushnell.net/tag/c-3-0-migration-upgrade-refactor/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.richardbushnell.net</link>
	<description></description>
	<lastBuildDate>Wed, 30 Dec 2009 11:42:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>New series: Refactoring C# 1.0 code to C# 3.0</title>
		<link>http://www.richardbushnell.net/2007/12/25/refactoring-c-10-code-to-c-30/</link>
		<comments>http://www.richardbushnell.net/2007/12/25/refactoring-c-10-code-to-c-30/#comments</comments>
		<pubDate>Tue, 25 Dec 2007 16:58:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C# 2.0]]></category>
		<category><![CDATA[C# 3.0]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[C# 3.0 migration upgrade refactor]]></category>

		<guid isPermaLink="false">http://richardbushnell.net/index.php/2007/12/25/refactoring-c-10-code-to-c-30/</guid>
		<description><![CDATA[I really like Scott Hanselmann&#8217;s idea to write an indefinite series of posts about reading code to be a better developer. I&#8217;m going to copy his idea, and write a series of my own. Since its first version, C# has evolved from being a Java clone to something much more dynamic. I&#8217;ve noticed that developers [...]]]></description>
			<content:encoded><![CDATA[
<!-- using Like-Button-Plugin-For-Wordpress [v4.2] | by http://www.gb-world.net -->
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.richardbushnell.net%2F2007%2F12%2F25%2Frefactoring-c-10-code-to-c-30%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="false" style="border:none; overflow:; width:450px; height:30px"></iframe>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2] | by http://www.gb-world.net -->
<br><p>I really like <a href="http://www.hanselman.com/blog/" target="_blank">Scott Hanselmann&#8217;s</a> idea to write an indefinite series of posts about <a href="http://www.hanselman.com/blog/ReadingToBeABetterDeveloperTheCoding4FunDevKit.aspx" target="_blank">reading code to be a better developer</a>. I&#8217;m going to copy his idea, and write a series of my own.</p>
<p>Since its first version, C# has evolved from being a Java clone to something much more dynamic. I&#8217;ve noticed that developers often find themselves stuck long projects, and its sometimes hard to keep up with all the changes. I know a lot of developers who are still using .Net 1.1 because the project they are working on forces them too. For them, C# is still very much like Java. </p>
<p>So for all those who want to know what has changed since the first version, I&#8217;ve decided to make a new series of posts called &#8220;Refactoring from C# 1.0 to C# 3.0&#8243;. I will show through examples how you can make your code easier to understand and maintain by using the new features in C#. I&#8217;m not necessarily going to do it in historical order &#8211; I won&#8217;t show any preference for C# 2.0 Generics over C# 3.0 Extension Methods, for example. And C# 2.0 anonymous methods will take second place to C# 3.0 lambda expressions, which generally replaces them. I&#8217;m going to try to show how things have changed, and when you should or should not use the new features.</p>
<p>Some of the things I&#8217;ll cover are:</p>
<ul>
<li>Anonymous types</li>
<li>Anonymous methods and lambda expressions</li>
<li>Extension Methods</li>
<li>Yield statements and iterators</li>
<li>Generics</li>
<li>List comprehensions (ala LINQ)</li>
<li>Mixins</li>
<li>Partial types</li>
<li>Type and Array inference</li>
<li>Property visibility</li>
<li>Automatic properties</li>
<li>Static classes</li>
<li>The Global namespace</li>
<li>Object, Collection and Dictionary initializers</li>
</ul>
<p>I&#8217;ll try to treat each one as a refactoring opportunity, and not as a &#8220;must&#8221; or &#8220;must-not&#8221;. The idea is to write more maintainable code using the new features, not just go along with the trends.</p>
<p><em>Note</em>: I&#8217;m not going to treat the .Net base library at all. Just the C# language.</p>

<!-- using Like-Button-Plugin-For-Wordpress [v4.2] | by http://www.gb-world.net -->
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.richardbushnell.net%2F2007%2F12%2F25%2Frefactoring-c-10-code-to-c-30%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="false" style="border:none; overflow:; width:450px; height:30px"></iframe>
<!-- using Like-Button-Plugin-For-Wordpress [v4.2] | by http://www.gb-world.net -->
]]></content:encoded>
			<wfw:commentRss>http://www.richardbushnell.net/2007/12/25/refactoring-c-10-code-to-c-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

