<?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>Blogs &#187; Doug Holland (Intel)</title>
	<atom:link href="http://software.intel.com/en-us/blogs/author/doug-holland/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.intel.com/en-us/blogs</link>
	<description></description>
	<lastBuildDate>Fri, 25 May 2012 22:49:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Goodbye Intel, Joining Microsoft as an Architect Evangelist</title>
		<link>http://software.intel.com/en-us/blogs/2010/03/25/goodbye-intel-joining-microsoft-as-an-architect-evangelist/</link>
		<comments>http://software.intel.com/en-us/blogs/2010/03/25/goodbye-intel-joining-microsoft-as-an-architect-evangelist/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 18:40:29 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2010/03/25/goodbye-intel-joining-microsoft-as-an-architect-evangelist/</guid>
		<description><![CDATA[It has been just over three years since I joined Intel Corporation as a software architect, while I was not actively looking to leave the company, an opportunity came along to join the Developer Platform Evangelism (DPE) team at Microsoft as an Architect Evangelist. While working at Intel Corporation I have had the privilege to work with some amazing [...]]]></description>
			<content:encoded><![CDATA[<p>It has been just over three years since I joined Intel Corporation as a software architect, while I was not actively looking to leave the company, an opportunity came along to join the Developer Platform Evangelism (DPE) team at Microsoft as an Architect Evangelist.</p>
<p>While working at Intel Corporation I have had the privilege to work with some amazing engineers and the ability to see some awe inspiring technologies delivered, I know the same will be true at Microsoft and I'm looking forward to beginning that journey.</p>
<p>Over the past three years one of the most awesome aspects of my time at Intel has been blogging on the Intel Software Network and meeting many of my fellow bloggers at the Intel Developer Forum and through the Intel Black Belt Developer Program. I'd like to thank the ISN team for the opportunity to continue blogging on ISN after joining Microsoft. </p>
<p>I will also begin blogging on the Microsoft MSDN website soon and will post details of that blog once it is live.</p>
<p>I'll be blogging and speaking about many new and exciting technologies coming from Microsoft such as <a href="http://www.microsoft.com/visualstudio/en-us/visual-studio-events" target="_blank">Visual Studio 2010</a>, <a href="http://www.microsoft.com/silverlight/" target="_blank">Silverlight 4</a>, <a href="http://ie.microsoft.com/testdrive/Default.html" target="_blank">Internet Explorer 9</a>, cloud computing with <a href="http://www.microsoft.com/windowsazure/" target="_blank">Windows Azure</a>.</p>
<p>Stay tuned for more posts here and also over on MSDN soon...</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2010/03/25/goodbye-intel-joining-microsoft-as-an-architect-evangelist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ConfigurationErrorsException</title>
		<link>http://software.intel.com/en-us/blogs/2010/03/05/configurationerrorsexception/</link>
		<comments>http://software.intel.com/en-us/blogs/2010/03/05/configurationerrorsexception/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 19:31:32 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2010/03/05/configurationerrorsexception/</guid>
		<description><![CDATA[While with Visual Studio 2008 SP1 yesterday, I began receiving a ConfigurationErrorsException, as the following screen capture shows and what was strange was that the same application domain configuration was working just fine earlier that day. In fact there hadn't been any code changes and according to Team Foundation Server that code had not changed in [...]]]></description>
			<content:encoded><![CDATA[<p>While with Visual Studio 2008 SP1 yesterday, I began receiving a <a href="http://msdn.microsoft.com/en-us/library/system.configuration.configurationerrorsexception.aspx" target="_blank">ConfigurationErrorsException</a>, as the following screen capture shows and what was strange was that the same application domain configuration was working just fine earlier that day. In fact there hadn't been any code changes and according to Team Foundation Server that code had not changed in days.</p>
<p>After opening the same solution upon another computer and the code working without the <a href="http://msdn.microsoft.com/en-us/library/system.configuration.configurationerrorsexception.aspx" target="_blank">ConfigurationErrorsException</a> I hoped that I would be able to resolve the issue without having to result to uninstalling and reinstalling Visual Studio.</p>
<p>I'm unable to tell you why the exception began appearing although I am able to tell you how I was able to resolve the issue this morning.</p>
<p>After backing up the Visual Studio 2008 settings, restoring the standard C# developer settings, the issue disappeared. I was also able to restore the syntax color settings and a few other settings from the settings backup and the <a href="http://msdn.microsoft.com/en-us/library/system.configuration.configurationerrorsexception.aspx" target="_blank">ConfigurationErrorsException</a> has still disappeared.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2010/03/ConfigurationErrorsException.jpg"><img class="alignleft size-large wp-image-14552" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2010/03/ConfigurationErrorsException-1024x640.jpg" alt="" width="1024" height="640" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2010/03/05/configurationerrorsexception/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MissingMethodException - Global Assembly Cache</title>
		<link>http://software.intel.com/en-us/blogs/2010/02/23/missingmethodexception-global-assembly-cache/</link>
		<comments>http://software.intel.com/en-us/blogs/2010/02/23/missingmethodexception-global-assembly-cache/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 22:29:12 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2010/02/23/missingmethodexception-global-assembly-cache/</guid>
		<description><![CDATA[I recently added a column to a table within a database that required the addition of  an additional property to a Windows Communication Foundation (WCF) data contract. When debugging the new changes in Visual Studio 2008, a MissingMethodException was being thrown causing the associated unit tests to fail. Given that I knew the method,or get accessor of [...]]]></description>
			<content:encoded><![CDATA[<p>I recently added a column to a table within a database that required the addition of  an additional property to a Windows Communication Foundation (WCF) data contract. When debugging the new changes in Visual Studio 2008, a <a href="http://msdn.microsoft.com/en-us/library/system.missingmethodexception(VS.100).aspx" target="_blank">MissingMethodException</a> was being thrown causing the associated unit tests to fail.</p>
<p>Given that I knew the method,or get accessor of the property, existed; I began to debug the solution to determine the cause of the exception that obviously intended to ruin my morning.</p>
<p>Several hours later, after searching various blog posts, such as one from <a href="http://blogs.msdn.com/suzcook/archive/2004/02/13/debugging-a-missingmethodexception-missingfieldexception-typeloadexception.aspx" target="_blank">Suzanne Cook's .NET CLR notes</a>, and browsing through the fusion logs, it occurred to me that an older version of the assembly containing the data contract was installed in the Global Assembly Cache.</p>
<p>Uninstalling the offending assembly from the Global Assembly Cache, resolved the issue and the unit test passes once again, life then became a little less stressful.</p>
<p>If you are reading this while investigating another <a href="http://msdn.microsoft.com/en-us/library/system.missingmethodexception(VS.100).aspx" target="_blank">MissingMethodException</a> then I would definitely take a look at where the assemblies are being loaded from and it may just be that an older version of the assembly exists within the Global Assembly Cache.</p>
<p>Take some time to read the blog posts from <a href="http://blogs.msdn.com/suzcook/default.aspx" target="_blank">Suzanne Cook</a>, particularly her post on <a href="http://blogs.msdn.com/suzcook/archive/2004/02/13/debugging-a-missingmethodexception-missingfieldexception-typeloadexception.aspx" target="_blank">Debugging a MissingMethodException, MissingFieldException, or TypeLoadException</a>. <a href="http://blogs.msdn.com/suzcook/default.aspx" target="_blank">Suzanne Cook</a> is also featured in a two part Channel 9 video discussing the CLR and the assembly loader: <a href="http://channel9.msdn.com/ShowPost.aspx?PostID=40856" target="_blank">part 1</a> and <a href="http://channel9.msdn.com/ShowPost.aspx?PostID=41389" target="_blank">part 2</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2010/02/23/missingmethodexception-global-assembly-cache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CLR via C#, 3rd Edition Available Today</title>
		<link>http://software.intel.com/en-us/blogs/2010/02/11/clr-via-c-3rd-edition-available-today/</link>
		<comments>http://software.intel.com/en-us/blogs/2010/02/11/clr-via-c-3rd-edition-available-today/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 16:19:38 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2010/02/11/clr-via-c-3rd-edition-available-today/</guid>
		<description><![CDATA[Jeffrey Richter's book, CLR via C#, should be required reading for all developers who are using the C# programming language to target the .net Common Language Runtime (CLR). If, like me, you have already read the second edition you're maybe thinking "why read the new edition, I have already read the second edition?", you should [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://www.amazon.com/dp/0735627045?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=0735627045&amp;adid=04SQR5VXC2ABC1FGMSZ2"><img class="alignnone size-medium wp-image-12617" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/clrviacs3rdedition-246x300.jpg" alt="" width="246" height="300" /></a></p>
<p>Jeffrey Richter's book, <a href="https://www.amazon.com/dp/0735627045?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=0735627045&amp;adid=0WM62PZDYCJN3V07Z1WJ&amp;" target="_blank">CLR via C#</a>, should be required reading for all developers who are using the C# programming language to target the .net Common Language Runtime (CLR).</p>
<p>If, like me, you have already read the second edition you're maybe thinking "why read the new edition, I have already read the second edition?", you should remember that with the .NET Framework 4.0 comes a new CLR, task based parallelism types, as well as new language features within the C# 4.0 language.</p>
<p>In March this year I wrote a blog post introducing developers to the new language features within the C# language specification 4.0, you can read that post <a href="http://software.intel.com/en-us/blogs/2009/03/30/the-c-programming-language-version-40/" target="_blank">here</a>.</p>
<p>Other books tell you how to do something using the C# language, with <a href="https://www.amazon.com/dp/0735627045?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=0735627045&amp;adid=0WM62PZDYCJN3V07Z1WJ&amp;" target="_blank">CLR via C#</a> you'll understand the internal consequences, within the CLR, of your choices and you'll therefore be a more effective developer understanding those consequences.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2010/02/11/clr-via-c-3rd-edition-available-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MSDN Subscriber Downloads - Visual Studio 2010 Release Candidate</title>
		<link>http://software.intel.com/en-us/blogs/2010/02/08/msdn-subscriber-downloads-visual-studio-2010-release-candidate/</link>
		<comments>http://software.intel.com/en-us/blogs/2010/02/08/msdn-subscriber-downloads-visual-studio-2010-release-candidate/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 00:45:41 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2010/02/08/msdn-subscriber-downloads-visual-studio-2010-release-candidate/</guid>
		<description><![CDATA[Visual Studio 2010 Release Candidate is now available on MSDN subscriber downloads and includes the following elements of the forthcoming release. .NET Framework 4 Client Profile RC (x86 and x64) - (English) .NET Framework 4 Client Profile RC (x86) - (English) .NET Framework 4 Full RC (x86 and ia64) - (English) .NET Framework 4 Full [...]]]></description>
			<content:encoded><![CDATA[<p>Visual Studio 2010 Release Candidate is now available on MSDN subscriber downloads and includes the following elements of the forthcoming release.</p>
<ol>
<li>.NET Framework 4 Client Profile RC (x86 and x64) - (English)</li>
<li>.NET Framework 4 Client Profile RC (x86) - (English)</li>
<li>.NET Framework 4 Full RC (x86 and ia64) - (English)</li>
<li>.NET Framework 4 Full RC (x86 and x64) - (English)</li>
<li>.NET Framework 4 Full RC (x86) - (English)</li>
<li>Visual Studio 2010 FSharp 2.0 Runtime RC (x86) - (English)</li>
<li>Visual Studio 2010 Integrated Shell RC (x86) - (English)</li>
<li>Visual Studio 2010 Isolated Shell RC (x86) - (English)</li>
<li>Visual Studio 2010 Premium RC (x86) - DVD (English)</li>
<li>Visual Studio 2010 Professional RC (x86) - DVD (English)</li>
<li>Visual Studio 2010 Remote Debugger RC (ia64) - (English)</li>
<li>Visual Studio 2010 Remote Debugger RC (x64) - (English)</li>
<li>Visual Studio 2010 SDK RC (x86) - (English)</li>
<li>Visual Studio 2010 Ultimate RC (x86) - DVD (English)</li>
<li>Visual Studio 2010 Visualization &amp; Modeling SDK RC (x86) - (English)</li>
<li>Visual Studio Agents 2010 RC (x86) - DVD (English)</li>
<li> Visual Studio Team Explorer 2010 RC (x86) - DVD (English)</li>
<li>Visual Studio Team Foundation Server 2010 RC (x86 and x64) - DVD (English)</li>
</ol>
<p>MSDN's Channel 9 has a discussion on the RC build <a href="http://channel9.msdn.com/posts/Charles/Jason-Zander-Visual-Studio-2010-Release-Candidate/" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2010/02/08/msdn-subscriber-downloads-visual-studio-2010-release-candidate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adventures with Silverlight and WCF - The remote server returned an error: NotFound</title>
		<link>http://software.intel.com/en-us/blogs/2010/02/03/adventures-with-silverlight-and-wcf-the-remote-server-returned-an-error-notfound/</link>
		<comments>http://software.intel.com/en-us/blogs/2010/02/03/adventures-with-silverlight-and-wcf-the-remote-server-returned-an-error-notfound/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 08:12:11 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2010/02/03/adventures-with-silverlight-and-wcf-the-remote-server-returned-an-error-notfound/</guid>
		<description><![CDATA[While architecting and developing CodePlex.Diagnostics 4.0, the first version of the exception and logging framework to support Silverlight, I have had some considerable headaches debugging issues related to service communication and Silverlight 3 applications. Another interesting aspect of the transition from writing standard .net based code to that based upon Silverlight 3 is the difference [...]]]></description>
			<content:encoded><![CDATA[<p>While architecting and developing CodePlex.Diagnostics 4.0, the first version of the exception and logging framework to support Silverlight, I have had some considerable headaches debugging issues related to service communication and Silverlight 3 applications.</p>
<p>Another interesting aspect of the transition from writing standard .net based code to that based upon Silverlight 3 is the difference between the types found within the standard BCL, or Base Class Library, and the SCL, or Silverlight Class Library.</p>
<p>We'll begin tonight by describing an exception that you might encounter while writing Silverlight 3 applications that communicate with a remote WCF service, the text of the exception indicates that "The remote server returned an error: NotFound". What was not found? Unfortunately the exception message fails to communicate that small piece of information that could be so useful.</p>
<p>Initially I had thought the issue was related to cross domain communication restrictions imposed upon Silverlight 3 applications although this thought was quickly dismissed after verifying the existence of the <a href="http://msdn.microsoft.com/en-us/library/cc197955(VS.95).aspx" target="_blank">clientaccesspolicy.xml</a> file using <a href="http://www.httpdebugger.com/index.html" target="_blank">HttpDebugger Pro</a>. While I would recommend using <a href="http://www.httpdebugger.com/index.html" target="_blank">HttpDebugger Pro</a>, the free Http debugger <a href="http://www.fiddler2.com/fiddler2/" target="_blank">Fiddler</a> can also be used for this verification.</p>
<p>WCF <a href="http://msdn.microsoft.com/en-us/library/ms733025.aspx" target="_blank">tracing</a> fortunately enabled me to discover what exactly had not been found, and therefore caused the exception message, "The remote server returned an error: NotFound", that was before attempting to ruin my evening. In order to enable WCF tracing, simply add the following configuration Xml to the service that you are attempting to connect to from the Silverlight 3 application, or any other client for that matter. Obviously substitute an appropriate filename and path for the .svclog file.</p>
<p> &lt;configuration&gt;<br />
   &lt;system.diagnostics&gt;<br />
      &lt;sources&gt;<br />
            &lt;source name="System.ServiceModel"<br />
                    switchValue="Information, ActivityTracing"<br />
                    propagateActivity="true"&gt;<br />
            &lt;listeners&gt;<br />
               &lt;add name="traceListener"<br />
                   type="System.Diagnostics.XmlWriterTraceListener"<br />
                   initializeData= "c:\CodePlex.Diagnostics\CodePlex.Diagnostics.Services.Web.svclog" /&gt;<br />
            &lt;/listeners&gt;<br />
         &lt;/source&gt;<br />
      &lt;/sources&gt;<br />
   &lt;/system.diagnostics&gt;<br />
&lt;/configuration&gt;</p>
<p>When opening the resulting trace within the Microsoft Service Trace Viewer it should be immediately apparent if there are any exceptions that will provide the additional information you will need to resolve the communication issue at hand. With the exception that I was debugging the trace immediately showed an issue within the tree on the left hand side of the viewer and after investigating further the issue was caused, in this instance, by the fact that there was a type mismatch between a data member within a data contract that existed upon the server within a standard .net library and on the client within a Silverlight 3 library. Issue discovered, resolved, and unit tested. I have also included a figure showing the <a href="http://www.httpdebugger.com/index.html" target="_blank">HttpDebugger Pro</a> and the verification that the <a href="http://msdn.microsoft.com/en-us/library/cc197955(VS.95).aspx" target="_blank">clientaccesspolicy.xml</a> file was appropriately installed upon the Web server.</p>
<p>Silverlight 3, and the forthcoming Silverlight 4, are very interesting technologies to build some fantastic user experiences and in fairness this issue eventually had more to do with the Windows Communication Foundation than Silverlight. Hopefully this blog post will help someone resolve an exception in WCF sometime in the future.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2010/02/Service-Trace-Viewer-1.jpg"><img class="alignleft size-large wp-image-13687" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2010/02/Service-Trace-Viewer-1-1024x632.jpg" alt="" width="1024" height="632" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2010/02/Service-Trace-Viewer-2.jpg"><img class="alignleft size-large wp-image-13688" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2010/02/Service-Trace-Viewer-2-1024x632.jpg" alt="" width="1024" height="632" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2010/02/Service-Trace-Viewer-3.jpg"><img class="alignleft size-large wp-image-13689" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2010/02/Service-Trace-Viewer-3-1024x632.jpg" alt="" width="1024" height="632" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2010/02/HttpDebuggerPro.jpg"><img class="alignleft size-large wp-image-13690" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2010/02/HttpDebuggerPro-1024x640.jpg" alt="" width="1024" height="640" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2010/02/03/adventures-with-silverlight-and-wcf-the-remote-server-returned-an-error-notfound/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Araxis Merge 2010 Visual Studio Team Foundation Server Integration</title>
		<link>http://software.intel.com/en-us/blogs/2010/02/01/araxis-merge-2010-visual-studio-team-foundation-server-integration/</link>
		<comments>http://software.intel.com/en-us/blogs/2010/02/01/araxis-merge-2010-visual-studio-team-foundation-server-integration/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 07:01:45 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2010/02/01/araxis-merge-2010-visual-studio-team-foundation-server-integration/</guid>
		<description><![CDATA[In early 2004 while searching the Internet for a tool that would assist our team in performing peer code reviews I stumbled upon a compare and merge application that has since become an integral part of the developer experience for me and many developers I know. Araxis Merge 6.5 was so impactful on our team [...]]]></description>
			<content:encoded><![CDATA[<p>In early 2004 while searching the Internet for a tool that would assist our team in performing peer code reviews I stumbled upon a compare and merge application that has since become an integral part of the developer experience for me and many developers I know. Araxis Merge 6.5 was so impactful on our team that I wrote a review of the product at the time for the <a href="http://dotnet.sys-con.com/node/44045" target="_blank">.NET Developers Journal</a>, everything I wrote in the review still holds true today although <a href="http://www.araxis.com/" target="_blank">Araxis Merge 2010</a> has become all the more impactful as it has evolved over the past six years.</p>
<p>While many developers are familiar with the compare and merge tools that are provided by configuration management suites such as Microsoft's Team Foundation Server or IBM Rational ClearCase, they are also often familiar with their limitations. One such limitation with many such tools is that they can advise you that a given line has changed although they are unable to specify which characters on that line are different.</p>
<p><a href="http://www.araxis.com/" target="_blank">Araxis Merge 2010</a> is able to advise which characters within a line have changed and also does an excellent job of maintaining an awareness of which lines in one file relate to lines within a second file, or even a third file in the case of three way compare and merge in the professional edition. Applying the difference from one file to another is also made extremely easy by simply selecting the arrow button that appears on the line between the different areas of the file and can be applied in either direction.</p>
<p>If you're developing on the 64-bit version of Windows, and there really is no reason to still be using 32-bit, there is a natively compiled 64-bit version and if you are developing software on the Apple MacOS operating system there is even a version for MacOS too!</p>
<p>Without a doubt, <a href="http://www.araxis.com/" target="_blank">Araxis Merge 2010</a>is the best compare and merge tool on the market today, in my humble opinion that is, and I have it integrated into the Visual Studio 2008 SP1 environment such that I no longer have to endure the limitations of windiff.exe.</p>
<p>I would highly recommend any developer take the time to download <a href="http://www.araxis.com/" target="_blank">Araxis Merge 2010</a> and kick the tires and see how it compares with the compare and merge tool you're using today. I'd also recommend taking a look at the <a href="http://www.araxis.com/merge/scm_integration.html">integration page</a> on their Website for details on how to configure <a href="http://www.araxis.com/" target="_blank">Araxis Merge 2010</a> to replace the built-in compare and merge tools with over 30 source control systems. </p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2010/02/Visual-Studio-Araxis-Merge.jpg"><img class="alignleft size-large wp-image-13673" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2010/02/Visual-Studio-Araxis-Merge-1024x640.jpg" alt="" width="1024" height="640" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2010/02/01/araxis-merge-2010-visual-studio-team-foundation-server-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Visual Studio 2010 - April 12, 2010 Launch Date</title>
		<link>http://software.intel.com/en-us/blogs/2010/01/14/microsoft-visual-studio-2010-april-12-2010-launch-date/</link>
		<comments>http://software.intel.com/en-us/blogs/2010/01/14/microsoft-visual-studio-2010-april-12-2010-launch-date/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 21:47:15 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2010/01/14/microsoft-visual-studio-2010-april-12-2010-launch-date/</guid>
		<description><![CDATA[Microsoft's Rob Caron has announced that Visual Studio 2010 will launch on April 12, 2010, although it is important to realize that this is not the same thing as the release to manufacturing (RTM) date. April 12, 2010 essentially represents the date where the marketing launch parties will occur and these do not necessarily align with [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft's <a href="http://blogs.msdn.com/robcaron/" target="_blank">Rob Caron</a> has announced that <a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" target="_blank">Visual Studio 2010</a> will launch on April 12, 2010, although it is important to realize that this is not the same thing as the release to manufacturing (RTM) date. April 12, 2010 essentially represents the date where the marketing launch parties will occur and these do not necessarily align with RTM.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2010/01/14/microsoft-visual-studio-2010-april-12-2010-launch-date/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Norton Ghost 15</title>
		<link>http://software.intel.com/en-us/blogs/2009/12/29/norton-ghost-15/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/12/29/norton-ghost-15/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 21:30:40 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Manageability & Security]]></category>
		<category><![CDATA[Site News & Announcements]]></category>
		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/12/29/norton-ghost-15/</guid>
		<description><![CDATA[If there is one thing that you should definitely do on your laptop or desktop computer it is to have a backup and recovery plan as hard drives do sometimes fail and users do sometimes erase the files they would otherwise intend to keep. I spent some time last night helping some friends with a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://www.amazon.com/dp/B002SRNS7A?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=B002SRNS7A&amp;adid=1W089KANN3VMG9ERB17Q&amp;"><img class="alignleft size-full wp-image-13128" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/Ghost.jpg" alt="" width="280" height="280" /></a></p>
<p>If there is one thing that you should definitely do on your laptop or desktop computer it is to have a backup and recovery plan as hard drives do sometimes fail and users do sometimes erase the files they would otherwise intend to keep. I spent some time last night helping some friends with a PC that appears to have a defective hard drive.</p>
<p><a href="https://www.amazon.com/dp/B002SRNS7A?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=B002SRNS7A&amp;adid=1W089KANN3VMG9ERB17Q&amp;" target="_blank">Norton Ghost 15</a> is the software that I use to backup the entire computer every few days, along with documents once a day, to an external hard drive. I have also had to restore the machine from a ghost image of the hard drive, booting from the Ghost CD and selecting the image to restore.</p>
<p>If you're using <a href="http://www.microsoft.com/windows/windows-7/default.aspx" target="_blank">Windows 7</a> or <a href="http://www.microsoft.com/windowsserver2008/en/us/default.aspx" target="_blank">Windows Server 2008 R2</a> then you might want to also consider using <a href="https://www.amazon.com/dp/B002SRNS7A?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=B002SRNS7A&amp;adid=1W089KANN3VMG9ERB17Q&amp;" target="_blank">Norton Ghost 15</a>. While <a href="https://www.amazon.com/dp/B002SRNS7A?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=B002SRNS7A&amp;adid=1W089KANN3VMG9ERB17Q&amp;" target="_blank">Norton Ghost 15</a> will only install on client versions of the operating system it can run backup a PC from the bootable CD without even installing the software. I personally dual-boot <a href="http://www.microsoft.com/windows/windows-7/default.aspx" target="_blank">Windows 7</a> and <a href="http://www.microsoft.com/windowsserver2008/en/us/default.aspx" target="_blank">Windows Server 2008 R2</a> and so the scheduled backup backs up both hard drive partitions.</p>
<p>What would be great would be if Symantec allowed tools such as <a href="https://www.amazon.com/dp/B002L77PR6?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=B002L77PR6&amp;adid=0JC82NSV1N47G3AT1DZQ&amp;" target="_blank">Norton AntiVirus 2010</a> and <a href="https://www.amazon.com/dp/B002SRNS7A?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=B002SRNS7A&amp;adid=1W089KANN3VMG9ERB17Q&amp;" target="_blank">Norton Ghost 15</a> to be installed upon Windows Server if used for personal use. One option would be to allow the tool to install if the Windows Server instance operates within a workgroup and not a domain.</p>
<p>While <a href="http://www.microsoft.com/windows/windows-7/default.aspx" target="_blank">Windows 7</a> provides simple backup and restore functionality <a href="https://www.amazon.com/dp/B002SRNS7A?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=B002SRNS7A&amp;adid=1W089KANN3VMG9ERB17Q&amp;" target="_blank">Norton Ghost 15</a> provides some significant benefits over the <a href="http://www.microsoft.com/windows/windows-7/default.aspx" target="_blank">Windows 7</a> backup and restore, these include:</p>
<ol>
<li>Cold imaging allows backups to be created without even installing <a href="https://www.amazon.com/dp/B002SRNS7A?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=B002SRNS7A&amp;adid=1W089KANN3VMG9ERB17Q&amp;" target="_blank">Norton Ghost 15</a>, useful if you're using <a href="http://www.microsoft.com/windowsserver2008/en/us/default.aspx" target="_blank">Windows Server 2008 R2</a> as a workstation operating system.</li>
<li><a href="http://en.wikipedia.org/wiki/Blu-ray_Disc" target="_blank">Blu-ray</a> disc support allows backups to be created on writable <a href="http://en.wikipedia.org/wiki/Blu-ray_Disc" target="_blank">blu-ray</a> media.</li>
<li>Off-site backups written to an FTP location.</li>
<li>Encryption support protects valuable data within backup images.</li>
</ol>
<p>Regardless of which backup and restore software you use, ensure you have a backup and restore system for your PC and test the restore process to ensure that it will work when needed.</p>
<p><a href="https://www.amazon.com/dp/B002SRNS7A?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=B002SRNS7A&amp;adid=1W089KANN3VMG9ERB17Q&amp;"><img class="alignleft size-full wp-image-13129" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/NortonGhost15.jpg" alt="" width="813" height="754" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/12/29/norton-ghost-15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio 2008 Server Explorer Missing...</title>
		<link>http://software.intel.com/en-us/blogs/2009/12/20/visual-studio-2008-server-explorer-missing/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/12/20/visual-studio-2008-server-explorer-missing/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 00:04:38 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/12/20/visual-studio-2008-server-explorer-missing/</guid>
		<description><![CDATA[While using Visual Studio 2008 SP1 yesterday I noticed that the Entity Data Model Wizard would close unexpectedly after choosing to Generate from database, see the following screen shot. After spending some time researching why this was happening it appears to have been related to the fact that the Visual Studio 2008 SP1 Server Explorer [...]]]></description>
			<content:encoded><![CDATA[<p>While using Visual Studio 2008 SP1 yesterday I noticed that the Entity Data Model Wizard would close unexpectedly after choosing to Generate from database, see the following screen shot.</p>
<p>After spending some time researching why this was happening it appears to have been related to the fact that the Visual Studio 2008 SP1 Server Explorer was missing and any attempt to open the Server Explorer using either the menu or the assigned keyboard shortcuts would fail.</p>
<p>What is needed to bring back the Server Explorer, and therefore solve the issue with the Entity Data Model Wizard, is to reset the Visual Studio 2008 environment using the following command in the Windows Console:</p>
<p>          C:\devenv /reset</p>
<p>Once the Visual Studio 2008 environment has reset you should once again have the Server Explorer and a fully functioning Entity Data Model Wizard...</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/Entity-Data-Model-Wizard.jpg"><img class="alignleft size-full wp-image-12947" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/Entity-Data-Model-Wizard.jpg" alt="Entity Data Model Wizard" width="623" height="554" /></a></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/Server-Explorer.jpg"><img class="alignleft size-full wp-image-12948" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/Server-Explorer.jpg" alt="Server Explorer" width="318" height="269" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/12/20/visual-studio-2008-server-explorer-missing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Framework Design Guidelines</title>
		<link>http://software.intel.com/en-us/blogs/2009/12/16/framework-design-guidelines/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/12/16/framework-design-guidelines/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 18:17:06 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/12/16/framework-design-guidelines/</guid>
		<description><![CDATA[Tonight I'll be presenting at the Microsoft San Francisco, CA office for the Bay.NET User Group, this time discussing the best practices for Structured Exception Handling (SEH), based in part upon the Framework Design Guidelines book by Krzysztof Cwalina and Brad Abrams. If you're developing code with the Microsoft .NET Framework, regardless of whether you're a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://www.amazon.com/dp/0321545613?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=0321545613&amp;adid=1YHH3XVJ3MP85V0N9HWD"><img class="alignleft size-medium wp-image-12840" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/FrameworkGuidelines-227x300.jpg" alt="Framework Design Guidelines" width="227" height="300" /></a></p>
<p>Tonight I'll be presenting at the Microsoft San Francisco, CA office for the <a href="http://www.baynetug.org/DesktopModules/DetailXEvents.aspx?ItemID=406&amp;mid=49" target="_blank">Bay.NET User Group</a>, this time discussing the best practices for Structured Exception Handling (SEH), based in part upon the <a href="https://www.amazon.com/dp/0321545613?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=0321545613&amp;adid=1YHH3XVJ3MP85V0N9HWD&amp;" target="_blank">Framework Design Guidelines</a> book by Krzysztof Cwalina and Brad Abrams.</p>
<p>If you're developing code with the Microsoft .NET Framework, regardless of whether you're a framework developer or an application developer, I would highly recommend that you and everyone on your team has access to this book. It is an invaluable resource when developing code for using the Microsoft .NET Framework and unlike many other books that are written primarily by one or two authors, this book contains critical insight of many influential practitioners within and beyond Microsoft.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/12/16/framework-design-guidelines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adventures with Typemock Isolator and Mock Objects</title>
		<link>http://software.intel.com/en-us/blogs/2009/12/11/adventures-with-typemock-isolator-and-mock-objects/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/12/11/adventures-with-typemock-isolator-and-mock-objects/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 20:24:37 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/12/11/adventures-with-typemock-isolator-and-mock-objects/</guid>
		<description><![CDATA[While developing a new release of the CodePlex.Diagnostics exception and logging framework I encountered a scenario where it became very difficult to write an effective unit test. In the latest release of the framework developers will interact with the framework using C# extension methods on the System.Exception, System.String, and System.Diagnostics.Process classes. Writing unit tests for the publication [...]]]></description>
			<content:encoded><![CDATA[<p>While developing a new release of the <a href="http://diagnostics.codeplex.com/" target="_blank">CodePlex.Diagnostics</a> exception and logging framework I encountered a scenario where it became very difficult to write an effective unit test. In the latest release of the framework developers will interact with the framework using C# extension methods on the <a href="http://msdn.microsoft.com/en-us/library/system.exception(VS.100).aspx" target="_blank">System.Exception</a>, <a href="http://msdn.microsoft.com/en-us/library/system.string(VS.100).aspx" target="_blank">System.String</a>, and <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.100).aspx" target="_blank">System.Diagnostics.Process</a> classes. Writing unit tests for the publication of exceptions and the writing of log entries, the extension methods on the <a href="http://msdn.microsoft.com/en-us/library/system.exception(VS.100).aspx" target="_blank">System.Exception</a> and <a href="http://msdn.microsoft.com/en-us/library/system.string(VS.100).aspx" target="_blank">System.String</a> classes, presented no problems although the extension method for the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.100).aspx" target="_blank">System.Diagnostics.Process</a> class expects the process to have exited and this was the scenario that was causing the difficulty.</p>
<p>Initially I thought that I had three options to enable the extension method on the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.100).aspx" target="_blank">System.Diagnostics.Process</a> class to be unit tested and they were:</p>
<ol>
<li>Using .net reflection alter the internal state of the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.100).aspx" target="_blank">System.Diagnostics.Process</a> class such that the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.hasexited(VS.100).aspx" target="_blank">HasExited</a>, <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.starttime(VS.100).aspx" target="_blank">StartTime</a>, <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exittime(VS.100).aspx" target="_blank">ExitTime</a>, and <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exitcode(VS.100).aspx" target="_blank">ExitCode</a>properties all return appropriate values, giving the illusion that the vstesthost.exe process has exited while in reality the process is still executing unit tests.</li>
<li>Within the unit test create an additional process that the vstesthost.exe process can observe using <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exited(VS.100).aspx" target="_blank">Exited</a> event of the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.100).aspx" target="_blank">System.Diagnostics.Process</a> class and then call the C# extension method using the additional process.</li>
<li>Use an appropriate mocking framework to create a mock object, based upon the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.100).aspx" target="_blank">System.Diagnostics.Process</a> class, that will be used to call the C# extension method after isolating calls to the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.hasexited(VS.100).aspx" target="_blank">HasExited</a>, <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.starttime(VS.100).aspx" target="_blank">StartTime</a>, <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exittime(VS.100).aspx" target="_blank">ExitTime</a>, and <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exitcode(VS.100).aspx" target="_blank">ExitCode</a> properties such that they will return appropriate values.</li>
</ol>
<p>After exploring the internals of the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.100).aspx" target="_blank">System.Diagnostics.Process</a>class with Lutz Roeder's <a href="http://www.red-gate.com/products/reflector/index.htm" target="_blank">.NET Reflector</a>, and writing some exploratory code altering the internal state of the class using reflection, it became apparent that this approach would not work. Within the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.100).aspx" target="_blank">System.Diagnostics.Process</a> class there is an internal method called EnsureState, and while I was able to successfully alter the state of the instance such that the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.hasexited(VS.100).aspx" target="_blank">HasExited</a>, <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exittime(VS.100).aspx" target="_blank">ExitTime</a>, and <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exitcode(VS.100).aspx" target="_blank">ExitCode</a>properties all return appropriate values, an exception is thrown by the EnsureState method when the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.starttime(VS.100).aspx" target="_blank">StartTime</a> property is called.</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/Reflector.jpg"><img src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/Reflector-300x145.jpg" alt="Reflector" width="300" height="145" /></a></p>
<p>With Visual Studio 2008 support for source debugging I was able to step into the EnsureState method, if you're not familiar with this feature then see my previous blog post on <a title="Permanent Link: Visual Studio 2008 SP1 .NET Framework Source Debugging" rel="bookmark" href="http://software.intel.com/en-us/blogs/2009/09/07/visual-studio-2008-sp1-net-framework-source-debugging/">Visual Studio 2008 SP1 .NET Framework Source Debugging</a>.</p>
<p>So after determining that option 1 wasn't really an option I then had to consider option 2 although unit testing frameworks and the tools that execute the tests created with those frameworks are generally not intended for dealing with processes and other system level programming concepts. Creating another process within a unit test and having the vstesthost.exe process observe the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exited(VS.100).aspx" target="_blank">Exited</a> event of that process just seemed like it was getting into a corner case with the Visual Studio unit testing framework and I determined that option 2 was not really an option either.</p>
<p>An object mocking framework just seemed to be the appropriate direction to unit test the C# extension method for the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.100).aspx" target="_blank">System.Diagnostics.Process</a> class and unit testing was not for an open source solution it may actually have been option 1 as it really is the most obvious choice. Given that the <a href="http://diagnostics.codeplex.com/" target="_blank">CodePlex.Diagnostics</a> framework is open source I really wanted to avoid introducing any dependencies that are not core .NET types.</p>
<p>Initially I decided to explore some of the open source mocking frameworks such as <a href="http://www.nmock.org/" target="_blank">NMock</a> and <a href="http://ayende.com/projects/rhino-mocks.aspx" target="_blank">Rhino Mocks</a> although the consensus on the blogosphere (See posts by fellow Microsoft MVP's <a href="http://mark.michaelis.net/Blog/MockObjectFrameworksNMockRhinoMockTypeMock.aspx" target="_blank">Mark Michaelis</a> and <a href="http://weblogs.asp.net/rosherove/archive/2007/04/26/choosing-a-mock-object-framework.aspx" target="_blank">Roy Osherove</a>) was that <a href="http://www.typemock.com" target="_blank">TypeMock Isolator</a> presented additional capabilities that made it the compelling choice. Microsoft Research also has two related projects that might be worth following, <a href="http://research.microsoft.com/en-us/projects/stubs/" target="_blank">Stubs</a> and <a href="http://research.microsoft.com/en-us/projects/stubs/moles.aspx" target="_blank">Moles</a>.</p>
<p><a href="http://www.typemock.com" target="_blank">TypeMock Isolator</a> enables us to mock an object using the IFaker interface which is exposed through the Fake property on the Isolate class. Calls to the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.hasexited(VS.100).aspx" target="_blank">HasExited</a>, <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.starttime(VS.100).aspx" target="_blank">StartTime</a>, <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exittime(VS.100).aspx" target="_blank">ExitTime</a>, and <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exitcode(VS.100).aspx" target="_blank">ExitCode</a> properties are then isolated from the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.100).aspx" target="_blank">System.Diagnostics.Process</a> class by passing lambda expressions to the WhenCalled method and stating an alternate value to be returned using WillReturn. See the code within Visual Studio 2008 and the execution of the unit tests within the next two screen shots. SQL Server 2008 Management Studio can then be seen in the third screen shot and the process exit details can be seen in the last set of results.</p>
<p>It is not often that technology amazes me although <a href="http://www.typemock.com" target="_blank">TypeMock Isolator</a> truly amazed me in what new scenarios it enables in unit testing and I believe it makes the testable easier to test and the untestable testable.</p>
<p>If you download the latest change set for the <a href="http://diagnostics.codeplex.com/SourceControl/ListDownloadableCommits.aspx" target="_blank">CodePlex.Diagnostics</a>framework from the Sources tab on the CodePlex website the you'll have the code shown below and I would highly recommend taking a look at <a href="http://www.typemock.com" target="_blank">TypeMock Isolator</a> for your next project. <a href="http://diagnostics.codeplex.com/SourceControl/ListDownloadableCommits.aspx" target="_blank">CodePlex.Diagnostics</a> 4.0 will be entering beta next week and there will be a second beta release in January followed by the RTM build sometime in Q1 2010.</p>
<p>I'll be blogging more about the <a href="http://diagnostics.codeplex.com/SourceControl/ListDownloadableCommits.aspx" target="_blank">CodePlex.Diagnostics</a> framework and <a href="http://www.typemock.com" target="_blank">TypeMock Isolator</a> over the next few weeks so stay tuned...</p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/TypemockIsolator.jpg"><img class="alignnone size-large wp-image-12651" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/TypemockIsolator-1024x640.jpg" alt="Typemock Isolator" width="1024" height="640" /></a></p>
<p> <a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/TypemockIsolator-UpdateExitDetails.jpg"><img class="alignnone size-large wp-image-12671" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/TypemockIsolator-UpdateExitDetails-1024x640.jpg" alt="TypemockIsolator" width="1024" height="640" /></a></p>
<p><a href="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/SQLServer2008-CodePlex.Diagnostics.jpg"><img class="alignnone size-large wp-image-12672" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/SQLServer2008-CodePlex.Diagnostics-1024x640.jpg" alt="SQLServer2008 CodePlex.Diagnostics" width="1024" height="640" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/12/11/adventures-with-typemock-isolator-and-mock-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jeffrey Richter&#039;s CLR via C#, 3rd Edition Coming Soon</title>
		<link>http://software.intel.com/en-us/blogs/2009/12/10/jeffrey-richters-clr-via-c-3rd-edition-coming-soon/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/12/10/jeffrey-richters-clr-via-c-3rd-edition-coming-soon/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 17:49:18 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Site News & Announcements]]></category>
		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/12/10/jeffrey-richters-clr-via-c-3rd-edition-coming-soon/</guid>
		<description><![CDATA[If you have either been following this blog for sometime or you have heard me speak at user groups or conferences you'll know that I believe every .NET developer, regardless of experience, should read Jeffrey Richter's book CLR via C#. You'll be able to read the new edition of the book, updated for the C# [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://www.amazon.com/dp/0735627045?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=0735627045&amp;adid=04SQR5VXC2ABC1FGMSZ2"><img class="alignnone size-medium wp-image-12617" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/12/clrviacs3rdedition-246x300.jpg" alt="" width="246" height="300" /></a></p>
<p>If you have either been following this blog for sometime or you have heard me speak at user groups or conferences you'll know that I believe every .NET developer, regardless of experience, should read Jeffrey Richter's book <a href="https://www.amazon.com/dp/0735627045?tag=sofbloint-20&amp;camp=213381&amp;creative=390973&amp;linkCode=as4&amp;creativeASIN=0735627045&amp;adid=04SQR5VXC2ABC1FGMSZ2&amp;" target="_blank">CLR via C#</a>. You'll be able to read the new edition of the book, updated for the C# language version 4.0 and Visual Studio 2010, early next year and I would definitely recommend you order a copy today as I believe it will be one of the most anticipated developer books of 2010.</p>
<p>If, like me, you have already read the second edition you're maybe thinking "why read the new edition, I have already read the second edition?", you should remember that with the .NET Framework 4.0 comes a new CLR, task based parallelism types, as well as new language features within C# 4.0.</p>
<p>Jeff Richter's <a href="http://www.wintellect.com/CS/blogs/jeffreyr/archive/2009/11/01/what-s-new-in-clr-via-c-3rd-edition-as-compared-to-the-2nd-edition.aspx" target="_blank">blog</a> has an interesting <a href="http://www.wintellect.com/CS/blogs/jeffreyr/archive/2009/11/01/what-s-new-in-clr-via-c-3rd-edition-as-compared-to-the-2nd-edition.aspx" target="_blank">post</a> where he describes the differences between the second and third editions.</p>
<p>In March this year I wrote a blog post introducing developers to the new language features within the C# language specification 4.0, you can read that post <a href="http://software.intel.com/en-us/blogs/2009/03/30/the-c-programming-language-version-40/" target="_blank">here</a>.</p>
<p>I have my copy ordered today...</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/12/10/jeffrey-richters-clr-via-c-3rd-edition-coming-soon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Black Belt Exception Management</title>
		<link>http://software.intel.com/en-us/blogs/2009/12/03/black-belt-exception-management/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/12/03/black-belt-exception-management/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 22:26:45 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/12/03/black-belt-exception-management/</guid>
		<description><![CDATA[I'll be presenting at the Microsoft San Francisco, CA office on Wednesday December 16th at 6:30pm for the Bay.NET User Group, this time discussing the best practices for Structured Exception Handling (SEH) and how you can make exceptions your friend rather than your enemy. In addition to discussing best practices for SEH we'll also discuss several frameworks [...]]]></description>
			<content:encoded><![CDATA[<p>I'll be presenting at the Microsoft San Francisco, CA office on Wednesday December 16th at 6:30pm for the <a href="http://www.baynetug.org/DesktopModules/DetailXEvents.aspx?ItemID=406&amp;mid=49" target="_blank">Bay.NET User Group</a>, this time discussing the best practices for Structured Exception Handling (SEH) and how you can make exceptions your friend rather than your enemy.</p>
<p>In addition to discussing best practices for SEH we'll also discuss several frameworks for persisting exception details including the <a href="http://codeplex.com/diagnostics" target="_blank">CodePlex.Diagnostics</a> framework that I wrote before joining Intel. In fact, version 4.0 of the <a href="http://codeplex.com/diagnostics" target="_blank">CodePlex.Diagnostics</a> framework is under development and will be released as a public beta this month with the RTM build coming early next year.</p>
<p>We'll also explore how parallelism affects how exceptions should be handled.</p>
<p>Finally, apologies to those who expected me to be presenting earlier this month to the Sacramento .NET users group, unfortunately I was unable to attend at the last minute due to the flu. I hope to be back at the Sacramento .NET users group soon however.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/12/03/black-belt-exception-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallel Execution of Visual Studio 2010 Unit Tests</title>
		<link>http://software.intel.com/en-us/blogs/2009/12/01/parallel-execution-of-visual-studio-2010-unit-tests/</link>
		<comments>http://software.intel.com/en-us/blogs/2009/12/01/parallel-execution-of-visual-studio-2010-unit-tests/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 19:52:54 +0000</pubDate>
		<dc:creator>Doug Holland (Intel)</dc:creator>
				<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://software.intel.com/en-us/blogs/2009/12/01/parallel-execution-of-visual-studio-2010-unit-tests/</guid>
		<description><![CDATA[In July this year I wrote a blog post, and associated connect item, where I discussed the possibility of executing Visual Studio Team System unit tests in parallel upon multi-core architectures.  It seems that there were others on the Visual Studio Team Test team that also thought this was a good idea and Bruce Taimana, a program manager for [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-10838" src="http://software.intel.com/en-us/blogs/wordpress/wp-content/uploads/2009/10/visualstudio.jpg" alt="" width="500" height="135" /></p>
<p>In July this year I wrote a <a href="http://software.intel.com/en-us/blogs/2009/07/02/parallel-execution-of-visual-studio-team-system-unit-tests/#comment-35921" target="_blank">blog post</a>, and associated <a href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=472247" target="_blank">connect item</a>, where I discussed the possibility of executing Visual Studio Team System unit tests in parallel upon multi-core architectures. </p>
<p>It seems that there were others on the Visual Studio Team Test team that also thought this was a good idea and Bruce Taimana, a program manager for Visual Studio Team Test, has written an excellent <a href="http://blogs.msdn.com/vstsqualitytools/archive/2009/12/01/executing-unit-tests-in-parallel-on-a-multi-cpu-core-machine.aspx" target="_blank">blog post</a> where he describes how this can be used within Visual Studio 2010.</p>
<p>In the original <a href="http://software.intel.com/en-us/blogs/2009/07/02/parallel-execution-of-visual-studio-team-system-unit-tests/#comment-35921" target="_blank">blog post</a> that I wrote I stated that "Obviously thread safety would be the responsibility of the test authors and the parallel execution of the unit tests could be an optional capability with the default being the sequential execution."</p>
<p>As Bruce Taimana indicates in this <a href="http://blogs.msdn.com/vstsqualitytools/archive/2009/12/01/executing-unit-tests-in-parallel-on-a-multi-cpu-core-machine.aspx" target="_blank">blog post</a>, thread safety is the responsibility of the unit test authors and he provides a link to an article within the MSDN magazine that addresses <a href="http://msdn.microsoft.com/en-us/magazine/cc163929.aspx" target="_blank">thread safety</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/en-us/blogs/2009/12/01/parallel-execution-of-visual-studio-2010-unit-tests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

