<?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>Alvin Ashcraft&#039;s Morning Dew &#187; visual studio</title>
	<atom:link href="http://www.alvinashcraft.com/tag/visual-studio/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alvinashcraft.com</link>
	<description>Your Source for .NET Development Resources</description>
	<lastBuildDate>Fri, 10 Feb 2012 12:57:54 +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>C# + ReSharper = Awesome: Tip #8 &#8211; Extract Class From Parameters</title>
		<link>http://www.alvinashcraft.com/2012/01/23/c-resharper-awesome-tip-8-extract-class-from-parameters/</link>
		<comments>http://www.alvinashcraft.com/2012/01/23/c-resharper-awesome-tip-8-extract-class-from-parameters/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 01:37:23 +0000</pubDate>
		<dc:creator>Alvin Ashcraft</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[resharper]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.alvinashcraft.com/?p=2129</guid>
		<description><![CDATA[This is the eighth in a series of quick how-to articles on ReSharper. Tip #8 – Extract Class From Parameters Use: If you find yourself passing a set of related values to a method, you should probably put all of those items into a single class or struct. From JetBrains: This refactoring creates a new [...]]]></description>
			<content:encoded><![CDATA[<p>This is the eighth in a series of quick how-to articles on <a href="http://www.jetbrains.com/resharper/" target="_blank">ReSharper</a>.</p>
<h3>Tip #8 – Extract Class From Parameters</h3>
<p><strong>Use:</strong> If you find yourself passing a set of related values to a method, you should probably put all of those items into a single class or struct. From <a href="http://www.jetbrains.com/resharper/features/code_refactoring.html#Extract_Class_from_Parameters" target="_blank">JetBrains</a>:</p>
<blockquote><p>This refactoring creates a new class or struct and converts parameters of the selected method into encapsulated fields of the newly created type (with constructor taking parameters, fields to store values and properties to retrieve values). Usages of parameters are converted to usages of properties of created type.</p>
</blockquote>
<h5>Before</h5>
<div class="csharpcode">
<pre><span class="lnum">   1:  </span>    <span class="kwrd">public</span> <span class="kwrd">class</span> EmployeeUtilities</pre>
<pre><span class="lnum">   2:  </span>    {</pre>
<pre><span class="lnum">   3:  </span>        <span class="kwrd">public</span> <span class="kwrd">bool</span> ValidateTerminatedEmployeeInfo(<span class="kwrd">int</span> employeeId</pre>
<pre><span class="lnum">   4:  </span>                                                 , <span class="kwrd">string</span> firstName</pre>
<pre><span class="lnum">   5:  </span>                                                 , <span class="kwrd">string</span> lastName</pre>
<pre><span class="lnum">   6:  </span>                                                 , DateTime hireDate</pre>
<pre><span class="lnum">   7:  </span>                                                 , DateTime terminateDate)</pre>
<pre><span class="lnum">   8:  </span>        {</pre>
<pre><span class="lnum">   9:  </span>            <span class="kwrd">if</span> (employeeId &gt; -1 &amp;&amp; </pre>
<pre><span class="lnum">  10:  </span>                !String.IsNullOrWhiteSpace(firstName) &amp;&amp; </pre>
<pre><span class="lnum">  11:  </span>                !String.IsNullOrWhiteSpace(lastName) &amp;&amp;</pre>
<pre><span class="lnum">  12:  </span>                hireDate &lt; DateTime.Now &amp;&amp; </pre>
<pre><span class="lnum">  13:  </span>                terminateDate &gt; hireDate)</pre>
<pre><span class="lnum">  14:  </span>            {</pre>
<pre><span class="lnum">  15:  </span>                <span class="rem">// do awesome stuff</span></pre>
<pre><span class="lnum">  16:  </span>                <span class="kwrd">return</span> <span class="kwrd">true</span>;</pre>
<pre><span class="lnum">  17:  </span>            }</pre>
<pre><span class="lnum">  18:  </span>&#160;</pre>
<pre><span class="lnum">  19:  </span>            <span class="kwrd">return</span> <span class="kwrd">false</span>;</pre>
<pre><span class="lnum">  20:  </span>        }</pre>
<pre><span class="lnum">  21:  </span>    }</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<h5>Right-click the method</h5>
<p><a href="http://www.alvinashcraft.com/wp-content/uploads/image18.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.alvinashcraft.com/wp-content/uploads/image_thumb7.png" width="644" height="153" /></a></p>
<h5>Extract Class From Parameters</h5>
<p><a href="http://www.alvinashcraft.com/wp-content/uploads/SNAGHTML10f0d4a5.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML10f0d4a5" border="0" alt="SNAGHTML10f0d4a5" src="http://www.alvinashcraft.com/wp-content/uploads/SNAGHTML10f0d4a5_thumb.png" width="545" height="484" /></a></p>
<h5>After</h5>
<div class="csharpcode">
<pre><span class="lnum">   1:  </span>    <span class="kwrd">public</span> <span class="kwrd">class</span> EmployeeInfo</pre>
<pre><span class="lnum">   2:  </span>    {</pre>
<pre><span class="lnum">   3:  </span>        <span class="kwrd">private</span> <span class="kwrd">int</span> _employeeId;</pre>
<pre><span class="lnum">   4:  </span>        <span class="kwrd">private</span> <span class="kwrd">string</span> _firstName;</pre>
<pre><span class="lnum">   5:  </span>        <span class="kwrd">private</span> <span class="kwrd">string</span> _lastName;</pre>
<pre><span class="lnum">   6:  </span>        <span class="kwrd">private</span> DateTime _hireDate;</pre>
<pre><span class="lnum">   7:  </span>        <span class="kwrd">private</span> DateTime _terminateDate;</pre>
<pre><span class="lnum">   8:  </span>&#160;</pre>
<pre><span class="lnum">   9:  </span>        <span class="kwrd">public</span> EmployeeInfo(<span class="kwrd">int</span> employeeId, <span class="kwrd">string</span> firstName, <span class="kwrd">string</span> lastName, DateTime hireDate, DateTime terminateDate)</pre>
<pre><span class="lnum">  10:  </span>        {</pre>
<pre><span class="lnum">  11:  </span>            _employeeId = employeeId;</pre>
<pre><span class="lnum">  12:  </span>            _firstName = firstName;</pre>
<pre><span class="lnum">  13:  </span>            _lastName = lastName;</pre>
<pre><span class="lnum">  14:  </span>            _hireDate = hireDate;</pre>
<pre><span class="lnum">  15:  </span>            _terminateDate = terminateDate;</pre>
<pre><span class="lnum">  16:  </span>        }</pre>
<pre><span class="lnum">  17:  </span>&#160;</pre>
<pre><span class="lnum">  18:  </span>        <span class="kwrd">public</span> <span class="kwrd">int</span> EmployeeId</pre>
<pre><span class="lnum">  19:  </span>        {</pre>
<pre><span class="lnum">  20:  </span>            get { <span class="kwrd">return</span> _employeeId; }</pre>
<pre><span class="lnum">  21:  </span>        }</pre>
<pre><span class="lnum">  22:  </span>&#160;</pre>
<pre><span class="lnum">  23:  </span>        <span class="kwrd">public</span> <span class="kwrd">string</span> FirstName</pre>
<pre><span class="lnum">  24:  </span>        {</pre>
<pre><span class="lnum">  25:  </span>            get { <span class="kwrd">return</span> _firstName; }</pre>
<pre><span class="lnum">  26:  </span>        }</pre>
<pre><span class="lnum">  27:  </span>&#160;</pre>
<pre><span class="lnum">  28:  </span>        <span class="kwrd">public</span> <span class="kwrd">string</span> LastName</pre>
<pre><span class="lnum">  29:  </span>        {</pre>
<pre><span class="lnum">  30:  </span>            get { <span class="kwrd">return</span> _lastName; }</pre>
<pre><span class="lnum">  31:  </span>        }</pre>
<pre><span class="lnum">  32:  </span>&#160;</pre>
<pre><span class="lnum">  33:  </span>        <span class="kwrd">public</span> DateTime HireDate</pre>
<pre><span class="lnum">  34:  </span>        {</pre>
<pre><span class="lnum">  35:  </span>            get { <span class="kwrd">return</span> _hireDate; }</pre>
<pre><span class="lnum">  36:  </span>        }</pre>
<pre><span class="lnum">  37:  </span>&#160;</pre>
<pre><span class="lnum">  38:  </span>        <span class="kwrd">public</span> DateTime TerminateDate</pre>
<pre><span class="lnum">  39:  </span>        {</pre>
<pre><span class="lnum">  40:  </span>            get { <span class="kwrd">return</span> _terminateDate; }</pre>
<pre><span class="lnum">  41:  </span>        }</pre>
<pre><span class="lnum">  42:  </span>    }</pre>
<pre><span class="lnum">  43:  </span>&#160;</pre>
<pre><span class="lnum">  44:  </span>    <span class="kwrd">public</span> <span class="kwrd">class</span> EmployeeUtilities</pre>
<pre><span class="lnum">  45:  </span>    {</pre>
<pre><span class="lnum">  46:  </span>        <span class="kwrd">public</span> <span class="kwrd">bool</span> ValidateTerminatedEmployeeInfo(EmployeeInfo employeeInfo)</pre>
<pre><span class="lnum">  47:  </span>        {</pre>
<pre><span class="lnum">  48:  </span>            <span class="kwrd">if</span> (employeeInfo.EmployeeId &gt; -1 &amp;&amp; </pre>
<pre><span class="lnum">  49:  </span>                !String.IsNullOrWhiteSpace(employeeInfo.FirstName) &amp;&amp; </pre>
<pre><span class="lnum">  50:  </span>                !String.IsNullOrWhiteSpace(employeeInfo.LastName) &amp;&amp;</pre>
<pre><span class="lnum">  51:  </span>                employeeInfo.HireDate &lt; DateTime.Now &amp;&amp; </pre>
<pre><span class="lnum">  52:  </span>                employeeInfo.TerminateDate &gt; employeeInfo.HireDate)</pre>
<pre><span class="lnum">  53:  </span>            {</pre>
<pre><span class="lnum">  54:  </span>                <span class="rem">// do awesome stuff</span></pre>
<pre><span class="lnum">  55:  </span>                <span class="kwrd">return</span> <span class="kwrd">true</span>;</pre>
<pre><span class="lnum">  56:  </span>            }</pre>
<pre><span class="lnum">  57:  </span>&#160;</pre>
<pre><span class="lnum">  58:  </span>            <span class="kwrd">return</span> <span class="kwrd">false</span>;</pre>
<pre><span class="lnum">  59:  </span>        }</pre>
<pre><span class="lnum">  60:  </span>    }</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p><em>Happy coding!</em></p>
<p>&#160;</p>
<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:5e099003-602b-436f-af23-5c4dda0a44f1" class="wlWriterEditableSmartContent">del.icio.us Tags: <a href="http://del.icio.us/popular/visual+studio" rel="tag">visual studio</a>,<a href="http://del.icio.us/popular/resharper" rel="tag">resharper</a>,<a href="http://del.icio.us/popular/refactoring" rel="tag">refactoring</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alvinashcraft.com/2012/01/23/c-resharper-awesome-tip-8-extract-class-from-parameters/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>C# + ReSharper = Awesome: Tip #7&#8211;Move String to Resource</title>
		<link>http://www.alvinashcraft.com/2012/01/20/c-resharper-awesome-tip-7move-string-to-resource/</link>
		<comments>http://www.alvinashcraft.com/2012/01/20/c-resharper-awesome-tip-7move-string-to-resource/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 20:41:57 +0000</pubDate>
		<dc:creator>Alvin Ashcraft</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[resharper]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.alvinashcraft.com/?p=2121</guid>
		<description><![CDATA[This is the seventh in a series of quick how-to articles on ReSharper. Tip #7 – Move String to Resource Use: Moves a string into a resource file to enable localization. Tip: Ensure your project contains at least one Resource (resx) file or the operation will fail. Before 1: public string YouRock() 2: { 3: [...]]]></description>
			<content:encoded><![CDATA[<p>This is the seventh in a series of quick how-to articles on <a href="http://www.jetbrains.com/resharper/" target="_blank">ReSharper</a>.</p>
<h3>Tip #7 – Move String to Resource</h3>
<p><strong>Use:</strong> Moves a string into a resource file to enable localization.</p>
<p><strong>Tip:</strong> Ensure your project contains at least one Resource (resx) file or the operation will fail.</p>
<h5>Before</h5>
<div class="csharpcode">
<pre><span class="lnum">   1:  </span>     <span class="kwrd">public</span> <span class="kwrd">string</span> YouRock()</pre>
<pre><span class="lnum">   2:  </span>     {</pre>
<pre><span class="lnum">   3:  </span>         <span class="kwrd">return</span> <span class="str">&quot;No, YOU rock Mr. Method-Caller!&quot;</span>;</pre>
<pre><span class="lnum">   4:  </span>     }</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<h5>Right-click the string –&gt; Refactor –&gt; Refactor This…</h5>
<p><a href="http://www.alvinashcraft.com/wp-content/uploads/image17.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.alvinashcraft.com/wp-content/uploads/image_thumb6.png" width="364" height="168" /></a></p>
<h5>Move to Resource</h5>
<p><a href="http://www.alvinashcraft.com/wp-content/uploads/SNAGHTML6f7080.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML6f7080" border="0" alt="SNAGHTML6f7080" src="http://www.alvinashcraft.com/wp-content/uploads/SNAGHTML6f7080_thumb.png" width="424" height="307" /></a></p>
<h5>After</h5>
<div class="csharpcode">
<pre><span class="lnum">   1:  </span>     <span class="kwrd">public</span> <span class="kwrd">string</span> YouRock()</pre>
<pre><span class="lnum">   2:  </span>     {</pre>
<pre><span class="lnum">   3:  </span>         <span class="kwrd">return</span> StringResources.No_YOU_rock_Mr_Method_Caller;</pre>
<pre><span class="lnum">   4:  </span>     }</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p><em>Happy coding!</em></p>
<p>&#160;</p>
<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:4c526044-a7ee-44e7-8132-b613a76d2b95" class="wlWriterEditableSmartContent">del.icio.us Tags: <a href="http://del.icio.us/popular/resharper" rel="tag">resharper</a>,<a href="http://del.icio.us/popular/visual+studio" rel="tag">visual studio</a>,<a href="http://del.icio.us/popular/refactoring" rel="tag">refactoring</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alvinashcraft.com/2012/01/20/c-resharper-awesome-tip-7move-string-to-resource/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio Achievements &#8211; The Beta Goes Live!</title>
		<link>http://www.alvinashcraft.com/2012/01/18/visual-studio-achievements-the-beta-goes-live/</link>
		<comments>http://www.alvinashcraft.com/2012/01/18/visual-studio-achievements-the-beta-goes-live/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 16:10:22 +0000</pubDate>
		<dc:creator>Alvin Ashcraft</dc:creator>
				<category><![CDATA[community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[channel 9]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[visual studio]]></category>
		<category><![CDATA[vs2010]]></category>

		<guid isPermaLink="false">http://www.alvinashcraft.com/?p=2111</guid>
		<description><![CDATA[The gang over at Channel 9 have just released the first beta of their Visual Studio Achievements project. I tried it out last night and it’s very cool. Here’s what it’s all about: Bring Some Game To Your Code! A software engineer&#8217;s glory so often goes unnoticed. Attention seems to come either when there are [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.alvinashcraft.com/wp-content/uploads/image001.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image001" border="0" alt="image001" src="http://www.alvinashcraft.com/wp-content/uploads/image001_thumb.jpg" width="121" height="124" /></a></p>
<p>The gang over at Channel 9 have just released the first beta of their Visual Studio Achievements project. I tried it out last night and it’s very cool. Here’s what it’s all about:</p>
<blockquote><h4>Bring Some Game To Your Code!<u></u><u></u></h4>
<p>A software engineer&#8217;s glory so often goes unnoticed. Attention seems to come either when there are bugs or when the final project ships. But rarely is a developer appreciated for all the nuances and subtleties of a piece of code&#8211;and all the heroics it took to write it. With Visual Studio Achievements Beta, your talents are recognized as you perform various coding feats, unlock achievements and earn badges.</p>
</blockquote>
<p>You can read the full announcement <a href="http://channel9.msdn.com/Blogs/C9team/Announcing-Visual-Studio-Achievements" target="_blank">here</a> and grab the beta from the Visual Studio Gallery <a href="http://visualstudiogallery.msdn.microsoft.com/bc7a433b-b594-48d4-bba2-a2f24774d02f" target="_blank">here</a>.</p>
<p>&#160;</p>
<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:a151a703-1b1b-414c-8a2b-5cc40b5c0e1d" class="wlWriterEditableSmartContent">del.icio.us Tags: <a href="http://del.icio.us/popular/visual+studio" rel="tag">visual studio</a>,<a href="http://del.icio.us/popular/vs2010" rel="tag">vs2010</a>,<a href="http://del.icio.us/popular/plugins" rel="tag">plugins</a>,<a href="http://del.icio.us/popular/channel+9" rel="tag">channel 9</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alvinashcraft.com/2012/01/18/visual-studio-achievements-the-beta-goes-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# + ReSharper = Awesome: Tip #6 &#8211; Extract Interface</title>
		<link>http://www.alvinashcraft.com/2012/01/09/c-resharper-awesome-tip-6-extract-interface/</link>
		<comments>http://www.alvinashcraft.com/2012/01/09/c-resharper-awesome-tip-6-extract-interface/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 17:15:35 +0000</pubDate>
		<dc:creator>Alvin Ashcraft</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[resharper]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.alvinashcraft.com/?p=2089</guid>
		<description><![CDATA[This is the sixth in a series of quick how-to articles on ReSharper. Tip #6 – Extract Interface Use: Creates a new interface based on the selected class and updates the class to implement the new interface. This is most useful when working with an existing code base because we all define our interfaces first [...]]]></description>
			<content:encoded><![CDATA[<p>This is the sixth in a series of quick how-to articles on <a href="http://www.jetbrains.com/resharper/" target="_blank">ReSharper</a>.</p>
<h3>Tip #6 – Extract Interface</h3>
<p><strong>Use:</strong> Creates a new interface based on the selected class and updates the class to implement the new interface. This is most useful when working with an existing code base because we all define our interfaces first when doing greenfield development, right?&#160; <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.alvinashcraft.com/wp-content/uploads/wlEmoticon-smile3.png" /></p>
<h5>Before</h5>
<div class="csharpcode">
<pre><span class="lnum">   1:  </span>    <span class="kwrd">public</span> <span class="kwrd">class</span> Shooter</pre>
<pre><span class="lnum">   2:  </span>    {</pre>
<pre><span class="lnum">   3:  </span>        <span class="kwrd">public</span> <span class="kwrd">string</span> Name { get; set; }</pre>
<pre><span class="lnum">   4:  </span>&#160;</pre>
<pre><span class="lnum">   5:  </span>        <span class="kwrd">public</span> <span class="kwrd">string</span> ReleaseDate { get; set; }</pre>
<pre><span class="lnum">   6:  </span>&#160;</pre>
<pre><span class="lnum">   7:  </span>        <span class="kwrd">public</span> <span class="kwrd">int</span> MaxPlayers { get; set; }</pre>
<pre><span class="lnum">   8:  </span>&#160;</pre>
<pre><span class="lnum">   9:  </span>        <span class="kwrd">public</span> <span class="kwrd">bool</span> HasZombies { get; set; }</pre>
<pre><span class="lnum">  10:  </span>&#160;</pre>
<pre><span class="lnum">  11:  </span>        <span class="kwrd">public</span> <span class="kwrd">bool</span> IsHalo { get; set; }</pre>
<pre><span class="lnum">  12:  </span>&#160;</pre>
<pre><span class="lnum">  13:  </span>        <span class="kwrd">public</span> <span class="kwrd">void</span> Borrow()</pre>
<pre><span class="lnum">  14:  </span>        {</pre>
<pre><span class="lnum">  15:  </span>            <span class="rem">//TODO: Implement borrow logic.</span></pre>
<pre><span class="lnum">  16:  </span>        }</pre>
<pre><span class="lnum">  17:  </span>    }</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<h5>Right-click the class</h5>
<p><a href="http://www.alvinashcraft.com/wp-content/uploads/image16.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.alvinashcraft.com/wp-content/uploads/image_thumb5.png" width="544" height="219" /></a></p>
<h5>Select members</h5>
<p><a href="http://www.alvinashcraft.com/wp-content/uploads/SNAGHTML4614fae1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML4614fae1" border="0" alt="SNAGHTML4614fae1" src="http://www.alvinashcraft.com/wp-content/uploads/SNAGHTML4614fae1_thumb.png" width="484" height="345" /></a></p>
<h5>After</h5>
<div class="csharpcode">
<pre><span class="lnum">   1:  </span>    <span class="kwrd">public</span> <span class="kwrd">interface</span> IGame</pre>
<pre><span class="lnum">   2:  </span>    {</pre>
<pre><span class="lnum">   3:  </span>        <span class="kwrd">string</span> Name { get; set; }</pre>
<pre><span class="lnum">   4:  </span>        <span class="kwrd">string</span> ReleaseDate { get; set; }</pre>
<pre><span class="lnum">   5:  </span>        <span class="kwrd">int</span> MaxPlayers { get; set; }</pre>
<pre><span class="lnum">   6:  </span>        <span class="kwrd">void</span> Borrow();</pre>
<pre><span class="lnum">   7:  </span>    }</pre>
<pre><span class="lnum">   8:  </span>&#160;</pre>
<pre><span class="lnum">   9:  </span>    <span class="kwrd">public</span> <span class="kwrd">class</span> Shooter : IGame</pre>
<pre><span class="lnum">  10:  </span>    {</pre>
<pre><span class="lnum">  11:  </span>        <span class="kwrd">public</span> <span class="kwrd">string</span> Name { get; set; }</pre>
<pre><span class="lnum">  12:  </span>&#160;</pre>
<pre><span class="lnum">  13:  </span>        <span class="kwrd">public</span> <span class="kwrd">string</span> ReleaseDate { get; set; }</pre>
<pre><span class="lnum">  14:  </span>&#160;</pre>
<pre><span class="lnum">  15:  </span>        <span class="kwrd">public</span> <span class="kwrd">int</span> MaxPlayers { get; set; }</pre>
<pre><span class="lnum">  16:  </span>&#160;</pre>
<pre><span class="lnum">  17:  </span>        <span class="kwrd">public</span> <span class="kwrd">bool</span> HasZombies { get; set; }</pre>
<pre><span class="lnum">  18:  </span>&#160;</pre>
<pre><span class="lnum">  19:  </span>        <span class="kwrd">public</span> <span class="kwrd">bool</span> IsHalo { get; set; }</pre>
<pre><span class="lnum">  20:  </span>&#160;</pre>
<pre><span class="lnum">  21:  </span>        <span class="kwrd">public</span> <span class="kwrd">void</span> Borrow()</pre>
<pre><span class="lnum">  22:  </span>        {</pre>
<pre><span class="lnum">  23:  </span>            <span class="rem">//TODO: Implement borrow logic.</span></pre>
<pre><span class="lnum">  24:  </span>        }</pre>
<pre><span class="lnum">  25:  </span>    }</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p><em></em></p>
<p><em>Happy coding!</em></p>
<p>&#160;</p>
<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:964ace36-7c8d-484f-8db8-1d7a61162120" class="wlWriterEditableSmartContent">del.icio.us Tags: <a href="http://del.icio.us/popular/resharper" rel="tag">resharper</a>,<a href="http://del.icio.us/popular/visual+studio" rel="tag">visual studio</a>,<a href="http://del.icio.us/popular/refactoring" rel="tag">refactoring</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alvinashcraft.com/2012/01/09/c-resharper-awesome-tip-6-extract-interface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# + ReSharper = Awesome: Tip #5 &#8211; Replace Constructor with Factory Method</title>
		<link>http://www.alvinashcraft.com/2011/12/22/c-resharper-awesome-tip-5-replace-constructor-with-factory-method/</link>
		<comments>http://www.alvinashcraft.com/2011/12/22/c-resharper-awesome-tip-5-replace-constructor-with-factory-method/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 16:19:35 +0000</pubDate>
		<dc:creator>Alvin Ashcraft</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[resharper]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.alvinashcraft.com/?p=2055</guid>
		<description><![CDATA[This is the fifth in a series of quick how-to articles on ReSharper. Tip #5 – Replace Constructor with Factory Method Use: If an application must control how or when new instances of classes are created, a factory method can achieve this. ReSharper makes it simple to wrap a constructor with a static factory method. [...]]]></description>
			<content:encoded><![CDATA[<p>This is the fifth in a series of quick how-to articles on <a href="http://www.jetbrains.com/resharper/" target="_blank">ReSharper</a>.</p>
<h3>Tip #5 – Replace Constructor with Factory Method</h3>
<p><strong>Use: </strong>If an application must control how or when new instances of classes are created, a factory method can achieve this. ReSharper makes it simple to wrap a constructor with a static factory method.</p>
<h5>Before</h5>
<div class="csharpcode">
<pre><span class="lnum">   1:  </span>    <span class="kwrd">public</span> <span class="kwrd">class</span> Car</pre>
<pre><span class="lnum">   2:  </span>    {</pre>
<pre><span class="lnum">   3:  </span>        <span class="kwrd">private</span> IList&lt;IPart&gt; _parts;</pre>
<pre><span class="lnum">   4:  </span> </pre>
<pre><span class="lnum">   5:  </span>         <span class="kwrd">public</span> Car(IList&lt;IPart&gt; parts)</pre>
<pre><span class="lnum">   6:  </span>         {</pre>
<pre><span class="lnum">   7:  </span>             _parts = parts;</pre>
<pre><span class="lnum">   8:  </span>         }</pre>
<pre><span class="lnum">   9:  </span>    }</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<h5>Right-click the constructor</h5>
<p><a href="http://www.alvinashcraft.com/wp-content/uploads/image15.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.alvinashcraft.com/wp-content/uploads/image_thumb4.png" width="644" height="130" /></a></p>
<h5>Name your method or accept the default</h5>
<p><a href="http://www.alvinashcraft.com/wp-content/uploads/SNAGHTML1ecbd865.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTML1ecbd865" border="0" alt="SNAGHTML1ecbd865" src="http://www.alvinashcraft.com/wp-content/uploads/SNAGHTML1ecbd865_thumb.png" width="484" height="199" /></a></p>
<h5>After</h5>
<div class="csharpcode">
<pre><span class="lnum">   1:  </span>    <span class="kwrd">public</span> <span class="kwrd">class</span> Car</pre>
<pre><span class="lnum">   2:  </span>    {</pre>
<pre><span class="lnum">   3:  </span>        <span class="kwrd">public</span> <span class="kwrd">static</span> Car CreateCar(IList&lt;IPart&gt; parts)</pre>
<pre><span class="lnum">   4:  </span>        {</pre>
<pre><span class="lnum">   5:  </span>            <span class="kwrd">return</span> <span class="kwrd">new</span> Car(parts);</pre>
<pre><span class="lnum">   6:  </span>        }</pre>
<pre><span class="lnum">   7:  </span>&#160;</pre>
<pre><span class="lnum">   8:  </span>        <span class="kwrd">private</span> IList&lt;IPart&gt; _parts;</pre>
<pre><span class="lnum">   9:  </span>&#160;</pre>
<pre><span class="lnum">  10:  </span>        <span class="kwrd">private</span> Car(IList&lt;IPart&gt; parts)</pre>
<pre><span class="lnum">  11:  </span>         {</pre>
<pre><span class="lnum">  12:  </span>             _parts = parts;</pre>
<pre><span class="lnum">  13:  </span>         }</pre>
<pre><span class="lnum">  14:  </span>    }</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p><em>Happy coding!</em></p>
<p>&#160;</p>
<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:c11c88e7-371b-4d6b-8034-f6d4050614ac" class="wlWriterEditableSmartContent">del.icio.us Tags: <a href="http://del.icio.us/popular/resharper" rel="tag">resharper</a>,<a href="http://del.icio.us/popular/visual+studio" rel="tag">visual studio</a>,<a href="http://del.icio.us/popular/refactoring" rel="tag">refactoring</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alvinashcraft.com/2011/12/22/c-resharper-awesome-tip-5-replace-constructor-with-factory-method/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# + ReSharper = Awesome: Tip #4 &#8211; Convert Abstract Class to Interface</title>
		<link>http://www.alvinashcraft.com/2011/12/20/c-resharper-awesome-tip-4-convert-abstract-class-to-interface/</link>
		<comments>http://www.alvinashcraft.com/2011/12/20/c-resharper-awesome-tip-4-convert-abstract-class-to-interface/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 18:09:07 +0000</pubDate>
		<dc:creator>Alvin Ashcraft</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[resharper]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.alvinashcraft.com/?p=2044</guid>
		<description><![CDATA[This is the fourth in a series of quick how-to articles on ReSharper. Tip #4 – Convert Abstract Class to Interface Use: This is used when the class(es) that will be inheriting from a base class also need to inherit from another base class. Derived types can inherit from only one base class but can [...]]]></description>
			<content:encoded><![CDATA[<p>This is the fourth in a series of quick how-to articles on <a href="http://www.jetbrains.com/resharper/" target="_blank">ReSharper</a>.</p>
<h3>Tip #4 – Convert Abstract Class to Interface</h3>
<p><strong>Use:</strong> This is used when the class(es) that will be inheriting from a base class also need to inherit from another base class. Derived types can inherit from only one base class but can implement multiple interfaces.</p>
<h5>Before</h5>
<div class="csharpcode">
<pre><span class="lnum">   1:  </span>    <span class="kwrd">public</span> <span class="kwrd">abstract</span> <span class="kwrd">class</span> Book</pre>
<pre><span class="lnum">   2:  </span>    {</pre>
<pre><span class="lnum">   3:  </span>        <span class="kwrd">public</span> <span class="kwrd">abstract</span> <span class="kwrd">string</span> Title { get; set; }</pre>
<pre><span class="lnum">   4:  </span>&#160;</pre>
<pre><span class="lnum">   5:  </span>        <span class="kwrd">public</span> <span class="kwrd">abstract</span> <span class="kwrd">string</span> Year { get; set; }</pre>
<pre><span class="lnum">   6:  </span>&#160;</pre>
<pre><span class="lnum">   7:  </span>        <span class="kwrd">public</span> <span class="kwrd">abstract</span> <span class="kwrd">string</span> Author { get; set; }</pre>
<pre><span class="lnum">   8:  </span>&#160;</pre>
<pre><span class="lnum">   9:  </span>        <span class="kwrd">public</span> <span class="kwrd">abstract</span> <span class="kwrd">void</span> Lend();</pre>
<pre><span class="lnum">  10:  </span>&#160;</pre>
<pre><span class="lnum">  11:  </span>        <span class="kwrd">public</span> <span class="kwrd">abstract</span> <span class="kwrd">void</span> AddToInventory();</pre>
<pre><span class="lnum">  12:  </span>    }</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<h5>Right-click the class</h5>
<p><a href="http://www.alvinashcraft.com/wp-content/uploads/image14.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.alvinashcraft.com/wp-content/uploads/image_thumb3.png" width="644" height="110" /></a></p>
<h5>After</h5>
<div class="csharpcode">
<pre><span class="lnum">   1:  </span>    <span class="kwrd">public</span> <span class="kwrd">interface</span> Book</pre>
<pre><span class="lnum">   2:  </span>    {</pre>
<pre><span class="lnum">   3:  </span>        <span class="kwrd">string</span> Title { get; set; }</pre>
<pre><span class="lnum">   4:  </span>        <span class="kwrd">string</span> Year { get; set; }</pre>
<pre><span class="lnum">   5:  </span>        <span class="kwrd">string</span> Author { get; set; }</pre>
<pre><span class="lnum">   6:  </span>        <span class="kwrd">void</span> Lend();</pre>
<pre><span class="lnum">   7:  </span>        <span class="kwrd">void</span> AddToInventory();</pre>
<pre><span class="lnum">   8:  </span>    }</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p><strong></strong></p>
<p><strong>Note:</strong> Notice that this refactoring does not change the name of the type. At this point, there will be a squiggly line under the interface’s name, Book. Placing the cursor on Book and pressing &lt;Alt+Enter&gt; will prompt ReSharper to rename it to IBook.</p>
<p>&#160;</p>
<p><em>Happy coding!</em></p>
<p>&#160;</p>
<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:2cd1143e-a9e1-4989-a451-a58ace481cff" class="wlWriterEditableSmartContent">del.icio.us Tags: <a href="http://del.icio.us/popular/resharper" rel="tag">resharper</a>,<a href="http://del.icio.us/popular/visual+studio" rel="tag">visual studio</a>,<a href="http://del.icio.us/popular/refactoring" rel="tag">refactoring</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alvinashcraft.com/2011/12/20/c-resharper-awesome-tip-4-convert-abstract-class-to-interface/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>C# + ReSharper = Awesome: Tip #3 &#8211; Convert Into LINQ Expression</title>
		<link>http://www.alvinashcraft.com/2011/12/16/c-resharper-awesome-tip-3-convert-into-linq-expression/</link>
		<comments>http://www.alvinashcraft.com/2011/12/16/c-resharper-awesome-tip-3-convert-into-linq-expression/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 21:44:33 +0000</pubDate>
		<dc:creator>Alvin Ashcraft</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[linq]]></category>
		<category><![CDATA[resharper]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.alvinashcraft.com/?p=2034</guid>
		<description><![CDATA[This is the third in a series of quick how-to articles on Resharper. Tip #3 – Convert Into LINQ Expression Use: ForEach blocks that perform simple bits of logic can often times be rewritten as lambda expressions. This reduces the number of lines of code and usually makes the code more readable. Before public IList&#60;Album&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>This is the third in a series of quick how-to articles on <a href="http://www.jetbrains.com/resharper/" target="_blank">Resharper</a>.</p>
<h3>Tip #3 – Convert Into LINQ Expression</h3>
<p>Use: ForEach blocks that perform simple bits of logic can often times be rewritten as lambda expressions. This reduces the number of lines of code and usually makes the code more readable.</p>
<h5>Before</h5>
<pre class="csharpcode">         <span class="kwrd">public</span> IList&lt;Album&gt; FindAlbumsToGiveAway(IList&lt;Album&gt; albums)
         {
             var badAlbums = <span class="kwrd">new</span> List&lt;Album&gt;();

             <span class="kwrd">foreach</span> (Album album <span class="kwrd">in</span> albums)
             {
                 <span class="kwrd">if</span> (album.Genre == <span class="str">&quot;Country&quot;</span>)
                     badAlbums.Add(album);
             }

             <span class="kwrd">return</span> badAlbums;
         }</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<h5>Press &lt;Alt+Enter&gt;</h5>
<p><a href="http://www.alvinashcraft.com/wp-content/uploads/image13.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.alvinashcraft.com/wp-content/uploads/image_thumb2.png" width="484" height="178" /></a></p>
<h5>After</h5>
<pre class="csharpcode">         <span class="kwrd">public</span> IList&lt;Album&gt; FindAlbumsToGiveAway(IList&lt;Album&gt; albums)
         {
             <span class="kwrd">return</span> albums.Where(album =&gt; album.Genre == <span class="str">&quot;Country&quot;</span>).ToList();
         }</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p><em>Happy coding!</em></p>
<p>&#160;</p>
<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:b6393658-a9d7-47da-9a23-170027582297" class="wlWriterEditableSmartContent">del.icio.us Tags: <a href="http://del.icio.us/popular/resharper" rel="tag">resharper</a>,<a href="http://del.icio.us/popular/c%23" rel="tag">c#</a>,<a href="http://del.icio.us/popular/visual+studio" rel="tag">visual studio</a>,<a href="http://del.icio.us/popular/linq" rel="tag">linq</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alvinashcraft.com/2011/12/16/c-resharper-awesome-tip-3-convert-into-linq-expression/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# + ReSharper = Awesome: Tip #2 &#8211; Create Field</title>
		<link>http://www.alvinashcraft.com/2011/12/14/c-resharper-awesome-tip-2-create-field/</link>
		<comments>http://www.alvinashcraft.com/2011/12/14/c-resharper-awesome-tip-2-create-field/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 18:54:35 +0000</pubDate>
		<dc:creator>Alvin Ashcraft</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[resharper]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.alvinashcraft.com/?p=2025</guid>
		<description><![CDATA[This is the second in a series of quick how-to posts on ReSharper. Tip #2 – Create Field Use: Within the body of a class or property, you can type the name of a non-existent variable name. When you place your cursor on the variable, ReSharper provides several options to resolve the impending compilation error. [...]]]></description>
			<content:encoded><![CDATA[<p>This is the second in a series of quick how-to posts on <a href="http://www.jetbrains.com/resharper/" target="_blank">ReSharper</a>.</p>
<h5>Tip #2 – Create Field</h5>
<p><strong>Use:</strong> Within the body of a class or property, you can type the name of a non-existent variable name. When you place your cursor on the variable, ReSharper provides several options to resolve the impending compilation error. Create Field is one of the options.</p>
<h5>Before</h5>
<div class="csharpcode">
<pre><span class="lnum">   1:  </span>        <span class="kwrd">public</span> <span class="kwrd">void</span> AddAlbum(<span class="kwrd">string</span> album)</pre>
<pre><span class="lnum">   2:  </span>        {</pre>
<pre><span class="lnum">   3:  </span>            <span class="kwrd">if</span> (String.IsNullOrWhiteSpace(album))</pre>
<pre><span class="lnum">   4:  </span>                <span class="kwrd">throw</span> <span class="kwrd">new</span> ArgumentOutOfRangeException(<span class="str">&quot;album&quot;</span>,</pre>
<pre><span class="lnum">   5:  </span>                                                      album,</pre>
<pre><span class="lnum">   6:  </span>                                                      <span class="str">&quot;Please provide an album name.&quot;</span>);</pre>
<pre><span class="lnum">   7:  </span>&#160;</pre>
<pre><span class="lnum">   8:  </span>            <font color="#ff0000">_albums</font>.Add(album);</pre>
<pre><span class="lnum">   9:  </span>        }</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<h5>Press &lt;Alt+Enter&gt;</h5>
<p><a href="http://www.alvinashcraft.com/wp-content/uploads/image12.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.alvinashcraft.com/wp-content/uploads/image_thumb1.png" width="244" height="190" /></a></p>
<h5>After</h5>
<pre class="csharpcode">        <span class="kwrd">private</span> IList&lt;<span class="kwrd">string</span>&gt; _albums = <span class="kwrd">new</span> List&lt;<span class="kwrd">string</span>&gt;();

        <span class="kwrd">public</span> <span class="kwrd">void</span> AddAlbum(<span class="kwrd">string</span> album)
        {
            <span class="kwrd">if</span> (String.IsNullOrWhiteSpace(album))
                <span class="kwrd">throw</span> <span class="kwrd">new</span> ArgumentOutOfRangeException(<span class="str">&quot;album&quot;</span>,
                                                      album,
                                                      <span class="str">&quot;Please provide an album name.&quot;</span>);

            _albums.Add(album);
        }</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p><strong>Note:</strong> I chose the type IList&lt;string&gt;. The default type selected by ReSharper in this case was object. I also added the initializer to the field to avoid null reference exceptions. Please don’t take any of these examples as best coding practices, they are contrived to demonstrate a particular refactoring.</p>
<p><em>Happy coding!</em></p>
<p>&#160;</p>
<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:e7b269f4-f697-4e1c-82f7-3e8589274e7f" class="wlWriterEditableSmartContent">del.icio.us Tags: <a href="http://del.icio.us/popular/resharper" rel="tag">resharper</a>,<a href="http://del.icio.us/popular/c%23" rel="tag">c#</a>,<a href="http://del.icio.us/popular/visual+studio" rel="tag">visual studio</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alvinashcraft.com/2011/12/14/c-resharper-awesome-tip-2-create-field/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET Devs: Need an MSDN Ultimate Subscription? Here are Two Chances to Win One</title>
		<link>http://www.alvinashcraft.com/2010/07/06/net-devs-need-an-msdn-universal-subscription-here-are-two-chances-to-win-one/</link>
		<comments>http://www.alvinashcraft.com/2010/07/06/net-devs-need-an-msdn-universal-subscription-here-are-two-chances-to-win-one/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 18:55:43 +0000</pubDate>
		<dc:creator>Alvin Ashcraft</dc:creator>
				<category><![CDATA[announcements]]></category>
		<category><![CDATA[contests]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[msdn]]></category>
		<category><![CDATA[MVP program]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.alvinashcraft.com/2010/07/06/net-devs-need-an-msdn-universal-subscription-here-are-two-chances-to-win-one/</guid>
		<description><![CDATA[Like my fellow Microsoft MVPs under the development umbrella, I have been given some MSDN Ultimate licenses to give to influential members of the community. I have found a deserving home for one of them. To find homes for the other two licenses, I decided to have two separate contests. This hopefully goes without saying [...]]]></description>
			<content:encoded><![CDATA[<p>Like my fellow Microsoft MVPs under the development umbrella, I have been given some MSDN Ultimate licenses to give to influential members of the community. I have found a deserving home for one of them. To find homes for the other two licenses, I decided to have two separate contests.</p>
<p>This hopefully goes without saying <em><font size="1">(Yes, I am saying it)</font></em>, but these licenses are not for resale. They have unique, traceable keys. Please enter the contests only if you really need the software and plan to give back to the community in some way as a result of winning.</p>
<p><em>Here are some things <strong><font color="#ff0000">not</font></strong> included in these licenses, which would be available with a paid MSDN Ultimate subscription: MSDN Magazine, support calls, Office 2010 licenses.</em></p>
<p><em><strong>Update: Office 2010 licenses are included for development and test purposes only.</strong></em></p>
<p>Contest number one is simple. Send me an email at alashcraft [at] gmail [dot] com and explain (honestly) why you need the subscription and what you plan to do with the tools. Keep in mind that this is all about community. I will choose the winner based on need and community influence. I must receive your entry by Friday, July 9 at 8:00am EDT (UTC &#8211; 4) and will announce the winner at 12pm that same day.</p>
<p>For the second contest, I want to make things a little more challenging. Email me a .NET-related technical article to be published on alvinashcraft.com as a guest post. The content must be original, written by the submitter, and not available on any other web sites or blogs. Please include a short bio for yourself as well. All must should be emailed to alashcraft [at] gmail [dot] com, and they must be received no later than Friday, July 16 at 8:00am EDT (UTC &#8211; 4). I will select the winner that weekend and announce the winner on Monday, July 19th. If I receive an overwhelming number of great articles, I <em>may</em> dig up some smaller prizes for 2nd and 3rd place (probably books). The winning post will be published the week of the 19th.</p>
<p>I will do my best to scan my spam folder for entries, but please try not to mention Viagra, cheap meds, free Photoshop software or foreign bank accounts in your emails to me.</p>
<p>Any attempts to shamelessly promote <a href="http://www.alvinashcraft.com/" target="_blank">my blog</a> or <a href="http://twitter.com/alvinashcraft/" target="_blank">Twitter account</a> will have no effect on the outcome of the contests but are welcome nonetheless.&#160; <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-angel" alt="Angel" src="http://www.alvinashcraft.com/wp-content/uploads/wlEmoticonangel.png" /></p>
<p>If you have any questions, leave a comment, email me, or send me a reply on Twitter.</p>
<p>&#160;</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C16BAC14-9A3D-4c50-9394-FBFEF7A93539:f0f65361-b7af-4311-9844-cc2196825362" class="wlWriterEditableSmartContent"><a href="http://www.dotnetkicks.com/kick/?url=http://www.alvinashcraft.com/2010/07/06/net-devs-need-an-msdn-universal-subscription-here-are-two-chances-to-win-one/"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.alvinashcraft.com/2010/07/06/net-devs-need-an-msdn-universal-subscription-here-are-two-chances-to-win-one/" border="0" alt="kick it on DotNetKicks.com" /></a></div>
<p> 
<p>&#160;</p>
<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:858289bd-2693-4937-bef7-f5523133eae9" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/msdn" rel="tag">msdn</a>,<a href="http://technorati.com/tags/visual+studio" rel="tag">visual studio</a>,<a href="http://technorati.com/tags/contests" rel="tag">contests</a>,<a href="http://technorati.com/tags/microsoft" rel="tag">microsoft</a>,<a href="http://technorati.com/tags/MVP+program" rel="tag">MVP program</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alvinashcraft.com/2010/07/06/net-devs-need-an-msdn-universal-subscription-here-are-two-chances-to-win-one/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Halo-Inspired Theme for Visual Studio</title>
		<link>http://www.alvinashcraft.com/2010/05/12/halo-inspired-theme-for-visual-studio/</link>
		<comments>http://www.alvinashcraft.com/2010/05/12/halo-inspired-theme-for-visual-studio/#comments</comments>
		<pubDate>Wed, 12 May 2010 15:30:12 +0000</pubDate>
		<dc:creator>Alvin Ashcraft</dc:creator>
				<category><![CDATA[tools]]></category>
		<category><![CDATA[xbox]]></category>
		<category><![CDATA[halo]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[visual studio]]></category>
		<category><![CDATA[vs2010]]></category>

		<guid isPermaLink="false">http://www.alvinashcraft.com/2010/05/12/halo-inspired-theme-for-visual-studio/</guid>
		<description><![CDATA[I will eventually get this posted to Studio Styles. Until then, here is a dark theme for Visual Studio that I created. The green and orange give it a Halo-ish feel. Let me know what you think in the comments. Downloads HaloVibe theme for VS2008 HaloVibe theme for VS2010 &#160; Technorati Tags: vs2010,visual studio,themes,halo,xbox]]></description>
			<content:encoded><![CDATA[<div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"><iframe src="http://www.facebook.com/widgets/like.php?href=http://www.alvinashcraft.com/2010/05/12/halo-inspired-theme-for-visual-studio/" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"></iframe></div>
<p>I will eventually get this posted to <a href="http://studiostyles.info/">Studio Styles</a>. Until then, here is a dark theme for Visual Studio that I created. The green and orange give it a Halo-ish feel. Let me know what you think in the comments.</p>
<p><a href="http://www.alvinashcraft.com/wp-content/uploads/HaloVibe_vs2010.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="HaloVibe theme in VS2010" border="0" alt="HaloVibe theme in VS2010" src="http://www.alvinashcraft.com/wp-content/uploads/HaloVibe_vs2010_thumb.png" width="646" height="444" /></a> </p>
<h4>Downloads</h4>
<p><a href="http://www.alvinashcraft.com/code/HaloVibe_vs2008.vssettings">HaloVibe theme for VS2008</a></p>
<p><a href="http://www.alvinashcraft.com/code/HaloVibe_vs2010.vssettings">HaloVibe theme for VS2010</a></p>
<p>&#160;</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:C16BAC14-9A3D-4c50-9394-FBFEF7A93539:a81b3b28-1c74-4a88-8d89-af7d5bd14bb7" class="wlWriterSmartContent"><a href="http://www.dotnetkicks.com/kick/?url=http://www.alvinashcraft.com/2010/05/12/halo-inspired-theme-for-visual-studio/"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.alvinashcraft.com/2010/05/12/halo-inspired-theme-for-visual-studio/" border="0" alt="kick it on DotNetKicks.com" /></a></div>
<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:1b963b77-4ce9-418b-82ae-be8aaebb5049" class="wlWriterSmartContent">Technorati Tags: <a href="http://technorati.com/tags/vs2010" rel="tag">vs2010</a>,<a href="http://technorati.com/tags/visual+studio" rel="tag">visual studio</a>,<a href="http://technorati.com/tags/themes" rel="tag">themes</a>,<a href="http://technorati.com/tags/halo" rel="tag">halo</a>,<a href="http://technorati.com/tags/xbox" rel="tag">xbox</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.alvinashcraft.com/2010/05/12/halo-inspired-theme-for-visual-studio/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

