<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Skinner's Blog</title><link>http://blogs.msdn.com/b/camerons/</link><description>Comments on Visual Studio, Visualizations &amp;amp; Modeling, .NET, and beyond</description><dc:language>en</dc:language><generator>Telligent Community 5.6.583.21163 (Build: 5.6.583.21163)</generator><item><title>Latest Videos and Info on VS11 Visualization Tooling</title><link>http://blogs.msdn.com/b/camerons/archive/2012/03/11/latest-videos-and-info-on-vs11-visualization-tooling.aspx</link><pubDate>Sun, 11 Mar 2012 21:25:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10281101</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10281101</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2012/03/11/latest-videos-and-info-on-vs11-visualization-tooling.aspx#comments</comments><description>&lt;p&gt;Wanted to make you folks aware of a few new videos that have been recently made showing the latest capabilities in the recently released beta for Visual Studio.&lt;/p&gt;  &lt;p&gt;I just recently recorded a ~30 minute piece on the &lt;a href="http://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Visual-Studio-Toolbox-Dependency-Graphs"&gt;Visual Studio Toolbox site&lt;/a&gt;. Consider this video a refresher of the bits ( for those who weren’t familiar with the VS2010 capabilities ), as well as a quick summary of some of the latest features we’ve enabled.&lt;/p&gt;  &lt;p&gt;For more in depth video, be sure to check out &lt;a href="http://www.lovettsoftware.com/blogengine.net/post/2012/03/07/Whats-New-in-Visual-Studio-2012-Dependency-Graph-Features.aspx"&gt;Chris Lovett’s recent video&lt;/a&gt;, which is much more comprehensive.&lt;/p&gt;  &lt;p&gt;One of the more significant pieces of technology that we have created in support of the new Visualization and Dependency work in VS11 is known as the “Code Index”. Essentially, a LocalDB database where we house all the information of the assemblies you are trying to understand. Take a look at &lt;a href="http://blogs.msdn.com/b/jmprieur/archive/2012/03/01/what-is-the-code-index-sdk.aspx"&gt;Jean-Marc’s recent post&lt;/a&gt; about the Code Index, and the SDK made available in the &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=29040"&gt;Visualization and Modeling SDK&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10281101" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/DGML/">DGML</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Visual+Studio/">Visual Studio</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/VS11/">VS11</category></item><item><title>Debugger Canvas 1.1 Released</title><link>http://blogs.msdn.com/b/camerons/archive/2012/01/31/debugger-canvas-1-1-released.aspx</link><pubDate>Tue, 31 Jan 2012 18:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10262066</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10262066</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2012/01/31/debugger-canvas-1-1-released.aspx#comments</comments><description>&lt;p&gt;Since the initial release of the Debugger Canvas last summer, the team has been busy taking all the great feedback from you, acting on it, and preparing a new release. That release, Debugger Canvas 1.1, has just been released on DevLabs!&lt;/p&gt;  &lt;p&gt;The teams has focused on fixing numerous bugs as well as addressing a number of performance issues, but has also poured a number of new features into this release:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Easily turn Debugger Canvas on or off, even in the middle of a debug session &lt;/li&gt;    &lt;li&gt;Quickly navigate up and down the call stack in the canvas using the keyboard or the mouse &lt;/li&gt;    &lt;li&gt;See Multiple threads together on the canvas, each thread identified by its color. &lt;/li&gt;    &lt;li&gt;See recursive calls side by side &lt;/li&gt;    &lt;li&gt;Edit code directly in the code bubbles ( this is now on by default ). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Please take this new release out for a test drive by going over to &lt;a href="http://msdn.microsoft.com/en-us/devlabs/debuggercanvas"&gt;DevLabs&lt;/a&gt; and downloading this new version. And as always, the team welcomes and looks forward to your feedback. Please visit the &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/debuggercanvas/threads"&gt;DevLabs forum&lt;/a&gt; and let us hear about it!&lt;/p&gt;  &lt;p&gt;Cheers!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10262066" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Debugger+Canvas/">Debugger Canvas</category></item><item><title>What do you think of Debugger Canvas?</title><link>http://blogs.msdn.com/b/camerons/archive/2011/07/22/what-do-you-think-of-debugger-canvas.aspx</link><pubDate>Fri, 22 Jul 2011 15:14:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10188966</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>14</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10188966</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/07/22/what-do-you-think-of-debugger-canvas.aspx#comments</comments><description>&lt;p&gt;The folks behind the &lt;a href="http://msdn.microsoft.com/en-us/devlabs/hh227299"&gt;Debugger Canvas&lt;/a&gt; project ( a few from my team, a few from MSR ) are very interested in picking your brain on what you like about it and what you don’t like about it. To that end, they are looking to get a one hour conference call together with a select group of folks who are willing to discuss their experiences to date and any ideas you may have to make the capability even better.&lt;/p&gt;  &lt;p&gt;If you are interested, please send an email to &lt;a href="mailto:debugcanvsignup@microsoft.com"&gt;debugcanvsignup@microsoft.com&lt;/a&gt;, and take a look at &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/debuggercanvas/thread/f8f70386-7c8d-41af-b3ed-cf86760c4f0a"&gt;this forum&lt;/a&gt; post for more info.&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10188966" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Debugger/">Debugger</category></item><item><title>ALM vNext Announced at TechEd</title><link>http://blogs.msdn.com/b/camerons/archive/2011/05/17/alm-vnext-announced-at-teched.aspx</link><pubDate>Tue, 17 May 2011 15:10:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10165398</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10165398</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/05/17/alm-vnext-announced-at-teched.aspx#comments</comments><description>&lt;p&gt;We just finished announcing all the great new stuff that will be coming in the next version of Visual Studio, specifically talking about the Application Lifecycle Management features that you can expect in that release.&lt;/p&gt;  &lt;p&gt;Please check out &lt;a href="http://blogs.msdn.com/b/jasonz/archive/2011/05/16/announcing-alm-roadmap-in-visual-studio-vnext-at-teched.aspx"&gt;Jason Zander’s blog post&lt;/a&gt; about the announcements, and be sure to read this &lt;a href="http://go.microsoft.com/?linkid=9772730"&gt;white paper&lt;/a&gt;. The white paper goes into quite a bit of information about many of the new features we announced yesterday, such as the new Unit Testing work, the new Storyboarding assistant designed to help manage lightweight requirements, Code Clone analysis, and so on.&lt;/p&gt;  &lt;p&gt;It was a blast to demonstrate many of these features during the TechEd keynote with Jason, and it was even better to present at the &lt;a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/FDN03"&gt;ALM Futures foundational&lt;/a&gt; session immediately following the keynote, to go into a bit more detail and show a few other items we didn’t have time to get to in the keynote.&lt;/p&gt;  &lt;p&gt;Exciting times!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10165398" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/ALM/">ALM</category></item><item><title>MSDN Instant Answers</title><link>http://blogs.msdn.com/b/camerons/archive/2011/05/13/msdn-instant-search.aspx</link><pubDate>Fri, 13 May 2011 15:31:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10164245</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10164245</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/05/13/msdn-instant-search.aspx#comments</comments><description>&lt;p&gt;Wanted to point out a great new feature that the MSDN team has just made available when searching in the MSDN library. The feature is dubbed “Instant Answers”.&lt;/p&gt;  &lt;p&gt;Try this out. Go to msdn.microsoft.com, then click the library tab ( or go directly there by clicking &lt;a href="http://msdn.microsoft.com/en-us/library/default.aspx"&gt;this link&lt;/a&gt; ). Now, type “Hashtable” in the search text box. You should see something like this as the first entry in the results:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/MSDN-Instant-Search_746E/image.png" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/MSDN-Instant-Search_746E/image_thumb.png" width="644" height="202" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The main thing I like about this is the quick access to the source code. Notice to the right of the C# and VB code, there is a little icon. Go ahead and click that. That will bring up a “text” window in the middle of your browser, allowing you to select that code, copy, and paste into your code. Very nice!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/MSDN-Instant-Search_746E/image_3.png" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/MSDN-Instant-Search_746E/image_thumb_3.png" width="644" height="253" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This is a new approach to search results within MSDN, and the amount of content that is ready for this new format is limited, but I think these folks are really doing a great job to make the content as accessible as possible.&lt;/p&gt;  &lt;p&gt;What do you think? What do you like about it? Anything you’d change?&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10164245" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/MSDN/">MSDN</category></item><item><title>New version of the Architecture Guidance</title><link>http://blogs.msdn.com/b/camerons/archive/2011/05/01/new-version-of-the-architecture-guidance.aspx</link><pubDate>Sun, 01 May 2011 23:42:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10159883</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10159883</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/05/01/new-version-of-the-architecture-guidance.aspx#comments</comments><description>&lt;p&gt;I’m a bit tardy in passing this information along, but the &lt;a href="http://msdn.microsoft.com/en-us/vstudio/ee358786.aspx"&gt;Rangers&lt;/a&gt; have recently ( April 18th ) released a new version of the &lt;a href="http://vsarchitectureguide.codeplex.com/"&gt;Architecture Guidance&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Check out &lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2011/04/18/architecture-tooling-guidance-version-2-1-abe-is-available.aspx"&gt;Willy’s post&lt;/a&gt; for more details, or go and download it directly &lt;a href="http://vsarchitectureguide.codeplex.com/releases/47828/download/129141"&gt;here&lt;/a&gt;. A bunch of great prescriptive guidance on how to use the modeling and visualization capabilities present in Visual Studio 2010 Ultimate.&lt;/p&gt;  &lt;p&gt;Cheers!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10159883" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Architecture+Edition/">Architecture Edition</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/UML/">UML</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Visual+Studio+2010+Ultimate/">Visual Studio 2010 Ultimate</category></item><item><title>Tech Ed North America 2011</title><link>http://blogs.msdn.com/b/camerons/archive/2011/04/08/tech-ed-north-america-2011.aspx</link><pubDate>Fri, 08 Apr 2011 15:19:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10151413</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10151413</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/04/08/tech-ed-north-america-2011.aspx#comments</comments><description>&lt;p&gt;Registration for this year’s &lt;a href="http://northamerica.msteched.com/default.aspx?fbid=Vw4-RnoEzD-"&gt;Tech Ed North America&lt;/a&gt; is open. The convention is happening May 16-19 in Atlanta, GA this year.&lt;/p&gt;  &lt;p&gt;This is going to be another great convention, with tons of new content, learnings, and simple collaboration guaranteed. &lt;/p&gt;  &lt;p&gt;One of the things I’m very excited about at this years Tech Ed is the fact that we will be introducing many of the new &lt;a href="http://msdn.microsoft.com/sr-latn-cs/library/fda2bad5(en-us).aspx"&gt;Application Lifecycle Management ( ALM )&lt;/a&gt; capabilities that will be in the *next* version of Visual Studio. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/presspass/exec/Zander/"&gt;Jason Zander&lt;/a&gt; will be sharing the keynote message with CVP &lt;a href="http://www.microsoft.com/presspass/exec/wahbe/"&gt;Robert Wahbe&lt;/a&gt;, and will be introducing the new capabilities. He and I will demo a few of them during that keynote, then I will continue the conversation in a &lt;a href="http://northamerica.msteched.com/topic/details/FDN03?fbid=Vw4-RnoEzD-#showdetails"&gt;Foundational session&lt;/a&gt; immediately after the keynote. All about the demos, with a few surprises along the way! &lt;/p&gt;  &lt;p&gt;Hope you can make it out to Atlanta!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10151413" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Tech+Ed/">Tech Ed</category></item><item><title>Debugging Series: Symbols Server and Your Symbols</title><link>http://blogs.msdn.com/b/camerons/archive/2011/04/06/debugging-series-symbols-server-and-your-symbols.aspx</link><pubDate>Wed, 06 Apr 2011 17:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10150113</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10150113</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/04/06/debugging-series-symbols-server-and-your-symbols.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/camerons/archive/2011/04/01/debugging-series-symbol-server.aspx"&gt;Last post&lt;/a&gt;, I gave you a simple introduction to Symbol Servers. I showed you how you can use the options in Visual Studio to quickly get access to Microsoft public symbols and how that could give you more information for your debugging sessions. However, I did not show you how you could add your owns symbols to the server, and more importantly, why that is a great thing to do.&lt;/p&gt;  &lt;h2&gt;Adding Your Symbols&lt;/h2&gt;  &lt;p&gt;Adding your symbols to the symbol server is a great practice, as it gives you a better chance of debugging one of your own executables or dlls without having to have that exact version of the image available. The typical use case here of course is support of a previously deployed app. You’re currently heads down working on V3 of your app but some customer out there is currently using V1 and reports some crashing or other bug with that version. How to maximize your chances of debugging the issue? Symbols server will certainly help, as long as you have added your PDBs to the server.&lt;/p&gt;  &lt;div class="note"&gt;&lt;strong&gt;NOTE:&lt;/strong&gt;     &lt;p&gt;This is all predicated on the fact that you have indeed saved your PDBs. Even if you don’t plan to setup a symbol server, please please please save your PDBs! &lt;/p&gt; &lt;/div&gt;  &lt;p&gt;How do you add your own symbols to the server? There’s an “easy” way, and then a “hard” way. &lt;/p&gt;  &lt;h3&gt;The Easy Way&lt;/h3&gt;  &lt;p&gt;The “easy” way is to use the support built into Team Foundation Server 2010’s Team Build. All you need to do is tell TFS where to drop your PDBs ( it must have permission to write to that directory ) and it will handle all the rest! You do that in your build definition file. Just set the “Path to Publish Symbols” to a public UNC share, and your golden. Here’s an example:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb.png" width="583" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Behind the scenes, TFS is actually handling the steps you can manually do, which I’ll describe now.&lt;/p&gt;  &lt;div class="note"&gt;&lt;strong&gt;NOTE:&lt;/strong&gt;     &lt;p&gt;I’ll be discussing the details of what the Source Server is all about in a future post. Stay tuned.&lt;/p&gt; &lt;/div&gt;  &lt;h3&gt;The Hard Way&lt;/h3&gt;  &lt;p&gt;You can manually add your PDBs to a symbol server by making use of the &lt;strong&gt;symstore.exe&lt;/strong&gt;, which is part of the “&lt;a href="http://go.microsoft.com/FWLink/?LinkId=84137"&gt;Debugging Tools for Windows&lt;/a&gt;” package. Of course, since this is just a command line tool, you can incorporate the following steps into any MSBuild process. &lt;/p&gt;  &lt;p&gt;Here’s an example of the command line options that I used to push my symbols to my store:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="2" face="Courier New"&gt;symstore add /f DebuggingSeries.* /s \\camerons4\Symbols\MySymbols /t &amp;quot;My Version 1&amp;quot; /v &amp;quot;1.0.0.0&amp;quot; /c &amp;quot;Manually adding&amp;quot;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This simply takes the exe and the PDB from my output directory ( the directory I ran symstore in ), and copied the symbols to the UNC folder specified.&lt;/p&gt;  &lt;p&gt;Check out &lt;a href="http://msdn.microsoft.com/en-us/library/ms681417(VS.85).aspx"&gt;this page&lt;/a&gt; in the MSDN docs for more details, and &lt;a href="http://msdn.microsoft.com/en-us/library/ms681378(VS.85).aspx"&gt;here&lt;/a&gt; for all the details around the command line options.&lt;/p&gt;  &lt;p&gt;If you take a look at the folder where the PDBs and exe get pushed, it should look something like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_3.png" width="230" height="123" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;But what does this now do for me? Easiest to show through an example.&lt;/p&gt;  &lt;h2&gt;Symbols In Action&lt;/h2&gt;  &lt;p&gt;As I mentioned earlier, the classic case where use of a symbol server can really help is during a post-mortem debug session, where you have received a mini-dump of your application. So let’s simulate that use case by running the following bit of code on one machine, produce a mini-dump of that running exe, then take that dump over to another machine that does *not* have the source to the exe, load it into VS 2010, and see what we see.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Here’s the code I’m using for this example:      &lt;br /&gt;      &lt;div class="csharpcode"&gt;&lt;a href="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_10.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_10.png" width="523" height="372" /&gt;&lt;/a&gt;         &lt;br /&gt;This code will run and break on the 50th iteration, allowing you to get a mini-dump in a later step. &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;Build that in Release mode, choosing “Any CPU” as the configuration. &lt;/li&gt;    &lt;li&gt;Add the new symbols from your release directory to your build server, using the &lt;strong&gt;symstore.exe&lt;/strong&gt; command I described above. &lt;/li&gt;    &lt;li&gt;Run the app by hitting Ctrl-F5 in the Visual Studio. This will run your app without launching the debugger. &lt;/li&gt;    &lt;li&gt;If you’re using the code above, you’ll see a console window appear and then an apparent “crash” dialog:      &lt;br /&gt;&lt;a href="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 7px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_4.png" width="644" height="327" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;At this point, bring up the Task Manager by hitting Ctrl-Shift-Esc. Find your app in the process list, right click, and select “Create Dump File”:      &lt;br /&gt;&lt;a href="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/SNAGHTML3aae9d4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 11px 7px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML3aae9d4" border="0" alt="SNAGHTML3aae9d4" src="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/SNAGHTML3aae9d4_thumb.png" width="157" height="244" /&gt;&lt;/a&gt;       &lt;br /&gt;A dialog will appear after a second telling you the location and name of the dump file that was just created. Keep that dialog up and handy, as you’ll be copying that dump file over to another machine next. &lt;/li&gt;    &lt;li&gt;Copy the dump file over to another machine. &lt;/li&gt;    &lt;li&gt;Open up Visual Studio 2010 and open the dump file. &lt;/li&gt;    &lt;li&gt;Ensure that you have enabled all the symbol server settings in Visual Studio as described in my &lt;a href="http://blogs.msdn.com/b/camerons/archive/2011/04/01/debugging-series-symbol-server.aspx"&gt;last post&lt;/a&gt;, as well as turned off “Just My Code”. &lt;/li&gt;    &lt;li&gt;Add a new entry into the list of Symbol file locations that points at the UNC share that you enabled for your application symbols. My dialog looks like this:      &lt;br /&gt;&lt;a href="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_5.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_5.png" width="644" height="376" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;div class="note"&gt;&lt;strong&gt;NOTE: &lt;/strong&gt;        &lt;br /&gt;There is a bug when attempting to open up a mini-dump for managed code in VS 2010 SP1. The workaround is to make a couple dlls available from the machine that the dump was generated to the machine that wants to analyse a dump. &lt;a href="http://connect.microsoft.com/VisualStudio/feedback/details/650348/managed-minidump-debugging-in-sp1"&gt;Details here&lt;/a&gt;. That’s what the last entry in the above image is doing, making those dlls available.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;Now open the dump file in VS. You should see something like this in the VS doc well:      &lt;br /&gt;&lt;a href="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_6.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_6.png" width="419" height="484" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click the “Debug with Mixed” link, outlined in read in the above image.      &lt;br /&gt;( I think mixed-mode debugging is worthy of its own post, so I’m not going to go into details on mixed-mode debugging right now.&amp;#160; ) &lt;/li&gt;    &lt;li&gt;Visual Studio will go into a debug-like state. After a couple moments, take a look at your call stack and “Locals” windows. You should see your code showing up in the stack, as well as the value of your variables in the Locals window. Mine looks like this:      &lt;br /&gt;&lt;a href="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/SNAGHTML3c2d146.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML3c2d146" border="0" alt="SNAGHTML3c2d146" src="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/SNAGHTML3c2d146_thumb.png" width="568" height="236" /&gt;&lt;/a&gt;       &lt;br /&gt;And my Locals like this:       &lt;br /&gt;&lt;a href="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_7.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_7.png" width="343" height="161" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Very cool! Now if you didn’t turn off “Just My Code” and were not using a symbol server, you would be presented with this dialog after clicking the “Debug with Mixed” link:      &lt;br /&gt;&lt;a href="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_8.png" width="500" height="263" /&gt;&lt;/a&gt;       &lt;br /&gt;After hitting the “OK” button on that, your call stack would look something like this:       &lt;br /&gt;&lt;a href="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_9.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_9.png" width="509" height="298" /&gt;&lt;/a&gt;       &lt;br /&gt;Not real useful. &lt;/li&gt; &lt;/ol&gt;  &lt;h2&gt;Next Steps&lt;/h2&gt;  &lt;p&gt;I hope that gives you a good sense of how proper use of symbol servers can help you. In my next post, I’ll talk about a sister technology to symbols servers: Source Server. That will give you the added benefit of automatically opening the actual source code in the above scenario, in addition to the added data in the call stacks.&lt;/p&gt;  &lt;p&gt;Stay tuned!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10150113" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Visual+Studio/">Visual Studio</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Debugger/">Debugger</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Symbol+Server/">Symbol Server</category></item><item><title>Debugging Series: Symbol Server</title><link>http://blogs.msdn.com/b/camerons/archive/2011/04/01/debugging-series-symbol-server.aspx</link><pubDate>Fri, 01 Apr 2011 22:19:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10149000</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10149000</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/04/01/debugging-series-symbol-server.aspx#comments</comments><description>&lt;p&gt;Whether you are doing pre or post mortem debugging, whether you are using Visual Studio or WinDBG, one of the most important things you can do ( short of not writing the bug in the first place! &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/wlEmoticon-smile.png" /&gt; ) to ready yourself for a productive debugging session is to establish the use of Symbol and Source servers. I’m going to give you some quick pointers of how to make use of these technologies in your day – to – day development process.&lt;/p&gt;  &lt;h2&gt;Symbol Server&lt;/h2&gt;  &lt;p&gt;What is it? Essentially, a symbol server is way to expose the symbols ( PDBs ) of your applications to the debugger in a way discoverable by the debugger regardless of where the debugger is run. This same thing is also true for system symbols as well. Not only that, it is a way to handle the versioning of those PDBs so that the debugger understands how to find version one of your symbols, vs. version two, and so on.&lt;/p&gt;  &lt;p&gt;That’s all well and good, but why is this a good thing for the developer? Let’s look at what things look like when you *don’t* have a symbol server established.&lt;/p&gt;  &lt;h3&gt;Without Symbol Server&lt;/h3&gt;  &lt;p&gt;Here’s some sample code you have undoubtedly seen a zillion times by now:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div id="codeSnippetWrapper"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; DebuggingSeries&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Program&lt;br /&gt;   {&lt;br /&gt;      &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Main( &lt;span style="color: #0000ff"&gt;string&lt;/span&gt;[] args )&lt;br /&gt;      {&lt;br /&gt;         Console.WriteLine( &lt;span style="color: #006080"&gt;&amp;quot;Hello World&amp;quot;&lt;/span&gt; );&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;

    &lt;br /&gt;Fire up Visual Studio, create an empty C# project, drop in this source, put a break point at the Console.WriteLine line, and hit F5 to start the debugger.&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;After a moment, you will hit the breakpoint. Now, open up the Modules window ( while in the debugger, select the Debug-&amp;gt;Windows-&amp;gt;Modules menu item ):&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/image.png" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/image_thumb.png" width="497" height="484" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;While will open a tool window that looks something like the one below:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML14235125.png" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML14235125" border="0" alt="SNAGHTML14235125" src="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML14235125_thumb.png" width="644" height="199" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The “Modules” tool window shows you all the images ( dlls, etc. ) that are loaded in order to run the executable you are currently debugging. ( NOTE: This is a very useful tool window that many folks don’t know is available in the product, and has many uses which we won’t have a chance to go through today, but more some other time. )&lt;/p&gt;

&lt;p&gt;You’ll notice in the image above that there is a Column called “Symbol Status”. Assuming you are running with default debugging settings that Visual Studio 2010 has shipped with, you’ll also notice that almost all the rows in the tool windows except the one I highlighted have the value “Skipped loading symbols.”. The one highlighted is the actual executable itself, which contains the symbols associated with the code you typed in. You’ll also notice that the “User Code” column is “No” for everything except for this last entry as well. More on this later.&lt;/p&gt;

&lt;p&gt;Now bring up the “Call Stack” toolwindow ( Debug-&amp;gt;Windows-&amp;gt;Call Stack ). You should see something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/image_3.png" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/image_thumb_3.png" width="642" height="101" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cool, now let’s see what changes once you start using a Symbol Server, but there is actually one other thing you’ve gotta do before you see the goodness of the Symbol Server. You’ll need to turn off the “Just My Code” feature in Visual Studio.&lt;/p&gt;

&lt;h3&gt;Turn Off Just My Code&lt;/h3&gt;

&lt;p&gt;By default, Visual Studio 2010 has the “Just My Code” option turn on. This on on by default as it tends to reduce the amount of information a new user has to deal with when initially debugging inside Visual Studio. It tries to protect you by not drowning you in information.&lt;/p&gt;

&lt;p&gt;I struggle with this option, as the intent of it is quite good, but in practice, I tend to always turn this off. ( I would love to hear your thoughts on whether or not this option should be on or off by default. Please fill the comment section with those thoughts! )&lt;/p&gt;

&lt;p&gt;For the purposes of this post on this series, please turn off this option. Here’s how:&lt;/p&gt;

&lt;p&gt;Go into “Tools-Options…” dialog, find the “Debugging” option on the left side of the dialog, and notice the “Enable Just My Code” option on the right:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML14419518.png" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML14419518" border="0" alt="SNAGHTML14419518" src="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML14419518_thumb.png" width="644" height="376" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Uncheck that box so that your dialog looks like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML1441f5dd.png" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML1441f5dd" border="0" alt="SNAGHTML1441f5dd" src="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML1441f5dd_thumb.png" width="644" height="376" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now your ready to see the effects of the Symbol Server option.&lt;/p&gt;

&lt;h3&gt;With Symbol Server&lt;/h3&gt;

&lt;p&gt;Go back into the “Tools-&amp;gt;Options…” dialog, and expand the “Debugging” option, and select the “Symbols” option:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML144674cc.png" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML144674cc" border="0" alt="SNAGHTML144674cc" src="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML144674cc_thumb.png" width="644" height="376" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go ahead and click the check box next to “Microsoft Symbol Servers”. You should see a dialog box popup that you can safely ignore for now.&lt;/p&gt;

&lt;p&gt;If you hit OK at this point, VS will automatically fill in a default directory that it will use for PDBs it pulls down from a public Microsoft site that contains the PDBs tied to the various versions of the framework DLLs. &lt;/p&gt;

&lt;p&gt;If you are on a team of developers, it is a good idea to establish a common file share that all members of your team can use to house these symbols so that you don’t have to wait for the download of those images while you debug. The first developer who needs them would feel that delay, but everyone else on the team would simply pull from the common share.&lt;/p&gt;

&lt;p&gt;For now, take the defaults and hit F5 again. You should be in the debugger waiting at the breakpoint. &lt;/p&gt;

&lt;p&gt;Take a look at your Modules window now:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML14570b41.png" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML14570b41" border="0" alt="SNAGHTML14570b41" src="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML14570b41_thumb.png" width="670" height="361" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Notice how everything is loaded ( Symbol Status column reads “Symbols loaded.” ) and the User Code column reads “N/A”, ‘cause we disabled the “Just My Code Feature”&lt;/p&gt;

&lt;div class="note"&gt;&lt;strong&gt;NOTE: &lt;/strong&gt;

  &lt;p&gt;If you had turned on the Symbol Server options as described above but failed to turn off “Just My Code”, you would have seen something like the following in the Modules window, indicating that symbols were available to be loaded, but Visual Studio did not do so in order to abide by the constraints associated with “Just My Code”. Also, your call stack would look exactly the same as it did before. &lt;/p&gt;

  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML145c7549.png" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML145c7549" border="0" alt="SNAGHTML145c7549" src="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML145c7549_thumb.png" width="644" height="267" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Now take a look at your call stack window:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML145e2f06.png" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML145e2f06" border="0" alt="SNAGHTML145e2f06" src="http://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML145e2f06_thumb.png" width="644" height="162" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Compare this with the image of the call stack with the one I previously showed you above. Notice how much more information is now available to you?&lt;/p&gt;

&lt;p&gt;And therein lies the point of all this:&lt;/p&gt;

&lt;p&gt;When you are debugging, you need as much information as you can get in order to figure out the task at hand. You never know what little piece of information will be the clue that drives you towards the final solution.&lt;/p&gt;

&lt;h2&gt;Next Steps&lt;/h2&gt;

&lt;p&gt;This post is just scratching the surface. Next post in this series, I’ll dig a little further into some more of the benefits of the symbol server, and why making your own symbols available to your team in this manner will benefit you.&lt;/p&gt;

&lt;p&gt;Cheers!&lt;/p&gt;

&lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10149000" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Visual+Studio/">Visual Studio</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Debugger/">Debugger</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Symbol+Server/">Symbol Server</category></item><item><title>New Docs for Windows Phone 7 Development</title><link>http://blogs.msdn.com/b/camerons/archive/2011/03/31/new-docs-for-windows-phone-7-development.aspx</link><pubDate>Thu, 31 Mar 2011 15:01:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10148248</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10148248</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/03/31/new-docs-for-windows-phone-7-development.aspx#comments</comments><description>&lt;p&gt;The Developer Guidance team has just released &lt;a href="http://msdn.microsoft.com/en-us/library/gg680270(v=pandp.11).aspx"&gt;Building a Windows Phone 7 Application from Start to Finish&lt;/a&gt; in the MSDN Library.&amp;#160; This content is intended to help developers with common challenges by putting the features together in a complete application from whiteboard to marketplace. It includes a running &lt;a href="http://code.msdn.microsoft.com/Fuel-Tracker-Sample-9fe58263"&gt;sample&lt;/a&gt;, guidance on core concepts for getting started with Windows Phone 7, and callouts for best practices and requirements. We hope it will provide a complimentary experience to the in-depth product documentation and quickstarts.&lt;/p&gt;  &lt;p&gt;This is a great place to start for folks who haven’t done any WP7 development yet but want to. It covers almost all the major areas that a typical app would need to do. A notable topic that is *not* included is any information about the Push Notification Services, but more is on the way.&lt;/p&gt;  &lt;p&gt;The guidance focuses on the following development tasks:&lt;/p&gt;  &lt;p&gt;   &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="478"&gt;           &lt;p&gt;· Designing the user interface (UI) and choosing appropriate controls, icons, and graphics. &lt;/p&gt;            &lt;p&gt;· Using the application bar and back button, and handling navigation between pages. &lt;/p&gt;            &lt;p&gt;· Storing and retrieving data using isolated storage. &lt;/p&gt;            &lt;p&gt;· Display data in controls, enabling user edits, and performing validation. &lt;/p&gt;            &lt;p&gt;· Handling application deactivation, tombstoning, and reactivation. &lt;/p&gt;            &lt;p&gt;· Publishing your application in the Windows Phone Marketplace.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="478"&gt;           &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/New-Docs-for-Windows-Phone-7-Development_704D/clip_image002.gif"&gt;&lt;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="clip_image002" border="0" alt="clip_image002" src="http://cwskinner.members.winisp.net/New-Docs-for-Windows-Phone-7-Development_704D/clip_image002_thumb.gif" width="147" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10148248" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/WP7/">WP7</category></item><item><title>The Visual Studio Debugger: A new series on an old topic</title><link>http://blogs.msdn.com/b/camerons/archive/2011/03/28/the-visual-studio-debugger-a-new-series-on-an-old-topic.aspx</link><pubDate>Mon, 28 Mar 2011 23:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10146182</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10146182</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/03/28/the-visual-studio-debugger-a-new-series-on-an-old-topic.aspx#comments</comments><description>&lt;p&gt;The Visual Studio Debugger has long been regarded to be one of the industries best debugger. The VS debugger’s ability to give developer’s insight into the running behavior and state of their .NET and native applications has been the foundation of what has made Visual Studio the IDE of choice for millions of developers around the world. Over the years, Visual Studio has seen many many features come and go into the product line, but the basic functionality of the debugger has been a constant. The ability to easily set breakpoints, step, view variables, and run have been at the heart of every developer’s workflow on the Microsoft platforms.&lt;/p&gt;  &lt;p&gt;The debugger is a very interesting feature set in Visual Studio. It is one of those areas of the application where you can walk up to any VS developer and ask “Hey, do you know how to use the debugger?” They will undoubtedly look at you funny and say something like “Of course. What, is this a trick question?” &lt;/p&gt;  &lt;p&gt;But how many developers actually know how to make the debugger do their bidding? How many know how to only use the debugger as a last resort, and when you do have to use it, maximize your time with it in order to get back to what you need to be doing, which is maximizing value for your end users? Turns out, the Visual Studio debugger gives you much more capability than simply the ability to set a breakpoint. The VS debugger has so many little features designed to make your life just a touch easier in many and different ways, most developers either haven’t discovered them, or they haven’t realized how those features can be applied in a way that maximizes their effectiveness.&lt;/p&gt;  &lt;p&gt;There are many reasons for this, ranging from real discoverability issues with the features, to the lack of desire of the developer to reach for anything beyond the bare minimum feature sets. Regardless, I’d like to take the next few blog posts and examine some of these features. Features ranging from IntelliTrace, a marquee feature of the Visual Studio 2010 Ultimate product, to Trace Points.&lt;/p&gt;  &lt;p&gt;There have been many articles, books, and blog posts written about the debugger, but it has been awhile since the topic has seen some fresh print. But as I said, since many of the features in the debugger have remained constant, much of the content out there is still quite relevant. I highly recommend checking out Jim Griesmer’s &lt;a href="http://blogs.msdn.com/b/jimgries/archive/tags/debuggers+and+debugging/"&gt;posts on the debugger&lt;/a&gt;, and of course, John Robbin’s debugging &lt;a href="http://www.amazon.com/Debugging-Microsoft-NET-2-0-Applications/dp/0735622027/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1301120027&amp;amp;sr=8-1"&gt;books&lt;/a&gt; are a must read. For the more advanced, I would highly recommend Mario Hewardt’s books ( &lt;a href="http://www.amazon.com/Advanced-NET-Debugging-Mario-Hewardt/dp/0321578899/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1301353935&amp;amp;sr=1-1"&gt;this one&lt;/a&gt; and &lt;a href="http://www.amazon.com/Advanced-Windows-Debugging-Mario-Hewardt/dp/0321374460/ref=sr_1_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1301353935&amp;amp;sr=1-2"&gt;this one&lt;/a&gt; ). And of course, the &lt;a href="http://msdn.microsoft.com/en-us/library/sc65sadd.aspx"&gt;MSDN documentation&lt;/a&gt; isn’t a bad place to start either, but for some reason most folks seem to forget or assume that the debugger isn’t documented! Go figure.&lt;/p&gt;  &lt;p&gt;I don’t know how many posts will make up this series, but I do know that my intent is to provide you with more pragmatic information that you can use in your everyday. If I can help you save 10 minutes a day just by showing you some trick with the debugger, I’ve done my job!&lt;/p&gt;  &lt;p&gt;Though I have a pretty good idea of the topics I’d like to cover, if you have a topic related to debugging inside Visual Studio that you are very interested in, please give me a shout either via the comments on this post, or via direct email.&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10146182" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Visual+Studio/">Visual Studio</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Debugger/">Debugger</category></item><item><title>Lessons Learned developing a Windows Phone 7 App</title><link>http://blogs.msdn.com/b/camerons/archive/2011/03/27/lessons-learned-developing-a-windows-phone-7-app.aspx</link><pubDate>Sun, 27 Mar 2011 08:02:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10146330</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10146330</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/03/27/lessons-learned-developing-a-windows-phone-7-app.aspx#comments</comments><description>&lt;p&gt;Quite a few folks have been playing with the Windows Phone 7 platform, creating all kinds of crazy games, utilities, etc. for this new platform. I am no different. I simply couldn’t help myself, so once I had my new Samsung Focus in hand ( November of last year I believe ), I set out to build a game that I knew I would miss terribly after replacing my iPhone 4. This post is really less about the game however, and more about the various issues I found as I built the game and got it up on the marketplace.&lt;/p&gt;  &lt;p&gt;I learned a ton while building this game, and ran into a number of little bumps along the way, mostly due to my inexperience with the new environment, but also due to issues with docs, limitations of APIs, etc.&lt;/p&gt;  &lt;p&gt;Here’s a quick list of the things I ran into ( in no particular order ) that I’m hoping could save you some time when building your own WP7 apps:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Learned that trying to return anything other than HttpStatusCode.Ok or NotFound results in an exception being thrown when trying to retrieve the WebResponse during an EndResponse call. I was trying to return other status codes to indicate various error conditions when chatting between the phone and my web server. &lt;/li&gt;    &lt;li&gt;I struggled a bit ( like a few folks ) trying to figure out the best way to deal with Splash screens. I found &lt;a href="http://blogs.msdn.com/b/ptorr/archive/2010/08/28/redirecting-an-initial-navigation.aspx?wa=wsignin1.0"&gt;this blog post&lt;/a&gt; quite helpful. I also found that temporarily replacing the Content property of the rootframe with my splash screen page works like a champ. The general issue with the “Splash Screen” scenario is that you really don’t want the user to stop at the splash screen when hitting the Back button on the phone. You want the app to close. This was more of a problem than it really should be. Folks on the WP7 team are well aware. &lt;/li&gt;    &lt;li&gt;I made heavy use of MVC 3 for this game, but only in regards to leaning on FormsAuthentication for auth and URL mappings for my REST based services. Worked great! One little issue I ran into here was the fact that if you want to get the FormsAuthentication ticket cookie back to a silverlight client, you have to be sure to set the HttpOnly flag to false on the cookie on the server side! That one had me stumped for *way* too long. &lt;/li&gt;    &lt;li&gt;Be sure to make heavy use of the CacheMode for your UIElements if you are doing anything even remotely interesting. The performance impact was dramatically improved after I started using that little beauty. For general performance considerations, &lt;a href="http://msdn.microsoft.com/en-us/library/ff967560(VS.92).aspx"&gt;check out this MSDN doc page&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;The Reactive Framework is fantastic! You’ve simply gotta check it out if you haven’t already. Check out &lt;a href="http://jesseliberty.com/2011/01/27/stop-what-you-are-doing-and-learn-about-reactive-programming"&gt;this post for details&lt;/a&gt;, but the &lt;a href="http://msdn.microsoft.com/en-us/library/ff431792(VS.92).aspx"&gt;MSDN docs&lt;/a&gt; are a good place to start as well. Tons of &lt;a href="http://channel9.msdn.com/tags/Reactive+Framework/"&gt;great stuff on Channel9&lt;/a&gt; as well. &lt;/li&gt;    &lt;li&gt;Sometimes I would hit a problem when trying to deploy my app to my USB connected phone. Follow all the common steps to correct this problem, but sometimes I found I just needed to restart my phone. &lt;/li&gt;    &lt;li&gt;Make sure to use the “High-Performance&amp;#160; ProgressBar for Windows Phone”. Check out &lt;a href="http://		a. http://www.wintellect.com/CS/blogs/jprosise/archive/2011/02/08/silverlight-for-windows-phone-programming-tip-5.aspx"&gt;this post&lt;/a&gt; for details. &lt;/li&gt;    &lt;li&gt;If removing or adding lots of listbox items at once, be sure to call UpdateLayout() in order for the ScrollIntoView method to work. &lt;/li&gt;    &lt;li&gt;Test your app on your phone! Don’t just lean on the simulator! Also, be sure to test your app in the light theme. I tried to be diligent about that but it still bit me during the certification process. &lt;/li&gt;    &lt;li&gt;If you use the ChildWindow class for dialogs in the &lt;a href="http://silverlight.codeplex.com/"&gt;SilverLight Toolkit&lt;/a&gt; ( which I highly recommend by the way ), be sure to handle the OnBackKey event. The requirement in order to be admitted into the marketplace is that if the user hits the back button on the phone, that should cancel any dialog and leave the user on the page the dialog was presented over. I dropped the ball on that as well. &lt;/li&gt;    &lt;li&gt;Last but not least, if you are going to have a trial version of your app, be sure to test it and make sure your logic is sound! Nothing more annoying than downloading an app expecting to trial it only to find out that the trial has already expired! Yeah, I did that. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-embarrassedsmile" alt="Embarrassed smile" src="http://cwskinner.members.winisp.net/Lessons-Learned-developing-a-Windows-Pho_3A6/wlEmoticon-embarrassedsmile.png" /&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I’m sure I’ve forgotten a few other things that tripped me up along the way, but that feels pretty comprehensive to me.&lt;/p&gt;  &lt;p&gt;All and all, a lot of fun building this thing. The WP7 team really did a great job, and the silverlight team did a bang-up job on the developer tooling!&lt;/p&gt;  &lt;p&gt;Hope that helps!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;  &lt;p&gt;P.S. If you’re interested, the game my wife and I built is called “WordMe”. &lt;a href="http://social.zune.net/redirect?type=phoneApp&amp;amp;id=356c5b36-ef4d-e011-854c-00237de2db9e"&gt;Pull it down&lt;/a&gt;, and challenge me in a word game. Bring it! &lt;/p&gt;  &lt;p&gt;P.S.S. Oh, and I should dedicate this game to Karen Noble, who first introduced me to “that damn game” on the iPhone. Damn you Karen! &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://cwskinner.members.winisp.net/Lessons-Learned-developing-a-Windows-Pho_3A6/wlEmoticon-smile.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10146330" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/WP7/">WP7</category></item><item><title>Job Opportunities</title><link>http://blogs.msdn.com/b/camerons/archive/2011/03/24/job-opportunities.aspx</link><pubDate>Thu, 24 Mar 2011 21:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10145589</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10145589</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/03/24/job-opportunities.aspx#comments</comments><description>&lt;p&gt;Wanted to directly call out a number of positions that are currently open on my team. To refresh everyone’s memory, my team, internally called “Visual Studio Ultimate”, is responsible for features ranging from the Visual Studio debugger to the Visualization and Modeling tools you see in the Visual Studio 2010 Ultimate product.&lt;/p&gt;  &lt;p&gt;We’re looking for a few passionate folks in a few key areas. If you are passionate about creating tooling for your fellow developers or testers, please follow the links below and submit your resume!&lt;/p&gt;  &lt;p&gt;Good luck!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;  &lt;p&gt;Here are the open positions, with a quick blurb and link to the Microsoft Careers site:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Debugger Program Manager&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="https://careers.microsoft.com/JobDetails.aspx?ss=&amp;amp;pg=0&amp;amp;so=&amp;amp;rw=1&amp;amp;jid=35719&amp;amp;jlang=EN"&gt;https://careers.microsoft.com/JobDetails.aspx?ss=&amp;amp;pg=0&amp;amp;so=&amp;amp;rw=1&amp;amp;jid=35719&amp;amp;jlang=EN&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Blurb:&lt;/b&gt; Senior Program Manager for the debugger: Do you love solving challenging technical problems to build great user experiences? Do you want to help improve the productivity of just about every Windows developer? Working on the Visual Studio debugger provides great opportunity for both and a chance to work with numerous teams across Microsoft. We’re looking for a great technical program manager to help us build a roadmap for the future and advance the state of the art in software diagnostics.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;IntelliTrace Lead Developer&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="https://careers.microsoft.com/JobDetails.aspx?ss=&amp;amp;pg=0&amp;amp;so=&amp;amp;rw=1&amp;amp;jid=37957&amp;amp;jlang=EN"&gt;https://careers.microsoft.com/JobDetails.aspx?ss=&amp;amp;pg=0&amp;amp;so=&amp;amp;rw=1&amp;amp;jid=37957&amp;amp;jlang=EN&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Blurb:&lt;/b&gt; For the lead position, we are looking for an experienced lead to help us build the next version of IntelliTrace. We’re looking for someone with strong people and project management skills and experience developing both native and managed code.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Debugger Developer&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="https://careers.microsoft.com/JobDetails.aspx?ss=&amp;amp;pg=0&amp;amp;so=&amp;amp;rw=1&amp;amp;jid=35163&amp;amp;jlang=EN"&gt;https://careers.microsoft.com/JobDetails.aspx?ss=&amp;amp;pg=0&amp;amp;so=&amp;amp;rw=1&amp;amp;jid=35163&amp;amp;jlang=EN&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Blurb:&lt;/b&gt; We’re looking for a bright developer with about 2 years of C++ experience who wants to help us advance the state of the art in debugging. Passion for User Experience design is a plus.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Debugger Tester&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="https://careers.microsoft.com/JobDetails.aspx?ss=&amp;amp;pg=0&amp;amp;so=&amp;amp;rw=1&amp;amp;jid=36997&amp;amp;jlang=EN"&gt;https://careers.microsoft.com/JobDetails.aspx?ss=&amp;amp;pg=0&amp;amp;so=&amp;amp;rw=1&amp;amp;jid=36997&amp;amp;jlang=EN&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Blurb:&lt;/b&gt; Visual Studio debugger team is looking to hire a passionate and smart tester who can help us take the industry leading debugger to the next level.&amp;#160; There are not only opportunities to work on the next generation of platforms and language features, but also the chance to shape the architecture of the engine and the user experience from the ground up. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Agile Developer&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="https://careers.microsoft.com/JobDetails.aspx?ss=&amp;amp;pg=0&amp;amp;so=&amp;amp;rw=1&amp;amp;jid=36406&amp;amp;jlang=EN"&gt;https://careers.microsoft.com/JobDetails.aspx?ss=&amp;amp;pg=0&amp;amp;so=&amp;amp;rw=1&amp;amp;jid=36406&amp;amp;jlang=EN&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Blurb:&lt;/b&gt; We are looking for a strong senior dev who is passionate about Visual Studio, is a natural leader, has experience in agile development methodologies (scrum, TDD), and ideally has WPF knowledge.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10145589" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Jobs/">Jobs</category></item><item><title>More Docs Updated</title><link>http://blogs.msdn.com/b/camerons/archive/2011/03/18/more-docs-updated.aspx</link><pubDate>Fri, 18 Mar 2011 16:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10143154</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10143154</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/03/18/more-docs-updated.aspx#comments</comments><description>&lt;p&gt;Our UE ( User Education ) team is constantly updating our documentation on MSDN. This last month is no exception.&lt;/p&gt;  &lt;p&gt;Be sure to check out the details &lt;a href="http://blogs.msdn.com/b/vstsue/archive/2011/03/15/vs-alm-march-2011-library-updates-and-new-vs-sp1-content.aspx?wa=wsignin1.0"&gt;here on Patrick’s blog&lt;/a&gt; about the latest updates. Lot’s of about T4 templates and extending our UML Models and Diagrams, as well as more clarification of work on the Visualization and Modeling SDK.&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10143154" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/UML/">UML</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Docs/">Docs</category></item><item><title>Visual Studio 2010 SP1 Released</title><link>http://blogs.msdn.com/b/camerons/archive/2011/03/08/visual-studio-2010-sp1-released.aspx</link><pubDate>Tue, 08 Mar 2011 22:37:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10138355</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10138355</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/03/08/visual-studio-2010-sp1-released.aspx#comments</comments><description>&lt;p&gt;Lots of news today, as we have release the first service pack to Visual Studio 2010. At the same time, the teams are making available a new Feature Pack the enables a much tighter integration between Team Foundation Server and Project Server.&lt;/p&gt;  &lt;p&gt;Please see &lt;a href="http://blogs.msdn.com/b/bharry/archive/2011/03/08/vs-tfs-2010-sp1-and-tfs-project-server-integration-feature-pack-have-released.aspx"&gt;Brian Harry’s blog&lt;/a&gt; for details on the TFS and Project Server announce, and &lt;a href="http://blogs.msdn.com/b/jasonz/archive/2011/03/08/announcing-visual-studio-2010-service-pack-1.aspx"&gt;Jason Zander’s blog&lt;/a&gt; for more SP1 details.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10138355" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Visual+Studio+2010+Ultimate/">Visual Studio 2010 Ultimate</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Visual+Studio/">Visual Studio</category></item><item><title>IntelliTrace and Azure</title><link>http://blogs.msdn.com/b/camerons/archive/2011/02/21/intellitrace-and-azure.aspx</link><pubDate>Mon, 21 Feb 2011 19:06:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10132324</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10132324</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/02/21/intellitrace-and-azure.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/granth/"&gt;Grant Holliday&lt;/a&gt; has recently published a blog post that goes into more of the details around using &lt;a href="http://msdn.microsoft.com/en-us/library/dd264915.aspx"&gt;IntelliTrace&lt;/a&gt; with your Azure projects. He does a great job in going through some of the lower level details of how to best use &lt;a href="http://msdn.microsoft.com/en-us/library/dd264915.aspx"&gt;IntelliTrace&lt;/a&gt; in the Azure environment, with our without Visual Studio, and how to get the .trace files back for analysis.&lt;/p&gt;  &lt;p&gt;Great stuff! Check it out &lt;a href="http://blogs.msdn.com/b/granth/archive/2011/02/20/intellitrace-for-azure-without-visual-studio.aspx?wa=wsignin1.0"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10132324" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/IntelliTrace/">IntelliTrace</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Azure/">Azure</category></item><item><title>Code Metrics, Reporting, and XSLT Debugging</title><link>http://blogs.msdn.com/b/camerons/archive/2011/02/20/code-metrics-reporting-and-xslt-debugging.aspx</link><pubDate>Mon, 21 Feb 2011 03:57:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10132022</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10132022</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/02/20/code-metrics-reporting-and-xslt-debugging.aspx#comments</comments><description>&lt;p&gt;In my &lt;a href="http://blogs.msdn.com/b/camerons/archive/2011/01/28/code-metrics-from-the-command-line.aspx"&gt;last post&lt;/a&gt;, I announced a new power tool that allows you to analyze your managed assemblies to determine various complexity metrics. The output of the power tool is a fairly simple XML file, so in this post, I wanted to show you how simple it is to turn that simple xml file into a report you could actually use.&lt;/p&gt;  &lt;p&gt;I’ve included a &lt;a href="http://cwskinner.members.winisp.net/CodeMetrics/MetricResultsTransform.xslt"&gt;simple XSLT file&lt;/a&gt; as well as a &lt;a href="http://cwskinner.members.winisp.net/CodeMetrics/Default.css"&gt;CSS file&lt;/a&gt; that you can use to bootstrap any efforts you have in this regard.&lt;/p&gt;  &lt;p&gt;All you need to do is drop the XSLT and CSS file into the same directory as your xml results after running the power tool, and then be sure to add one line to that xml file, like so:&lt;/p&gt;  &lt;pre&gt;&amp;lt;?xml-stylesheet type=&amp;quot;text/xsl&amp;quot; href=&amp;quot;MetricResultsTransform.xslt&amp;quot; ?&amp;gt;&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;right after the xml declaration statement at the top of the file.&lt;/p&gt;

&lt;p&gt;Once you’ve done that, you’ll get a simple report that looks something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/d2bf9a0cac60_10879/image.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/d2bf9a0cac60_10879/image_thumb.png" width="631" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NOTE: If you aren’t familiar with Visual Studio’s ability to debug XSLT transforms, I highly recommend checking it out. All you need to do is open an XSLT file in VS, set a break point anywhere in the XSLT file, then hit Alt-F5. VS will then allow you to step through the various transformations, seeing the result of the transformation in the doc well. Very cool stuff if you find yourself having to write lots of XSLTs.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;

&lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10132022" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Power+Tool/">Power Tool</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Visual+Studio/">Visual Studio</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Code+Metrics/">Code Metrics</category></item><item><title>Code metrics from the command line</title><link>http://blogs.msdn.com/b/camerons/archive/2011/01/28/code-metrics-from-the-command-line.aspx</link><pubDate>Sat, 29 Jan 2011 00:19:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10121762</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>27</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10121762</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2011/01/28/code-metrics-from-the-command-line.aspx#comments</comments><description>&lt;p&gt;&lt;font face="Segoe UI"&gt;Yesterday, we made available a power tool that allows you to analyze assemblies in order to understand the complexity metrics associated with those assemblies. I’m going to describe how to use that power tool and the results it generates.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Segoe UI"&gt;If you are not familiar with the code metrics capability built into Visual Studio, please see &lt;a href="http://msdn.microsoft.com/en-us/library/bb385910.aspx"&gt;this&lt;/a&gt; MSDN documentation for details. This power tool uses the exact same functionality that you see inside the IDE, but encapsulates the code required to do the actual analysis in the metrics.exe application, described below.&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;&lt;font face="Segoe UI"&gt;Installation&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font face="Segoe UI"&gt;Grab the power tool from &lt;/font&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=edd1dfb0-b9fe-4e90-b6a6-5ed6f6f6e615"&gt;&lt;font face="Segoe UI"&gt;this location&lt;/font&gt;&lt;/a&gt;&lt;font face="Segoe UI"&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Segoe UI"&gt;After successfully installing the power tool, you will find two new files in your (%PROGRAMFILES%)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop directory. One is the actual executable itself, &lt;strong&gt;Metrics.exe, &lt;/strong&gt;the other &lt;strong&gt;MetricsReport.xsd&lt;/strong&gt;, the XML Schema that defines the results format Metrics.exe generates.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Segoe UI"&gt;I point this out as we don’t make that very obvious during install. We don’t slam anything into your Windows Start Menu, drop desktop icons, etc., so be aware of this directory location and executable as you start to play with this power tool.&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;&lt;font face="Segoe UI"&gt;Usage&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font face="Segoe UI"&gt;To quickly see what this little power tool can do, locate any assembly you would like to generate code metrics and use the /f and /o command line options like so:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Lucida Console"&gt;metrics /f:Metrics.exe /o:MetricsResults.xml&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Segoe UI"&gt;This will actually run the analysis over the metrics.exe itself and push the results into a file in the same directory called “MetricsResults.xml”. I point this out as you can run metrics analysis over any managed assembly whether you have the code for that assembly or not. However, if you do have the PDBs associated with those assemblies, that’s best. ( If you don’t have the PDBs you will get warning &lt;a href="http://msdn.microsoft.com/en-us/library/ee340672.aspx"&gt;CA0068&lt;/a&gt; ).&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Segoe UI"&gt;The /f and /o combination is the simplest form of usage, but many times, you need to provide the tool a little more information, such as where to find dependent assemblies. The /directory or /d option instructs the tool to look in the current directory to resolve necessary dependencies, while the /searchgac or /gac option will allow the tool to search the GAC to resolve those dependencies. You can also indicate per-file dependencies with the /reference or /ref option.&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;&lt;font face="Segoe UI"&gt;Results&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font face="Segoe UI"&gt;But what do the results look like, and how do you consume them? Well, I would love to be able to say to you that the results are automatically pushed into your Team Foundation Server data warehouse or reported seemlessly in your reports directory of your team sharepoint projects, but alas, that is *not* the case. The results are XML in the form defined by the &lt;strong&gt;MetricsReport.xsd&lt;/strong&gt; schema file. This is nice, as it allows you to consume and process these results any which way you’d like, but you do need to understand the form of the results to do so.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Segoe UI"&gt;Double click on the MetricsReport.xsd file and it will appear in Visual Studio, like so:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/e3aed3ad3fe4_BFCA/SNAGHTML137bfcb.png" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML137bfcb" border="0" alt="SNAGHTML137bfcb" src="http://cwskinner.members.winisp.net/e3aed3ad3fe4_BFCA/SNAGHTML137bfcb_thumb.png" width="600" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you click the&amp;#160; “Show Graph View” and “Top to Bottom” toolbar items, you’ll see the schema represented in a tree-like structure like so:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/e3aed3ad3fe4_BFCA/SNAGHTML13d2b88.png" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML13d2b88" border="0" alt="SNAGHTML13d2b88" src="http://cwskinner.members.winisp.net/e3aed3ad3fe4_BFCA/SNAGHTML13d2b88_thumb.png" width="430" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This is a great way to quickly understand the containment structure of the results you will see output from this tool which will be important when processing the XML. However, it doesn’t quite give you all the information you need in regards to the actual values you can expect, especially when wondering what types of metrics will be reported. For that, there’s nothing better than inspecting actual data generated.&lt;/p&gt;  &lt;p&gt;Here’s a snippet of some results created from my example above:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/e3aed3ad3fe4_BFCA/SNAGHTML85495.png" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML85495" border="0" alt="SNAGHTML85495" src="http://cwskinner.members.winisp.net/e3aed3ad3fe4_BFCA/SNAGHTML85495_thumb.png" width="491" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The elements I highlighted are the five metrics that we are tracking, and these five metrics will be child elements of the five containers found in the xsd. &lt;strong&gt;Target&lt;/strong&gt; ( the actual file you specified in the command line ), &lt;strong&gt;Module&lt;/strong&gt; ( the .NET assembly found by following the target ), &lt;strong&gt;Namespace&lt;/strong&gt;, &lt;strong&gt;Type&lt;/strong&gt;, and &lt;strong&gt;Member.&lt;/strong&gt; &lt;/p&gt;  &lt;h3&gt;Why did we provide this power tool?&lt;/h3&gt;  &lt;p&gt;Many customers are looking for a way to generate code metrics information as part of their build process. In this way, the complexity associated with assemblies coming out of your nightly builds could potentially be tracked and examined over time, which is where I think information like this is most valuable.&lt;/p&gt;  &lt;p&gt;With this power tool, we’ve provided the raw capability, but we have a lot more to do to get to automating other parts of the desired workflow, such as providing default windows workflow activities that include this capability. But for now, if you find this information valuable, you can certainly incorporate this into any MSBuild or Windows Workflow ( Team Build is WF enabled in TFS 2010, by the way ) process.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10121762" width="1" height="1"&gt;</description></item><item><title>Force VS to garbage collect</title><link>http://blogs.msdn.com/b/camerons/archive/2010/12/15/force-vs-to-garbage-collect.aspx</link><pubDate>Wed, 15 Dec 2010 18:35:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10105468</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10105468</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2010/12/15/force-vs-to-garbage-collect.aspx#comments</comments><description>&lt;p&gt;Here’s another little gem I’ve got for you. &lt;/p&gt;  &lt;p&gt;As you probably know, Visual Studio is a big product, with contributions coming from many many different teams, and languages. A big part of Visual Studio is written in managed languages these days, and there are a ton of 3rd party components that you can download and install from the VS Gallery that are also written in managed languages. As such, there are lots of developers out there writing managed components targeting the Visual Studio “runtime” if you will.&lt;/p&gt;  &lt;p&gt;When testing code that is run in a managed runtime, sometimes it is quite helpful to force the runtime to garbage collect. The CLR has always had API that you could use to programmatically force a GC, but wouldn’t it be great if there was a way to force the runtime inside Visual Studio’s address space to collect via a simple keystroke?&lt;/p&gt;  &lt;p&gt;Well there is. &lt;strong&gt;Ctrl-Alt-Shift-F12, twice&lt;/strong&gt;, does exactly that.&lt;/p&gt;  &lt;p&gt;So again, you have to hold down ctrl-Alt-Shift and then hit F12 twice in order to make Visual Studio garbage collect.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;UPDATE ( 12/16/2010 ):&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;One thing I should have mentioned when I originally posted, was that if you don’t like that default mapping, or a 3rd party has overridden that mapping and you can’t find what key stroke the ForceGC command is mapped to, you can always check the Visual Studio key mappings by selecting Tools-&amp;gt;Customize…, then hit the “Keyboard…” button:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/Force-VS-to-do-garbage-collection_9218/SNAGHTMLb87c29f.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTMLb87c29f" border="0" alt="SNAGHTMLb87c29f" src="http://cwskinner.members.winisp.net/Force-VS-to-do-garbage-collection_9218/SNAGHTMLb87c29f_thumb.png" width="539" height="554" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;…which takes you to the “Options” dialog where you can type “ForceGC” in the “Show Commands” text box and remap to whatever keystroke you’d like!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/Force-VS-to-do-garbage-collection_9218/SNAGHTMLb89379f.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SNAGHTMLb89379f" border="0" alt="SNAGHTMLb89379f" src="http://cwskinner.members.winisp.net/Force-VS-to-do-garbage-collection_9218/SNAGHTMLb89379f_thumb.png" width="761" height="444" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10105468" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Tips+And+Tricks/">Tips And Tricks</category></item><item><title>ALM Summit 2010</title><link>http://blogs.msdn.com/b/camerons/archive/2010/12/13/alm-summit-2010.aspx</link><pubDate>Mon, 13 Dec 2010 15:51:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10104105</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10104105</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2010/12/13/alm-summit-2010.aspx#comments</comments><description>&lt;p&gt;On November 16-18 here on campus, Microsoft sponsored an event called the “ALM Summit”. The event turned out to be a great success, with three days chalk full of useful presentations / information.&lt;/p&gt;  &lt;p&gt;You can now see all the presentations, as they were recorded. The main site is &lt;a href="http://alm-summit.com/home.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;On &lt;a href="http://www.alm-summit.com/almsummit/schedule.aspx"&gt;this page&lt;/a&gt; is a list of all the presentations, with links to the video recordings.&lt;/p&gt;  &lt;p&gt;I gave a &lt;a href="http://www.microsoft.com/showcase/en/us/details/fa7883ba-0e7e-40d5-9de8-377ba53c7b28"&gt;talk&lt;/a&gt; about some of the learnings taking teams to a more agile process.&lt;/p&gt;  &lt;p&gt;For those wanting to understand more about the support that we shipped in VS2010 for heterogeneous environments, I highly recommend watching &lt;a href="http://www.microsoft.com/showcase/en/us/details/73a21f4b-89e5-4bce-85cc-41768aa26d16"&gt;Jamie Cool’s presentation&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;And for those of you looking to understand how we at Microsoft use TFS to do our daily work, check out &lt;a href="http://www.microsoft.com/showcase/en/us/details/c2ca1e2b-7f18-49f4-91c4-0de53dbf8092"&gt;Stephanie’s talk&lt;/a&gt;, and check out &lt;a href="http://www.microsoft.com/showcase/en/us/details/48321ac2-85b0-4abe-9f75-e485958dc6ea"&gt;Grant on how TFS is administered internally&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;These are just a couple to whet your appetite. Lot’s of good stuff on this site, so enjoy!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10104105" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/ALM/">ALM</category></item><item><title>XMI Export Sample</title><link>http://blogs.msdn.com/b/camerons/archive/2010/11/29/xmi-export-sample.aspx</link><pubDate>Mon, 29 Nov 2010 16:39:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10097823</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10097823</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2010/11/29/xmi-export-sample.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/stevecook/"&gt;Steve Cook&lt;/a&gt;, a long time architect on my team, has made available a sample that shows how to access the UML meta data in Visual Studio’s&amp;#160; new UML project system and export that data into the OMG’s XMI data format. XMI is the OMG standard used to describe UML meta data for exchange between various tool vendors.&lt;/p&gt;  &lt;p&gt;In Visual Studio 2010 Ultimate, we have the ability to import XMI ( via the Visualization and Modeling Feature Pack ), but we didn’t get XMI export into the feature pack.&lt;/p&gt;  &lt;p&gt;If you are interested in this sample, here are the steps you need to do to take it for a test drive:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Download the &lt;/strong&gt;&lt;a href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=vsvmsdk&amp;amp;DownloadId=14454"&gt;&lt;strong&gt;sample&lt;/strong&gt;&lt;/a&gt;       &lt;br /&gt;Once downloaded, double check to see if you need to unblock the zip file. Better to do this now if needed, rather than all the extracted files. Just right click on the XmiExporterSample.zip file and select “Properties”:       &lt;br /&gt;&lt;a href="http://cwskinner.members.winisp.net/XMI-Export-Sample_70D8/SNAGHTML19cfffc9.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 7px 38px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: ; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML19cfffc9" border="0" alt="SNAGHTML19cfffc9" src="http://cwskinner.members.winisp.net/XMI-Export-Sample_70D8/SNAGHTML19cfffc9_thumb.png" width="381" height="519" /&gt;&lt;/a&gt;If you don’t see the “Unblock” button, then you can safely skip this step.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Extract the zip file to your favorite directory and double-click on the XmiExporterSample.sln file.        &lt;br /&gt;&lt;/strong&gt;This will launch VS for you. If you are presented with any dialogs about version control, you can safely ignore. If you are asked, choose to permanently remove the version control settings from the solution.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Right click on the XmiExport project in the Solution Explorer and select “Set as StartUp Project”        &lt;br /&gt;&lt;/strong&gt;Also, if you are running a x64 bit version of windows, you will need to go into the project settings to point at the appropriate version of Visual Studio. Right click on the XmiExport project, select Properties, click on the Debug tab, and make sure you are pointing at the correct DevEnv.exe. On my machine, that happens to be here : “C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe”       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Set the “Solution Configuration” to be Release        &lt;br /&gt;&lt;/strong&gt;&lt;a href="http://cwskinner.members.winisp.net/XMI-Export-Sample_70D8/image.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/XMI-Export-Sample_70D8/image_thumb.png" width="276" height="33" /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Rebuild your solution        &lt;br /&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Double click the Microsoft.Example.XmiExporter.vsix file        &lt;br /&gt;&lt;/strong&gt;In the output directory for the XmiExporter project ( XMIExporter\bin\Release ), you’ll find a Microsoft.Example.XmiExporter.vsix file. Double clicking that vsix will install the XmiExport sample into your Visual Studio instance.       &lt;br /&gt;&lt;a href="http://cwskinner.members.winisp.net/XMI-Export-Sample_70D8/SNAGHTML19de1eae.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; float: ; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML19de1eae" border="0" alt="SNAGHTML19de1eae" src="http://cwskinner.members.winisp.net/XMI-Export-Sample_70D8/SNAGHTML19de1eae_thumb.png" width="464" height="348" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Restart Visual Studio, create a new UML modeling project, create a UML class diagram, and notice the new “Export XMI…” menu item when right-clicking in the background of the diagram!       &lt;br /&gt;&lt;/strong&gt;Drop some elements on the diagram so you have something to export.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Select “Export XMI…”       &lt;br /&gt;&lt;/strong&gt;A dialog will popup asking where you want the resulting XMI file to go.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And that’s it!&lt;/p&gt;  &lt;p&gt;The great thing about providing this as a sample is you can jump into the source to see how to get access at all the UML meta data in your UML Modeling projects. To start, reopen the XmiExporterSample and open the XmiExportCommand.cs file. Set a break in the Execute method…&lt;/p&gt;  &lt;p&gt;Hope that helps,&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10097823" width="1" height="1"&gt;</description></item><item><title>A Windows Explorer Gem</title><link>http://blogs.msdn.com/b/camerons/archive/2010/10/11/a-windows-explorer-gem.aspx</link><pubDate>Mon, 11 Oct 2010 15:49:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10074189</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>13</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10074189</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2010/10/11/a-windows-explorer-gem.aspx#comments</comments><description>&lt;p&gt;I just tripped into this little gem and just couldn’t let this go without telling somebody, ‘cause I could have used this little feature 15 years ago!&lt;/p&gt;  &lt;p&gt;Ever had to find a file on your machine with the only purpose to determine the absolute location to that file so that you could write some code that makes the path relative, etc., etc.?&lt;/p&gt;  &lt;p&gt;Until today, I would typically find the file in Windows Explorer, then quickly hit Alt-D to put the focus in the address bar of the explorer window, which selects the full path to the directory of the file, like so:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/A-Windows-Explorer-Gem_78F0/image.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/A-Windows-Explorer-Gem_78F0/image_thumb.png" width="880" height="272" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then I can easily Ctrl-C to copy, and away I go.&lt;/p&gt;  &lt;p&gt;That works pretty well, but when I want the actual name of the file included in that path, I have to go paste the copied path, then type in the ‘\’, and then type in the name of the file ( assuming I could remember the name! ).&lt;/p&gt;  &lt;p&gt;Well, no longer!&lt;/p&gt;  &lt;p&gt;Hold the Shift key down while right-clicking on a file or directory. Go ahead, try it. Do you see anything different?&lt;/p&gt;  &lt;p&gt;Here’s the context menu when I right click *without* holding the shift key over the mscorlib.dll file:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/A-Windows-Explorer-Gem_78F0/image_3.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/A-Windows-Explorer-Gem_78F0/image_thumb_3.png" width="396" height="261" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And here’s the context menu with the Shift key down while right-clicking:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/A-Windows-Explorer-Gem_78F0/image_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://cwskinner.members.winisp.net/A-Windows-Explorer-Gem_78F0/image_thumb_4.png" width="396" height="305" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Yes, “Copy as path”!!!!&lt;/p&gt;  &lt;p&gt;Learn something new everyday….. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://cwskinner.members.winisp.net/A-Windows-Explorer-Gem_78F0/wlEmoticon-smile.png" /&gt;&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10074189" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/TIP/">TIP</category></item><item><title>Need your feedback on Visual Studio 2010</title><link>http://blogs.msdn.com/b/camerons/archive/2010/10/07/need-your-feedback-on-visual-studio-2010.aspx</link><pubDate>Thu, 07 Oct 2010 21:16:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10072960</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10072960</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2010/10/07/need-your-feedback-on-visual-studio-2010.aspx#comments</comments><description>&lt;p&gt;Do you use Visual Studio 2010 everyday? If so, I’d really appreciate it if you could take 5-10 minutes and fill out the following questions found in this survey:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=203459"&gt;http://go.microsoft.com/fwlink/?LinkId=203459&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We’re really trying to get as much feedback as we can in regards to overall performance and stability of the application. As you already know, we take the quality of Visual Studio very seriously, and your feedback is a key ingredient in how we tune our efforts to ensuring that quality.&lt;/p&gt;  &lt;p&gt;Thanks in advance!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10072960" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Visual+Studio/">Visual Studio</category></item><item><title>ALM Summit Nov 16-18</title><link>http://blogs.msdn.com/b/camerons/archive/2010/09/28/alm-summit-nov-16-18.aspx</link><pubDate>Tue, 28 Sep 2010 13:54:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10068695</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10068695</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2010/09/28/alm-summit-nov-16-18.aspx#comments</comments><description>&lt;p&gt;Brian Harry &lt;a href="http://blogs.msdn.com/b/bharry/archive/2010/09/28/alm-summit-in-redmond-nov-16-18.aspx"&gt;just blogged&lt;/a&gt; about a conference we’ll be hosting on the Redmond Microsoft campus this November 16-18th. If you do get a chance, drop by. I’ll be giving a talk about lessons learned and challenges overcome while I led a few product team transformations over to more Agile processes.&lt;/p&gt;  &lt;p&gt;Find out more about the summit &lt;a href="http://www.alm-summit.com/home.aspx"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Hope to see you there!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10068695" width="1" height="1"&gt;</description></item><item><title>TIP support for any ADO.NET app</title><link>http://blogs.msdn.com/b/camerons/archive/2010/09/06/tip-support-for-any-ado-net-app.aspx</link><pubDate>Tue, 07 Sep 2010 00:57:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10058654</guid><dc:creator>CameronS - MSFT</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/camerons/rsscomments.aspx?WeblogPostID=10058654</wfw:commentRss><comments>http://blogs.msdn.com/b/camerons/archive/2010/09/06/tip-support-for-any-ado-net-app.aspx#comments</comments><description>&lt;p&gt;In my &lt;a href="http://blogs.msdn.com/b/camerons/archive/2010/09/03/the-tier-interaction-profiler-tip.aspx"&gt;last post&lt;/a&gt;, I discussed the benefits of the Tier Interaction Profiler found in Visual Studio 2010 Premium. If you are accessing a database via ADO.NET APIs ( which includes the new Entity Framework 4.0 features ), you can get the same benefits from TIP.&lt;/p&gt;  &lt;p&gt;If you recall, one of the last pages in the performance wizard was a simple checkbox allowing you to collect TIP data. Unfortunately, if your project is not a web app or web site, performance wizard doesn’t include the option to turn Tier Interaction Profiling on.&lt;/p&gt;  &lt;p&gt;You can manually configure your performance session to collect TIP data by right clicking on the Performance session in the Performance Explorer, select “Properties”, and then click on the “Tier Interactions” entry in the property pages window, as seen in the following image:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/TIPsupportforanyADO.NETapp_FA64/SNAGHTML114a3c4f.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="" border="0" alt="" src="http://cwskinner.members.winisp.net/TIPsupportforanyADO.NETapp_FA64/SNAGHTML114a3c4f_thumb.png" width="644" height="331" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To create a new performance session, you can either create it through the perf wizard, or select the “Analyze-&amp;gt;Profiler-&amp;gt;New Performance Session” menu item, which will result in an empty performance session inside the Performance Explorer tool window:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cwskinner.members.winisp.net/TIPsupportforanyADO.NETapp_FA64/SNAGHTML115041da.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SNAGHTML115041da" border="0" alt="SNAGHTML115041da" src="http://cwskinner.members.winisp.net/TIPsupportforanyADO.NETapp_FA64/SNAGHTML115041da_thumb.png" width="331" height="151" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;From here, simply right click on the “Targets” folder and select a project or binary to associate the performance session with.&lt;/p&gt;  &lt;p&gt;Cheers!&lt;/p&gt;  &lt;p&gt;Cameron&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10058654" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/camerons/archive/tags/TIP/">TIP</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Profiling/">Profiling</category><category domain="http://blogs.msdn.com/b/camerons/archive/tags/Tier+Interaction+Profiler/">Tier Interaction Profiler</category></item></channel></rss>