<?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>IntelliTect &#187; .Net</title>
	<atom:link href="http://intellitect.com/category/blog/net/feed/" rel="self" type="application/rss+xml" />
	<link>http://intellitect.com</link>
	<description>IntelliTect Web Site</description>
	<lastBuildDate>Wed, 16 May 2012 06:03:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Turning on Continuous Testing in Visual Studio 11</title>
		<link>http://intellitect.com/turning-on-continuous-testing-in-visual-studio-11/</link>
		<comments>http://intellitect.com/turning-on-continuous-testing-in-visual-studio-11/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 09:47:16 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Unit Testing]]></category>
		<category><![CDATA[Visual Studio 11]]></category>
		<category><![CDATA[VS11]]></category>

		<guid isPermaLink="false">http://intellitechture.com/?p=2872</guid>
		<description><![CDATA[<p>The new unit testing explorer support has a new unit test explorer has a Run dropdown for selecting which text to execute (see Figure 1).</p>
<p>In addition, Visual Studio 11 supports continuous testing &#8211; automatically running your tests every time you compile your code.  However, as shown in Figure 1, the option to enable continuous testing doesn&#8217;t appear from the <strong>Run</strong> dropdown (and probably shouldn&#8217;t because you are not likely to be changing the option back and forth that often).  To enable continuous testing, select the <strong>Unit Test-&#62;Unit Test Settings-&#62;Run Tests After Build</strong> menu as shown in Figure 2.</p>
]]></description>
			<content:encoded><![CDATA[<p>The new unit testing explorer support has a new unit test explorer has a Run dropdown for selecting which text to execute (see Figure 1).</p>
<div id="attachment_2874" class="wp-caption aligncenter" style="width: 400px"><a href="http://intellitect.com/wp-content/uploads/2012/03/UnitTestingRunSelectoin.png"><img class="size-full wp-image-2874" title="Unit Testing Run Selection" src="http://intellitect.com/wp-content/uploads/2012/03/UnitTestingRunSelectoin.png" alt="Unit Testing Run Selection" width="390" height="282" /></a><p class="wp-caption-text">Figure 1: Unit Testing Run Selection</p></div>
<p>In addition, Visual Studio 11 supports continuous testing &#8211; automatically running your tests every time you compile your code.  However, as shown in Figure 1, the option to enable continuous testing doesn&#8217;t appear from the <strong>Run</strong> dropdown (and probably shouldn&#8217;t because you are not likely to be changing the option back and forth that often).  To enable continuous testing, select the <strong>Unit Test-&gt;Unit Test Settings-&gt;Run Tests After Build</strong> menu as shown in Figure 2.</p>
<div id="attachment_2873" class="wp-caption aligncenter" style="width: 641px"><a href="http://intellitect.com/wp-content/uploads/2012/03/ContinuousUnitTestingInVisualStudio11.png"><img class="size-full wp-image-2873" title="Activating Continuous Unit Testing In Visual Studio 11" src="http://intellitect.com/wp-content/uploads/2012/03/ContinuousUnitTestingInVisualStudio11.png" alt="Activating Continuous Unit Testing In Visual Studio 11" width="631" height="271" /></a><p class="wp-caption-text">Figure 2: Activating Continuous Unit Testing In Visual Studio 11</p></div>
]]></content:encoded>
			<wfw:commentRss>http://intellitect.com/turning-on-continuous-testing-in-visual-studio-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Attributes for Trace/Logging Information in .NET 4.5</title>
		<link>http://intellitect.com/new-attributes-for-tracelogging-information-in-net-4-5/</link>
		<comments>http://intellitect.com/new-attributes-for-tracelogging-information-in-net-4-5/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 09:12:01 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://intellitechture.com/?p=2853</guid>
		<description><![CDATA[<p>There is a new set of .NET attributes in .NET 4.5 to help with gathering trace information.  Before .NET 4.5, tracing the line number, member name, and source file name required using the stack trace in combination with the PDB files.  In .NET 4.5, however, there is a new mechanism for doing this using attributes on optional parameters.  Consider the code below:</p>
<p>Note the static public void Write(string message, [CallerLineNumber] int lineNumber = 0, [CallerMemberName] string memberName = null, [CallerFilePath] string fileName = null) method signature and how it uses the parameter attributes CallerLineNumber,CallerMemberName, and CallerFilePath from the System.Runtime.CompilerServices namespace.  By [...]]]></description>
			<content:encoded><![CDATA[<p>There is a new set of .NET attributes in .NET 4.5 to help with gathering trace information.  Before .NET 4.5, tracing the line number, member name, and source file name required using the stack trace in combination with the PDB files.  In .NET 4.5, however, there is a new mechanism for doing this using attributes on optional parameters.  Consider the code below:</p>
<div id="gist-1956464" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="k">using</span> <span class="nn">System</span><span class="p">;</span></div><div class='line' id='LC2'><span class="k">using</span> <span class="nn">System.IO</span><span class="p">;</span></div><div class='line' id='LC3'><span class="k">using</span> <span class="nn">System.Runtime.CompilerServices</span><span class="p">;</span></div><div class='line' id='LC4'><span class="k">using</span> <span class="nn">Microsoft.VisualStudio.TestTools.UnitTesting</span><span class="p">;</span></div><div class='line' id='LC5'><br/></div><div class='line' id='LC6'><span class="k">namespace</span> <span class="nn">IntelliTrace.Runtime.CompilerServices</span></div><div class='line' id='LC7'><span class="p">{</span></div><div class='line' id='LC8'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="k">class</span> <span class="nc">Tracer</span></div><div class='line' id='LC9'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC10'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">static</span> <span class="k">public</span> <span class="k">void</span> <span class="nf">Write</span><span class="p">(</span><span class="kt">string</span> <span class="n">message</span><span class="p">,</span> <span class="p">[</span><span class="n">CallerLineNumber</span><span class="p">]</span> <span class="kt">int</span> <span class="n">lineNumer</span> <span class="p">=</span> <span class="m">0</span><span class="p">,</span> </div><div class='line' id='LC11'><span class="na">            [CallerMemberName]</span> <span class="kt">string</span> <span class="n">memberName</span> <span class="p">=</span> <span class="k">null</span><span class="p">,</span> <span class="p">[</span><span class="n">CallerFilePath</span><span class="p">]</span> <span class="kt">string</span> <span class="n">fileName</span> <span class="p">=</span> <span class="k">null</span><span class="p">)</span></div><div class='line' id='LC12'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC13'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">Assert</span><span class="p">.</span><span class="n">AreEqual</span><span class="p">&lt;</span><span class="kt">int</span><span class="p">&gt;(</span><span class="n">CallerInfoTests</span><span class="p">.</span><span class="n">LineNumber</span><span class="p">,</span> <span class="n">lineNumer</span><span class="p">);</span></div><div class='line' id='LC14'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">Assert</span><span class="p">.</span><span class="n">AreEqual</span><span class="p">&lt;</span><span class="kt">string</span><span class="p">&gt;(</span><span class="s">&quot;CallWrite_WithNoParameters_DefaultAreSetToCallerInfo&quot;</span><span class="p">,</span> <span class="n">memberName</span><span class="p">);</span></div><div class='line' id='LC15'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">Assert</span><span class="p">.</span><span class="n">AreEqual</span><span class="p">&lt;</span><span class="kt">string</span><span class="p">&gt;(</span><span class="s">&quot;CallerInfoTests.cs&quot;</span><span class="p">,</span> <span class="n">Path</span><span class="p">.</span><span class="n">GetFileName</span><span class="p">(</span><span class="n">fileName</span><span class="p">));</span></div><div class='line' id='LC16'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC17'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC18'><span class="na">    </span></div><div class='line' id='LC19'><span class="na">    [TestClass]</span></div><div class='line' id='LC20'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="k">class</span> <span class="nc">CallerInfoTests</span></div><div class='line' id='LC21'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC22'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="k">const</span> <span class="kt">int</span> <span class="n">LineNumber</span> <span class="p">=</span> <span class="m">27</span><span class="p">;</span></div><div class='line' id='LC23'><br/></div><div class='line' id='LC24'><span class="na">        [TestMethod]</span></div><div class='line' id='LC25'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="k">void</span> <span class="nf">CallWrite_WithNoParameters_DefaultAreSetToCallerInfo</span><span class="p">()</span></div><div class='line' id='LC26'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC27'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">Tracer</span><span class="p">.</span><span class="n">Write</span><span class="p">(</span><span class="s">&quot;Test message&quot;</span><span class="p">);</span></div><div class='line' id='LC28'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC29'><br/></div><div class='line' id='LC30'><span class="na">        [TestMethod]</span></div><div class='line' id='LC31'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">public</span> <span class="k">void</span> <span class="nf">CallWrite_WithNoParameters_DefaultsAreSetToCallerInfoExceptForSpecifiedLineNuber</span><span class="p">()</span></div><div class='line' id='LC32'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">{</span></div><div class='line' id='LC33'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">Tracer</span><span class="p">.</span><span class="n">Write</span><span class="p">(</span><span class="s">&quot;Test message&quot;</span><span class="p">,</span> <span class="n">LineNumber</span><span class="p">,</span> <span class="s">&quot;CallWrite_WithNoParameters_DefaultAreSetToCallerInfo&quot;</span><span class="p">);</span></div><div class='line' id='LC34'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC35'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC36'><span class="p">}</span></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/1956464/e99ac69f12b41f3539cb21226c19fa1c349aac08/CallerInfoTests.cs" style="float:right;">view raw</a>
            <a href="https://gist.github.com/1956464#file_caller_info_tests.cs" style="float:right;margin-right:10px;color:#666">CallerInfoTests.cs</a>
            <a href="https://gist.github.com/1956464">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>

<p>Note the <code>static public void Write(string message, [CallerLineNumber] int lineNumber = 0, [CallerMemberName] string memberName = null, [CallerFilePath] string fileName = null)</code> method signature and how it uses the parameter attributes <code>CallerLineNumber</code>,<code>CallerMemberName</code>, and <code>CallerFilePath</code> from the <code>System.Runtime.CompilerServices</code> namespace.  By placing the &#8220;CallerInfo&#8221; attributes on the parameters &#8211; which must also be set as default parameters, the parameters are set with corresponding values automatically (ignoring the default attributes specified in the method signature).  As a result, the <code>Tracer.Write()</code> method then has access to &#8220;stack&#8221; information at compile time, rather than having to iterate over the stack at runtime (possibly a significant performance hit depending on the frequency).</p>
<p>The data associated with the CallerInfo attributes is injected into the IL code at compile time.  Decompiling the IL code reveals the caller invocation sets the optional paramters as follows:
<p />
<code style="display:block; margin-left: 4 em;"></p>
<pre>Tracer.Write("Test message", 0x1b,
     "CallWrite_WithNoParameters_DefaultAreSetToCallerInfo",
     @"c:\Data\SCC\CallerInfoTracing\CallerInfoTests.cs");</pre>
<p></code><br />
As a result, if no parameter is specified explicitly in the code by the programmer, the compiler injects a default value corresponding to the attribute specified &#8211; at the callee (embedding the full file name for the fileName parameter.</p>
<p>#BrilliantlySimple</p>
]]></content:encoded>
			<wfw:commentRss>http://intellitect.com/new-attributes-for-tracelogging-information-in-net-4-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio 11 Search Everywhere</title>
		<link>http://intellitect.com/visual-studio-11-search-everywhere/</link>
		<comments>http://intellitect.com/visual-studio-11-search-everywhere/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 17:42:56 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Visual Studio 11]]></category>
		<category><![CDATA[VS11]]></category>

		<guid isPermaLink="false">http://intellitechture.com/?p=2754</guid>
		<description><![CDATA[
One feature new to Visual Studio 11 that you will wonder how you managed without (perhaps instead you wondered why it was missing from Visual Studio for so long) is the concept of “Search Everywhere.”  In Visual Studio 11 search is now supported for the following:


<li>Solution Explorer*</li>
<li>Add Reference*</li>
<li>Integrated Quick Find*</li>
<li>New Test Explorer</li>
<li>Error List</li>
<li>Parallel Watch</li>
<li>Toolbox</li>
<li>TFS Work Items</li>
<li>Visual Studio Commands</li>

(* indicates where similar search functionality exists within the Productivity Power Tools – targeting Visual Studio 2010)
Below we take a look at each search location in a more detail.
Solution Explorer
Perhaps the most noticeable manifestation of Search Everywhere appears within the Solution Explorer.  As shown [...]]]></description>
			<content:encoded><![CDATA[<div>
<div class="mceTemp mceIEcenter" style="text-align: left;">One feature new to Visual Studio 11 that you will wonder how you managed without (perhaps instead you wondered why it was missing from Visual Studio for so long) is the concept of “Search Everywhere.”  In Visual Studio 11 search is now supported for the following:</div>
</div>
<ul>
<li>Solution Explorer*</li>
<li>Add Reference*</li>
<li>Integrated Quick Find*</li>
<li>New Test Explorer</li>
<li>Error List</li>
<li>Parallel Watch</li>
<li>Toolbox</li>
<li>TFS Work Items</li>
<li>Visual Studio Commands</li>
</ul>
<div>(* indicates where similar search functionality exists within the Productivity Power Tools – targeting Visual Studio 2010)</div>
<div>Below we take a look at each search location in a more detail.</div>
<h1>Solution Explorer</h1>
<div>Perhaps the most noticeable manifestation of Search Everywhere appears within the Solution Explorer.  As shown both in Figure 1, there is a <strong>Search Solution Explorer</strong> text box with keyboard shortcut &#8220;<strong>Ctrl+;</strong>&#8221; (you will want to memorize that almost immediately) that searches the solution and produces a search results window of matching Solution Explorer available nodes.</div>
<div id="attachment_2746" class="wp-caption aligncenter" style="width: 634px"><a href="http://intellitect.com/wp-content/uploads/2012/02/022912_0753_VisualStudi1.png"><img class="size-full wp-image-2746" title="Visual Studio 11 Solution Explorer" src="http://intellitect.com/wp-content/uploads/2012/02/022912_0753_VisualStudi1.png" alt="Visual Studio 11 Solution Explorer" width="624" height="234" /></a><p class="wp-caption-text">Figure 1: Visual Studio 11 Solution Explorer</p></div>
<p><a href="/wp-content/uploads/2012/02/image2.png"></a></p>
<div>The results window displays such assets as projects, files, and identifiers – classes, and class member names. The result is similar in behavior to Visual Studio 2010’s <strong>Navigate To</strong> (Ctrl+,) functionality, but rather than a modal dialog, the <strong>Search Solution Explorer</strong> produces a search results window that is integrated into the IDE.  Like <strong>Navigate To</strong>, the <strong>Search Solution Explorer</strong> supports “fuzzy search” – entering the first (uppercase) letters of each word within an identifier will still locate the corresponding node.  For example, entering “MOCT” will display all instances of <span style="font-family: Consolas;">MockObjectContextTests</span> but “moct” will not.  Note that the keyboard shortcut (Ctrl+;) switches focus to the search box even when the Solution Explorer is not visible. This is a handy shortcut when the Solution is mistakenly closed.</div>
<h1>Add Reference</h1>
<div id="attachment_2747" class="wp-caption aligncenter" style="width: 854px"><a href="http://intellitect.com/wp-content/uploads/2012/02/022912_0753_VisualStudi2.png"><img class="size-full wp-image-2747" title="Add Reference Dialog" src="http://intellitect.com/wp-content/uploads/2012/02/022912_0753_VisualStudi2.png" alt="Add Reference Dialog" width="844" height="454" /></a><p class="wp-caption-text">Figure 2: Add Reference Dialog</p></div>
<p>As shown in Figure 2, the Add Reference Dialog, still places the target reference into categories – Assemblies, Solution, and COM – but the experience of looking for a particular reference is significantly improved.  Possibly more noticeable than the Add Reference search is how quickly the <strong>Add Reference</strong> dialog opens.  Rather than seemingly enumerating the Global Assembly Cache and every COM object installed on the computer, the new dialog uses an index (of the installed components) and displays almost instantly.<br />
Double-clicking on any item selects it, and all referenced items are displayed with a checkmark next to the assembly name.</p>
<h1>Integrated Quick Find</h1>
<div>While on the topic of search, another significant productivity improvement is a streamlined Find UI design – Quick Find.  Leveraging again the UI of the Productivity Power Tools, Visual Studio 11’s Find (Ctrl+F) and Find-Replace (Ctrl+H) functionality is integrated into the text editor window rather than a new pop-up window (see Figure 3).  The result is that Find and Find-Replace functionality remains in context.</div>
<div style="text-align: center;">
<div>
<dl id="attachment_2748">
<dt><a href="http://intellitect.com/wp-content/uploads/2012/02/022912_0753_VisualStudi3.png"><img title="Integrated Quick Find" src="http://intellitect.com/wp-content/uploads/2012/02/022912_0753_VisualStudi3.png" alt="Integrated Quick Find" width="614" height="556" /></a></dt>
<dd>Figure 3: Integrated Quick Find</dd>
</dl>
</div>
</div>
<div>Furthermore, the text entered in the Find box is immediately highlighted throughout all text editor windows – the currently active document, other open document windows, and any newly opened document windows. To change the search scope you can select from the dropdown available below the Replace text box.  Figure 5 shows the advanced search options – available after clicking the “Expand” button directly to the left of the Find text box.  For developers looking for the <strong>Use Regular Expression</strong>, <strong>Match Whole Words</strong>, and <strong>Match Case</strong> functionality in addition to the <strong>Find in Files</strong> capabilities (something no longer available in the toolbar as will be discussed shortly), there is a dropdown on the text box that not only displays recent search terms but also the additional search options.</div>
<h1>New Test Explorer</h1>
<div>Another manifestation of Search Everywhere is in the new Unit Test Explorer window.  Unit testing in Visual Studio 11 was overhauled and includes support for third party testing frameworks along with a consolidation of the testing windows into the new Unit Test Explorer window (see Figure 3).  The top of the new Unit Test Explorer window includes a search textbox, enabling search for a particular test.</div>
<div>
<div id="attachment_2749" class="wp-caption aligncenter" style="width: 324px"><a href="http://intellitect.com/wp-content/uploads/2012/02/022912_0753_VisualStudi4.png"><img class="size-full wp-image-2749" title="Visual Studio 11 Test Explorer" src="http://intellitect.com/wp-content/uploads/2012/02/022912_0753_VisualStudi4.png" alt="Visual Studio 11 Test Explorer" width="314" height="515" /></a><p class="wp-caption-text">Figure 4: Visual Studio 11 Test Explorer</p></div>
</div>
<div>In addition to search, the new Unit Test Explorer includes the following functionality:</div>
<ul>
<li>Continuous Testing<br />
Immediately following a compile, the unit testing is automatically triggered to run (in a separate process so as not to impact the IDE responsiveness).  As a result, executing tests is no longer a separate action but rather something that is automatically part of the development process – in a similar way that syntax checking happens automatically as you write code.  If there are failing tests, only the failing ones will be executed as part of the continuous testing.  The idea behind this is to get the failing ones passing before executing any additional tests.</li>
<li>Execution within a different process<br />
In Visual Studio 2010 the IDE was essentially blocked while unit tests executed.  In contrast, unit test execution within Visual Studio 11 runs concurrently with any IDE activity the developer may be working on.  This is due to the fact that in Visual Studio 11 the unit tests are asynchronously shelled out to a separate a process.</li>
<li>Support for different unit testing frameworks<br />
As mentioned, Visual Studio 11’s unit testing framework support is extensible.  As a result, unit tests from other frameworks also appear within the new Unit Test Explore window.</li>
<li>Sorting by relevance<br />
Unit tests within the Unit Test Explorer windows are sorted by relevance.  Failed tests bubble to the top.  Tests executed more recently appear before tests that were not run in the previous test execution.</li>
<li>Execution time displayed<br />
The time it took to execute a unit tests appears next to each unit test.</li>
<li>Mocks/stub support<br />
In Visual Studio 11 there is support for the generation of mocks/stubs of a class and this is integrated not only into the framework but all the way into the IDE tooling via “right-click generate mock/stub” contextual menus.</li>
</ul>
<div>Those committed to unit testing will find the revamped functionality within Visual Studio 11 to be compelling to the point that this feature set alone will make it difficult to return to Visual Studio 2010.</div>
<h1>Error List</h1>
<div>Yet another Search Everywhere location occurs in the Error List (see Figure 4).</div>
<div>
<div>
<dl id="attachment_2750">
<dt>
<div id="attachment_2750" class="wp-caption aligncenter" style="width: 626px"><a href="http://intellitect.com/wp-content/uploads/2012/02/022912_0753_VisualStudi5.png"><img class="size-full wp-image-2750" title="Visual Studio 11 Error List" src="http://intellitect.com/wp-content/uploads/2012/02/022912_0753_VisualStudi5.png" alt="Visual Studio 11 Error List" width="616" height="237" /></a><p class="wp-caption-text">Figure 4: Visual Studio 11 Error List</p></div>
</dt>
</dl>
</div>
</div>
<div>By using the <strong>Search Error List</strong> textbox you can search across columns and all errors within the error list to focus on the errors you wish to address first.  Furthermore and again shown in Figure 4, Visual Studio 11 supports a filter so that developers are no longer overwhelmed by innocuous HTML warnings, for example, while they are investigating C# code.  Instead, using the filter button, developers can select the scope of warnings to be displayed.</div>
<h1>Parallel Watch</h1>
<div>The Parallel Watch window is another area where search appears in Visual Studio 11.  Although not really a textual search, these watch windows include a <strong>Filter by Boolean</strong> expression search box that enables filtering across different threads and evaluating the expression for each thread to determine which threads evaluate the expression to true.</div>
<h1>TFS Work Items</h1>
<div>An additional instance of Search Everywhere corresponds to TFS integration.  The Visual Studio 11 Team Explorer window is completely redesigned, and now includes a <strong>Search Work Items</strong> text box to search across work items.</div>
<h1>Visual Studio Commands</h1>
<div>The last Search Everywhere feature discussed in this article appears in the Visual Studio 11 toolbar – enabling search over all the available commands and actions within Visual Studio 11 itself.  We explore this feature as part of Toolbar Improvements.</div>
]]></content:encoded>
			<wfw:commentRss>http://intellitect.com/visual-studio-11-search-everywhere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio 11 IDE Productivity Improvements</title>
		<link>http://intellitect.com/visual-studio-11-ide-productivity-improvements/</link>
		<comments>http://intellitect.com/visual-studio-11-ide-productivity-improvements/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 08:33:01 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Visual Studio 11]]></category>
		<category><![CDATA[VS11]]></category>

		<guid isPermaLink="false">http://intellitechture.com/?p=2766</guid>
		<description><![CDATA[<p>In Visual Studio 11, there is a set of IDE productivity improvements that developers across all platforms and languages already be familiar with because earlier versions of them were available in an update for Visual Studio 2010 under the name <a href="http://bit.ly/zBRXHI" target="_blank">Productivity Power Tools</a>.  In post we review several of these enhancements.</p>
<p>In Visual Studio 11 <strong>Solution Explorer<a href="$1-NewSolutionExplorer13.png" class="broken_link"></a></strong> has been revamped significantly.  No longer is it just a location to navigate files, it now supports navigation over the object model of constructs within the solution, full-text identifier search, and more.  For example, you can now expand a CSS [...]]]></description>
			<content:encoded><![CDATA[<p>In Visual Studio 11, there is a set of IDE productivity improvements that developers across all platforms and languages already be familiar with because earlier versions of them were available in an update for Visual Studio 2010 under the name <a href="http://bit.ly/zBRXHI" target="_blank">Productivity Power Tools</a>.  In post we review several of these enhancements.</p>
<p>In Visual Studio 11 <strong>Solution Explorer<a href="$1-NewSolutionExplorer13.png" class="broken_link"></a></strong> has been revamped significantly.  No longer is it just a location to navigate files, it now supports navigation over the object model of constructs within the solution, full-text identifier search, and more.  For example, you can now expand a CSS file to see nodes corresponding to the classes within the file and then expand the class further to view its members (see Figure 1) – similar to what is available in the Visual Studio 2010 object explorer.</p>
<div id="attachment_2760" class="wp-caption aligncenter" style="width: 359px"><a href="http://intellitect.com/wp-content/uploads/2012/02/1-NewSolutionExplorer.png"><img class="size-full wp-image-2760" title="Visual Studio 11 Solution Explorer" src="http://intellitect.com/wp-content/uploads/2012/02/1-NewSolutionExplorer.png" alt="Visual Studio 11 Solution Explorer" width="349" height="655" /></a><p class="wp-caption-text">Figure 1: Visual Studio 11 Solution Explorer</p></div>
<p>Right-clicking on class member displays a context menu for browsing the call hierarchy of the member (see context menu in Figure 1).  Similarly, right-clicking on a class displays a Contains, Base Types, Derived Types, and Is Used By context menu for additional call structure exploration.  In both cases, the New View button (<a href="http://intellitect.com/wp-content/uploads/2012/02/image5.png"><img class="alignnone size-full wp-image-2762" title="Visual Studio 11 New View Button" src="http://intellitect.com/wp-content/uploads/2012/02/image5.png" alt="Visual Studio 11 New View Button" width="18" height="18" /></a>) appears, allowing a new view focused on the selected item to open. In addition to the call hierarchy context menu, and as one would expect, double-clicking on the node will launch you to the definition of that construct or open up the file corresponding to it.<br />
With this enhanced solution explorer comes an additional Windows Preview option as well.  Single-clicking on a node in Solution Explorer opens up a document in preview mode. This option reserves a reusable document tab in the IDE such that each time a file is opened, it appears in the same document tab as the previously opened documents.  The result is that you can preview files without opening a myriad of unneeded document tabs.  The document tab can then be Promoted through a button glyph (see Figure 2) on the tab itself or automatically when the file is edited.</p>
<div class="mceTemp">
<dl id="attachment_2764" class="wp-caption alignleft" style="width: 337px;">
<dt class="wp-caption-dt"><a href="http://intellitect.com/wp-content/uploads/2012/02/image6.png"><img class="size-full wp-image-2764" title="Visual Studio 11 Tab Promot Button" src="http://intellitect.com/wp-content/uploads/2012/02/image6.png" alt="Visual Studio 11 Tab Promot Button" width="327" height="127" /></a></dt>
<dd class="wp-caption-dd">Figure 2: Visual Studio 11 Tab Promot Button</dd>
</dl>
<p>Where the preview tab really cleans up the IDE is during debugging or Go To Definition (F12), where a myriad of windows will otherwise proliferate.  Instead, the same tab window is recycled for all the documents you preview while debugging or browsing through the code.<br />
A similar feature to the preview tab is “tab pinning.”  In place of the “Promote” button found on the Preview Tab (Figure 2), normal tabs have a pin icon ( ) that moves the tab to the left of the tab well.  Any new documents that are opened will appear to the right of the last pinned tab – effectively holding the position of the pinned tabs unless they are moved deliberately<br />
There are several additional Solution Explorer related features to be aware of.  Firstly, it is no longer necessary to open up a graphics file (.JPG, .PNG, etc.) in order glimpse it.  Instead, Visual Studio 11 supports hovering over the file within Solution Explorer, triggering a dynamic preview image of the graphic.  Secondly, when renaming files in the solution explorer, it now behaves like Windows Explorer.  The default selected text after issuing a rename action is the file name but not the extension.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://intellitect.com/visual-studio-11-ide-productivity-improvements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performing the Gilded Rose kata</title>
		<link>http://intellitect.com/performing-the-gilded-rose-kata/</link>
		<comments>http://intellitect.com/performing-the-gilded-rose-kata/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 04:15:05 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://intellitechture.com/?p=2231</guid>
		<description><![CDATA[<p>I ran across the <a href="https://github.com/NotMyself/GildedRose" class="broken_link">Gilded Rose</a> kata and had to try it. I cloned the repo and <a href="http://goo.gl/77LVu">recorded the result</a>. I hope you enjoy it.</p>
<p></p>
]]></description>
			<content:encoded><![CDATA[<p>I ran across the <a href="https://github.com/NotMyself/GildedRose" class="broken_link">Gilded Rose</a> kata and had to try it. I cloned the repo and <a href="http://goo.gl/77LVu">recorded the result</a>. I hope you enjoy it.</p>
<p><iframe src="http://player.vimeo.com/video/32427432?title=0&amp;byline=0&amp;portrait=0" width="601" height="338" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://intellitect.com/performing-the-gilded-rose-kata/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Toji &#8211; custom brewed psake goodness</title>
		<link>http://intellitect.com/toji-custom-brewed-psake-goodness/</link>
		<comments>http://intellitect.com/toji-custom-brewed-psake-goodness/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 15:56:39 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[ALM]]></category>
		<category><![CDATA[Headlines]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[MSBuild]]></category>
		<category><![CDATA[NuGet]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[psake]]></category>

		<guid isPermaLink="false">http://intellitechture.com/?p=2184</guid>
		<description><![CDATA[<p>I have use <a href="https://github.com/jameskovacs/psake" class="broken_link">psake</a> a few times, and I wanted to see what I extract to be more productive. With the rate at which I spin off OSS and side projects, I need something that just works out of the box and is fast to set up. Borne of this need, I created <a href="https://github.com/idavis/Toji" class="broken_link">Toji</a>, and it is available as a <a href="http://nuget.org/List/Packages/Toji">NuGet package</a>.</p>
<p>I must have my build set up with compiling, testing, packaging, and deployment. I have some xunit, nunit, nuget, msbuild helpers in the project to get projects up quickly. The lack of a xunit [...]]]></description>
			<content:encoded><![CDATA[<p>I have use <a href="https://github.com/jameskovacs/psake" class="broken_link">psake</a> a few times, and I wanted to see what I extract to be more productive. With the rate at which I spin off OSS and side projects, I need something that just works out of the box and is fast to set up. Borne of this need, I created <a href="https://github.com/idavis/Toji" class="broken_link">Toji</a>, and it is available as a <a href="http://nuget.org/List/Packages/Toji">NuGet package</a>.</p>
<p>I must have my build set up with compiling, testing, packaging, and deployment. I have some xunit, nunit, nuget, msbuild helpers in the project to get projects up quickly. The lack of a xunit NuGet package, with test runner, is unfortunate as I can&#8217;t just use a script to quickly find the package.</p>
<p>To really give you a feel for what Toji does, here is a video showing off a little.</p>
<p><iframe src="http://player.vimeo.com/video/31833163?title=0&amp;byline=0&amp;portrait=0" width="601" height="338" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/31833163">Getting started with Toji</a> from <a href="http://vimeo.com/idavis">Ian Davis</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Demonstrates the creation of a project and bootstrapping the build system with Toji.</p>
]]></content:encoded>
			<wfw:commentRss>http://intellitect.com/toji-custom-brewed-psake-goodness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 8 Development Architecture and Strategy with Mark Michaelis</title>
		<link>http://intellitect.com/windows-8-development-architecture-and-strategy-with-mark-michaelis/</link>
		<comments>http://intellitect.com/windows-8-development-architecture-and-strategy-with-mark-michaelis/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 05:02:33 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Headlines]]></category>
		<category><![CDATA[WinRT]]></category>
		<category><![CDATA[Windows 8]]></category>

		<guid isPermaLink="false">http://www.intellitechture.com/windows-8-development-architecture-and-strategy-with-mark-michaelis/</guid>
		<description><![CDATA[<p>With Windows 8 Microsoft ushers in a new set of technologies designed to challenge Apple&#8217;s market share while maintaining the full productivity of the PC.&#160; In this session we discuss what they are offering and what technologies they are introducing to successfully compete &#8211; both from a users perspective and a developers perspective.&#160; Don&#8217;t miss this session to understand a new breed of applications from Microsoft and the development technology and architecture that makes it all possible.</p>
<p>Sponsored by the <a href="http://sug.dotnetprogramming.com" target="_blank">Spokane .Net Programming User Group</a> and Presented by <a href="http://intellitect.com/about/#MarkMichaelis" target="_blank">Mark Michaelis</a></p>
]]></description>
			<content:encoded><![CDATA[<p>With Windows 8 Microsoft ushers in a new set of technologies designed to challenge Apple&#8217;s market share while maintaining the full productivity of the PC.&nbsp; In this session we discuss what they are offering and what technologies they are introducing to successfully compete &#8211; both from a users perspective and a developers perspective.&nbsp; Don&#8217;t miss this session to understand a new breed of applications from Microsoft and the development technology and architecture that makes it all possible.</p>
<p>Sponsored by the <a href="http://sug.dotnetprogramming.com" target="_blank">Spokane .Net Programming User Group</a> and Presented by <a href="http://intellitect.com/about/#MarkMichaelis" target="_blank">Mark Michaelis</a></p>
]]></content:encoded>
			<wfw:commentRss>http://intellitect.com/windows-8-development-architecture-and-strategy-with-mark-michaelis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Async CTP (SP1 Refresh) Fails to Fully Install</title>
		<link>http://intellitect.com/async-ctp-sp1-refresh-fails-to-fully-install/</link>
		<comments>http://intellitect.com/async-ctp-sp1-refresh-fails-to-fully-install/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 18:33:30 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.intellitechture.com/async-ctp-sp1-refresh-fails-to-fully-install/</guid>
		<description><![CDATA[<p>Although the installation of the <a href="http://go.microsoft.com/fwlink/?LinkId=203690" target="_blank">Async CTP (SP1 Refresh)</a> appeared to be successful, the final web page titled “Microsoft Visual Studio Async CTP” did not appear and the  “My Documents &#62; Microsoft Visual Studio Async CTP” directory was not successfully created.  Furthermore, when I attempt to open an Async project (such as a sample), Visual Studio reports this project type is not supported.</p>
<p>I tried the following but none of them was successful:</p>

<li>Running a repair on Visual Studio SP1</li>
<li>Uninstalling Visual Studio SP1
Installing SP1
Installing Async CTP</li>
<li>Uninstalling Visual Studio 2010
(Visual Studio SP1 stays installed and won&#8217;t uninstall at this point)
Installing SP1
Installing [...]]]></description>
			<content:encoded><![CDATA[<p>Although the installation of the <a href="http://go.microsoft.com/fwlink/?LinkId=203690" target="_blank">Async CTP (SP1 Refresh)</a> appeared to be successful, the final web page titled “Microsoft Visual Studio Async CTP” did not appear and the  “My Documents &gt; Microsoft Visual Studio Async CTP” directory was not successfully created.  Furthermore, when I attempt to open an Async project (such as a sample), Visual Studio reports this project type is not supported.</p>
<p>I tried the following but none of them was successful:</p>
<ol>
<li>Running a repair on Visual Studio SP1</li>
<li>Uninstalling Visual Studio SP1<br />
Installing SP1<br />
Installing Async CTP</li>
<li>Uninstalling Visual Studio 2010<br />
(Visual Studio SP1 stays installed and won&#8217;t uninstall at this point)<br />
Installing SP1<br />
Installing Async CTP</li>
</ol>
<p>Finally, a full re-install of Visual Studio 2010 got the Async CTP (SP1 refresh) working:</p>
<p><strong>Summary Resolution: </strong></p>
<ul>
<li>Uninstall Visual Studio SP1</li>
<li>Uninstall Visual Studio 2010</li>
<li>Uninstall Visual Studio PreReqs</li>
<li>Verified all &#8220;*Visual Studio*&#8221; related installs are removed (and removed them if they weren&#8217;t).<br />
(Visual Studio 2010 Tools for Office Runtime never did get removed from Programs and Features)</li>
<li>Renamed &#8220;C:\Program Files (x86)\Microsoft Visual Studio 10.0&#8243; as the directory still existed.</li>
<li>Reinstalled Visual Studio 2010</li>
<li>Reinstalled Visual Studio 2010 SP1</li>
<li>Reinstalled Async CTP (SP1 Refresh)</li>
</ul>
<p>The difference this time was that the Web Page with &#8220;Visual Studio Async CTP&#8221; displayed &#8211; whereas it didn&#8217;t before.</p>
<p><strong>Notes:</strong></p>
<ul>
<li>One (there are others) of the identified causes for a failed install is a prior Silverlight 5 install.  You need to uninstall Silverlight 5 &#8211; including KB2615527 which it might install &#8211; before running the Async CTP install.  After installing Async CTP, you can re-install the Silverligh 5 SDK.</li>
</ul>
<p>(Thanks to <a href="http://winfs.ru/blogs/gollum/" target="_blank">Eugene Agafonov</a> for the re-install tip.)</p>
]]></content:encoded>
			<wfw:commentRss>http://intellitect.com/async-ctp-sp1-refresh-fails-to-fully-install/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Work Item Search in Visual Studio vNext</title>
		<link>http://intellitect.com/work-item-search-in-visual-studio-vnext/</link>
		<comments>http://intellitect.com/work-item-search-in-visual-studio-vnext/#comments</comments>
		<pubDate>Tue, 24 May 2011 15:15:42 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[ALM]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Headlines]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://www.intellitechture.com/work-item-search-in-visual-studio-vnext/</guid>
		<description><![CDATA[<p>Finally, there will be a search everything in Visual Studio vNext.&#160; Here are a couple screen shots:</p>
<p><a href="http://intellitect.com/wp-content/uploads/2011/05/TeamNavigatorSearchWorkItems.jpg"><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="TeamNavigatorSearchWorkItems" border="0" alt="TeamNavigatorSearchWorkItems" src="http://intellitect.com/wp-content/uploads/2011/05/TeamNavigatorSearchWorkItems_thumb.jpg" width="244" height="215"/></a><a href="http://intellitect.com/wp-content/uploads/2011/05/TeamNavigatorSearchWorkItem2.jpg"><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="TeamNavigatorSearchWorkItem2" border="0" alt="TeamNavigatorSearchWorkItem2" src="http://intellitect.com/wp-content/uploads/2011/05/TeamNavigatorSearchWorkItem2_thumb.jpg" width="244" height="215"/></a></p>

<p>Notice from the second image that there is a “standard” search syntax allowing you to search specific fields within the work item.</p>
]]></description>
			<content:encoded><![CDATA[<p>Finally, there will be a search everything in Visual Studio vNext.&nbsp; Here are a couple screen shots:</p>
<blockquote><p><a href="http://intellitect.com/wp-content/uploads/2011/05/TeamNavigatorSearchWorkItems.jpg"><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="TeamNavigatorSearchWorkItems" border="0" alt="TeamNavigatorSearchWorkItems" src="http://intellitect.com/wp-content/uploads/2011/05/TeamNavigatorSearchWorkItems_thumb.jpg" width="244" height="215"/></a><a href="http://intellitect.com/wp-content/uploads/2011/05/TeamNavigatorSearchWorkItem2.jpg"><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="TeamNavigatorSearchWorkItem2" border="0" alt="TeamNavigatorSearchWorkItem2" src="http://intellitect.com/wp-content/uploads/2011/05/TeamNavigatorSearchWorkItem2_thumb.jpg" width="244" height="215"/></a></p>
</blockquote>
<p>Notice from the second image that there is a “standard” search syntax allowing you to search specific fields within the work item.</p>
]]></content:encoded>
			<wfw:commentRss>http://intellitect.com/work-item-search-in-visual-studio-vnext/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrading Your C# Programming Skills to Be a More Effective Developer &#8211; Microsoft TechEd DEV318</title>
		<link>http://intellitect.com/upgrading-your-c-programming-skills-to-be-a-more-effective-developer-microsoft-teched-dev318/</link>
		<comments>http://intellitect.com/upgrading-your-c-programming-skills-to-be-a-more-effective-developer-microsoft-teched-dev318/#comments</comments>
		<pubDate>Tue, 24 May 2011 14:36:45 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Headlines]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://www.intellitechture.com/upgrading-your-c-programming-skills-to-be-a-more-effective-developer-microsoft-teched-dev318/</guid>
		<description><![CDATA[<p>During my talk at TechEd, <a href="https://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/DEV318" class="broken_link">DEV318 &#8211; Upgrading Your C# Programming Skills to Be a More Effective Developer (video)</a> (<a href="http://intellitect.com/wp-content/uploads/2011/05/EssentialCSharp.zip">Slides</a>), I did a full review of all the most significant C# changes since C# 1.0 as shown in the following MindMap:</p>
<p style="text-align: center;"><a href="http://intellitect.com/wp-content/uploads/2011/05/ImprovingCSharp.Mindmap-crop.jpeg"><img class="size-large wp-image-2079 aligncenter" title="ImprovingCSharp.Mindmap (crop)" src="http://intellitect.com/wp-content/uploads/2011/05/ImprovingCSharp.Mindmap-crop-1024x453.jpg" alt="" width="585" height="259" /></a></p>
]]></description>
			<content:encoded><![CDATA[<p>During my talk at TechEd, <a href="https://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/DEV318" class="broken_link">DEV318 &#8211; Upgrading Your C# Programming Skills to Be a More Effective Developer (video)</a> (<a href="http://intellitect.com/wp-content/uploads/2011/05/EssentialCSharp.zip">Slides</a>), I did a full review of all the most significant C# changes since C# 1.0 as shown in the following MindMap:</p>
<p style="text-align: center;"><a href="http://intellitect.com/wp-content/uploads/2011/05/ImprovingCSharp.Mindmap-crop.jpeg"><img class="size-large wp-image-2079 aligncenter" title="ImprovingCSharp.Mindmap (crop)" src="http://intellitect.com/wp-content/uploads/2011/05/ImprovingCSharp.Mindmap-crop-1024x453.jpg" alt="" width="585" height="259" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://intellitect.com/upgrading-your-c-programming-skills-to-be-a-more-effective-developer-microsoft-teched-dev318/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

