<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cory Plotts' Blog</title>
	<atom:link href="http://www.cplotts.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cplotts.com</link>
	<description>Yet another UX guy, working in WPF/Silverlight.</description>
	<lastBuildDate>Tue, 15 Nov 2011 21:22:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Snoop Tips &amp; Tricks #2: Snooping Transient Visuals</title>
		<link>http://www.cplotts.com/2011/02/14/snoop-tips-tricks-2-snooping-transient-visuals/</link>
		<comments>http://www.cplotts.com/2011/02/14/snoop-tips-tricks-2-snooping-transient-visuals/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 06:01:11 +0000</pubDate>
		<dc:creator>cplotts</dc:creator>
				<category><![CDATA[Utilities]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[Snoop]]></category>
		<category><![CDATA[TipsAndTricks]]></category>

		<guid isPermaLink="false">http://www.cplotts.com/2011/02/14/snoop-tips-tricks-2-snooping-transient-visuals/</guid>
		<description><![CDATA[In this trick, I show you how useful the prior one can really be. That is, it can be used to Snoop transient visuals … or visuals that aren’t currently in the visual tree. A perfect example of this type of visual … are combo box items. Snoop Tips &#038; Tricks #2: Snooping Transient Visuals [...]]]></description>
			<content:encoded><![CDATA[<p>In this trick, I show you how useful the prior <a href="http://www.cplotts.com/2011/02/10/snoop-tips-tricks-1-ctrl-shift-mouse-over/">one</a> can really be.</p>
<p>That is, it can be used to Snoop transient visuals … or visuals that aren’t currently in the visual tree. A perfect example of this type of visual … are combo box items.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:65b494cb-773b-422b-80f8-2000dede2aa0" class="wlWriterEditableSmartContent">
<div><object width="448" height="252"><param name="movie" value="http://www.youtube.com/v/98UEVCQHmVA?hl=en&amp;hd=1"></param><embed src="http://www.youtube.com/v/98UEVCQHmVA?hl=en&amp;hd=1" type="application/x-shockwave-flash" width="448" height="252"></embed></object></div>
<div style="width:448px;clear:both;font-size:.8em">Snoop Tips &#038; Tricks #2: Snooping Transient Visuals</div>
</div>
<p>One thing I forgot to mention in the video … check out the root of the visual tree after I have used the Ctrl-Shift Mouse Over trick on the combo box item … it is not an App object … but a PopupRoot object. This is further indication that Snoop has refreshed the visual tree and placed the transient visual there in place of the normal App object.</p>
<p>Happy Snooping!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.cplotts.com%2F2011%2F02%2F14%2Fsnoop-tips-tricks-2-snooping-transient-visuals%2F&amp;title=Snoop%20Tips%20%26amp%3B%20Tricks%20%232%3A%20Snooping%20Transient%20Visuals" id="wpa2a_2">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cplotts.com/2011/02/14/snoop-tips-tricks-2-snooping-transient-visuals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snoop Tips &amp; Tricks #1: Ctrl-Shift Mouse Over</title>
		<link>http://www.cplotts.com/2011/02/10/snoop-tips-tricks-1-ctrl-shift-mouse-over/</link>
		<comments>http://www.cplotts.com/2011/02/10/snoop-tips-tricks-1-ctrl-shift-mouse-over/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 05:59:30 +0000</pubDate>
		<dc:creator>cplotts</dc:creator>
				<category><![CDATA[Utilities]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[Snoop]]></category>
		<category><![CDATA[TipsAndTricks]]></category>

		<guid isPermaLink="false">http://www.cplotts.com/2011/02/10/snoop-tips-tricks-1-ctrl-shift-mouse-over/</guid>
		<description><![CDATA[I am always surprised how many people don’t know about this trick … but I guess it isn’t really obvious since I removed the tip from the status bar … in favor of some keyboard functionality. I thought the best way to show this trick off … is with a screencast. Enjoy! Snoop Tips &#038; [...]]]></description>
			<content:encoded><![CDATA[<p>I am always surprised how many people don’t know about this trick … but I guess it isn’t really obvious since I removed the tip from the status bar … in favor of some keyboard functionality.</p>
<p>I thought the best way to show this trick off … is with a screencast. Enjoy!</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:c3ba1319-cfa3-493b-9db4-b88cc1db33e9" class="wlWriterEditableSmartContent">
<div><object width="448" height="336"><param name="movie" value="http://www.youtube.com/v/n8EdRR0Tc1k?hl=en&amp;hd=1"></param><embed src="http://www.youtube.com/v/n8EdRR0Tc1k?hl=en&amp;hd=1" type="application/x-shockwave-flash" width="448" height="336"></embed></object></div>
<div style="width:448px;clear:both;font-size:.8em">Snoop Tips &#038; Tricks #1: Ctrl-Shift Mouse Over</div>
</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.cplotts.com%2F2011%2F02%2F10%2Fsnoop-tips-tricks-1-ctrl-shift-mouse-over%2F&amp;title=Snoop%20Tips%20%26amp%3B%20Tricks%20%231%3A%20Ctrl-Shift%20Mouse%20Over" id="wpa2a_4">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cplotts.com/2011/02/10/snoop-tips-tricks-1-ctrl-shift-mouse-over/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Snoop: Now Supports WPF 4.0 Even Better in Snoop v2.6.1</title>
		<link>http://www.cplotts.com/2011/02/10/snoop-now-supports-wpf-4-0-even-better-in-snoop-v2-6-1/</link>
		<comments>http://www.cplotts.com/2011/02/10/snoop-now-supports-wpf-4-0-even-better-in-snoop-v2-6-1/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 01:07:22 +0000</pubDate>
		<dc:creator>cplotts</dc:creator>
				<category><![CDATA[Utilities]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[Snoop]]></category>

		<guid isPermaLink="false">http://www.cplotts.com/2011/02/10/snoop-now-supports-wpf-4-0-even-better-in-snoop-v2-6-1/</guid>
		<description><![CDATA[Problems, Problems The above blog post title is supposed to be kind of a joke. I keep telling people I’m funny. Snoop supposedly has been supporting WPF 4.0 for some time now. Unfortunately, however, there were times where (1, 2) WPF 4.0 applications weren’t showing up in the App Chooser. In one situation, PresentationFramework.dll wasn’t [...]]]></description>
			<content:encoded><![CDATA[<h2>Problems, Problems</h2>
<p>The above blog post title is supposed to be kind of a joke. <em>I keep telling people I’m funny. </em><a href="http://snoopwpf.codeplex.com">Snoop</a> supposedly has been supporting WPF 4.0 for <a href="http://www.cplotts.com/2010/02/14/snoop-now-supports-wpf-4-0/">some time</a> now. Unfortunately, however, there were times where (<a href="http://snoopwpf.codeplex.com/workitem/5964">1</a>, <a href="http://snoopwpf.codeplex.com/workitem/6090">2</a>) WPF 4.0 applications weren’t showing up in the App Chooser.</p>
<p>In one situation, PresentationFramework.dll wasn’t showing up in the list of loaded modules for the application being Snooped. So, I simply started searching for any of the following assemblies: PresentationFramework.dll, PresentationCore.dll, or wpfgfx_v0400.dll.</p>
<p>But, that didn’t work in all situations.</p>
<p>For sometimes, PresentationFramework.dll shows up as PresentationFramework.ni.dll which I believe is the <a href="http://msdn.microsoft.com/en-us/library/6t9t5wcf(v=VS.100).aspx">Ngen(ed)</a> version of the assembly. At other times, it isn’t wpfgfx_v0400.dll that shows up in the list of modules, but wpfgfx_v0300.dll. The former is the <a href="http://msdn.microsoft.com/en-us/library/ms750441.aspx">milcore</a> for WPF 4.0 and the latter is the milcore for WPF 3.5.</p>
<p>At this point, I just searched for the roots of all these names, i.e. PresentationFramework, PresentationCore, and wpfgfx.</p>
<p>But, again … that didn’t work in all situations. <em>Humility, is a virtue … humility is a virtue. <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-annoyed" alt="Annoyed" src="http://www.cplotts.com/wp-content/uploads/2011/02/wlEmoticon-annoyed.png" /></em></p>
<p>For some reason, at times, these modules show up in lower case. Don’t ask me why. If someone can shed light on this, please do. So, I’m now searching for the roots of these assemblies in a case-insensitive way. <em>Granted, I probably should have seen that one coming.</em></p>
<h2>Snoop v2.6.1</h2>
<p>Now announcing <a href="http://snoopwpf.codeplex.com/releases/view/49037">Snoop v2.6.1</a>!</p>
<p>Snoop v2.6.1 fixes these issues and others. After yet another <a href="http://snoopwpf.codeplex.com/discussions/245502">fellow</a> experienced this problem and since more people are going WPF 4.0 all the time … I figured it was time for a release.</p>
<p>This release also contains some usability improvements from fellow Snoop aficionado, <a href="http://blogs.interknowlogy.com/author/danhanan/">Dan Hanan</a>. In particular:</p>
<ol>
<li>You can now delve properties by double clicking on the name. </li>
<li>You can now modify the filter sets to contain what you wish to be filtered. </li>
<li>You can now use the mouse wheel to modify property values. </li>
</ol>
<ol>I also want to say that I have a whole bunch of things lined up for integration into Snoop, but have been struggling to find time. For example, another fellow added the ability to capture some hi-res screen shots from Snoop. So, there is definitely going to be a vNext for Snoop … and hopefully soon.</ol>
<h2>Snoop Tips &amp; Tricks</h2>
<p>For a while now, I’ve been contemplating a blog series on Snoop where I highlight different tips and tricks, and in general, how to use Snoop. And with this release, I’m going to kick it off with the most important one of them all: the <a href="http://www.cplotts.com/2011/02/10/snoop-tips-tricks-1-ctrl-shift-mouse-over/">Ctrl-Shift Mouse Over trick</a>.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.cplotts.com%2F2011%2F02%2F10%2Fsnoop-now-supports-wpf-4-0-even-better-in-snoop-v2-6-1%2F&amp;title=Snoop%3A%20Now%20Supports%20WPF%204.0%20Even%20Better%20in%20Snoop%20v2.6.1" id="wpa2a_6">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cplotts.com/2011/02/10/snoop-now-supports-wpf-4-0-even-better-in-snoop-v2-6-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Snoop: Yes, You Can Snoop XBAPs</title>
		<link>http://www.cplotts.com/2011/01/17/yes-you-can-snoop-xbaps/</link>
		<comments>http://www.cplotts.com/2011/01/17/yes-you-can-snoop-xbaps/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 18:51:17 +0000</pubDate>
		<dc:creator>cplotts</dc:creator>
				<category><![CDATA[Utilities]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[Snoop]]></category>

		<guid isPermaLink="false">http://www.cplotts.com/2011/01/17/yes-you-can-snoop-xbaps/</guid>
		<description><![CDATA[Today I got a question about whether Snoop supports XBAPs. Actually, this is something I’ve been meaning to look into for a while. So, I took the two necessary seconds to create a test XBAP project and tried Snooping. It didn’t work. When launching Snoop after running the XBAP, you see PresentationHost.exe in the App [...]]]></description>
			<content:encoded><![CDATA[<p>Today I got a question about whether Snoop supports XBAPs. Actually, this is something I’ve been meaning to look into for a while.</p>
<p>So, I took the two necessary seconds to create a test XBAP project and tried Snooping. It didn’t work. When launching Snoop after running the XBAP, you see PresentationHost.exe in the App Chooser (PresentationHost.exe is the process that the browser launches in the case of an XBAP).</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image21.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb21.png" border="0" alt="image" width="521" height="30" /></a></p>
<p>However, trying to Snoop it (clicking the binoculars) … results in … nothing, not even an error.</p>
<p>Now, the person asking … pointed out a <a href="http://joshsmithonwpf.wordpress.com">Josh Smith’s</a> blog <a href="http://joshsmithonwpf.wordpress.com/2008/06/10/three-tips-for-working-with-xbap/">post</a> on the matter … where he discusses three tips for working with XBAPs … one of which is that Snoop doesn’t work, but that <a href="http://karlshifflett.wordpress.com/mole-for-visual-studio/">Mole</a> does. In order to get Mole to work, however, you must (at least temporarily) make your XBAP a full trust application.</p>
<p>Hmm. That got me thinking. <em>Yes, I know that is dangerous.</em></p>
<p>A lot of my efforts with Snoop to date … have revolved around getting edge case scenarios to work … and I have modified the start up process significantly. So, I thought, I should quickly check to see if Snoop now works … as long as I change the XBAP to a full trust application.</p>
<p>And … woohoo … it works! <img class="wlEmoticon wlEmoticon-thumbsup" style="border-style: none;" src="http://www.cplotts.com/wp-content/uploads/2011/01/wlEmoticon-thumbsup.png" alt="Thumbs up" /></p>
<p>So, all you need to do is go to the Project Properties window, navigate to the Security tab, and check ‘This is a full trust application’.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image22.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb22.png" border="0" alt="image" width="629" height="442" /></a></p>
<p>Hope that helps, and yeah, Snoop rules!</p>
<p>p.s.</p>
<p>I did also verify (while writing up this post) that neither Snoop 1.0 (<a href="http://blois.us/Snoop/">Pete Blois’</a> original version) nor Snoop 2.0 (Pete Blois’ newer stylized version) worked with XBAPs.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.cplotts.com%2F2011%2F01%2F17%2Fyes-you-can-snoop-xbaps%2F&amp;title=Snoop%3A%20Yes%2C%20You%20Can%20Snoop%20XBAPs" id="wpa2a_8">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cplotts.com/2011/01/17/yes-you-can-snoop-xbaps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET Reflector Pro: Debugging the .NET Framework Source Code</title>
		<link>http://www.cplotts.com/2011/01/14/net-reflector-pro-debugging-the-net-framework-source-code/</link>
		<comments>http://www.cplotts.com/2011/01/14/net-reflector-pro-debugging-the-net-framework-source-code/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 04:17:55 +0000</pubDate>
		<dc:creator>cplotts</dc:creator>
				<category><![CDATA[Utilities]]></category>
		<category><![CDATA[DebuggingTricks]]></category>

		<guid isPermaLink="false">http://www.cplotts.com/2011/01/14/net-reflector-pro-debugging-the-net-framework-source-code/</guid>
		<description><![CDATA[The other day, I ran into a situation (see the attached project and here for more info) where I wanted to debug the .NET Framework in order to see how something was working. Unfortunately, Visual Studio’s native support (see Scott Guthrie&#8217;s blog post or Shawn Burke&#8217;s blog post) for doing so was failing me. I [...]]]></description>
			<content:encoded><![CDATA[<p>The other day, I ran into a situation (see the attached <a href="http://www.cplotts.com/wp-content/uploads/2011/01/ContentPresenterExploration.zip">project</a> and <a href="http://agsmith.wordpress.com/2008/07/14/who-set-the-datacontext/">here</a> for more info) where I wanted to debug the .NET Framework in order to see how something was working.</p>
<p>Unfortunately, Visual Studio’s native support (see <a href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx">Scott Guthrie&#8217;s blog post</a> or <a href="http://blogs.msdn.com/b/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx">Shawn Burke&#8217;s blog post</a>) for doing so was failing me. I was eventually able to get that working for .NET 4.0 but not .NET 3.5 SP1 (see this forum <a href="http://social.msdn.microsoft.com/Forums/en-US/refsourceserver/thread/1b74f60c-e961-425c-a38e-362406dd4cfe">thread</a>), but in the meantime … I had to turn to other methods.</p>
<p>So, what is one to do when this happens? Is all lost? Not at all, for you can use <a href="http://www.red-gate.com/products/dotnet-development/reflector/features-pro">.NET Reflector Pro</a> to do the same thing.</p>
<p><a href="http://www.red-gate.com/products/dotnet-development/reflector/">.NET Reflector</a> is a very popular .NET utility created by a Microsoft employee, <a href="http://blog.lutzroeder.com/">Lutz Roeder</a>. It allows you to explore and analyze .NET managed assemblies. This utility can also be extended by way of add-ins and there is a whole <a href="http://reflectoraddins.codeplex.com/">bunch</a> of them out there.</p>
<p>A while <a href="http://blog.lutzroeder.com/2008/08/future-of-net-reflector.html">ago</a>, Lutz Roeder, decided to let <a href="http://www.red-gate.com/">Red Gate</a> take the reins, and they then went ahead and added the ability to allow a user to debug into third-party code and assemblies by way of a Visual Studio add-in.</p>
<p>And that is what I’m going to show you how to do, step-by-step.</p>
<h2>Install .NET Reflector Pro</h2>
<p>The first thing that you need to do, obviously, is to download and install .NET Reflector, if you haven’t already. There is a download link <a href="http://www.red-gate.com/products/dotnet-development/reflector/">here</a>.</p>
<p>It comes down as a zip file, so simply extract the contents to a convenient location. Launch it and then select Tools-&gt;Integration Options. Here is the dialog that comes up.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image.png"><img style="border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb.png" width="515" height="370" /></a></p>
<p>This dialog allows you to easily install the .NET Reflector add-in … into Visual Studio. Choose the versions that you want and click OK.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb1.png" width="515" height="154" /></a></p>
<h2>Tell Visual Studio to Disable Optimizations</h2>
<p>The next step is very important. If you forget it, you will be frustrated once you get to actually debugging the source code … because all the variables will be optimized away and Visual Studio will also step through the code in odd ways.</p>
<p>So, go to my earlier blog <a href="http://www.cplotts.com/2009/01/07/disabling-optimizations-when-debugging-net-framework-source-code/">post</a> and follow its instructions. (Also, don’t forget, if you are debugging a Visual Studio 2010 application, to make sure you update the path to devenv.exe … in the .cmd file you create in this step.)</p>
<h2>Choose the Assemblies to Debug</h2>
<p>Next, launch Visual Studio with the .cmd file from the previous step and load up the project that you want to debug. Go to the .NET Reflector menu and select ‘Choose Assemblies to Debug…’</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb2.png" width="279" height="195" /></a></p>
<p>If you don’t have your options set correctly, the following dialog will come up. Click ‘Turn off “Enable Just My Code”’ to continue.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image3.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb3.png" width="644" height="356" /></a></p>
<p>Now, choose which assemblies that you wish to debug into … via the following dialog.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image4.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb4.png" width="644" height="356" /></a></p>
<p>In my case, I want to debug the ContentPresenter.EnsureTemplate method and the ContentPresenter class lives in PresentationFramework.dll. How do I know this? Well, through .NET Reflector, of course.</p>
<h2>Activate .NET Reflector Pro</h2>
<p>Once you click OK to the above dialog, you may get prompted with the following dialog.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image5.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb5.png" width="558" height="298" /></a></p>
<p>This, unfortunately, brings up an annoying issue. Even though Red Gate has kindly provided a 14-day trial to use the Pro features of the tool … your trial starts when you install the software and not when try to use the debugging feature for first time.</p>
<p>That is, for me, I was never able to take advantage of the trial period as I had long had the software installed (it is always one of the first pieces of software I put on a newly paved development machine).</p>
<p>So, if you are in this situation, go buy a license and then Activate it here.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image6.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb6.png" width="564" height="417" /></a></p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image7.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb7.png" width="564" height="417" /></a></p>
<h2>Let .NET Reflector Decompile the Assemblies</h2>
<p>5. At this point, .NET Reflector Pro is disassembling the assemblies that you have chosen and also reassembling them so that they can generate .pdb files. This process takes quite a bit of time and so they also stuff the output into the ‘Debug Store’ so that you don’t have to do this every time.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image8.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb8.png" width="644" height="356" /></a></p>
<p>If you’ve been around the .NET world for a bit, you’ll notice the similarities in the above step to what you had to do manually in this CodeProject <a href="http://www.codeproject.com/KB/dotnet/Debug_Framework_Classes.aspx">article</a>. And, if you recall, what you ended up debugging … was IL, not C# or VB.</p>
<p>Eventually, everything will succeed.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image9.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb9.png" width="644" height="356" /></a></p>
<h2>Verify Your Tools-&gt;Options Debugging Settings</h2>
<p>At this point, bring up the Tools-&gt;Options dialog and go to the Debugging/General tab. Everything should be fine, but as a point of education … and to verify that everything is okay … make sure that all settings pointed to by the red arrows are set as shown.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image10.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb10.png" width="644" height="376" /></a></p>
<p>.NET Reflector cleared the first one (‘Enable Just My Code’) for you … but make sure it is unchecked.</p>
<p>Also, make sure that ‘Enable .NET Framework source stepping’ and ‘Enable source server support’ are unchecked. These options are checked when you are using Visual Studio’s native support to debug into the .NET Framework (mentioned above) … but we don’t want them checked now … so that there is no cause for confusion.</p>
<p>Finally, the ‘Require source files to exactly match the original version’ is not strictly necessary. However, I believe I have had issues in the past if this was checked. If you leave it checked, just keep it in mind, so if things aren’t working you can then try unchecking it.</p>
<p>Next, check out the Debugging/Symbols tab. Below, you can see where .NET Reflector has installed the .pdb files. Make sure those locations are checked … and make sure that everything else in that list is unchecked … especially ‘Microsoft Symbol Servers’</p>
<p>And, very importantly, make sure you have a clean symbol cache … by clicking the ‘Empty Symbol Cache’ button. Why is this important? Well, it ensures that all the .pdb files will be coming fresh from Reflector … and won’t be a stale .pdb from a previous effort at trying to use the native Visual Studio support.</p>
<p>What is the Symbol Cache? Well, the Symbol Cache is where the .pdbs are copied to … so that you don’t have to keep downloading them from the Microsoft Symbol Servers … obviously an important option when using the native Visual Studio support … but not super important when dealing with .NET Reflector. However, I believe Reflector’s .pdb files still get copied to the Symbol Cache.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image11.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb11.png" width="644" height="376" /></a></p>
<h2>Debug the .NET Framework (Call Stack Approach)</h2>
<p>Now, you need to figure out how to set a breakpoint so that you can break into the application and debug the .NET Framework. The first mechanism is just to set a breakpoint on a local (non-framework) method that you know will cause the class of interest to be on the stack. Then you can double click the stack frame and set another breakpoint as necessary.</p>
<p>For example, let us say that I want to debug System.Windows.Application.DoStartup. I know that the Application class will probably be on the stack if I put a breakpoint in the InitializeComponent method of my MainWindow. So, that’s exactly where I put it.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image12.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb12.png" width="644" height="287" /></a></p>
<p>Now, I click Debug-&gt;Start Debugging (F5) and hopefully I will hit my breakpoint. Sure enough:</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image13.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb13.png" width="644" height="387" /></a></p>
<p>One thing to note here is that gray text indicates that a .pdb has not been loaded for that assembly while black text indicates that a .pdb has been loaded. That is, in the above example, only PresentationFramework has an loaded .pdb.</p>
<p>And, look! Application.DoStartup is on the stack. Double click that stack frame to bring you to the code.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image14.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb14.png" width="644" height="432" /></a></p>
<p>At this point, you can debug as normal. You can step, watch variables, and more. In the above screen shot, you can see that I set a new breakpoint at the start of the method to be hit when I restart the debugging session. Restarting the application, shows that I can verify that MainWindow.xaml is my StartupUri.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image15.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb15.png" width="644" height="224" /></a></p>
<h2>Debug the .NET Framework (Method Breakpoint Approach)</h2>
<p>Unfortunately, the above call stack approach to debugging the .NET Framework will only get you so far. Another method I have used in the past is to simply set a breakpoint on a method name. How to do this is not very obvious, though.</p>
<p>The trick is to set a breakpoint via the New-&gt;Break at Function menu item in the Breakpoints debugging window.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image16.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb16.png" width="524" height="251" /></a></p>
<p>The New Breakpoint dialog comes up. Simply, <em>and carefully</em>, type the name of the method, prefixed by its Class name, like so:</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image17.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb17.png" width="598" height="273" /></a></p>
<p>It will complain, but just click OK.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image18.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb18.png" width="487" height="175" /></a></p>
<p>At this point, just hit F5 (Debugging-&gt;Start Debugging) and do what you need to do to hit the breakpoint. And, wa la, here I’ve hit my breakpoint:</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image19.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb19.png" width="606" height="320" /></a></p>
<p>The real question that prompted all of this desire to debug the .NET Framework was to see whether the DataContext was getting set or cleared inside of ContentPresenter. And so, I set the following breakpoints and step to my hearts content.</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2011/01/image20.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.cplotts.com/wp-content/uploads/2011/01/image_thumb20.png" width="599" height="484" /></a></p>
<h2>Summary</h2>
<p>Sometimes, you are up against the wall. You are trying to determine if the .NET Framework has a bug in it … or you’re just trying to get a better grasp about what is really going on in that big black box.</p>
<p>And, while debugging the .NET Framework is best done natively inside of Visual Studio (it’s easier and you can see comments in the source code), it doesn’t always seem to work. Sometimes the assembly you are trying to debug is not supported and at other times the symbol servers don’t seem to be up to date with the released bits.</p>
<p>However, .NET Reflector Pro can come to your rescue in these situations. It can also debug any third-party assembly, regardless of whether it’s Microsoft’s or not.</p>
<p>Good hunting … I hope this helps someone out! Leave a comment if it does!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.cplotts.com%2F2011%2F01%2F14%2Fnet-reflector-pro-debugging-the-net-framework-source-code%2F&amp;title=.NET%20Reflector%20Pro%3A%20Debugging%20the%20.NET%20Framework%20Source%20Code" id="wpa2a_10">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cplotts.com/2011/01/14/net-reflector-pro-debugging-the-net-framework-source-code/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Snoop: There can be only one!</title>
		<link>http://www.cplotts.com/2010/06/25/snoop-there-can-be-only-one/</link>
		<comments>http://www.cplotts.com/2010/06/25/snoop-there-can-be-only-one/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 23:57:23 +0000</pubDate>
		<dc:creator>cplotts</dc:creator>
				<category><![CDATA[Utilities]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[Snoop]]></category>

		<guid isPermaLink="false">http://www.cplotts.com/2010/06/25/snoop-there-can-be-only-one/</guid>
		<description><![CDATA[Haven’t I already said that the community has just been awesome in regards to Snoop? Well, here is another piece of evidence! The other day, a developer, Bruno Martinez, from Uruguay contacted me and wanted to contribute to Snoop by making it so that there was only 1 version, instead of the 4 currently required [...]]]></description>
			<content:encoded><![CDATA[<p>Haven’t I already <a href="http://channel9.msdn.com/posts/Psychlist1972/Pete-at-MIX10-Cory-Plotts-on-Snoop-for-WPF/">said</a> that the community has just been awesome in regards to Snoop?</p>
<p>Well, here is another piece of evidence!</p>
<p>The other day, a developer, <a href="http://www.bigmostacho.com/">Bruno Martinez</a>, from Uruguay contacted me and wanted to contribute to Snoop by making it so that there was only 1 version, instead of the 4 currently required at that point.</p>
<p>If you recall …</p>
<ol>
<li>You needed a version for WPF 3.5 and 32-bit.</li>
<li>You needed a version for WPF 3.5 and 64-bit.</li>
<li>You needed a version for WPF 4.0 and 32-bit.</li>
<li>You needed a version for WPF 4.0 and 64-bit.</li>
</ol>
<p>Yuck! <em>Of course, it was better than not being able to Snoop in those situations.</em> <img src='http://www.cplotts.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Well, after integrating Bruno’s changes … you just need:</p>
<ol>
<li>Snoop</li>
</ol>
<p><a href="http://www.cplotts.com/wp-content/uploads/2010/06/SnoopAppChooserNoLabels.png"><img style="display: inline; border: 0px;" title="SnoopAppChooserNoLabels" src="http://www.cplotts.com/wp-content/uploads/2010/06/SnoopAppChooserNoLabels_thumb.png" border="0" alt="SnoopAppChooserNoLabels" width="521" height="29" /></a></p>
<p>Yeah, that’s right. There are no labels! <strong>Thank you, Bruno!</strong></p>
<p>I’m obviously tickled by this … since it was a usability nightmare trying to figure out what version you needed to run … but there are host of other fixes/improvements as well. In particular, the Snoop start-up process is much more robust than it used to be and it can handle some fringe cases that it wasn’t able to before.</p>
<p>Please go to <a href="http://snoopwpf.codeplex.com">http://snoopwpf.codeplex.com</a> for more info, and of course, the download/release area for <a href="http://snoopwpf.codeplex.com/releases/view/47822">version 2.6.0.</a></p>
<p>Happy Snooping!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.cplotts.com%2F2010%2F06%2F25%2Fsnoop-there-can-be-only-one%2F&amp;title=Snoop%3A%20There%20can%20be%20only%20one%21" id="wpa2a_12">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cplotts.com/2010/06/25/snoop-there-can-be-only-one/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Weird Visual Studio 2008 SP1 IntelliSense Issue Figured Out!</title>
		<link>http://www.cplotts.com/2010/04/23/weird-visual-studio-2008-sp1-intellisense-issue-figured-out/</link>
		<comments>http://www.cplotts.com/2010/04/23/weird-visual-studio-2008-sp1-intellisense-issue-figured-out/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 14:16:31 +0000</pubDate>
		<dc:creator>cplotts</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[IntelliSense]]></category>
		<category><![CDATA[Issue]]></category>
		<category><![CDATA[VisualStudio2008]]></category>

		<guid isPermaLink="false">http://www.cplotts.com/2010/04/23/weird-visual-studio-2008-sp1-intellisense-issue-figured-out/</guid>
		<description><![CDATA[Ok, I just have to blog about this, because I just figured out an issue that’s been driving me nuts, nuts, nuts. In some xaml files, I had no folding editor … and no IntelliSense! What I discovered was that if I delete the local namespace declaration (and then add it back again), the folding [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, I just have to blog about this, because I just figured out an issue that’s been driving me nuts, nuts, nuts.</p>
<p>In some xaml files, I had no folding editor … and no IntelliSense!</p>
<p>What I discovered was that if I delete the local namespace declaration (and then add it back again), the folding editor starts working again.</p>
<p>Then, I discovered that if I just leave out the local namespace declaration … instead of adding it back, IntelliSense starts working again. Annoying … since I have to remember to put the namespace declaration back before checking it in.</p>
<p>So, I decided to do a search and see if anyone (besides me) had run into this problem. Well, as you all know, the trick to searching for anything on the internet is getting the right search string. Well, I got lucky. This <a href="http://www.google.com/search?sourceid=chrome&amp;ie=UTF-8&amp;q=intellisense+xaml+not+working+local+namespace">search</a> brought me to this blog <a href="http://blog.lab49.com/archives/3384">post</a>.</p>
<p>It wasn’t exactly my problem, but what I found was that if I added an ‘;assembly=’ to my local namespace declaration … everything started working again … and would continue working even if I closed and reopened the file! Woot! <img src='http://www.cplotts.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>So, the following xaml doesn’t work:</p>
<pre class="brush: xml;">&lt;my:Inspector
    xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
    xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;
    xmlns:my=&quot;clr-namespace:Snoop&quot;
    x:Class=&quot;Snoop.PropertyGrid2&quot;
    x:Name=&quot;PropertyGrid&quot;
    MinHeight=&quot;0&quot;
    MinWidth=&quot;0&quot;
&gt;</pre>
<p>But, the following xaml DOES work:</p>
<pre class="brush: xml;; highlight: [4]">&lt;my:Inspector
    xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
    xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;
    xmlns:my=&quot;clr-namespace:Snoop;assembly=&quot;
    x:Class=&quot;Snoop.PropertyGrid2&quot;
    x:Name=&quot;PropertyGrid&quot;
    MinHeight=&quot;0&quot;
    MinWidth=&quot;0&quot;
&gt;</pre>
<p>Hope this helps someone! It has bothered me for some time!</p>
<p>p.s.<br />
Just to clarify: this does not affect Visual Studio 2010. That is, you do not need the &#8216;assembly=&#8217; there &#8230; so this was likely an issue with the xaml editor in Visual Studio 2008.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.cplotts.com%2F2010%2F04%2F23%2Fweird-visual-studio-2008-sp1-intellisense-issue-figured-out%2F&amp;title=Weird%20Visual%20Studio%202008%20SP1%20IntelliSense%20Issue%20Figured%20Out%21" id="wpa2a_14">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cplotts.com/2010/04/23/weird-visual-studio-2008-sp1-intellisense-issue-figured-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tagxedo</title>
		<link>http://www.cplotts.com/2010/04/09/tagxedo/</link>
		<comments>http://www.cplotts.com/2010/04/09/tagxedo/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 19:48:33 +0000</pubDate>
		<dc:creator>cplotts</dc:creator>
				<category><![CDATA[Cool]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.cplotts.com/2010/04/09/tagxedo/</guid>
		<description><![CDATA[Ok, I don’t know what it is … but I really like this site, http://www.tagxedo.com/, that people have been tweeting about recently. I think it appeals to my designer tendencies. Basically, the site allows you to create some pretty cool tag clouds. Oh, and by the way, it is done with Silverlight. Nice! Here is [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, I don’t know what it is … but I really like this site, <a href="http://www.tagxedo.com/">http://www.tagxedo.com/</a>, that people have been tweeting about recently. <em>I think it appeals to my designer tendencies.</em></p>
<p>Basically, the site allows you to create some pretty cool tag clouds. Oh, and by the way, it is done with Silverlight. Nice!</p>
<p>Here is the tag cloud for my blog to date:</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2010/04/cplottstagcloud590x590.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="cplottstagcloud590x590" border="0" alt="cplottstagcloud590x590" src="http://www.cplotts.com/wp-content/uploads/2010/04/cplottstagcloud590x590_thumb.png" width="594" height="594" /></a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.cplotts.com%2F2010%2F04%2F09%2Ftagxedo%2F&amp;title=Tagxedo" id="wpa2a_16">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cplotts.com/2010/04/09/tagxedo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MIX10 Recap</title>
		<link>http://www.cplotts.com/2010/03/20/mix10-recap/</link>
		<comments>http://www.cplotts.com/2010/03/20/mix10-recap/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 05:43:27 +0000</pubDate>
		<dc:creator>cplotts</dc:creator>
				<category><![CDATA[Conference]]></category>
		<category><![CDATA[MIX10]]></category>

		<guid isPermaLink="false">http://www.cplotts.com/?p=544</guid>
		<description><![CDATA[Not only did I have the chance to attend my first PDC recently, but my gracious employer sent me to MIX10 this year. I’ve always wanted to go to this conference as I have design interests and tendencies and this is place where conversations about design happen in conjunction with the Microsoft technology stack. Here [...]]]></description>
			<content:encoded><![CDATA[<p>Not only did I have the chance to attend my <a href="http://www.cplotts.com/2009/11/24/pdc-2009-recap/">first PDC</a> recently, but my gracious <a href="http://www.starkey.com">employer</a> sent me to <a href="http://live.visitmix.com/">MIX10</a> this year. I’ve always wanted to go to this conference as I have <a href="http://www.cplotts.com/about/">design interests and tendencies</a> and this is place where conversations about design happen in conjunction with the Microsoft technology stack.</p>
<p>Here is my personal recap of the event. I did this for <a href="http://microsoftpdc.com/">PDC09</a> and it was quite helpful to not only reflect back on the conference but also in compiling a list of sessions that I wanted to watch offline (or rewatch again).</p>
<p>The main excitement was, of course, <a href="http://www.windowsphone7series.com/">Windows Phone 7</a>. However, my <a href="http://www.youtube.com/user/kindohm#p/a/u/0/srL2d4ifAWs">main objective</a> at the conference was to hit up a lot of the sessions on design, learning more about it myself, and how I can better change my own personal development process as well Starkey’s development process. With that in mind, and especially because he is doing some iPhone development, my <a href="http://twitter.com/batgar">colleague</a> picked up the Windows Phone sessions. I’m definitely going to dive in on some of those now that the conference is finished.</p>
<p>The best part of the conference was probably just meeting and hooking up (for the first time) with some of the other <a href="http://groups.google.com/group/wpf-disciples">WPF Disciples</a>. You can always take in the conference offline (and often in a better manner), but it isn’t every day where you can talk with (and have fun with) great minds and people.</p>
<p>It was an excellent conference! I hope I will soon be able to attend again.</p>
<h3>Sessions That I Attended</h3>
<table border="1" cellspacing="0" cellpadding="0" width="599">
<tbody>
<tr>
<td valign="top" width="68"><strong>Session Code</strong></td>
<td valign="top" width="100"><strong>Session Title</strong></td>
<td valign="top" width="10"><strong>Presenters</strong></td>
<td valign="top" width="419"><strong>Notes</strong></td>
</tr>
<tr>
<td valign="top" width="68"><strong>WKSP02</strong></td>
<td valign="top" width="100"><a href="http://live.visitmix.com/MIX10/Sessions/WKSP02">Design Fundamentals for Developers</a></td>
<td valign="top" width="10"><a href="http://blog.nerdplusart.com/">Robby Ingebretsen</a></td>
<td valign="top" width="419">This workshop and Robby’s other session (which was kind of a follow-up to the workshop) were the highlights of conference for me. He is a designer that has a background in development and was part of the team that made WPF. He has done some beautiful and amazing work. A recent piece of work is his design efforts on <a href="http://seesmic.com/seesmic_desktop/windows/">Seesmic for Windows</a> (which has been converted from WPF to Silverlight recently). He is also the creator of one of my favorite tools: <a href="http://www.kaxaml.com/">Kaxaml</a>. Besides the cool name, it is the best loose xaml split-view editor out there. The session was all about introducing design to people who don’t have a background in design. As this was a pre-conference workshop, it probably won’t be released as a video you can watch offline. However, Robby also did <a href="http://videos.visitmix.com/MIX09/02W">this session last year</a>, and for some reason they did release it for MIX09. <strong>A must watch.</strong></td>
</tr>
<tr>
<td valign="top" width="68"><strong>WKSP03</strong></td>
<td valign="top" width="100"><a href="http://live.visitmix.com/MIX10/Sessions/WKSP03">Design Tools &amp; Techniques</a></td>
<td valign="top" width="10"><a href="http://ux.artu.tv/">Arturo Toledo</a>, <a href="http://www.archetype-inc.com/">Guido &amp; Luigi Rosso</a>, <a href="http://blogs.msdn.com/corrinab/">Corrina Black</a></td>
<td valign="top" width="419">I was very excited for this session because Arturo is a designer PM for Microsoft. Last year he published a great series on <a href="http://ux.artu.tv/?p=121">UI Design for Developers</a>. Unfortunately, they changed things around and he was not the one presenting but the content was still top-notch. A set of twins, one a developer (Luigi) and one a designer (Guido), presented for the first two hours. They talked about the design and development process for their company, Archetype. They also showed off some amazing experiences they’ve created and then how to do create those experiences in Expression Blend. One of those applications was a Windows Phone 7 news reader that was jaw-dropping (and demoed in the keynote) and it was obvious that they <em>get and totally understand</em> the designer/developer collaboration/workflow. I encouraged them to blog about this because I think a lot of people could learn from them. Finally, <a href="http://blogs.msdn.com/corrinab/">Corrina Black</a> finished off the third hour with a high-level Windows Phone 7 design overview. As before, since this was a workshop, the video will likely not be posted … which is too bad. <strong>Definitely worth a watch, if it becomes available.</strong></td>
</tr>
<tr>
<td valign="top" width="68"><strong>KEY01</strong></td>
<td valign="top" width="100"><a href="http://live.visitmix.com/MIX10/Sessions/KEY01">Keynote Day 1</a></td>
<td valign="top" width="10"><a href="http://weblogs.asp.net/scottgu/">Scott Guthrie</a>, Joe Belfiore</td>
<td valign="top" width="419">This keynote was all about Windows Phone 7 where Joe covered what it was about and Scott Guthrie covered the development tools (Visual Studio 2010) and technology (Silverlight, XNA) for the phone. The only disappointment was that they didn’t hand out a phone for us to start playing with. PDC really set the bar high for swag (they gave us a free netbook at that conference). I really, really like that I’m already a Windows Phone 7 developer due to my WPF and Silverlight skills.</td>
</tr>
<tr>
<td valign="top" width="68"><strong>DS11</strong></td>
<td valign="top" width="100"><a href="http://live.visitmix.com/MIX10/Sessions/DS11">Great User Experiences: Seamlessly Blending Technology &amp; Design</a></td>
<td valign="top" width="10">Andy Hood</td>
<td valign="top" width="419">This was a session by Andy Hood of <a href="http://www.akqa.co.uk/">AKQA</a>. He leads a creative development team there and ran through four AKQA gigs where they blended (think: no rough edges) technology with great design. My favorite was how they used <a href="http://photosynth.net/">Photosynth</a> in a Facebook Connect game called <a href="http://www.221b.sh/">221B</a> (that is associated with the <a href="http://www.imdb.com/title/tt0988045/">Sherlock Holmes</a> movie). They also went to great lengths to remove the Facebook branding and from what they showed, you couldn’t tell it was associated with Facebook at all. Favorite quote: <strong>“Beware the lollipop of mediocrity, lick it once and you will suck forever.”</strong><em> </em></td>
</tr>
<tr>
<td valign="top" width="68"><strong>EX14</strong></td>
<td valign="top" width="100"><a href="http://live.visitmix.com/MIX10/Sessions/EX14">Understanding the Model-View-ViewModel Pattern</a></td>
<td valign="top" width="10"><a href="http://www.galasoft.ch/">Laurent Bugnion</a></td>
<td valign="top" width="419">Here is another session that I was greatly looking forward to and I wasn’t disappointed. Laurent is a fellow <a href="http://groups.google.com/group/wpf-disciples">WPF Disciple</a> and his session was an Open Call session that was voted in by the people planning on attending MIX. That is something in and of itself. He covered what the pattern is and what the pattern is not with a special emphasis on how to keep things blendable (i.e. how to use MVVM and still be able to use the design surface in Blend). If you know me, you know that is right up my alley! He also went over what is contained in his <a href="http://mvvmlight.codeplex.com/">MVVM Light Toolkit</a>. Laurent in a word, rocks. <strong>Definitely a must watch.</strong></td>
</tr>
<tr>
<td valign="top" width="68"><strong>EX06</strong></td>
<td valign="top" width="100"><a href="http://live.visitmix.com/MIX10/Sessions/EX06">10 Ways to Attack a Design Problem and Come Out Winning</a></td>
<td valign="top" width="10"><a href="http://blog.nerdplusart.com/">Robby Ingebretsen</a></td>
<td valign="top" width="419">I’ve already mentioned (above) that this session along with the workshop were my favorites. This session was more practical, more of the how, and less of the theory of design. In particular, he went through and gave the audience 10 design attack moves. My favorite was number 5 which was: Learn Technique. And, as an example, he showed off several techniques that he uses in Photoshop … a couple of which use blend modes. Ah, now, you see why it was my favorite! I just so happened to have created a blend mode library for WPF &amp; Silverlight (see <a href="http://www.cplotts.com/2009/11/29/blend-modes-hue-saturation-color-and-luminosity-with-wpf-4-0/">here</a> and <a href="http://wpfslblendmodefx.codeplex.com/">here</a>). I really liked number 4 too which was: Sketch Early and Often. I don’t even have to say this: <strong>definitely a must watch.</strong></td>
</tr>
<tr>
<td valign="top" width="68"><strong>KEY02</strong></td>
<td valign="top" width="100"><a href="http://live.visitmix.com/MIX10/Sessions/KEY02">Keynote Day 2</a></td>
<td valign="top" width="10"><a href="http://weblogs.asp.net/scottgu/">Scott Guthrie</a>, Dean Hachamovitch, <a href="http://www.billbuxton.com">Bill Buxton</a>, <a href="http://www.douglaspurdy.com/">Doug Purdy</a></td>
<td valign="top" width="419">This keynote was focused on Internet Explorer 9, design, and OData (a web protocol for querying and updating data on the web). Dean Hachamovitch talked about what’s new in IE9 and I was particularly impressed with the continued trend in taking advantage of hardware acceleration and your system’s GPU. Doug Purdy talked about OData and Bill Buxton talked design with an emphasis on what it really means to design for natural experiences.</td>
</tr>
<tr>
<td valign="top" width="68"><strong>DS06</strong></td>
<td valign="top" width="100"><a href="http://live.visitmix.com/MIX10/Sessions/DS06">Touch in Public: Multi-touch Interaction Design for Kiosks &amp; Architectural Experiences</a></td>
<td valign="top" width="10">Jason Brush</td>
<td valign="top" width="419">Jason Brush from <a href="http://www.schematic.com/">Schematic</a> gave this presentation and it was focused on design of touch user experiences in a public setting, e.g. like kiosks or large screen wall type experiences. After recently getting an iPod Touch, I’ve become very interested in natural user interfaces (NUI) and it is quite fascinating (and obvious I guess) that you need to design differently for each of theses experiences. The basic message: design for the space that you will be in. Don’t forget the context of your application.</td>
</tr>
<tr>
<td valign="top" width="68"><strong>DS08</strong></td>
<td valign="top" width="100"><a href="http://live.visitmix.com/MIX10/Sessions/DS08">Creating Great Experiences Through Collaboration</a></td>
<td valign="top" width="10">Noah Gedrich, Eric Perez, Sean Scott</td>
<td valign="top" width="419">This session was presented by a trio of people from <a href="http://www.blitzagency.com/">Blitz</a>: a developer, a creative, and a user experience guy and its focus was how collaboration between all the disciplines can yield some amazing experiences. They talked about collaborating early and often and the mutual respect between disciplines required to make that happen. They also shared some of the practical methodology that Blitz uses, including how they brainstorm as a team. Another interesting thing they brought up was how they use the 6 human needs (significance, connection, certainty, variety, growth, and contribution) in order to craft immersive experiences.</td>
</tr>
<tr>
<td valign="top" width="68"><strong>DS12</strong></td>
<td valign="top" width="100"><a href="http://live.visitmix.com/MIX10/Sessions/DS12">Total Experience: A Design Methodology for Agencies</a></td>
<td valign="top" width="10">Conor Brady</td>
<td valign="top" width="419">This session was presented by an Irish fellow named Conor Brady of <a href="http://www.organic.com">Organic</a>. In it, he talked about Organic&#8217;s creative process and how they navigate the complex world of technology. One of the key things I was trying to get out of MIX personally was how other companies go about creating experiences and how they blend design and development in doing so … and so this session was right up my alley. Conor really knew his stuff and the experiences he shared were very cool, but it was a little too high level for my taste.</td>
</tr>
<tr>
<td valign="top" width="68"><strong>DS16</strong></td>
<td valign="top" width="100"><a href="http://live.visitmix.com/MIX10/Sessions/DS16">An Hour with Bill Buxton</a></td>
<td valign="top" width="10"><a href="http://www.billbuxton.com/">Bill Buxton</a></td>
<td valign="top" width="419">If you&#8217;ve never listened to Bill Buxton, you have to check this session out. He keynoted both last year and this year and is one of the most interesting people I&#8217;ve ever listened to. An influential designer on the world stage, he is also a principal researcher at Microsoft that is changing the company from within. He has a very engaging style: it is very laid-back and it&#8217;s like you&#8217;re talking to a friend or colleague. He was very keen on what he called BXT. BXT stands for Business, Experience, and Technology and he maintained that every team must have this trio of expertise and that they each must be on the same footing.</td>
</tr>
<tr>
<td valign="top" width="68"><strong>EX25</strong></td>
<td valign="top" width="100"><a href="http://live.visitmix.com/MIX10/Sessions/EX25">Design the Ordinary, Like the Fixie</a></td>
<td valign="top" width="10"><a href="http://texturadesign.com/blog/">DL Byron</a>, <a href="http://blueflavor.com/people/kevin-tamura/">Kevin Tamura</a></td>
<td valign="top" width="419">Yet another design/UX session that I attended. The main message here was of minimalism. Good design is hard, but it makes the complex … simple. That is, it is all about taking away. Once you can&#8217;t take anything else away, you&#8217;ve nailed it. This is a good message to internalize as a software developer for in my experience it is all too easy to keep cluttering up that user interface and creating a behemoth that scares (especially new) users and intimidates them.</td>
</tr>
<tr>
<td valign="top" width="68"><strong>EX18</strong></td>
<td valign="top" width="100"><a href="http://live.visitmix.com/MIX10/Sessions/EX18">Developing Natural User Interfaces with Microsoft Silverlight &amp; WPF 4 Touch</a></td>
<td valign="top" width="10"><a href="http://nui.joshland.org/">Joshua Blake</a></td>
<td valign="top" width="419">This was another Open Call session voted in by the community and it didn&#8217;t disappoint. It was focused on the practicalities of how to create natural user interfaces (NUI) with multi-touch and using Silverlight and WPF 4. In fact, he even gave his presentation using some software that he created (that he called Natural Show). <strong>Definitely one of the better session at the conference.</strong></td>
</tr>
<tr>
<td valign="top" width="68"><strong>CL03</strong></td>
<td valign="top" width="100"><a href="http://live.visitmix.com/MIX10/Sessions/CL03">Prototyping Rich Microsoft Silverlight Applications with Expression SketchFlow</a></td>
<td valign="top" width="10"><a href="http://www.designthinkingdigest.com/">Chris Bernard</a></td>
<td valign="top" width="419">In this session, Chris Bernard, a UX Evangelist at Microsoft went over how to use SketchFlow in order collaboratively sketch, prototype, and explore the user experience you are trying to create. This was a nitty-gritty session that personally exposed me to more of SketchFlow&#8217;s functionality. Chris did an amazing job and made several interesting claims about how useful SketchFlow is. The one that stands out is that he says that you should always be able to sketch up an animation faster in SketchFlow than doing it in code or xaml. He also said that you should start with SketchFlow animation before you use Blend behaviors. <strong>Great session and worth your time especially if you are new to SketchFlow like I am.</strong></td>
</tr>
</tbody>
</table>
<h3></h3>
<h3>Sessions That I Missed but Want to Watch</h3>
<table border="1" cellspacing="0" cellpadding="0" width="600">
<tbody>
<tr>
<td valign="top" width="122"><strong>Session Code</strong></td>
<td valign="top" width="214"><strong>Session Title</strong></td>
<td valign="top" width="121"><strong>Presenters</strong></td>
<td valign="top" width="141"><strong>Category</strong></td>
</tr>
<tr>
<td valign="top" width="122"><strong>CL02</strong></td>
<td valign="top" width="214"><a href="http://live.visitmix.com/MIX10/Sessions/CL02">Authoring for Windows Phone, Silverlight 4 and WPF 4 with Expression Blend</a></td>
<td valign="top" width="121">Christian Schormann, Peter Blois</td>
<td valign="top" width="141">Blend</td>
</tr>
<tr>
<td valign="top" width="122"><strong>CL55</strong></td>
<td valign="top" width="214"><a href="http://live.visitmix.com/MIX10/Sessions/CL55">Dynamic Layout &amp; Transitions for Microsoft Silverlight 4 with Microsoft Expression Blend</a></td>
<td valign="top" width="121">Kenny Young</td>
<td valign="top" width="141">Blend</td>
</tr>
<tr>
<td valign="top" width="122">&#160;</td>
<td valign="top" width="214">&#160;</td>
<td valign="top" width="121">&#160;</td>
<td valign="top" width="141">&#160;</td>
</tr>
<tr>
<td valign="top" width="122"><strong>EX15</strong></td>
<td valign="top" width="214"><a href="http://live.visitmix.com/MIX10/Sessions/EX15">Build Your Own MVVM Framework</a></td>
<td valign="top" width="121">Rob Eisenberg</td>
<td valign="top" width="141">MVVM</td>
</tr>
<tr>
<td valign="top" width="122"><strong>CL52</strong></td>
<td valign="top" width="214"><a href="http://live.visitmix.com/MIX10/Sessions/CL52">Microsoft Silverlight Optimization &amp; Extensibility with MEF</a></td>
<td valign="top" width="121">Glenn Block</td>
<td valign="top" width="141">MEF</td>
</tr>
<tr>
<td valign="top" width="122">&#160;</td>
<td valign="top" width="214">&#160;</td>
<td valign="top" width="121">&#160;</td>
<td valign="top" width="141">&#160;</td>
</tr>
<tr>
<td valign="top" width="122"><strong>DS03</strong></td>
<td valign="top" width="214"><a href="http://live.visitmix.com/MIX10/Sessions/DS03">Running with Wireframes: Taking Information Architecture (IA) into Design</a></td>
<td valign="top" width="121">Matt Brown</td>
<td valign="top" width="141">UX/Design</td>
</tr>
<tr>
<td valign="top" width="122"><strong>EX26</strong></td>
<td valign="top" width="214"><a href="http://live.visitmix.com/MIX10/Sessions/EX26">From Comp to Code: A Design Communion</a></td>
<td valign="top" width="121">Evan Sharp</td>
<td valign="top" width="141">UX/Design</td>
</tr>
<tr>
<td valign="top" width="122"><strong>DS04</strong></td>
<td valign="top" width="214"><a href="http://live.visitmix.com/MIX10/Sessions/DS04">The Life Cycle of a Wireframe</a></td>
<td valign="top" width="121">Nick Finck</td>
<td valign="top" width="141">UX/Design</td>
</tr>
<tr>
<td valign="top" width="122"><strong>DS13</strong></td>
<td valign="top" width="214"><a href="http://live.visitmix.com/MIX10/Sessions/DS13">The Elephant in the Room</a></td>
<td valign="top" width="121">Nishant Kothary</td>
<td valign="top" width="141">UX/Design</td>
</tr>
<tr>
<td valign="top" width="122"><strong>DC01</strong></td>
<td valign="top" width="234"><a href="http://live.visitmix.com/MIX10/Sessions/DS01">The Laws of User Experience</a></td>
<td valign="top" width="142">Anthony Franco</td>
<td valign="top" width="198">UX/Design</td>
</tr>
</tbody>
</table>
<h3></h3>
<p>Above are the ones I most want to watch, but I’ll definitely want to take in some of the Windows Phone 7 ones as well as some of the Silverlight ones. So, here those are (for easy access for myself and others).</p>
<h3>Other Interesting Sessions</h3>
<table border="1" cellspacing="0" cellpadding="0" width="599">
<tbody>
<tr>
<td valign="top" width="120"><strong>Session Code</strong></td>
<td valign="top" width="210"><strong>Session Title</strong></td>
<td valign="top" width="130"><strong>Presenters</strong></td>
<td valign="top" width="137"><strong>Category</strong></td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL13</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL13">Overview of the Windows Phone 7 Series Application Platform</a></td>
<td valign="top" width="130">Charlie Kindel</td>
<td valign="top" width="137">WP7</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL14</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL14">Windows Phone UI &amp; Design Language</a></td>
<td valign="top" width="130">Chad Roberts, Michael Smuga, Albert Shum</td>
<td valign="top" width="137">WP7</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL16</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL16">Building Windows Phone Applications with Silverlight, Part 1</a></td>
<td valign="top" width="130">Mike Harsh</td>
<td valign="top" width="137">WP7</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL17</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL17">Building Windows Phone Applications with Silverlight, Part 2</a></td>
<td valign="top" width="130">Peter Torr</td>
<td valign="top" width="137">WP7</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL18</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL18">Windows Phone Application Platform Architecture</a></td>
<td valign="top" width="130">Istvan Cseri</td>
<td valign="top" width="137">WP7</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL60</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL60">Silverlight Performance on Windows Phone</a></td>
<td valign="top" width="130">Seema Ramchandani</td>
<td valign="top" width="137">WP7</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL19</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL19">Development &amp; Debugging Tools for Building XNA Games for Windows Phone</a></td>
<td valign="top" width="130">Cullen Waters</td>
<td valign="top" width="137">WP7</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL22</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL22">Building a High Performance 3D Game for Windows Phone</a></td>
<td valign="top" width="130">Shawn Hargreaves, Tomas Vykruta</td>
<td valign="top" width="137">WP7</td>
</tr>
<tr>
<td valign="top" width="120">&#160;</td>
<td valign="top" width="210">&#160;</td>
<td valign="top" width="130">&#160;</td>
<td valign="top" width="137">&#160;</td>
</tr>
<tr>
<td valign="top" width="120"><strong>EX30</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/EX30">SVG: The Past, Present, and Future of Vector Graphics for the Web</a></td>
<td valign="top" width="130">Patrick Dengler, Doug Schepers</td>
<td valign="top" width="137">Graphics</td>
</tr>
<tr>
<td valign="top" width="120">&#160;</td>
<td valign="top" width="210">&#160;</td>
<td valign="top" width="130">&#160;</td>
<td valign="top" width="137">&#160;</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL56</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL56">A Case Study: Rapid WordPress Design &amp; Prototyping with Expression Web 3</a></td>
<td valign="top" width="130">Morten Rand-Hendriksen</td>
<td valign="top" width="137">WordPress</td>
</tr>
<tr>
<td valign="top" width="120">&#160;</td>
<td valign="top" width="210">&#160;</td>
<td valign="top" width="130">&#160;</td>
<td valign="top" width="137">&#160;</td>
</tr>
<tr>
<td valign="top" width="120"><strong>EX21</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/EX21">Syncing Audio, Video, and Animations in Microsoft Silverlight Applications</a></td>
<td valign="top" width="130">Dan Wahlin</td>
<td valign="top" width="137">Silverlight</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL07</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL07">Microsoft Silverlight 4 Overview: What’s in Store for Silverlight 4?</a></td>
<td valign="top" width="130">Keith Smith</td>
<td valign="top" width="137">Silverlight</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL10</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL10">Stepping Outside the Browser with Microsoft Silverlight 4</a></td>
<td valign="top" width="130">Ashish Shetty</td>
<td valign="top" width="137">Silverlight</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL15</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL15">An Introduction to Developing Applications for Microsoft Silverlight</a></td>
<td valign="top" width="130">Shawn Oster</td>
<td valign="top" width="137">Silverlight</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL08</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL08">Microsoft Silverlight 4 Business Applications</a></td>
<td valign="top" width="130">Scott Morrison</td>
<td valign="top" width="137">Silverlight</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL59</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL59">Unit Testing Silverlight &amp; Windows Phone Applications</a></td>
<td valign="top" width="130">Jeff Wilcox</td>
<td valign="top" width="137">Silverlight</td>
</tr>
<tr>
<td valign="top" width="120"><strong>EX07</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/EX07">Principles of Microsoft Silverlight Graphics &amp; Animation</a></td>
<td valign="top" width="130">Jeff Paries</td>
<td valign="top" width="137">Silverlight</td>
</tr>
<tr>
<td valign="top" width="120"><strong>EX31</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/EX31">Developing Multiplayer Games with Microsoft Silverlight 4</a></td>
<td valign="top" width="130">Mike Downey, Grant Skinner</td>
<td valign="top" width="137">Silverlight</td>
</tr>
<tr>
<td valign="top" width="120"><strong>EX38</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/EX38">Building Large-scale, Data Centric Applications with Silverlight</a></td>
<td valign="top" width="130">Roman Rubin, Ramya Parthasarathy</td>
<td valign="top" width="137">Silverlight</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL53</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL53">Flash Skills Applied to Microsoft Silverlight Design &amp; Development</a></td>
<td valign="top" width="130">Adam Kinney</td>
<td valign="top" width="137">Silverlight</td>
</tr>
<tr>
<td valign="top" width="120"><strong>EX54</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/EX54">An Enterprise Perspective on Silverlight 4</a></td>
<td valign="top" width="130">Robert Ellis</td>
<td valign="top" width="137">Silverlight</td>
</tr>
<tr>
<td valign="top" width="120"><strong>EX51</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/EX51">Building Finance Applications with Microsoft Silverlight 4</a></td>
<td valign="top" width="130">Cai Junyi</td>
<td valign="top" width="137">Silverlight</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL50</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL50">Search Engine Optimization for Microsoft Silverlight</a></td>
<td valign="top" width="130">Brad Abrams</td>
<td valign="top" width="137">Silverlight</td>
</tr>
<tr>
<td valign="top" width="120">&#160;</td>
<td valign="top" width="210">&#160;</td>
<td valign="top" width="130">&#160;</td>
<td valign="top" width="137">&#160;</td>
</tr>
<tr>
<td valign="top" width="120"><strong>CL30</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/CL30">Building Innovative Windows Client Software</a></td>
<td valign="top" width="130">Scott Hanselman, Tim Huckaby, Tim Sneath, Scott Stanfield, Dave Wolf</td>
<td valign="top" width="137">UX/Design</td>
</tr>
<tr>
<td valign="top" width="120"><strong>DS05</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/DS05">Total Experience Design</a></td>
<td valign="top" width="130">Paul Dawson</td>
<td valign="top" width="137">UX/Design</td>
</tr>
<tr>
<td valign="top" width="120"><strong>EX56</strong></td>
<td valign="top" width="210"><a href="http://live.visitmix.com/MIX10/Sessions/EX56">Designing Rich Experiences for Data Centric Applications</a></td>
<td valign="top" width="130">Yoshihiro Saito, Ken Azuma</td>
<td valign="top" width="137">UX/Design</td>
</tr>
<tr>
<td valign="top" width="120"><strong>FTL02</strong></td>
<td valign="top" width="230"><a href="http://live.visitmix.com/MIX10/Sessions/FTL02">Building Pivot Collections</a></td>
<td valign="top" width="149">Troy Schauls, Jeff Weir</td>
<td valign="top" width="194">UX/Design</td>
</tr>
</tbody>
</table>
<p>Heh. This recap got longer than (and took more work) I thought it would. Hope it is useful and helpful to others.</p>
<p>Enjoy!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.cplotts.com%2F2010%2F03%2F20%2Fmix10-recap%2F&amp;title=MIX10%20Recap" id="wpa2a_18">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cplotts.com/2010/03/20/mix10-recap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snoop: Now Supports WPF 4.0</title>
		<link>http://www.cplotts.com/2010/02/14/snoop-now-supports-wpf-4-0/</link>
		<comments>http://www.cplotts.com/2010/02/14/snoop-now-supports-wpf-4-0/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 19:18:59 +0000</pubDate>
		<dc:creator>cplotts</dc:creator>
				<category><![CDATA[Utilities]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[Snoop]]></category>

		<guid isPermaLink="false">http://www.cplotts.com/2010/02/14/snoop-now-supports-wpf-4-0/</guid>
		<description><![CDATA[This is just a quick post to point people to the fact that I have updated Snoop on CodePlex (http://snoopwpf.codeplex.com/) such that it now supports WPF 4.0. If you try to Snoop a WPF 4.0 application with the WPF 3.5 version, you will get the following error message: I speculate that this is because there is [...]]]></description>
			<content:encoded><![CDATA[<p>This is just a quick post to point people to the fact that I have updated Snoop on CodePlex (<a title="http://snoopwpf.codeplex.com/" href="http://snoopwpf.codeplex.com/">http://snoopwpf.codeplex.com/</a>) such that it now supports WPF 4.0.</p>
<p>If you try to Snoop a WPF 4.0 application with the WPF 3.5 version, you will get the following error message:</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2010/02/SnoopError.png"><img style="display: inline; border: 0px;" title="SnoopError" src="http://www.cplotts.com/wp-content/uploads/2010/02/SnoopError_thumb.png" border="0" alt="SnoopError" width="435" height="175" /></a></p>
<p>I speculate that this is because there is a brand new CLR with .NET 4.0 (WPF 4.0) applications. Yes, that’s right, a brand new CLR. We haven’t had one of those for a while.</p>
<p>If someone can confirm this or provide a better understanding of why I can’t Snoop WPF 4.0 applications without retargeting Snoop to .NET 4.0 … please shed some light for me.</p>
<p>So, there are now 4, count them, 4 versions of Snoop:</p>
<ol>
<li>Snoop 32-bit for WPF 3.5</li>
<li>Snoop 64-bit for WPF 3.5</li>
<li>Snoop 32-bit for WPF 4.0</li>
<li>Snoop 64-bit for WPF 4.0</li>
</ol>
<ol>You need to use the right version of Snoop in each particular situation … otherwise … thar will be problems, matey!</ol>
<p>I have also added another label to the app chooser so that you know which version you currently have up. Take a look … this is what it looks like for the 64-bit/WPF 4.0 version:</p>
<p><a href="http://www.cplotts.com/wp-content/uploads/2010/02/image.png"><img style="display: inline; border: 0px;" title="image" src="http://www.cplotts.com/wp-content/uploads/2010/02/image_thumb.png" border="0" alt="image" width="468" height="30" /></a></p>
<p>Let me know if you have any problems by creating a discussion (or participating in a current one) on the <a href="http://snoopwpf.codeplex.com">http://snoopwpf.codeplex.com</a> site.</p>
<p>Enjoy and happy Snooping! <img src='http://www.cplotts.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.cplotts.com%2F2010%2F02%2F14%2Fsnoop-now-supports-wpf-4-0%2F&amp;title=Snoop%3A%20Now%20Supports%20WPF%204.0" id="wpa2a_20">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.cplotts.com/2010/02/14/snoop-now-supports-wpf-4-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

