<?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>JAPF</title>
	<atom:link href="http://www.japf.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.japf.fr</link>
	<description>Jeremy Alles Presentation Foundation: WPF, .Net and modern software development</description>
	<lastBuildDate>Mon, 08 Mar 2010 14:31:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Changing the layout of a WPF TreeView to look like multiple ListBox</title>
		<link>http://www.japf.fr/2010/03/changing-the-layout-of-a-treeview-to-look-like-multiple-listbox/</link>
		<comments>http://www.japf.fr/2010/03/changing-the-layout-of-a-treeview-to-look-like-multiple-listbox/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 14:31:35 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[WPF]]></category>
		<category><![CDATA[databinding]]></category>
		<category><![CDATA[listbox]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=457</guid>
		<description><![CDATA[Last week at work I was requested to create a new control which should have the behavior of the WPF treeview with a template involving multiple ListBox. To understand what I mean, I wanted to change the layout of this:

To this:

Of course, selection must work properly:

I asked a question on StackOverflow about this control because [...]]]></description>
			<content:encoded><![CDATA[<p>Last week at work I was requested to create a new control which should have the behavior of the WPF treeview with a template involving multiple ListBox. To understand what I mean, I wanted to change the layout of this:</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2010/03/treeview1.png" rel="lightbox[457]"><img class="alignnone size-full wp-image-459" title="treeview1" src="http://www.japf.fr/wp-content/uploads/2010/03/treeview1.png" alt="" width="121" height="140" /></a></p>
<p>To this:</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2010/03/treeview2.png" rel="lightbox[457]"><img class="alignnone size-full wp-image-460" title="treeview2" src="http://www.japf.fr/wp-content/uploads/2010/03/treeview2.png" alt="" width="342" height="124" /></a></p>
<p>Of course, selection must work properly:</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2010/03/treeview3.png" rel="lightbox[457]"><img class="alignnone size-full wp-image-461" title="treeview3" src="http://www.japf.fr/wp-content/uploads/2010/03/treeview3.png" alt="" width="340" height="124" /></a></p>
<p>I asked a question <a href="http://stackoverflow.com/questions/2369901/change-the-layout-of-a-treeview-to-looks-like-multiple-listbox">on StackOverflow</a> about this control because I didn&#8217;t find any easy way to do it. I though at the beginning that playing with the templates of the TreeView and TreeViewItem would do the trick but it didn&#8217;t.</p>
<p>The solution I finally choose involves creating multiple ListBox and wire them together using DataBinding:</p>
<ul>
<li>I create a new CustomControl which inherits Control (I couldn&#8217;t use neither Selector or TreeView because I wouldn&#8217;t have been able to manage the SelectedItem property from the derived class)</li>
<li>In the template of this CustomControl is an ItemsControl. This ItemsControl has its ItemTemplate property set to a DataTemplate containing a ListBox.</li>
<li>The CustomControl has a Depth property of type int. This property indicates the number of ListBox that should be generated.</li>
<li>The CustomControl automatically databound ListBoxes together: each ListBox&#8217;s ItemsSource property is databound to the SelectedItem&#8217;s children property of the previous ListBox in the visual tree.</li>
<li>The CustomControl has a SelectedItem property and a SelectionChanged event (like Selector-derived class).</li>
<li>I added an IsReallySelected attached property to the ListBoxItem which are generated. This enables to databing an IsSelected property of the ViewModel class behind the control with the IsSelected of the ListBoxItem. I had to create an attached property because its value is true when the ListBoxItem is selected AND the parent ListBox has IsSelectionActive set to true.</li>
</ul>
<p>Here is the result:</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2010/03/control.png" rel="lightbox[457]"><img class="alignnone size-full wp-image-462" title="control" src="http://www.japf.fr/wp-content/uploads/2010/03/control.png" alt="" width="499" height="162" /></a></p>
<p>You can <a href="http://www.japf.fr/wp-content/uploads/2010/03/TestTreeViewList.zip">download the source code</a> of this sample (VS2010 RC solution).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2010/03/changing-the-layout-of-a-treeview-to-look-like-multiple-listbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mix10 is coming : Windows Phone 7 series sessions announced !</title>
		<link>http://www.japf.fr/2010/03/mix10-is-coming-windows-phone-7-series-sessions-announced/</link>
		<comments>http://www.japf.fr/2010/03/mix10-is-coming-windows-phone-7-series-sessions-announced/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 21:34:21 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[mix10]]></category>
		<category><![CDATA[wp7]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=449</guid>
		<description><![CDATA[Next monday, Mix10 will start in Las Vegas. Even though it&#8217;s a little bit far from my place here in France I&#8217;ll try to give feedback after the keynotes and as soon as first videos will be available. I&#8217;m sure you&#8217;re aware that major announcements this years at Mix will be about the Windows Phone [...]]]></description>
			<content:encoded><![CDATA[<p>Next monday, Mix10 will start in Las Vegas. Even though it&#8217;s a little bit far from my place here in France I&#8217;ll try to give feedback after the keynotes and as soon as first videos will be available. I&#8217;m sure you&#8217;re aware that major announcements this years at Mix will be about the Windows Phone 7 series.</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2010/03/3-windows-mobile.jpg" rel="lightbox[449]"><img class="alignnone size-full  wp-image-451" title="3-windows-mobile" src="http://www.japf.fr/wp-content/uploads/2010/03/3-windows-mobile.jpg" alt="" width="371" height="244" /></a></p>
<p>To make the long story short :</p>
<ul>
<li>Windows Mobile 7 was <a href="http://www.microsoft.com/presspass/presskits/windowsphone/VideoGallery.aspx">presented during last WMC</a> (Word Mobile Congress) under the name &#8220;Windows Phone 7 series&#8221;</li>
<li>Microsoft demonstrated the new UI experience coming with this new version</li>
<li>Microsoft <a href="http://blogs.msdn.com/ckindel/archive/2010/03/04/different-means-better-with-the-new-windows-phone-developer-experience.aspx">confirmed</a> that Silverlight and XNA will be the technologies available to develop on the Windows Phone</li>
<li>Microsoft <a href="http://www.engadget.com/2010/03/06/microsoft-shows-off-single-game-running-on-windows-windows-phon/">shows off single game running on Windows, Windows Phone and  Xbox</a></li>
</ul>
<p>I&#8217;m sure you realize that we are going to a very capable and powerful mobile platform here:</p>
<ul>
<li>all existing .Net and Silverlight developers are going to be able to write apps for the Windows Phone (this is HUGE)</li>
<li>we are going to finally have the 3 screens version of Microsoft: develop once and then run on your mobile, your PC and your TV (XBox)</li>
</ul>
<p>Mix10 website now contains the name and the description of the sessions which are dedicated to the Windows Phone 7 series:</p>
<ul>
<li><a href="http://live.visitmix.com/MIX10/Sessions/CL23">Designing and Developing for the Rich Mobile Web</a></li>
<li><a href="http://live.visitmix.com/MIX10/Sessions/CL22">Building a High Performance 3D Game for Windows Phone</a></li>
<li><a href="http://live.visitmix.com/MIX10/Sessions/CL21">Building Windows Phone Games</a></li>
<li><a href="http://live.visitmix.com/MIX10/Sessions/CL01">Changing our Game – an Introduction to Windows Phone 7 Series</a></li>
<li><a href="http://live.visitmix.com/MIX10/Sessions/CL15">An Introduction to Developing Applications for Microsoft Silverlight</a></li>
<li><a href="http://live.visitmix.com/MIX10/Sessions/CL14">Windows Phone UI and Design Language</a></li>
<li><a href="http://live.visitmix.com/MIX10/Sessions/CL13">Overview of the Windows Phone 7 Series Application Platform</a></li>
<li><a href="http://live.visitmix.com/MIX10/Sessions/CL16">Building Windows Phone Applications with Silverlight, Part 1</a></li>
<li><a href="http://live.visitmix.com/MIX10/Sessions/CL17">Building Windows Phone Applications with Silverlight, Part 2</a></li>
<li><a href="http://live.visitmix.com/MIX10/Sessions/CL59">Unit Testing Silverlight and Windows Phone 7 Applications</a></li>
<li><a href="http://live.visitmix.com/MIX10/Sessions/CL60">Silverlight Performance on Windows Phone</a></li>
<li><a href="http://live.visitmix.com/MIX10/Sessions/CL20">Distributing and Monetizing Windows Phone Applications and Games</a></li>
<li><a href="http://live.visitmix.com/MIX10/Sessions/CL19">Development and Debugging Tools for Building XNA Games for Windows Phone</a></li>
<li><a href="http://live.visitmix.com/MIX10/Sessions/CL18">Windows Phone Application Platform Architecture</a></li>
</ul>
<p>If you&#8217;re using Twitter, make sure to watch the <a href="http://twitter.com/#search?q=%23wp7">#wp7</a> hashtag. It make not any doubt the next week is going to be very informative about Windows Phone 7 series.So stay tuned !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2010/03/mix10-is-coming-windows-phone-7-series-sessions-announced/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Reflector to debug a .Net app in Visual Studio without the original source code</title>
		<link>http://www.japf.fr/2010/03/debug-any-app-in-visual-studio-without-the-original-sources/</link>
		<comments>http://www.japf.fr/2010/03/debug-any-app-in-visual-studio-without-the-original-sources/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 22:40:43 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Visual Stutio]]></category>
		<category><![CDATA[reflector]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=436</guid>
		<description><![CDATA[
Many .Net developers use to say &#8220;if you&#8217;re a serious developer, then you MUST Reflector&#8221;.
I would like to add another statement: &#8220;if you want to have an insight and powerful look at how things works internally, use Reflector Professional&#8221;.
Last Wednesday, RedGate released a new version of Reflector. You&#8217;re probably going to download it soon or [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro10.png" rel="lightbox[436]"><img class="alignnone size-full wp-image-445" title="ReflectorPro10" src="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro10.png" alt="" width="243" height="66" /></a></p>
<p>Many .Net developers use to say <em>&#8220;if you&#8217;re a serious developer, then you MUST Reflector&#8221;</em>.</p>
<p>I would like to add another statement:<em> &#8220;if you want to have an insight and powerful look at how things works internally, use Reflector Professional&#8221;</em>.</p>
<p>Last Wednesday, <a href="http://www.red-gate.com">RedGate</a> released a new version of Reflector. You&#8217;re probably going to download it soon or later because your actual version is going to expire. When you&#8217;ll download the free version, you&#8217;ll automatically get a trial (14 days) of the professional edition. Nice, but what&#8217;s so special about this edition ?</p>
<p>Let&#8217;s see a demonstration of what can be done using Reflector Pro. The following is not an ad for RedGate, I&#8217;m just totally amazed by their new feature <img src='http://www.japf.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>1. Reflector is now integrated into Visual Studio (2005, 2008 and 2010 RC):</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro2.png" rel="lightbox[436]"><img class="alignnone size-full wp-image-438" title="ReflectorPro2" src="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro2.png" alt="" width="261" height="174" /></a></p>
<p>2. Select the &#8220;Choose Assemblie to Debug&#8230;&#8221; option to select .Net assemblies for which you don&#8217;t have the source code. In this example, I&#8217;m using one of the Blend3&#8217;s assemblies:</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro3.png" rel="lightbox[436]"><img class="alignnone size-full wp-image-439" title="ReflectorPro3" src="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro3.png" alt="" width="437" height="319" /></a><a href="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro4.png" rel="lightbox[436]"></a></p>
<p>3. Once the process is completed, select the &#8220;Explore Decompiled Assemblies&#8221; option:</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro4.png" rel="lightbox[436]"><img class="alignnone size-full wp-image-440" title="ReflectorPro4" src="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro4.png" alt="" width="263" height="177" /></a></p>
<p>4. Browse to your target assembly and select an interesting type:</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro5.png" rel="lightbox[436]"><img class="alignnone size-full wp-image-441" title="ReflectorPro5" src="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro5.png" alt="" width="463" height="326" /></a></p>
<p>5. Put a breakpoint in the code, like you do every day when you debug an app:</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro6.png" rel="lightbox[436]"><img class="alignnone size-full wp-image-442" title="ReflectorPro6" src="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro6.png" alt="" width="859" height="136" /></a></p>
<p>6. Run the executable</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro7.png" rel="lightbox[436]"><img class="alignnone size-full wp-image-443" title="ReflectorPro7" src="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro7.png" alt="" width="261" height="175" /></a></p>
<p>7. Debug Blend3&#8217;s source code ! Use breakpoints, step into methods, inspect variables&#8230;</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro9.png" rel="lightbox[436]"><img class="alignnone size-full wp-image-444" title="ReflectorPro9" src="http://www.japf.fr/wp-content/uploads/2010/03/ReflectorPro9.png" alt="" width="1071" height="507" /></a></p>
<p>And that&#8217;s it. With Reflector Professional, you can:</p>
<ul>
<li>Decompile third-party assemblies       from within Visual Studio</li>
<li>Step through decompiled assemblies and use all the debugging techniques  you would use on your own code. This is incredibly powerful as we saw by debugging Blend3&#8243;s source code !</li>
</ul>
<p>Reflector Professional is available for about 195$ on <a href="http://www.red-gate.com/products/reflector/">RedGate website</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2010/03/debug-any-app-in-visual-studio-without-the-original-sources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minor update to the Silverlight MVVM frameworks explorer</title>
		<link>http://www.japf.fr/2010/01/minor-update-to-the-silverlight-mvvm-frameworks-explorer/</link>
		<comments>http://www.japf.fr/2010/01/minor-update-to-the-silverlight-mvvm-frameworks-explorer/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 12:48:19 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[mvvm]]></category>
		<category><![CDATA[toolkit]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=428</guid>
		<description><![CDATA[Thanks to the readers who gave me feedback on my Silverlight MVVM frameworks explorer I updated the application this morning in order to fix some problems.
Here is the change set:

fix incorrect URLs
fix incorrect &#8220;Silverlight Support&#8221; options. As Laurent Bugnion said in the comments, his MVVM Light framework was the only one supporting Silverlight which was [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to the readers who gave me feedback on my <a href="http://www.japf.fr/silverlight/mvvm/index.html">Silverlight MVVM frameworks explorer</a> I updated the application this morning in order to fix some problems.</p>
<p>Here is the change set:</p>
<ul>
<li>fix incorrect URLs</li>
<li>fix incorrect &#8220;Silverlight Support&#8221; options. As Laurent Bugnion said in the comments, his MVVM Light framework was the only one supporting Silverlight which was strange&#8230;</li>
<li>links now open in a new window</li>
</ul>
<p>Click on the following image to launch the Silverlight application.</p>
<p><a href="http://www.japf.fr/silverlight/mvvm/index.html"><img class="alignnone size-medium wp-image-370" title="silverlight-mvvm-app" src="http://www.japf.fr/wp-content/uploads/2009/11/silverlight-mvvm-app-300x156.png" alt="" width="314" height="163" /></a></p>
<p>About adding new frameworks, I&#8217;m not sure to add those which targets a much larger domain than MVVM itself. CompositeApplication guidance for example is a lot more than MVVM&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2010/01/minor-update-to-the-silverlight-mvvm-frameworks-explorer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WPF internals part 2 : how the WPF controls are organized ?</title>
		<link>http://www.japf.fr/2010/01/wpf-internals-how-the-wpf-controls-are-organised/</link>
		<comments>http://www.japf.fr/2010/01/wpf-internals-how-the-wpf-controls-are-organised/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 19:35:32 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[architecture]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=394</guid>
		<description><![CDATA[A couple of weeks ago, I started a series of articles about WPF internals organization. In the first article I did a tour of the core WPF classes. In this second part, I&#8217;m reviewing the organization of the various controls that exist in the framework.
Because the image of the diagram is pretty big, I decided [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago, I started a series of articles about <a href="http://www.japf.fr/wpf-internals/">WPF internals</a> organization. In <a href="http://www.japf.fr/2009/10/wpf-internals-part-1-what-are-the-core-wpf-classes/">the first article</a> I did a tour of the core WPF classes. In this second part, I&#8217;m reviewing the organization of the various controls that exist in the framework.</p>
<p>Because the image of the diagram is pretty big, I decided to use Silverlight DeepZoom and the result is just below this text <img src='http://www.japf.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  You can download the <a href="http://www.japf.fr/wp-content/uploads/2010/01/WpfControlsFull.png" target="_blank" rel="lightbox[394]">full image resolution here</a>. Please use the full screen button in the upper right corner of the viewer for the best browsing experience.</p>
<p><script type="text/javascript">
        function onSilverlightError(sender, args) 
        {
            var appSource = "";
            if (sender != null &#038;&#038; sender != 0)
            {
                appSource = sender.getHost().Source;
            }
            var errorType = args.ErrorType;
            var iErrorCode = args.ErrorCode;</p>
<p>            var errMsg = "Unhandled Error in Silverlight 2 Application " + appSource + "\n";</p>
<p>            errMsg += "Code: " + iErrorCode + "    \n";
            errMsg += "Category: " + errorType + "       \n";
            errMsg += "Message: " + args.ErrorMessage + "     \n";</p>
<p>            if (errorType == "ParserError") 
            {
                errMsg += "File: " + args.xamlFile + "     \n";
                errMsg += "Line: " + args.lineNumber + "     \n";
                errMsg += "Position: " + args.charPosition + "     \n";
            }
            else if (errorType == "RuntimeError") 
            {
                if (args.lineNumber != 0) 
                {
                    errMsg += "Line: " + args.lineNumber + "     \n";
                    errMsg += "Position: " + args.charPosition + "     \n";
                }
                errMsg += "MethodName: " + args.methodName + "     \n";
            }</p>
<p>            throw new Error(errMsg);
        }
</script></p>
<div id="slPluginHost">
		<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="540" height="500"><param name="minRuntimeVersion" value="3.0.40307.0" /><param name="autoUpgrade" value="false" /><param name="source" value="http://www.japf.fr/silverlight/wpfcontrolsexplorer/WpfControlsExplorer.xap"/><param name="onerror" value="onSilverlightError" /><param name="background" value="white" /><param name="initParams" value="adFile=http://www.japf.fr/silverlight/wpfcontrolsexplorer/GeneratedImages" /><a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"><br />
                <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/><br />
            </a><br />
        </object><br />
	<iframe style='visibility:hidden;height:0;width:0;border:0px'></iframe>
</div>
<ul></ul>
<p>Here are general remarks that might help you get information from those diagrams.</p>
<p>The top level <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.control.aspx">Control</a> class:</p>
<ul>
<li>Defines general UI properties such as Background, Foreground, BorderBrush and BorderThickness</li>
<li>Defines a set of properties to control font rendering: FontFamily, FontSize, FontStyle&#8230;</li>
<li>Has a DoubleClick event (other mouse events such as MouseUp/MouseDown comes from the UIElement class)</li>
</ul>
<p>Below the <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.control.aspx">Control</a> class, we have (this list is not complete):</p>
<ul>
<li>The <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.contentcontrol.aspx">ContentControl</a> class: those controls have&#8230; a single Content</li>
<li>The <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.aspx">ItemsControls</a> class which handles a collection of child controls</li>
<li>The <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.textboxbase.aspx">TextBoxBase</a> class which is the parent of <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.textbox.aspx">TextBox</a> and <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.richtextbox.aspx">RichTextBox</a></li>
<li>The <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.rangebase.aspx">RangerBase</a> class which handles a range (minimum, maximum) and which is the parent of the <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.scrollbar.aspx">ScrollBar</a>, <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.slider.aspx">Slider</a> and <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.progressbar.aspx">ProgressBar</a> classes</li>
<li>The <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.thumb.aspx">Thumb</a> class which has the ability to be dragged over a surface</li>
</ul>
<p>Below the <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.contentcontrol.aspx">ContentControl</a> class we can find many existing WPF controls:</p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.buttonbase.aspx">ButtonBase</a> and its child: <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.button.aspx">Button</a>, <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.togglebutton.aspx">ToggleButton</a> and <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.repeatbutton.aspx">RepeatButton</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.label.aspx">Label</a> (see <a href="http://joshsmithonwpf.wordpress.com/2007/07/04/differences-between-label-and-textblock/">this post</a> for an explanation of the differences between a Label and a TextBlock)</li>
<li><a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.listboxitem.aspx">ListBoxItem</a> and its children: <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.listviewitem.aspx">ListViewItem</a>, <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.comboboxitem.aspx">ComboBoxItem</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer.aspx">ScrollViewer</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.headeredcontentcontrol.aspx">HeaderedContentControl</a>, a <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.contentcontrol.aspx">ContentControl</a> that has both a Content and a Header. This is the case of the <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.expander.aspx">Expander</a>, <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.groupbox.aspx">GroupBox</a> and <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.tabitem.aspx">TabItem</a> controls</li>
<li><a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.tooltip.aspx">Tooltip</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/system.windows.window.aspx">Window</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.usercontrol.aspx">UserControl</a></li>
</ul>
<p>General other remarks:</p>
<ul>
<li>It&#8217;s funny to see that both Window and UserControl inherits from ContentControl. Before doing the diagram I though that Window came from somewhere else <img src='http://www.japf.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li>Having those diagrams in mind (or on a screen !) is very useful when you need to create your own custom control</li>
<li>We can see the differences between creating a custom control (inherit from Control or derived class) and a UserControl (inherit from UserControl)</li>
<li>.Net4 will introduce new controls (not in this diagram) in the WPF framework such: DataGrid, Calendar, TimePicker</li>
</ul>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fwww.japf.fr%2f2010%2f01%2fwpf-internals-how-the-wpf-controls-are-organised%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fwww.japf.fr%2f2010%2f01%2fwpf-internals-how-the-wpf-controls-are-organised%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2010/01/wpf-internals-how-the-wpf-controls-are-organised/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review of 2009 blog posts</title>
		<link>http://www.japf.fr/2010/01/review-of-2009-blog-posts/</link>
		<comments>http://www.japf.fr/2010/01/review-of-2009-blog-posts/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 19:01:42 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[mvvm]]></category>
		<category><![CDATA[resharper]]></category>
		<category><![CDATA[visual studio]]></category>
		<category><![CDATA[vs2010]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=391</guid>
		<description><![CDATA[In the past year, I&#8217;ve posted more than 30 articles on my blog. Here is a summary of those posts (link in bold are those which got the most traffic during the year). Obviously, MVVM was a very hot topic during 2009  
January

XAML guidelines: interviews of WPF masters
photoSuru: a WPF application with spectacular user [...]]]></description>
			<content:encoded><![CDATA[<p>In the past year, I&#8217;ve posted more than 30 articles on my blog. Here is a summary of those posts (link in bold are those which got the most traffic during the year). Obviously, MVVM was a very hot topic during 2009 <img src='http://www.japf.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>January</p>
<ul>
<li><a href="http://www.japf.fr/2009/01/xaml-guidelines-interviews-from-wpf-masters/">XAML guidelines: interviews of WPF masters</a></li>
<li><a href="http://www.japf.fr/2009/01/photosuru-a-wpf-application-with-spectacular-user-experience/">photoSuru: a WPF application with spectacular user experience</a></li>
<li><a href="http://www.japf.fr/2009/01/model-view-viewmodel-commands-and-inputbindings/">Model-View-ViewModel, Commands and InputBindings</a></li>
<li><a href="http://www.japf.fr/2009/01/filtering-with-or-without-icollectionview/">Filtering with or without ICollectionView ?</a></li>
<li><a href="http://www.japf.fr/2009/01/why-i-love-linq/">Why do I love Extension Methods in System.Linq ?</a></li>
<li><a href="http://www.japf.fr/2009/01/using-extension-methods-to-raise-an-event/">Using extension methods to raise an event</a></li>
</ul>
<p>February</p>
<ul>
<li><strong><a href="http://www.japf.fr/2009/02/very-simple-mvvm-demo-application/">Very simple MVVM demo application</a></strong></li>
<li><a href="http://www.japf.fr/2009/02/vs2010-ui/">VS2010 UI</a></li>
</ul>
<p>March</p>
<ul>
<li><a href="http://www.japf.fr/2009/03/french-article-about-mvvm-posted/">French article about MVVM posted !</a></li>
<li><strong><a href="http://www.japf.fr/2009/03/thinking-with-mvvm-data-templates-contentcontrol/">Thinking with MVVM: Data Templates + ContentControl</a></strong></li>
<li><a href="http://www.japf.fr/2009/03/mix09-starts-today/">MIX09 starts today !</a></li>
<li><a href="http://www.japf.fr/2009/03/first-look-at-expression-blend-3/">First look at Expression Blend 3 !</a></li>
<li><a href="http://www.japf.fr/2009/03/the-future-of-wpf-at-mix09/">The future of WPF at Mix09</a></li>
</ul>
<p>April</p>
<ul>
<li><a href="http://www.japf.fr/2009/04/adding-transitions-to-a-mvvm-based-dialog/">Adding transitions to a MVVM based dialog</a></li>
</ul>
<p>May</p>
<ul>
<li><a href="http://www.japf.fr/2009/05/browse-your-codebase-like-a-pro-with-resharper/">Browse your codebase like a pro with ReSharper</a></li>
<li><a href="http://www.japf.fr/2009/05/visual-studio-2010-beta1-available-with-net4-and-wpf4-included/">Visual Studio 2010: Beta1 available with .Net4 and WPF4 included</a></li>
<li><a href="http://www.japf.fr/2009/05/net4-wpf4-and-vs2010-interesting-links/">.Net4, WPF4 and VS2010 interesting links</a></li>
</ul>
<p>July</p>
<ul>
<li><a href="http://www.japf.fr/2009/07/beziersegment-demo-application/">BezierSegment demo application</a></li>
</ul>
<p>August</p>
<ul>
<li><a href="http://www.japf.fr/2009/08/learn-how-net-manages-memory-in-15min/">Learn how .Net manages memory in 15min</a></li>
<li><a href="http://www.japf.fr/2009/08/wpf-memory-leak-with-eventmanager-registerclasshandler/">WPF possible memory leak with EventManager.RegisterClassHandler</a></li>
</ul>
<p>September</p>
<ul>
<li><a href="http://www.japf.fr/2009/09/how-to-close-a-view-from-a-viewmodel/">How to close a View from a ViewModel ?</a></li>
</ul>
<p>October</p>
<ul>
<li><a href="http://www.japf.fr/2009/10/a-quick-tour-of-existing-mvvm-frameworks/">A quick tour of existing MVVM frameworks</a></li>
<li><a href="http://www.japf.fr/2009/10/the-cost-of-building-visual-trees/">The cost of building Visual Trees</a></li>
<li><a href="http://www.japf.fr/2009/10/announcing-the-wpf-internals-series/">Announcing the “WPF internals” series</a></li>
<li><a href="http://www.japf.fr/2009/10/analyzing-events-usage-using-a-resharper-plugin/">Analyzing events usage using a R# plugin</a></li>
<li><strong><a href="http://www.japf.fr/2009/10/wpf-internals-part-1-what-are-the-core-wpf-classes/">WPF internals part 1 : what are the core WPF classes ?</a></strong></li>
<li><a href="http://www.japf.fr/2009/10/vs2010-beta-2-coming-today/">VS2010 Beta 2 coming today !</a></li>
<li><a href="http://www.japf.fr/2009/10/measure-rendering-time-in-a-wpf-application/">How to measure rendering time in a WPF application ?</a></li>
</ul>
<p>November</p>
<ul>
<li><a href="http://www.japf.fr/2009/11/using-snoop-with-vs2010/">Using Snoop to take a look at VS2010 !</a></li>
<li><a href="http://www.japf.fr/2009/11/pdc09-some-announcements/">PDC09: some announcements</a></li>
<li><a href="http://www.japf.fr/2009/11/pdc09-some-wpf-sessions-are-available/">PDC09: some WPF sessions are available !</a></li>
<li><a href="http://www.japf.fr/2009/11/pdc09-wpf-application-performance-tuning/">PDC09: Advanced WPF Application Performance Tuning</a></li>
<li><a href="http://www.japf.fr/2009/11/pdc09-how-vs2010-was-built-with-wpf/">PDC09 : How VS2010 was built with WPF ?</a></li>
<li><strong><a href="http://www.japf.fr/2009/11/discover-compare-existing-mvvm-frameworks/">Discover and compare existing MVVM frameworks !</a></strong></li>
</ul>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;"><strong><a class="row-title" title="Edit “Discover and compare existing MVVM frameworks !”" href="post.php?action=edit&amp;post=369">Discover and compare existing MVVM frameworks !</a></strong></div>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2010/01/review-of-2009-blog-posts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Azure challenge</title>
		<link>http://www.japf.fr/2010/01/windows-azure-challenge/</link>
		<comments>http://www.japf.fr/2010/01/windows-azure-challenge/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 09:17:48 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[challenge]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=384</guid>
		<description><![CDATA[
A couple of weeks ago, the French developpez.com website launch a challenge in collaboration with Microsoft to help developers discover the Windows Azure platform.The goal was to succeed 5 different steps in order to win the challenge and get two prizes. The first one was a wifi teeshirt and the second one the new Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p><a href="../wp-content/uploads/2010/01/windows-azure-logo.png" rel="lightbox[384]"><img title="windows-azure-logo" src="../wp-content/uploads/2010/01/windows-azure-logo.png" alt="" width="300" height="56" /></a></p>
<p>A couple of weeks ago, the French <a href="www.developpez.com">developpez.com</a> website launch a challenge in collaboration with Microsoft to help developers discover the Windows Azure platform.The goal was to succeed 5 different steps in order to win the challenge and get two prizes. The first one was a wifi teeshirt and the second one the new Microsoft Arc Mouse.</p>
<p><a href="http://www.japf.fr/wp-content/uploads/2010/01/arc-mouse.png" rel="lightbox[384]"><img class="alignnone size-full wp-image-386" title="arc-mouse" src="http://www.japf.fr/wp-content/uploads/2010/01/arc-mouse.png" alt="" width="221" height="68" /></a></p>
<p><a href="http://www.japf.fr/wp-content/uploads/2010/01/tshirt.gif" rel="lightbox[384]"><img class="alignnone size-full wp-image-387" title="tshirt" src="http://www.japf.fr/wp-content/uploads/2010/01/tshirt.gif" alt="" width="140" height="166" /></a></p>
<p>It was my first real experience with the Azure platform and I was very happy to be able to manipulate the platform through various real-world example. The steps were the following:</p>
<ol>
<li>Deploy an existing application on Azure</li>
<li>Modify an existing application and then deploy it on Azure</li>
<li>Deploy an existing application using Blob storage</li>
<li>Fix a Winforms application using the Azure API to backup files and folder</li>
<li>Answers several questions about the Azure platform</li>
</ol>
<p>The steps were both educational (each time we discovered a new feature) and challenging (we must make it work !). I would like to thank very much the organizers of this event: Jérôme Lamber, Louis-Guillaume Morand, Phillippe Vialatte, Pierre Couzy and Thomas Lucchini.</p>
<p>Hopefully, we&#8217;ll see more challenges in the future on the <a href="www.developpez.com">developpez.com</a> website.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2010/01/windows-azure-challenge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2010 roadmap</title>
		<link>http://www.japf.fr/2010/01/2010-roadmap/</link>
		<comments>http://www.japf.fr/2010/01/2010-roadmap/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 17:27:45 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[roadmap]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[vs2010]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=379</guid>
		<description><![CDATA[I wish a happy new year to all my readers across the web. I thank you for all the feedback I got during the past year and I hope we will be able to exchange more in 2010. In this post, I’m sharing with you my roadmap for interesting events and dates in 2010:

January 7-10th: [...]]]></description>
			<content:encoded><![CDATA[<p>I wish a happy new year to all my readers across the web. I thank you for all the feedback I got during the past year and I hope we will be able to exchange more in 2010. In this post, I’m sharing with you my roadmap for interesting events and dates in 2010:</p>
<ul>
<li>January 7-10th: CES (Consumers Electronic Show) in Las Vegas</li>
</ul>
<ul>
<li>February 8<sup>th</sup> – 10<sup>th</sup>: Microsoft TechDays in Paris. I’ll be there  for the event and I’m hoping to be recruited by Microsoft for the ATE (Ask The Expert) stand where I’d like to share my WPF experience with other developers</li>
</ul>
<ul>
<li>March: release of Visual Studio 2010 and .Net 4.0 RC</li>
</ul>
<ul>
<li>March 15-17th: MIX10 in Las Vegas. We can expect more announcements about Silverlight4 and hopefully some information about the future of Silverlight on mobile and demos of Windows Mobile 7 as well</li>
</ul>
<ul>
<li>April: release of Visual Studio 2010 and .Net 4.0 final</li>
</ul>
<ul>
<li>Autumn : release of Windows Mobile 7</li>
</ul>
<p>I think 2010 is going to be an exciting year with VS2010, .Net4, Silverlight4 and hopefully a mobile version of Silverlight too. Stay tuned <img src='http://www.japf.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2010/01/2010-roadmap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discover and compare existing MVVM frameworks !</title>
		<link>http://www.japf.fr/2009/11/discover-compare-existing-mvvm-frameworks/</link>
		<comments>http://www.japf.fr/2009/11/discover-compare-existing-mvvm-frameworks/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 21:31:50 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[mvvm]]></category>
		<category><![CDATA[silverlifgt]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=369</guid>
		<description><![CDATA[A couple of weeks ago, I wrote a blog post where I compared the existing MVVM frameworks. This post became a bit famous in the WPF/Silverlight blog world and I received a lot of feedback to update the list, fix information, etc. I also got a request from Erik suggesting me to put all the [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago, I wrote <a href="http://www.japf.fr/2009/10/a-quick-tour-of-existing-mvvm-frameworks/">a blog post</a> where I compared the existing MVVM frameworks. This post became a bit famous in the WPF/Silverlight blog world and I received a lot of feedback to update the list, fix information, etc. I also got a request from Erik suggesting me to put all the datas in a matrix.</p>
<p>Today I&#8217;m proud to announce the <a href="http://www.japf.fr/silverlight/mvvm/index.html">MVVM frameworks Silverlight application</a> (click the image to open the Silverlight3 page).</p>
<p><a href="http://www.japf.fr/silverlight/mvvm/index.html"><img class="alignnone size-full wp-image-370" title="silverlight-mvvm-app" src="http://www.japf.fr/wp-content/uploads/2009/11/silverlight-mvvm-app.png" alt="silverlight-mvvm-app" width="562" height="293" /></a></p>
<p>A couple of observation:</p>
<ul>
<li>please contact me via <a href="http://japf.fr/contact">this blog</a> or <a href="http://www.twitter.com/jalpf">twitter</a> if you find incorrect information</li>
<li>I&#8217;m not judging anybody&#8217;s work by giving rating, it&#8217;s just my personal feeling to have an easiest way to sort the data</li>
</ul>
<p>Hope you&#8217;ll like it <img src='http://www.japf.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2009/11/discover-compare-existing-mvvm-frameworks/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>PDC09 : How VS2010 was built with WPF ?</title>
		<link>http://www.japf.fr/2009/11/pdc09-how-vs2010-was-built-with-wpf/</link>
		<comments>http://www.japf.fr/2009/11/pdc09-how-vs2010-was-built-with-wpf/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 11:24:01 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Visual Stutio]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[pdc]]></category>
		<category><![CDATA[vs2010]]></category>

		<guid isPermaLink="false">http://www.japf.fr/?p=362</guid>
		<description><![CDATA[
In my last blog post, I did a review of a PDC09 Session &#8220;Advanced performance tuning with WPF&#8221;. Today, I&#8217;m doing a review for another very interesting session &#8220;How VS2010 was built with WPF ?&#8221;. The video is available here.

Why did Microsoft choose WPF for VS2010 ?

Technological: prove the capabilities of WPF4
Architectural

Separated presentation
Support for long [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.japf.fr/wp-content/uploads/2009/08/PDC09.jpg" rel="lightbox[362]"><img class="alignnone size-full wp-image-245" title="PDC09" src="http://www.japf.fr/wp-content/uploads/2009/08/PDC09.jpg" alt="PDC09" width="79" height="109" /></a></p>
<p>In my <a href="http://www.japf.fr/2009/11/pdc09-wpf-application-performance-tuning/">last blog post</a>, I did a review of a PDC09 Session &#8220;Advanced performance tuning with WPF&#8221;. Today, I&#8217;m doing a review for another very interesting session &#8220;<strong>How VS2010 was built with WPF</strong> ?&#8221;. The video is available <a href="http://microsoftpdc.com/Sessions/CL09">here</a>.</p>
<p style="text-align: center;"><a href="http://www.japf.fr/wp-content/uploads/2009/11/vs2008tovs2010.png" rel="lightbox[362]"><img class="size-large wp-image-365 aligncenter" title="vs2008tovs2010" src="http://www.japf.fr/wp-content/uploads/2009/11/vs2008tovs2010-1024x361.png" alt="vs2008tovs2010" width="543" height="191" /></a></p>
<p>Why did Microsoft choose WPF for VS2010 ?</p>
<ul>
<li>Technological: prove the capabilities of WPF4</li>
<li>Architectural
<ul>
<li>Separated presentation</li>
<li>Support for long range road map (+10 years)</li>
</ul>
</li>
<li>Key VS2010 features need it: Editor, Architecture Editor, Parallel tools debugging</li>
<li>Take an opportunity to give feedback for WPF4: when VS2010 development started, .Net 3.5 SP1 was just shipped and it was the right time to give feedback for the new features and fixes for WPF4.</li>
</ul>
<p>It is worth noting that VS2010 is a project that is being watched carefully inside Microsoft. We can expect that more Microsoft applications will move to WPF in the next coming years.</p>
<p>What WPF features are used ?</p>
<ul>
<li>Declarative UI using XAML</li>
<li>Databinding</li>
<li>Styles and templates</li>
<li>Application Resources</li>
<li>Interop Win32 (because they did not have the time to rewrite everything using WPF or because features doest not need to use WPF for example de WinForms designer&#8230;)</li>
<li>Integration with the message loop (to deal with particular focus issues)</li>
<li>New text stack (part of WPF4) based on DirectWrite</li>
</ul>
<p>Staged approach</p>
<ul>
<li>Define data models: a huge diagramming and architectural exercice</li>
<li>Replace the main window with WPF (only the window not its content !) to start the mix approach (managed/unmanaged, WPF/Hwnds)</li>
<li>Write new managed components: Window manager, command bar presentation</li>
<li>Scout with other VS teams</li>
<li>Test, Test, Test&#8230;</li>
</ul>
<p>What were the challenges ?</p>
<ul>
<li>Mixed mode application: native and managed code; WPF and HWNDs (Win32 or WinForms)</li>
<li>Keep existing extensions working and allow new extensions to take advantage of WPF</li>
<li>Don&#8217;t &#8220;stop the train&#8221; other teams were working at the same time on the product to add new functionalities</li>
<li>Text clarity</li>
<li>Performance</li>
<li>Focus management</li>
</ul>
<p>You can watch the session <a href="http://microsoftpdc.com/Sessions/CL09">here</a> if you want more detail and demos of what I mention in this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.japf.fr/2009/11/pdc09-how-vs2010-was-built-with-wpf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
