<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Jim O'Neil's Blog : WPF</title><link>http://blogs.msdn.com/jimoneil/archive/tags/WPF/default.aspx</link><description>Tags: WPF</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Awesome WPF/Silverlight Guidance</title><link>http://blogs.msdn.com/jimoneil/archive/2009/06/12/awesome-wpf-silverlight-guidance.aspx</link><pubDate>Fri, 12 Jun 2009 21:38:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9737194</guid><dc:creator>joneil</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/jimoneil/comments/9737194.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jimoneil/commentrss.aspx?PostID=9737194</wfw:commentRss><description>&lt;p&gt;I don’t casually throw around words like ‘awesome', but this is indeed it.&amp;#160; If you’re building applications for WPF and/or Silverlight, you’ve certainly become XAMLized, since XAML (eXtensible Markup Language) is the “common” user-interface description markup.&amp;#160;&amp;#160; Well, more-or-less “common”.&amp;#160; Both technologies use XAML, but the level of support has subtle nuances, and things that are supported on WPF may not be supported on Silverlight (though 99% of Silverlight is supported by WPF).&amp;#160; It’s not always obvious what the nuances are, and like me, you may have discovered them empirically – and uttered a few words of frustration not printable here.&lt;/p&gt;  &lt;p&gt;The good news is that WPF and Silverlight are aligning, so “we feel your pain,” and the development process and support will continue to converge.&amp;#160; Until we reach that nirvana though, the &lt;a href="http://wpfslguidance.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28278"&gt;WPF-Silverlight Comparison Whitepaper&lt;/a&gt; is a MUST read for anyone embarking on (or currently developing) WPF and Silverlight applications.&amp;#160; It’s a comprehensive 69-page document on just those nuances between the technologies that we prefer to know about before designing and coding – versus after!&lt;/p&gt;  &lt;p&gt;The document was produced by our friends at &lt;a href="http://wintellect.com/"&gt;Wintellect&lt;/a&gt; at the behest of Microsoft, and is, well, an awesome reference for developers in this space.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9737194" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jimoneil/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/jimoneil/archive/tags/WPF/default.aspx">WPF</category></item><item><title>NERD to Host XAML Fest - May 27th - 28th</title><link>http://blogs.msdn.com/jimoneil/archive/2009/05/11/nerd-to-host-xaml-fest-may-27th-28th.aspx</link><pubDate>Tue, 12 May 2009 01:04:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9604755</guid><dc:creator>joneil</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/jimoneil/comments/9604755.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jimoneil/commentrss.aspx?PostID=9604755</wfw:commentRss><description>&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 20px 5px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" align="left" src="http://blogs.msdn.com/blogfiles/usisvde/WindowsLiveWriter/JoinforXAMLFestOnlineJune15_ECA0/xamlfest_2.png" /&gt;My colleague, John Pelak, is bringing &lt;a href="http://blogs.msdn.com/usisvde/archive/2009/05/05/you-re-invited-to-xamlfest-boston-may-27-may-28.aspx"&gt;another edition of the XAML Fest&lt;/a&gt; series to the Boston area, this time to Microsoft’s &lt;a href="http://www.microsoftcambridge.com"&gt;New England Research and Development Center&lt;/a&gt; (aka NERD) in Cambridge.&amp;#160; The past several sessions in this area filled to capacity quickly, and like those sessions we’re limiting attendance to provide an effective hands-on learning experience… in other words, don’t delay in signing up!&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;By the way, this is revamped content in light of announcements at &lt;a href="http://live.visitmix.com/"&gt;MIX 09&lt;/a&gt;, so content now includes Expression Blend 3, Silverlight 3, and other cool features that were announced in March.&amp;#160; John has all the details, agenda, and a FAQ &lt;a href="http://blogs.msdn.com/usisvde/archive/2009/05/05/you-re-invited-to-xamlfest-boston-may-27-may-28.aspx"&gt;at his blog post&lt;/a&gt;, but here are the particulars on registration and venue.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="399" align="center"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="71"&gt;&lt;strong&gt;Date:&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="326"&gt;Wed. May 27 and Thur. 28, 2009&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="71"&gt;&lt;strong&gt;Time:&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="326"&gt;9 a.m. – 5 p.m.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="71"&gt;&lt;strong&gt;Place:&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="326"&gt;&lt;a href="http://www.microsoftcambridge.com"&gt;Microsoft NERD&lt;/a&gt;           &lt;br /&gt;1 Memorial Drive           &lt;br /&gt;Cambridge, MA&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="71"&gt;&lt;strong&gt;Cost:&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="326"&gt;Free (vouchers available for on-site parking)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="71"&gt;&lt;strong&gt;Register:&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="326"&gt;e-mail &lt;a href="mailto:xamlfest-boston@live.com"&gt;xamlfest-boston@live.com&lt;/a&gt;           &lt;br /&gt;(include name and e-mail of attendees)&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you can’t make the live edition, then you’re still in luck.&amp;#160; &lt;em&gt;XAMLFest online&lt;/em&gt;, a combination of live and recorded content, hits the airwaves from June 1st through the 5th.&amp;#160; You can &lt;a href="http://blogs.msdn.com/usisvde/archive/2009/05/10/join-for-xamlfest-recorded-sessions-online-live-june-1-5.aspx"&gt;read more about the scheduling and registration here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9604755" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jimoneil/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/jimoneil/archive/tags/Massachusetts/default.aspx">Massachusetts</category><category domain="http://blogs.msdn.com/jimoneil/archive/tags/WPF/default.aspx">WPF</category></item><item><title>RIA = Developer + Designer</title><link>http://blogs.msdn.com/jimoneil/archive/2009/04/20/ria-developer-designer.aspx</link><pubDate>Mon, 20 Apr 2009 23:39:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9557274</guid><dc:creator>joneil</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/jimoneil/comments/9557274.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jimoneil/commentrss.aspx?PostID=9557274</wfw:commentRss><description>&lt;p&gt;That’s an equation you’ll typically hear us evangelists espouse, with &lt;a href="http://msdn.microsoft.com/en-us/library/ms752059.aspx"&gt;XAML&lt;/a&gt; (eXtensible Application Markup Language) being the &lt;em&gt;lingua franca&lt;/em&gt; of the developer/designer relationship, and Visual Studio and Expression Studio the tools of choice.&amp;#160; It’s a compelling story and one that’s easy to talk about, but face it, in my role, I mostly talk-the-talk, and it’s you guys that have to walk-the-walk.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.cynergysystems.com"&gt;&lt;/a&gt;&lt;a href="http://www.cynergysystems.com/"&gt;&lt;img style="border-right-width: 0px; margin: 15px 0px 5px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://blogs.msdn.com/blogfiles/jimoneil/WindowsLiveWriter/RIADeveloperDesigner_EA1B/image_3.png" width="240" height="75" /&gt;&lt;/a&gt;&lt;/a&gt; Well, if anyone walks-the-walk, it’s &lt;a href="http://www.cynergysystems.com"&gt;Cynergy Systems&lt;/a&gt;, whose hallmark is RIA, whether it be with WPF and Silverlight or &lt;a href="http://www.adobe.com"&gt;those other guys&lt;/a&gt;.&amp;#160; A recent &lt;a href="http://www.forrester.com/Research/Document/Excerpt/0,7211,54243,00.html"&gt;Forrester Research Case Study&lt;/a&gt; profiles Cynergy’s roots and approach to building software in this emerging space.&amp;#160; &lt;/p&gt;  &lt;p&gt;In a pretty amazing move, Cynergy announced it is providing the seven-page report &lt;strong&gt;&lt;em&gt;free&lt;/em&gt;&lt;/strong&gt; to the community (&lt;a href="http://www.cynergysystems.com/blogs/page/davewolf?entry=how_do_you_do_ria"&gt;details in Dave Wolf’s blog post&lt;/a&gt;).&amp;#160; It’s a great read, and technology-agnostic, so focuses on how to approach developing RIA solutions versus the specific tools and technologies that you might employ to deliver them.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9557274" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jimoneil/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/jimoneil/archive/tags/WPF/default.aspx">WPF</category></item><item><title>Get into the MIX09</title><link>http://blogs.msdn.com/jimoneil/archive/2009/03/04/get-into-the-mix09.aspx</link><pubDate>Wed, 04 Mar 2009 18:43:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9458609</guid><dc:creator>joneil</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/jimoneil/comments/9458609.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jimoneil/commentrss.aspx?PostID=9458609</wfw:commentRss><description>&lt;p&gt;It’s exactly two weeks until &lt;a href="http://2009.visitmix.com/"&gt;MIX09&lt;/a&gt;, and here’s the scene from my home office window juxtaposed with one of the MIX09 venue.&amp;#160; Vegas is looking pretty good, huh?&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="5" align="center"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://www.weather.com/weather/local/01720"&gt;&lt;img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Will Winter never end?" border="0" alt="Will Winter never end?" src="http://blogs.msdn.com/blogfiles/jimoneil/WindowsLiveWriter/GetintotheMIX09_96D1/DSCN0843_1.jpg" width="180" height="240" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;&lt;a href="http://www.venetian.com/"&gt;&lt;img style="border-right-width: 0px; margin: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="O solo mio!" border="0" alt="O solo mio!" src="http://newton.typepad.com/content/images/2007/03/23/venetian.jpg" width="288" height="237" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Weather aside, there’s a lot of other great things in store at this year’s edition of *the* conference focused on next generation web, rich internet applications, and the collaboration between developers and designers.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://2009.visitmix.com/"&gt;&lt;img style="border-right-width: 0px; margin: 0px 15px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://blogs.msdn.com/blogfiles/jimoneil/WindowsLiveWriter/GetintotheMIX09_96D1/image_3.png" width="240" height="54" /&gt;&lt;/a&gt; There’s nearly &lt;a href="https://content.visitmix.com/2009/sessions/?categories=Silverlight"&gt;30 sessions on Silverlight&lt;/a&gt; alone, including not one, not two, but three on what’s in store with Silverlight 3.&amp;#160; There’s quite a few on ASP.NET MVC as well (for which &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ee4b2e97-8a72-449a-82d2-2f720d421031&amp;amp;displaylang=en"&gt;RC2 was made available&lt;/a&gt; last night).&amp;#160; Add to that Azure, Live Services, UI/UX, and you’ve got about &lt;a href="https://content.visitmix.com/2009/sessions/"&gt;10 dozen sessions&lt;/a&gt; to choose from.&lt;/p&gt;  &lt;p&gt;Check out the MIX09 site and schedule your &lt;strike&gt;vacation&lt;/strike&gt; training now!&amp;#160; And if you can’t be there, join Chris, Bob, and me on the &lt;a href="http://blogs.msdn.com/jimoneil/archive/2009/02/16/northeast-roadshow-march-madness-edition.aspx"&gt;Northeast Roadshow&lt;/a&gt;.&amp;#160; We’ll actually be in Hartford and Augusta while MIX is going on.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9458609" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jimoneil/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/jimoneil/archive/tags/MVC/default.aspx">MVC</category><category domain="http://blogs.msdn.com/jimoneil/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/jimoneil/archive/tags/MIX/default.aspx">MIX</category><category domain="http://blogs.msdn.com/jimoneil/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Prism 2: Now With Silverlight</title><link>http://blogs.msdn.com/jimoneil/archive/2009/02/18/prism-2-now-with-silverlight.aspx</link><pubDate>Thu, 19 Feb 2009 00:11:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9432509</guid><dc:creator>joneil</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/jimoneil/comments/9432509.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jimoneil/commentrss.aspx?PostID=9432509</wfw:commentRss><description>&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 10px 15px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://blogs.msdn.com/blogfiles/jimoneil/WindowsLiveWriter/Prism2NowWithSilverlight_E38E/image_3.png" width="155" height="240" /&gt; Back in the fall on our &lt;a href="http://blogs.msdn.com/jimoneil/archive/2008/09/02/northeast-roadshow.aspx"&gt;Northeast Roadshow&lt;/a&gt;, I presented on the various User &lt;strike&gt;Interface&lt;/strike&gt; Experience options available for both smart client and browser-based applications.&amp;#160; At the end of the discussion, I mentioned the &lt;a href="http://msdn.microsoft.com/en-us/library/dd458807.aspx"&gt;Composite Application Guidance for WPF&lt;/a&gt; (also known by its code name of Prism).&amp;#160; That body of work, the product of &lt;a href="http://msdn.microsoft.com/en-us/practices/default.aspx"&gt;Microsoft’s patterns &amp;amp; practices team&lt;/a&gt;, was focused on helping you build enterprise-level, &lt;em&gt;composite&lt;/em&gt; client applications, namely focusing on building loosely-coupled, pluggable components that can work together in the overall application.&lt;/p&gt;  &lt;p&gt;While many of the ideas and techniques espoused by that guidance transcend WPF itself, there was obviously a “hole” in that Silverlight was not specifically addressed.&amp;#160; At the time of my presentation, I mentioned a Silverlight version was ‘in the works’, and today the &lt;a href="http://msdn.microsoft.com/en-us/library/dd458809.aspx"&gt;Composite Application Guidance for WPF and Silverlight 2.0&lt;/a&gt; was announced:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;offering insight on building modular and composite Silverlight applications, &lt;/li&gt;    &lt;li&gt;simplifying the composition of the user interface, and &lt;/li&gt;    &lt;li&gt;providing guidance and light tooling on &lt;strong&gt;reusing code between Silverlight and WPF&lt;/strong&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I’ve bolded part of the last point because it’s the most compelling piece of this to me.&amp;#160; It’s the first official recommendation I’ve seen for the oft-asked question of best practices for delivering WPF and Silverlight experiences from a common code-base.&amp;#160; I'm hoping it will help ease some of that “analysis paralysis” that we all have when trying to best leverage a new technology (or in this case TWO new techologies!).&lt;/p&gt;  &lt;p&gt;“In the box” (so to speak), you’ll find the following.&amp;#160; Enjoy!&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Composite Application Library, &lt;/li&gt;    &lt;li&gt;Reference Implementation (Stock Traders application in WPF and Silverlight), &lt;/li&gt;    &lt;li&gt;Quick starts (9), &lt;/li&gt;    &lt;li&gt;How-Tos (26), and&lt;/li&gt;    &lt;li&gt;Lots of documentation for everything you want to know about UI patterns and client architectures. &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9432509" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jimoneil/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/jimoneil/archive/tags/WPF/default.aspx">WPF</category></item><item><title>B is for... BAML</title><link>http://blogs.msdn.com/jimoneil/archive/2009/01/12/b-is-for-baml.aspx</link><pubDate>Mon, 12 Jan 2009 08:21:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9306940</guid><dc:creator>joneil</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/jimoneil/comments/9306940.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jimoneil/commentrss.aspx?PostID=9306940</wfw:commentRss><description>&amp;nbsp; &lt;table cellspacing="0" cellpadding="2" width="445" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="center" align="left" width="80"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/jimoneil/WindowsLiveWriter/Bisfor.BAML_A1B6/b_2.gif"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 5px 10px; border-right-width: 0px" height="67" alt="b" src="http://blogs.msdn.com/blogfiles/jimoneil/WindowsLiveWriter/Bisfor.BAML_A1B6/b_thumb.gif" width="52" align="center" border="0"&gt;&lt;/a&gt;&lt;/td&gt; &lt;td valign="top" align="left" width="68"&gt; &lt;p&gt;BAML is.... &lt;/p&gt;&lt;/td&gt; &lt;td valign="top" align="left" width="294"&gt; &lt;p&gt; &lt;ol style="list-style-type: lower-alpha"&gt; &lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Bamm-Bamm_Rubble"&gt;Bamm-Bamm Rubble's&lt;/a&gt; rapper persona  &lt;li&gt;Binary Application Markup Language  &lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Origin_of_Superman#Basic_Story"&gt;Superman's&lt;/a&gt; long lost uncle  &lt;li&gt;A &lt;a href="http://encarta.msn.com/encyclopedia_761563716/Anagram.html"&gt;mixed-up&lt;/a&gt; &lt;a href="http://dictionary.reference.com/browse/ovine"&gt;ovine&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;Well, in keeping with the letter of the week, the answer is, of course, &lt;em&gt;b&lt;/em&gt;, Binary Application Markup Language.&amp;nbsp; &lt;/p&gt; &lt;p&gt;BAML is the compiled version of&amp;nbsp; the &lt;a href="http://msdn.microsoft.com/en-us/library/ms752059.aspx"&gt;XAML (eXtensible Application Markup Language)&lt;/a&gt; markup that describes the user interface of your application.&amp;nbsp; At build time, the XAML is parsed and tokenized into this binary format to improve runtime performance (over parsing and loading the source XAML).&amp;nbsp; BAML also provides a mechanism to support &lt;a href="#localization"&gt;application localization&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;In general, the existence of BAML is an implementation detail, but you can get a glimpse of it when building applications in Visual Studio by looking in the &lt;em&gt;obj&lt;/em&gt; subdirectory for your build environment.&lt;/p&gt; &lt;p align="center"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="191" alt="image" src="http://blogs.msdn.com/blogfiles/jimoneil/WindowsLiveWriter/Bisfor.BAML_A1B6/image_5.png" width="405" border="0"&gt; &lt;/p&gt; &lt;p align="left"&gt;Also in that directory is a &lt;em&gt;g.vb&lt;/em&gt; (or &lt;em&gt;g.cs&lt;/em&gt;) file that implements the &lt;font face="Consolas"&gt;IComponentConnector&lt;/font&gt; interface, the two methods of which (&lt;font face="Consolas"&gt;InitializeComponent&lt;/font&gt; and &lt;font face="Consolas"&gt;Connect&lt;/font&gt;) serve to instantiate the user interface from the BAML resource.&lt;/p&gt; &lt;p align="left"&gt;The BAML is ultimately stored as a resource in the resulting EXE file as well.&amp;nbsp; Using the &lt;a href="http://www.red-gate.com/products/reflector/"&gt;.NET Reflector&lt;/a&gt; along with the &lt;a href="http://www.codeplex.com/reflectoraddins/Wiki/View.aspx?title=BamlViewer&amp;amp;referringTitle=Home"&gt;BAML Viewer&lt;/a&gt; plug-in, you can disassemble the BAML format into its original XAML (see below):&lt;/p&gt; &lt;p align="left"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/jimoneil/WindowsLiveWriter/Bisfor.BAML_A1B6/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt=".NET Reflector" src="http://blogs.msdn.com/blogfiles/jimoneil/WindowsLiveWriter/Bisfor.BAML_A1B6/image_thumb_1.png" width="520" border="0"&gt;&lt;/a&gt; &lt;/p&gt;&lt;a name="#localization"&gt; &lt;p align="left"&gt;One notable direct use of BAML in your development tasks is during &lt;a href="http://en.wikipedia.org/wiki/Internationalization_and_localization"&gt;application localization&lt;/a&gt;.&amp;nbsp;&amp;nbsp; There are several options for localization; however, choosing BAML as the mechanism has the benefits that you can perform the localization as a post-build step as well as merge prior localizations with a newer version of your application.&amp;nbsp; &lt;/p&gt; &lt;p align="left"&gt;The steps of localization can be summarized as below (see &lt;a href="http://msdn.microsoft.com/en-us/library/ms788718.aspx"&gt;MSDN&lt;/a&gt; for a more detailed description of the process):&lt;/p&gt; &lt;ol&gt; &lt;li&gt; &lt;div align="left"&gt;Mark the localizable UI elements with a unique &lt;font face="Consolas"&gt;x:Uid&lt;/font&gt; attribute in your source XAML. You can do this manually, but that can be an error-prone process, so the recommendation is to use the &lt;font face="Consolas"&gt;/t:updateuid&lt;/font&gt; switch of &lt;font face="Consolas"&gt;msbuild&lt;/font&gt; as part of the build process.&lt;/div&gt; &lt;li&gt; &lt;div align="left"&gt;Generate a neutral satellite assembly containing the localizable resources (which get included as BAML in the dll).&amp;nbsp; To generate this neutral assembly at build time, you need to add a &lt;font face="Consolas"&gt;&amp;lt;UICulture&amp;gt;&lt;/font&gt; tag manually to your Visual Studio project file.&lt;/div&gt; &lt;li&gt; &lt;div align="left"&gt;Parse the localizable elements from the satellite dll (using APIs in the &lt;font face="Consolas"&gt;System.Windows.Markup.Localizer&lt;/font&gt; namespace)&lt;/div&gt; &lt;li&gt; &lt;div align="left"&gt;Perform the translation of localized elements to the target language&lt;/div&gt; &lt;li&gt; &lt;div align="left"&gt;Generate a new localized satellite assembly&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p align="left"&gt;For steps 3 through 5, &lt;a href="http://msdn.microsoft.com/en-us/library/ms771568.aspx"&gt;locBaml&lt;/a&gt;, a &lt;em&gt;sample&lt;/em&gt; program included in the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC&amp;amp;displaylang=en"&gt;Windows SDK&lt;/a&gt;, provides a command-line interface to aid the localization process. locBaml wraps many of the &lt;font face="Consolas"&gt;Localizer&lt;/font&gt; APIs to extract the resources as a comma-separated (CSV) file.&amp;nbsp; The localization (step 4) can then be carried out with any editor capable of handling comma-separated files - like Microsoft Excel.&amp;nbsp; After the manual translation process is completed, locBaml can be run again to create the new localized assembly, using the edited CSV file as input.&lt;/p&gt; &lt;p align="left"&gt;At runtime, the .NET Framework will automatically load the appropriate localized assembly based on the &lt;font face="Consolas"&gt;CurrentUICulture&lt;/font&gt;, provided, of course, that the satellite dll is placed in the subdirectory matching the language code for the targeted culture (e.g., &lt;font face="Consolas"&gt;/de-DE&lt;/font&gt; for Germany or &lt;font face="Consolas"&gt;/fr-CA&lt;/font&gt; for French Canadian).&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9306940" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jimoneil/archive/tags/A-to-Z/default.aspx">A-to-Z</category><category domain="http://blogs.msdn.com/jimoneil/archive/tags/WPF/default.aspx">WPF</category></item><item><title>I Suru, Do You?</title><link>http://blogs.msdn.com/jimoneil/archive/2009/01/07/i-suru-do-you.aspx</link><pubDate>Thu, 08 Jan 2009 06:38:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9293209</guid><dc:creator>joneil</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/jimoneil/comments/9293209.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jimoneil/commentrss.aspx?PostID=9293209</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.photosuru.com/"&gt;photoSuru&lt;/a&gt; that is...&amp;nbsp; photoSuru is a WPF photo viewer application that was featured as part of &lt;a href="http://channel9.msdn.com/pdc2008/KYN02/"&gt;Scott Guthrie's keynote&lt;/a&gt; at the &lt;a href="http://www.microsoftpdc.com"&gt;Microsoft PDC&lt;/a&gt; this past October.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://photosuru.com"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 10px 0px; border-right-width: 0px" height="352" alt="photoSuru" src="http://blogs.msdn.com/blogfiles/jimoneil/WindowsLiveWriter/ISuruDoYou_13E47/image_3.png" width="491" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;While it's a &lt;a href="http://www.whatdoesthatmean.com/taxonomy/term/317"&gt;wicked pissah&lt;/a&gt; app just to play with, the real value in my mind is that &lt;a href="http://windowsclient.net/appfeeds/SubscriptionCenter/Gallery/photosuru.aspx"&gt;the source code&lt;/a&gt; is all there on &lt;a href="http://windowsclient.net/"&gt;WindowsClient.NET&lt;/a&gt;, so those of you as user-experienced challenged as I can get a leg up on building an app that isn't all '90's'&lt;/p&gt; &lt;p&gt;...but that's not all.&amp;nbsp; This app as well as a few other examples were built on the &lt;a href="http://windowsclient.net/wpf/starter-kits/sce.aspx"&gt;Syndicated Client Experiences Starter Kit&lt;/a&gt; (try saying that three times fast!)&amp;nbsp; This beta kit and SDK provide building blocks for you to create your own Syndicated Client Experiences (SCEs), which are basically applications that leverage RSS and the &lt;a href="http://msdn.microsoft.com/en-us/sync/default.aspx"&gt;Microsoft Sync Framework&lt;/a&gt; to bring content to the local computer, where the application itself can take control of the presentation of that content.&lt;/p&gt; &lt;p&gt;You can download the &lt;a href="http://windowsclient.net/wpf/starter-kits/sce/sce-install.aspx"&gt;SCE Starter Kit Beta 2&lt;/a&gt;; a number of &lt;a href="http://windowsclient.net/wpf/starter-kits/sce-get-started.aspx"&gt;videos and articles&lt;/a&gt; are also available there to give your insight into how the framework was used to build photoSuru.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9293209" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jimoneil/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/jimoneil/archive/tags/Fun/default.aspx">Fun</category></item></channel></rss>