<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>Laurent Bugnion (GalaSoft)</title>
        <link>http://blog.galasoft.ch/Default.aspx</link>
        <description>Diary of a Code Trotter</description>
        <language>en-US</language>
        <copyright>Laurent Bugnion</copyright>
        <managingEditor>laurent@galasoft.ch</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
        <image>
            <title>Laurent Bugnion (GalaSoft)</title>
            <url>http://blog.galasoft.ch/images/RSS2Image.gif</url>
            <link>http://blog.galasoft.ch/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/galasoft" type="application/rss+xml" /><item>
            <title>IdentityMine /forward Community Site</title>
            <category>Technical stuff</category>
            <category>Work</category>
            <category>IdentityMine</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/jDYFwhj6S1k/identitymine-forward-community-site.aspx.aspx</link>
            <description>&lt;p&gt;At the same time that Microsoft was releasing Silverlight 3 and launching Expression Blend 3 and SketchFlow, &lt;a href="http://www.identitymine.com"&gt;IdentityMine&lt;/a&gt; released our new community site:&lt;/p&gt;

&lt;p&gt;&lt;a title="/forward by IdentityMine" href="http://www.identitymine.com/forward/" target="_blank"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="/forward by IdentityMine" border="0" alt="/forward by IdentityMine" src="http://galasoft.ch/blogs-all/2009071001.png" width="694" height="161" /&gt;&lt;/a&gt;  &lt;br /&gt;(&lt;a title="http://www.identitymine.com/forward/" href="http://www.identitymine.com/forward/"&gt;http://www.identitymine.com/forward/&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;/forward is the IdentityMine home to share our ideas, technology and design thinking. We always want to be forward thinking and being able to share that passion is our goal. Here you will find our thoughts on all things UX. Some will see the immediate light of day and others may simply be relegated to the future.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This site will gather all the community contributions made by the IdentityMine team. By nature, we are passionate about software and design, and we love to help others make their applications beautiful. Remember, we love our (and your) software!! This is what makes us live, and this is the air we breathe. Most of us have this in our blood to blog, answer questions on forums, talk about the technologies that we love at conferences, etc.&lt;/p&gt;

&lt;p&gt;With the new /forward site, you will have a great source of information, directly from experts involved every day with advanced technologies, and using them since the very early days. The sources of information include our personal blogs, Codeplex projects we work on, involvement in expert sites such as StackOverflow, videos and pictures taken at conferences, and more.&lt;/p&gt;

&lt;p&gt;We are really looking &lt;strong&gt;&lt;font color="#ff8000"&gt;/&lt;/font&gt;forward&lt;/strong&gt; to your visit!!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133411"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133411" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/133411.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/jDYFwhj6S1k" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/07/10/identitymine-forward-community-site.aspx.aspx</guid>
            <pubDate>Fri, 10 Jul 2009 18:29:26 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/133411.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/07/10/identitymine-forward-community-site.aspx.aspx#feedback</comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/133411.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/133411.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/07/10/identitymine-forward-community-site.aspx.aspx</feedburner:origLink></item>
        <item>
            <title>Silverlight 3, Blend 3 and the MVVM Light Toolkit</title>
            <category>.NET</category>
            <category>.NET 3.5</category>
            <category>Expression Blend</category>
            <category>MVVM</category>
            <category>Silverlight</category>
            <category>Technical stuff</category>
            <category>Work</category>
            <category>WPF</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/9lB-HlroNB4/silverlight-3-blend-3-and-the-mvvm-light-toolkit.aspx</link>
            <description>&lt;p&gt;The big news today is of course the launch of Silverlight 3. Microsoft organized a big event in San Francisco (I was invited, but could not make it to SF in time, unfortunately :() and there was a big celebration. Together with Silverlight 3 RTM, we were given &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=92e1db7a-5d36-449b-8c6b-d25f078f3609"&gt;Expression Blend 3 Release Candidate (including SketchFlow)&lt;/a&gt;. This is not the final version, but it is as close as it is ever going to be before it is officially released. This version should be feature complete, so there is already a lot to be done with Blend 3 now. For more information about today’s launch, see &lt;a target="_blank" href="http://weblogs.asp.net/scottgu/archive/2009/07/10/silverlight-3-released.aspx"&gt;Scott Guthrie’s blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;One question that was asked a few times is &lt;strong&gt;When is the MVVM Light Toolkit going to be available for Silverlight 3?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Well here is the good news: &lt;strong&gt;The &lt;a href="http://www.galasoft.ch/mvvm/getstarted"&gt;MVVM Light Toolkit V1.1.0&lt;/a&gt; is already compatible with Silverlight 3.&lt;/strong&gt; That’s right, you don’t need any change and can already work with the toolkit in Silverlight 3. Of course you need to install the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=9442b0f2-7465-417a-88f3-5e7b5409e9dd&amp;amp;displaylang=en"&gt;Silverlight 3 tools for Visual Studio&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For more information about the MVM Light Toolkit V1.1.0, &lt;a href="http://www.galasoft.ch/mvvm/getstarted"&gt;check the Get Started page&lt;/a&gt;!!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: There is only one minor change. If you have already downloaded the GalaSoft.MvvmLight source code, and try to open it with Silverlight 3 installed, you will be asked to convert the projects to Silverlight 3. The whole source code (WPF and SL) as well as the WPF projects are untouched.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;To avoid the conversion process, I posted a &lt;a href="http://www.galasoft.ch/mvvm/resources/Source/GalaSoft.MvvmLight.Source.zip"&gt;converted version of the projects here&lt;/a&gt;. The source code is completely and entirely the same as before. This is still V1.1.0.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133409"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133409" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/133409.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/9lB-HlroNB4" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/07/10/silverlight-3-blend-3-and-the-mvvm-light-toolkit.aspx</guid>
            <pubDate>Fri, 10 Jul 2009 17:17:16 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/133409.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/07/10/silverlight-3-blend-3-and-the-mvvm-light-toolkit.aspx#feedback</comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/133409.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/133409.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/07/10/silverlight-3-blend-3-and-the-mvvm-light-toolkit.aspx</feedburner:origLink></item>
        <item>
            <title>Installing the MVVM Light Toolkit V1.1.0.0</title>
            <category>Technical stuff</category>
            <category>.NET</category>
            <category>WPF</category>
            <category>Silverlight</category>
            <category>Expression Blend</category>
            <category>.NET 3.5</category>
            <category>Work</category>
            <category>MVVM</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/ule7DXyNmng/133341.aspx</link>
            <description>&lt;p&gt;With V1.1.0.0 of the MVVM Light Toolkit, an automated Setup application is provided to make it much easier to install, manage, update and uninstall the Toolkit files. For more information about the MVVM Light Toolkit, &lt;a href="http://www.galasoft.ch/mvvm/getstarted/"&gt;check the “Get Started” page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Prerequisites&lt;/h2&gt;

&lt;p&gt;The MVVM Light Toolkit and its Setup application run on Windows operating system only, and require the .NET framework 3.5 SP1 to use the MVVM Light Toolkit. If you didn’t install it already, &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&amp;amp;displaylang=en" target="_blank"&gt;you can do so here&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;Installing the Setup&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Navigate to the following page: 
    &lt;br /&gt;&lt;a title="http://www.galasoft.ch/mvvm/install/publish.html" href="http://www.galasoft.ch/mvvm/install/publish.html" target="_blank"&gt;http://www.galasoft.ch/mvvm/install/publish.html&lt;/a&gt; 

    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;Note:&lt;/strong&gt; This is a ClickOnce installation. It will run automatically in &lt;strong&gt;Internet Explorer and Firefox&lt;/strong&gt;. Other browsers, as far as I am aware, are not supported. &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/36917929@N06/3699559044/" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Installing the Setup" border="0" alt="Installing the Setup" src="http://farm3.static.flickr.com/2480/3699559044_a0dbdd2093_o.png" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Press the “Install” button. &lt;/li&gt;

  &lt;li&gt;In the Application Install dialog, click on Install. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/36917929@N06/3699559154/" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Installing the Setup (2)" border="0" alt="Installing the Setup (2)" src="http://farm3.static.flickr.com/2579/3699559154_d4d0f56c95_o.png" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The application is being downloaded. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/36917929@N06/3669853182/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Downloading the Setup" border="0" alt="Downloading the Setup" src="http://farm4.static.flickr.com/3627/3669853182_fb25c70d0f_o.png" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The MVVM Light Toolkit Setup starts. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Installing the Toolkit&lt;/h2&gt;

&lt;p&gt;The MVVM Light Toolkit Setup can be used to install, manage, update and uninstall the Toolkit.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;To start the Toolkit Setup, you can select the shortcut in Start, All Programs, Laurent Bugnion (GalaSoft), MVVM Light Toolkit Setup. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/36917929@N06/3698747799/" target="_blank"&gt;&lt;img title="The Main page" alt="The Main page" src="http://farm3.static.flickr.com/2550/3698747799_367bb1318e_o.png" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;To install the Toolkit with default settings, click on Install. 
    &lt;br /&gt;&lt;strong&gt;Note:&lt;/strong&gt; Visual Studio must &lt;strong&gt;not&lt;/strong&gt; be closed while the MVVM Light Toolkit is installed. Should you encounter an issue while installing, however, we recommend shutting down Visual Studio and reinstalling the Toolkit. &lt;/li&gt;

  &lt;li&gt;To display the Get Started page online, click on the question mark. &lt;/li&gt;

  &lt;li&gt;To modify the settings, click on Go to Settings &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/36917929@N06/3699559494/"&gt;&lt;img title="The Settings page" alt="The Settings page" src="http://farm3.static.flickr.com/2508/3699559494_c381586cd8_o.png" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Modifying the Settings&lt;/h2&gt;

&lt;p&gt;The following settings are available:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Destination for Binaries:&lt;/em&gt; This is the folder in which the DLLs will be copied. 

    &lt;ul&gt;
      &lt;li&gt;If you select (for instance) c:\mvvm, the DLL for WPF will be installed into c:\mvvm\ and the DLL for Silverlight will be installed into c:\mvvm\silverlight\ &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;

  &lt;li&gt;&lt;em&gt;Destination for Snippets:&lt;/em&gt; This is the folder in which the code snippets will be copied. This folder should match the folder set into Visual Studio 2008. 

    &lt;ul&gt;
      &lt;li&gt;To check which folder is set in Visual Studio 2008, choose Tools, Code Snippet Manager. &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/36917929@N06/3698748157/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Code snippet manager" border="0" alt="Code snippet manager" src="http://farm3.static.flickr.com/2631/3698748157_e45f870273_o.png" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
  &lt;ul&gt;
    &lt;li&gt;The snippets for WPF and for Silverlight are installed in the same folder. &lt;/li&gt;
  &lt;/ul&gt;

  &lt;li&gt;&lt;em&gt;Destination for Templates:&lt;/em&gt; This is the folder in which the ItemsTemplates subfolder and the ProjectTemplates subfolder will be found. These two subfolders should match the ones set into Visual Studio 2008. 

    &lt;ul&gt;
      &lt;li&gt;To check which folders are set in Visual Studio 2008, choose Tools, Options, Project and Solutions. &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/36917929@N06/3698748321/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Project templates and Item templates location" border="0" alt="Project templates and Item templates location" src="http://farm3.static.flickr.com/2642/3698748321_4b02ee9ec0_o.png" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Installation Type:&lt;/em&gt; You can choose to install all the files for WPF, Silverlight, or both. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Modifying the Settings after installation&lt;/h2&gt;

&lt;p&gt;Unfortunately, files are getting pretty locked by Visual Studio after they have been installed. To prevent errors, you can only modify the settings by uninstalling the Toolkit first, modifying the desired setting and then reinstalling. The installation process is very fast, and all the settings are saved, so the process is very painless.&lt;/p&gt;

&lt;h2&gt;Updating to a new version&lt;/h2&gt;

&lt;p&gt;To check if a new version is available, you simply have to start the Toolkit Setup. It will connect to the server, and notify you if a new version is available. Simply follow the indications to upgrade the Toolkit to the new version.&lt;/p&gt;

&lt;p&gt;After the Toolkit Setup has been upgraded to the new version, follow the steps described under Installing the Toolkit (earlier in this page).&lt;/p&gt;

&lt;h2&gt;Uninstalling the Toolkit&lt;/h2&gt;

&lt;p&gt;To uninstall the MVVM Light Toolkit, follow the steps:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Start the Toolkit Setup application (under Start, All Programs, Laurent Bugnion (GalaSoft), MVVM Light Toolkit Setup). &lt;/li&gt;

  &lt;li&gt;Press on the Uninstall button. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This step removes all the files that have been installed on your computer. Empty folders will get deleted too.&lt;/p&gt;

&lt;h2&gt;Uninstalling the Setup&lt;/h2&gt;

&lt;p&gt;If you wish to remove the MVVM Light Toolkit Setup application from your computer, follow the steps:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Select Start, Control Panel. &lt;/li&gt;

  &lt;li&gt;Select the Programs and Features control panel (or the equivalent on your operating system). &lt;/li&gt;

  &lt;li&gt;Find the entry names Mvvm Light Toolkit Setup. &lt;/li&gt;

  &lt;li&gt;Press Uninstall. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This will remove the Setup application from your computer. This step does &lt;strong&gt;not&lt;/strong&gt; remove the Toolkit however. If you want to remove the Toolkit, follow the steps described in Uninstalling the Toolkit (earlier in this page). &lt;strong&gt;You must uninstall the Toolkit before you uninstall the Setup application.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133341"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133341" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/133341.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/ule7DXyNmng" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/07/08/133341.aspx</guid>
            <pubDate>Wed, 08 Jul 2009 08:50:54 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/133341.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/07/08/133341.aspx#feedback</comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/133341.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/133341.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/07/08/133341.aspx</feedburner:origLink></item>
        <item>
            <title>New intro on my website</title>
            <category>Website</category>
            <category>Technical stuff</category>
            <category>Personal</category>
            <category>IdentityMine</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/2MSv63_ai8c/new-intro-on-my-website.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.galasoft.ch"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="el20090614025_150x162[1]" border="0" alt="el20090614025_150x162[1]" align="right" src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/WindowsLiveWriter/936265dd5e80_4D4/el20090614025_150x162%5B1%5D_3.jpg" width="154" height="207" /&gt;&lt;/a&gt; The time was ripe for a new intro on my website &lt;a href="http://www.galasoft.ch" target="_blank"&gt;www.galasoft.ch&lt;/a&gt;. Here it is below, posted for my blog’s readers. I hope that you find it entertaining.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;----&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Time sure flies when you’re busy :) Already middle of the year, summer is coming and I have been so busy with amazing projects! Yes, since last time I wrote here, much water has run under the bridges and I am loving my job.&lt;/p&gt;  &lt;p&gt;I have taken part to an exciting series of conferences: The &lt;a href="http://www.mvpsummit2009.com/" target="_blank"&gt;Microsoft Most Valuable Professional summit&lt;/a&gt; took place in March in Seattle. After that, back in Europe for a quick jump to Belgium where I held two talks at the &lt;a href="http://www.microsoft.com/belux/techdays/about.aspx" target="_blank"&gt;TechDays conference in Antwerp&lt;/a&gt;. This was a fantastic experience by the way. Later, back to the US for the most exciting of all conferences, &lt;a href="http://2009.visitmix.com/" target="_blank"&gt;MIX in Las Vegas&lt;/a&gt;! And this time I was a speaker, what a thrill! I often say that MIX06 is the conference that changed my (professional) life completely, and to be accepted to speak at MIX09 was a fantastic and exciting achievement.&lt;/p&gt;  &lt;p&gt;After my return in Switzerland, I had two more talks, &lt;a href="http://www.microsoft.com/switzerland/msdn/fr/techdays/Default.aspx" target="_blank"&gt;one in Geneva&lt;/a&gt; and &lt;a href="http://www.microsoft.com/switzerland/msdn/de/techdays/default.aspx" target="_blank"&gt;one in Bern&lt;/a&gt;. This was the same talk, but once in French and once in German. The response has been really good and it was a nice experience (even if it was a bit scary when I was preparing ;))&lt;/p&gt;  &lt;p&gt;After this crazy travel time, I had time to work on exciting projects at &lt;a href="http://www.identitymine.com/" target="_blank"&gt;IdentityMine&lt;/a&gt;. Silverlight and Windows Presentation Foundation are my daily bread and I love it. WPF really rocks, and the more I use it, the more I am in love with that framework. Since I have the chance to work with some of the best designers in the industry, I can really (some would say finally) create the beautiful applications I have always dreamed of, and Love my Software (which is incidentally IdentityMine’s motto). It’s really amazing to be part of that world class team of experts. What a motivation to get better. In the process, I am also learning a huge lot about interaction design, and sometimes it is tough, but it is always a passion.&lt;/p&gt;  &lt;p&gt;One more talk took me to Belgium again, this time in &lt;a href="http://www.multi-mania.be/" target="_blank"&gt;Kortrijk for MultiMania 2009&lt;/a&gt;. It was an interesting event, with a crowd in majority favoring Adobe products, but I think my talk was well received and we had a lot of interesting discussions.&lt;/p&gt;  &lt;p&gt;One project that has been occupying most of my “free programming time” is a toolkit to assist the implementation of &lt;a href="http://www.galasoft.ch/mvvm/getstarted" target="_blank"&gt;Model-View-ViewModel applications&lt;/a&gt; in Windows Presentation Foundation and in Silverlight. After quite some time, I released the first version of the toolkit. I am still working on it and should post an installer soon (for the moment the installation is manual). I also have a couple of ideas about things I would like to add to the toolkit. Finally, the grand plan is to post everything on Codeplex and to let the community do its thing. That should be fun.&lt;/p&gt;  &lt;p&gt;The coming weeks will be quite packed with work. I will be in Seattle from the 11th of July. I will stay a couple of weeks to work with the team (and meet tons of friends I am sure), and then my family will join me for a week of leisure between Seattle and Vancouver. This should be a lot of fun.&lt;/p&gt;  &lt;p&gt;For more information about my whereabouts, planned talks (such as the one I will give at the &lt;a href="http://www.facebook.com/event.php?eid=109874755745&amp;amp;ref=mf" target="_blank"&gt;SD2IG group in Seattle on the 15th of July&lt;/a&gt;), make sure to &lt;a href="http://feeds.feedburner.com/galasoft" target="_blank"&gt;subscribe to my blog&lt;/a&gt;. Meeting you all is what is keeping my motivation high and my passion alive.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132908"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132908" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/132908.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/2MSv63_ai8c" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/06/18/new-intro-on-my-website.aspx</guid>
            <pubDate>Thu, 18 Jun 2009 23:02:14 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/132908.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/06/18/new-intro-on-my-website.aspx#feedback</comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/132908.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/132908.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/06/18/new-intro-on-my-website.aspx</feedburner:origLink></item>
        <item>
            <title>MVVM light toolkit (Silverlight edition) posted</title>
            <category>.NET</category>
            <category>.NET 3.5</category>
            <category>Expression Blend</category>
            <category>MVVM</category>
            <category>Silverlight</category>
            <category>Technical stuff</category>
            <category>WPF</category>
            <category>Work</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/rN9mHFwcm_A/mvvm-light-toolkit-silverlight-edition-posted.aspx</link>
            <description>&lt;p&gt;To make development of WPF and Silverlight applications according to the Model-View-ViewModel pattern easier, I have put together a small toolkit which should speed up the creation of such applications by automating certain tasks.&lt;/p&gt;  &lt;p&gt;The toolkit must be installed manually for now. My next task is to prepare an installer, which should allow installing everything automatically, and also checking for upgrades, upgrading automatically and uninstalling the toolkit. For now however, a little manual work must be done.&lt;/p&gt;  &lt;div class="frame"&gt;&lt;strong&gt;Please note:&lt;/strong&gt; An automated Setup for the WPF and Silverlight MVVM Light Toolkit is available. Please use the automated Setup from now on. If you are unable to use the automated setup for any reason, please contact me at &lt;a href="mailto:laurent@galasoft.ch"&gt;laurent@galasoft.ch&lt;/a&gt;. More information about the Setup and getting started with the MVVM Light Toolkit &lt;a href="http://www.galasoft.ch/mvvm/getstarted" target="_blank"&gt;is available on the Get Started page&lt;/a&gt;, which will be extended with new information.&lt;/div&gt;  &lt;p&gt;For more details about the MVVM light toolkit, &lt;a href="http://blog.galasoft.ch/archive/2009/06/14/mvvm-lsquolightrsquo-toolkit-for-wpf-and-silverlight.aspx" target="_blank"&gt;check this initial blog post&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Also, a &lt;a href="http://www.galasoft.ch/mvvm/getstarted" target="_blank"&gt;web page will be extended&lt;/a&gt; over the next few days, and everything will be announced in this blog, so stay tuned.&lt;/p&gt;  &lt;h1&gt;Manual Installation&lt;/h1&gt;  &lt;div style="margin-top: 10px" class="frame"&gt;&lt;strong&gt;Please note:&lt;/strong&gt; An automated Setup for the WPF and Silverlight MVVM Light Toolkit is available. Please use the automated Setup from now on. If you are unable to use the automated setup for any reason, please contact me at &lt;a href="mailto:laurent@galasoft.ch"&gt;laurent@galasoft.ch&lt;/a&gt;. More information about the Setup and getting started with the MVVM Light Toolkit &lt;a href="http://www.galasoft.ch/mvvm/getstarted" target="_blank"&gt;is available on the Get Started page&lt;/a&gt;, which will be extended with new information.&lt;/div&gt;  &lt;p&gt;&lt;strike&gt;To install the toolkit manually, please follow the steps.&lt;/strike&gt;&lt;/p&gt;  &lt;h3&gt;&lt;strike&gt;For Windows Presentation Foundation&lt;/strike&gt;&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blog.galasoft.ch/archive/2009/06/14/mvvm-lsquolightrsquo-toolkit-for-wpf-and-silverlight.aspx" target="_blank"&gt;&lt;strike&gt;Check this post&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;.&lt;/strike&gt;&lt;/p&gt;  &lt;h3&gt;&lt;strike&gt;&lt;/strike&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;strike&gt;For Silverlight &lt;/strike&gt;&lt;/h3&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.galasoft.ch/mvvm/resources/Binaries/Silverlight/GalaSoft.MvvmLight.dll"&gt;&lt;strike&gt;Download the GalaSoft.MvvmLight DLL&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt; and copy it in a folder of your choice (for example c:\data\mvvm\silverlight).        &lt;br /&gt;&lt;strong&gt;Note that this is NOT the same as the WPF version. Do not mix the two up. Event though the code is almost identical, this assembly is compiled against Silverlight, not Windows Presentation Foundation.&lt;/strong&gt; &lt;/strike&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.galasoft.ch/mvvm/resources/Templates/ProjectTemplates/Silverlight/Mvvm/MvvmLight.zip"&gt;&lt;strike&gt;Download the project template&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;. To make it available in Visual Studio, locate your project templates folder. By default it is located into your “My Documents” folder, into a folder named “Visual Studio 2008/Templates”. Into the ProjectTemplates folder, into the Silverlight folder, create a new folder named Mvvm and copy the project template into this new folder. &lt;strong&gt;Do not unzip the file,&lt;/strong&gt; simply copy the zip file as is.         &lt;br /&gt;&lt;em&gt;In Windows 7, the full path would be “C:\Users\[user_name]\Documents\Visual Studio 2008\Templates\ProjectTemplates\Silverlight\Mvvm”&lt;/em&gt; &lt;/strike&gt;&lt;/li&gt;    &lt;li&gt;&lt;strike&gt;Download each item template (listed below). To make them available in Visual Studio, locate your item templates folder. By default it is located into your “My Documents” folder, into a folder named “Visual Studio 2008/Templates”. Into the ItemTemplates folder, into the Silverlight folder, create a new folder named Mvvm and copy all the item templates into this new folder. &lt;strong&gt;Do not unzip the files,&lt;/strong&gt; simply copy the zip files as is.         &lt;br /&gt;&lt;/strike&gt;&lt;strike&gt;&lt;em&gt;In Windows 7, the full path would be “C:\Users\[user_name]\Documents\Visual Studio 2008\Templates\ItemTemplates\Silverlight\Mvvm”.          &lt;br /&gt;&lt;/em&gt;- &lt;/strike&gt;&lt;a href="http://www.galasoft.ch/mvvm/resources/Templates/ItemTemplates/Silverlight/Mvvm/MvvmView.zip"&gt;&lt;strike&gt;MVVM View Template&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;        &lt;br /&gt;- &lt;/strike&gt;&lt;a href="http://www.galasoft.ch/mvvm/resources/Templates/ItemTemplates/Silverlight/Mvvm/MvvmViewModel.zip"&gt;&lt;strike&gt;MVVM ViewModel Template&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;        &lt;br /&gt;- &lt;/strike&gt;&lt;a href="http://www.galasoft.ch/mvvm/resources/Templates/ItemTemplates/Silverlight/Mvvm/MvvmViewModelLocator.zip"&gt;&lt;strike&gt;MVVM ViewModel Locator Template&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt; &lt;/strike&gt;&lt;/li&gt;    &lt;li&gt;&lt;strike&gt;Download the code snippets. To make them available in Visual Studio, locate your code snippets folder. By default it is located into your “My Documents” folder, into a folder named “Visual Studio 2008/Code Snippets/Visual C#/My Code Snippets”. Copy all the snippets into this folder.        &lt;br /&gt;&lt;/strike&gt;&lt;strike&gt;&lt;em&gt;In Windows 7, the full path would be “C:\Users\[user_name]\Documents\Visual Studio 2008\Code Snippets\Visual C#\My Code Snippets”.          &lt;br /&gt;&lt;/em&gt;&lt;strong&gt;Note: These are the same snippets as for WPF. You might have installed them already.&lt;/strong&gt;         &lt;br /&gt;- &lt;/strike&gt;&lt;a href="http://galasoft.ch/mvvm/Resources/Snippets/mvvmInpcProperty.snippet"&gt;&lt;strike&gt;Creating a new property raising the PropertyChanged event&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;.        &lt;br /&gt;- &lt;/strike&gt;&lt;a href="http://galasoft.ch/mvvm/Resources/Snippets/mvvmViewModelLocatorProperty.snippet"&gt;&lt;strike&gt;Creating a new ViewModel into the ViewModelLocator class&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;. &lt;/strike&gt;&lt;/li&gt;    &lt;li&gt;&lt;strike&gt;If you are interested, you can also &lt;/strike&gt;&lt;a href="http://galasoft.ch/mvvm/Resources/Source/GalaSoft.MvvmLight.Source.zip"&gt;&lt;strike&gt;download the source code&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt; for the GalaSoft.MvvmLight classes (this is optional).        &lt;br /&gt;&lt;strong&gt;Note: The source code includes the WPF and the Silverlight version of the toolkit, all in one assembly, and also unit tests.&lt;/strong&gt; &lt;/strike&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;h3&gt;&lt;strike&gt;&lt;/strike&gt;&lt;/h3&gt;  &lt;h2&gt;Getting started in Silverlight&lt;/h2&gt;  &lt;p&gt;The procedure in Silverlight is extremely similar to the one in WPF. The goal is to have a process which is as similar as possible, as well as the source code.&lt;/p&gt;  &lt;h3&gt;Creating a new MVVM application&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;In Visual Studio 2008, select the menu File, New, Project. Under the Silverlight/Mvvm section, select the MvvmLight project template. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3332/3633977900_de06e3961c_o.png" /&gt;   &lt;ul&gt;   &lt;li&gt;Add a reference to the GalaSoft.MvvmLight assembly that you installed before. This manual step is needed for the moment, until an installer is created. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3602/3633978050_42f0a19752_o.png" /&gt;   &lt;ul&gt;   &lt;li&gt;Because of a bug in Silverlight Project Templates, some additional manual steps are needed:      &lt;ul&gt;       &lt;li&gt;Right click on the Silverlight project in the Solution explorer and select Properties &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3620/3633164341_12b7d2abf7_o.png" /&gt;   &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;In the project properties, set the Startup Object to the correct choice. &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3401/3633978316_be4dfb53e6.jpg?v=0" /&gt;   &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;Set the Xap file name to [YourProjectName].xap &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3546/3633164749_11627e6a9c.jpg?v=0" /&gt;   &lt;ul&gt;   &lt;li&gt;Press Ctrl-F5 to run the application. This sample application can be modified as needed. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm3.static.flickr.com/2446/3633165097_61cb4edd02_o.png" /&gt;   &lt;h3&gt;Adding a new ViewModel&lt;/h3&gt;  &lt;p&gt;If you need a new ViewModel in the MVVM application, follow the steps:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;In Visual Studio, in the Solution explorer, right click on the ViewModel folder and select Add, New Item from the context menu. &lt;/li&gt;    &lt;li&gt;Under Silverlight/Mvvm, select the MvvmViewModel template. &lt;/li&gt;    &lt;li&gt;Enter a name for the new ViewModel and press OK. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3606/3633979418_6709d78571_o.png" /&gt;   &lt;ul&gt;   &lt;li&gt;Open the ViewModelLocator class (in the ViewModel folder). &lt;/li&gt;    &lt;li&gt;At the end of the class, type mvvmlocatorproperty to select the corresponding code snippet. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm3.static.flickr.com/2428/3630496550_71f88816a3.jpg?v=0" /&gt;   &lt;ul&gt;   &lt;li&gt;Press the Tab key to expand the snippet. &lt;/li&gt;    &lt;li&gt;The first replacement in the snippet is the type of the ViewModel you just created. &lt;/li&gt;    &lt;li&gt;Use tab to select the second replacement. &lt;/li&gt;    &lt;li&gt;The second replacement in the snippet is the name of the attribute that will hold the value of the ViewModel. You can choose any identifier suitable for an attribute (field). &lt;/li&gt;    &lt;li&gt;Use tab to select the third replacement. &lt;/li&gt;    &lt;li&gt;The third replacement is the name of the property that you will bind your View’s data context to. Here too you can choose any identifier suitable for a property. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3416/3629682289_88be03f8bb.jpg?v=0" /&gt;   &lt;p&gt;Of course you also need to initialize your ViewModel by entering code in the constructor.&lt;/p&gt;  &lt;h3&gt;Adding a new View&lt;/h3&gt;  &lt;p&gt;Of course a ViewModel is tightly associated to a View. After adding a ViewModel, you probably want to add a new View too. In the Silverlight version of the application, a new View is a new UserControl. If you need a more finely granulated user interface, you can link the ViewModel to other UI elements. This scenario is not supported by the toolkit, however, and requires some manual work.&lt;/p&gt;  &lt;p&gt;Note also that the toolkit does not support navigation out of the box. This is because there are many ways to do navigation in Silverlight. The project can easily be modified to integrate your preferate way to do navigation. &lt;/p&gt;  &lt;p&gt;To add a new UserControl-based view in the application, follow the steps:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;In Visual Studio, in the Solution explorer, right click on the project and select Add, New Item from the context menu. &lt;/li&gt;    &lt;li&gt;Under Silverlight/Mvvm, select the MvvmView template. &lt;/li&gt;    &lt;li&gt;Enter a name and then press OK. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3633/3633979654_cccb3f7ca4_o.png" /&gt;   &lt;ul&gt;   &lt;li&gt;Open the newly created XAML file. &lt;/li&gt;    &lt;li&gt;Modify the DataContext property to link to the ViewModel property that you added above. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3356/3633165693_e5b60ab5aa_o.png" /&gt;   &lt;h3&gt;Adding a new bindable property into a ViewModel&lt;/h3&gt;  &lt;p&gt;Finally, you probably want to add bindable properties in your ViewModel. Follow the steps:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Open the ViewModel you added before. &lt;/li&gt;    &lt;li&gt;Type mvvminpc to select the corresponding code snippet (“inpc” stands for INotifyPropertyChanged ;)) &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm3.static.flickr.com/2473/3629682817_05456caa34.jpg?v=0" /&gt;   &lt;ul&gt;   &lt;li&gt;Press the tab key to expand the snippet. &lt;/li&gt;    &lt;li&gt;The first replacement is the name of the property that you will bind to. &lt;/li&gt;    &lt;li&gt;Press the tab key to select the second replacement. &lt;/li&gt;    &lt;li&gt;The second replacement is the type of the new property. &lt;/li&gt;    &lt;li&gt;Press the tab key to select the third replacement. &lt;/li&gt;    &lt;li&gt;The third replacement is the name of the attribute that will hold the value of the property. You can choose any identifier suitable for an attribute (field). &lt;/li&gt;    &lt;li&gt;Press the tab key to select the fourth replacement. &lt;/li&gt;    &lt;li&gt;The fourth replacement is the initial value for the property (if any). You can also delete the default value altogether. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3375/3630496952_52dea311e5.jpg?v=0" /&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132862"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132862" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/132862.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/rN9mHFwcm_A" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/06/16/mvvm-light-toolkit-silverlight-edition-posted.aspx</guid>
            <pubDate>Tue, 16 Jun 2009 22:17:42 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/132862.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/06/16/mvvm-light-toolkit-silverlight-edition-posted.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/132862.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/132862.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/06/16/mvvm-light-toolkit-silverlight-edition-posted.aspx</feedburner:origLink></item>
        <item>
            <title>MVVM light toolkit for WPF and Silverlight</title>
            <category>.NET</category>
            <category>.NET 3.5</category>
            <category>Expression Blend</category>
            <category>MVVM</category>
            <category>Silverlight</category>
            <category>Technical stuff</category>
            <category>Work</category>
            <category>WPF</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/b37IIvqOorU/mvvm-lsquolightrsquo-toolkit-for-wpf-and-silverlight.aspx</link>
            <description>&lt;p&gt;To make development of WPF and Silverlight applications according to the Model-View-ViewModel pattern easier, I have put together a small toolkit which should speed up the creation of such applications by automating certain tasks.&lt;/p&gt;  &lt;p&gt;The toolkit must be installed manually for now. My next task is to prepare an installer, which should allow installing everything automatically, and also checking for upgrades, upgrading automatically and uninstalling the toolkit. For now however, a little manual work must be done.&lt;/p&gt;  &lt;div class="frame"&gt;&lt;strong&gt;Please note:&lt;/strong&gt; An automated Setup for the WPF and Silverlight MVVM Light Toolkit is available. Please use the automated Setup from now on. If you are unable to use the automated setup for any reason, please contact me at &lt;a href="mailto:laurent@galasoft.ch"&gt;laurent@galasoft.ch&lt;/a&gt;. More information about the Setup and getting started with the MVVM Light Toolkit &lt;a href="http://www.galasoft.ch/mvvm/getstarted" target="_blank"&gt;is available on the Get Started page&lt;/a&gt;, which will be extended with new information.&lt;/div&gt;  &lt;h2&gt;In the next few days…&lt;/h2&gt;  &lt;p&gt;This article refers to the WPF version of the MVVM light toolkit. In the next few days I will post the Silverlight version.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update: &lt;a href="http://blog.galasoft.ch/archive/2009/06/16/mvvm-light-toolkit-silverlight-edition-posted.aspx"&gt;The Silverlight version has been published&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;My next priority is to create an installer which will automate the installation process.&lt;/p&gt;  &lt;p&gt;I also want to create and write about a few sample applications related to the toolkit. There is a lot to be said and demoed about MVVM in general, and this toolkit in particular. I am impatient and curious to see what direction future development will take. I have a few ideas I would like to add to the toolkit, more about that later.&lt;/p&gt;  &lt;h2&gt;Feedback&lt;/h2&gt;  &lt;p&gt;I am as always very interested in feedback, so do not hesitate to post a comment here, or contact me to start a discussion.&lt;/p&gt;  &lt;p&gt;To be completely honest, I do not intend to add a lot of features to the toolkit. First, I am intrigued by new developments in Expression Blend 3 that I will keep under scrutiny, to see how they influence (or make obsolete) some of the features of this toolkit. Also, WPF 4 and Silverlight 3 will change the game of MVVM by (hopefully) integrating some of the concepts into the framework and making it an even more natural fit.&lt;/p&gt;  &lt;p&gt;HOWEVER let’s keep the discussion rolling, so you know what to do if you like, dislike or want to change something in the toolkit ;)&lt;/p&gt;  &lt;h2&gt;Features&lt;/h2&gt;  &lt;p&gt;The community and Microsoft already have a few MVVM initiatives running. However, I didn’t find any completely satisfying for my particular set of requirements. Most importantly, I work as an integrator in WPF and Silverlight projects, and I use Expression Blend a lot. My toolkit is finely tuned to make working in Expression Blend much easier, for designers and developers. For instance, it allows creating design time data very easily, in order to facilitate design work. To be honest, I have been using some of the classes and concepts gathered here for quite some time already, but this is the first time that I have a clean, complete kit of features related to MVVM.&lt;/p&gt;  &lt;p&gt;I spent a lot of time making the syntax and the features in the toolkit as compatible as possible between WPF and Silverlight. &lt;strong&gt;Most of the code can be shared between WPF and Silverlight&lt;/strong&gt;. Minor changes are needed in XAML, but the ViewModels are compatible (as long as you don’t use WPF-only or Silverlight-only features of course). &lt;/p&gt;  &lt;p&gt;Also included in the toolkit, you will find a Messenger making it super easy to enable communication between classes. Using the Messenger class and the classes in the GalaSoft.MvvmLight.Messaging namespace, you can broadcast messages to instances who registered for a particular type of message without worrying about dependencies or memory leaks.&lt;/p&gt;  &lt;p&gt;Since it is a “light” toolkit, it should be quite easy for you to modify it to suit your own needs. Do not hesitate to inspire yourself from this code, or to modify it at will.&lt;/p&gt;  &lt;h1&gt;Manual Installation&lt;/h1&gt;  &lt;div style="margin-top: 10px" class="frame"&gt;&lt;strong&gt;Please note:&lt;/strong&gt; An automated Setup for the WPF and Silverlight MVVM Light Toolkit is available. Please use the automated Setup from now on. If you are unable to use the automated setup for any reason, please contact me at &lt;a href="mailto:laurent@galasoft.ch"&gt;laurent@galasoft.ch&lt;/a&gt;. More information about the Setup and getting started with the MVVM Light Toolkit &lt;a href="http://www.galasoft.ch/mvvm/getstarted" target="_blank"&gt;is available on the Get Started page&lt;/a&gt;, which will be extended with new information.&lt;/div&gt;  &lt;p&gt;&lt;strike&gt;To install the toolkit manually, please follow the steps.&lt;/strike&gt;&lt;/p&gt;  &lt;h3&gt;&lt;strike&gt;&lt;/strike&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;strike&gt;For Windows Presentation Foundation&lt;/strike&gt;&lt;/h3&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://galasoft.ch/mvvm/Resources/Binaries/GalaSoft.MvvmLight.dll"&gt;&lt;strike&gt;Download the GalaSoft.MvvmLight DLL&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt; and copy it in a folder of your choice (for example c:\data\mvvm\wpf).        &lt;br /&gt;&lt;strong&gt;Note that this is NOT the same as the Silverlight version. Do not mix the two up. Event though the code is almost identical, this assembly is compiled against WPF, not Silverlight.&lt;/strong&gt; &lt;/strike&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://galasoft.ch/mvvm/Resources/Templates/ProjectTemplates/Mvvm/MvvmLight.zip"&gt;&lt;strike&gt;Download the project template&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;. To make it available in Visual Studio, locate your project templates folder. By default it is located into your “My Documents” folder, into a folder named “Visual Studio 2008/Templates”. Into the ProjectTemplates folder, create a new folder named Mvvm and copy the project template into this new folder. &lt;strong&gt;Do not unzip the file,&lt;/strong&gt; simply copy the zip file as is.         &lt;br /&gt;&lt;em&gt;In Windows 7, the full path would be “C:\Users\[user_name]\Documents\Visual Studio 2008\Templates\ProjectTemplates\Mvvm”&lt;/em&gt; &lt;/strike&gt;&lt;/li&gt;    &lt;li&gt;&lt;strike&gt;Download each item template (listed below). To make them available in Visual Studio, locate your item templates folder. By default it is located into your “My Documents” folder, into a folder named “Visual Studio 2008/Templates”. Into the ItemTemplates folder, create a new folder named Mvvm and copy all the item templates into this new folder. &lt;strong&gt;Do not unzip the files,&lt;/strong&gt; simply copy the zip files as is.         &lt;br /&gt;&lt;/strike&gt;&lt;strike&gt;&lt;em&gt;In Windows 7, the full path would be “C:\Users\[user_name]\Documents\Visual Studio 2008\Templates\ItemTemplates\Mvvm”.          &lt;br /&gt;&lt;/em&gt;- &lt;/strike&gt;&lt;a href="http://galasoft.ch/mvvm/Resources/Templates/ItemTemplates/Mvvm/MvvmView.zip"&gt;&lt;strike&gt;MVVM View Template&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;        &lt;br /&gt;- &lt;/strike&gt;&lt;a href="http://galasoft.ch/mvvm/Resources/Templates/ItemTemplates/Mvvm/MvvmViewModel.zip"&gt;&lt;strike&gt;MVVM ViewModel Template&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;        &lt;br /&gt;- &lt;/strike&gt;&lt;a href="http://galasoft.ch/mvvm/Resources/Templates/ItemTemplates/Mvvm/MvvmViewModelLocator.zip"&gt;&lt;strike&gt;MVVM ViewModel Locator Template&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt; &lt;/strike&gt;&lt;/li&gt;    &lt;li&gt;&lt;strike&gt;Download the code snippets. To make them available in Visual Studio, locate your code snippets folder. By default it is located into your “My Documents” folder, into a folder named “Visual Studio 2008/Code Snippets/Visual C#/My Code Snippets”. Copy all the snippets into this folder.        &lt;br /&gt;&lt;/strike&gt;&lt;strike&gt;&lt;em&gt;In Windows 7, the full path would be “C:\Users\[user_name]\Documents\Visual Studio 2008\Code Snippets\Visual C#\My Code Snippets”.          &lt;br /&gt;&lt;/em&gt;- &lt;/strike&gt;&lt;a href="http://galasoft.ch/mvvm/Resources/Snippets/mvvmInpcProperty.snippet"&gt;&lt;strike&gt;Creating a new property raising the PropertyChanged event&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;.        &lt;br /&gt;- &lt;/strike&gt;&lt;a href="http://galasoft.ch/mvvm/Resources/Snippets/mvvmViewModelLocatorProperty.snippet"&gt;&lt;strike&gt;Creating a new ViewModel into the ViewModelLocator class&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;. &lt;strong&gt;Note: These are the same snippets as for Silverlight. You might have installed them already.&lt;/strong&gt;         &lt;br /&gt;&lt;/strike&gt;&lt;/li&gt;    &lt;li&gt;&lt;strike&gt;If you are interested, you can also &lt;/strike&gt;&lt;a href="http://galasoft.ch/mvvm/Resources/Source/GalaSoft.MvvmLight.Source.zip"&gt;&lt;strike&gt;download the source code&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt; for the GalaSoft.MvvmLight classes (this is optional).        &lt;br /&gt;&lt;strong&gt;Note: The source code includes the WPF and the Silverlight version of the toolkit, all in one assembly, and also unit tests.&lt;/strong&gt; &lt;/strike&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;h3&gt;&lt;strike&gt;&lt;/strike&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;strike&gt;For Silverlight&lt;/strike&gt;&lt;/h3&gt;  &lt;p&gt;&lt;strike&gt;The &lt;/strike&gt;&lt;a href="http://blog.galasoft.ch/archive/2009/06/16/mvvm-light-toolkit-silverlight-edition-posted.aspx"&gt;&lt;strike&gt;instructions for Silverlight&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt; are posted in another blog post.&lt;/strike&gt;&lt;/p&gt;  &lt;h2&gt;Getting started in WPF&lt;/h2&gt;  &lt;h3&gt;Creating a new MVVM application&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;In Visual Studio 2008, select the menu File, New, Project. Under the Mvvm section, select the MvvmLight project template. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3626/3630496062_85e3b1df26_o.png" /&gt;   &lt;ul&gt;   &lt;li&gt;Add a reference to the GalaSoft.MvvmLight assembly that you installed before. This manual step is needed for the moment, until an installer is created. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3390/3630495834_d39d0089dc_o.png" /&gt;   &lt;ul&gt;   &lt;li&gt;Press Ctrl-F5 to run the application. This sample application can be modified as needed. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3407/3630495618_bd6d744e6b_o.png" /&gt;   &lt;p&gt;&lt;em&gt;Note: The application is localized in French for demo purposes. This can easily be changed in the code.&lt;/em&gt;&lt;/p&gt;  &lt;h3&gt;Adding a new ViewModel&lt;/h3&gt;  &lt;p&gt;If you need a new ViewModel in the MVVM application, follow the steps:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;In Visual Studio, in the Solution explorer, right click on the ViewModel folder and select Add, New Item from the context menu. &lt;/li&gt;    &lt;li&gt;Under Mvvm, select the MvvmViewModel template. &lt;/li&gt;    &lt;li&gt;Enter a name for the new ViewModel and press OK. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3378/3629682527_9d45829849_o.png" /&gt;   &lt;ul&gt;   &lt;li&gt;Open the ViewModelLocator class (in the ViewModel folder). &lt;/li&gt;    &lt;li&gt;At the end of the class, type mvvmlocatorproperty to select the corresponding code snippet. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm3.static.flickr.com/2428/3630496550_71f88816a3.jpg?v=0" /&gt;   &lt;ul&gt;   &lt;li&gt;Press the Tab key to expand the snippet. &lt;/li&gt;    &lt;li&gt;The first replacement in the snippet is the type of the ViewModel you just created. &lt;/li&gt;    &lt;li&gt;Use tab to select the second replacement. &lt;/li&gt;    &lt;li&gt;The second replacement in the snippet is the name of the attribute that will hold the value of the ViewModel. You can choose any identifier suitable for an attribute (field). &lt;/li&gt;    &lt;li&gt;Use tab to select the third replacement. &lt;/li&gt;    &lt;li&gt;The third replacement is the name of the property that you will bind your View’s data context to. Here too you can choose any identifier suitable for a property. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3416/3629682289_88be03f8bb.jpg?v=0" /&gt;   &lt;p&gt;Of course you also need to initialize your ViewModel by entering code in the constructor.&lt;/p&gt;  &lt;h3&gt;Adding a new View&lt;/h3&gt;  &lt;p&gt;Of course a ViewModel is tightly associated to a View. After adding a ViewModel, you probably want to add a new View too. In the WPF version of the application, a new View is a new Window. If you need a more finely granulated user interface, you can link the ViewModel to a UserControl instead, or even to other UI elements. This scenario is not supported by the toolkit, however, and requires some manual work.&lt;/p&gt;  &lt;p&gt;To add a new Window-based view in the application, follow the steps:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;In Visual Studio, in the Solution explorer, right click on the project and select Add, New Item from the context menu. &lt;/li&gt;    &lt;li&gt;Under Mvvm, select the MvvmView template. &lt;/li&gt;    &lt;li&gt;Enter a name and then press OK. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm3.static.flickr.com/2459/3630496722_bf2e5f545a_o.png" /&gt;   &lt;ul&gt;   &lt;li&gt;Open the newly created XAML file. &lt;/li&gt;    &lt;li&gt;Modify the DataContext property to link to the ViewModel property that you added above. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3619/3629682899_49aa8bc528_o.png" /&gt;   &lt;h3&gt;Adding a new bindable property into a ViewModel&lt;/h3&gt;  &lt;p&gt;Finally, you probably want to add bindable properties in your ViewModel. Follow the steps:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Open the ViewModel you added before. &lt;/li&gt;    &lt;li&gt;Type mvvminpc to select the corresponding code snippet (“inpc” stands for INotifyPropertyChanged ;)) &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm3.static.flickr.com/2473/3629682817_05456caa34.jpg?v=0" /&gt;   &lt;ul&gt;   &lt;li&gt;Press the tab key to expand the snippet. &lt;/li&gt;    &lt;li&gt;The first replacement is the name of the property that you will bind to. &lt;/li&gt;    &lt;li&gt;Press the tab key to select the second replacement. &lt;/li&gt;    &lt;li&gt;The second replacement is the type of the new property. &lt;/li&gt;    &lt;li&gt;Press the tab key to select the third replacement. &lt;/li&gt;    &lt;li&gt;The third replacement is the name of the attribute that will hold the value of the property. You can choose any identifier suitable for an attribute (field). &lt;/li&gt;    &lt;li&gt;Press the tab key to select the fourth replacement. &lt;/li&gt;    &lt;li&gt;The fourth replacement is the initial value for the property (if any). You can also delete the default value altogether. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3375/3630496952_52dea311e5.jpg?v=0" /&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132805"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132805" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/132805.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/b37IIvqOorU" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/06/14/mvvm-lsquolightrsquo-toolkit-for-wpf-and-silverlight.aspx</guid>
            <pubDate>Sun, 14 Jun 2009 22:17:28 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/132805.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/06/14/mvvm-lsquolightrsquo-toolkit-for-wpf-and-silverlight.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/132805.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/132805.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/06/14/mvvm-lsquolightrsquo-toolkit-for-wpf-and-silverlight.aspx</feedburner:origLink></item>
        <item>
            <title>Working on a MVVM &amp;ldquo;light&amp;rdquo; toolkit</title>
            <category>.NET</category>
            <category>.NET 3.5</category>
            <category>Expression Blend</category>
            <category>Silverlight</category>
            <category>Technical stuff</category>
            <category>Work</category>
            <category>WPF</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/GOugWdYOC1o/working-on-a-mvvm-ldquolightrdquo-toolkit.aspx</link>
            <description>&lt;p&gt;As some of you now, I have been spending most of my free time (which is not much these days once I am done with the amazing projects I am working on at &lt;a href="http://www.identitymine.com/"&gt;IdentityMine&lt;/a&gt;, and the time spent with the family) working on a very simple, very light MVVM toolkit.&lt;/p&gt;  &lt;p&gt;This toolkit will encompass&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;A DLL with classes that make MVVM applications easier to create and “wire”.      &lt;ul&gt;       &lt;li&gt;A “base” ViewModel class that contains utility methods that ViewModels typically need. &lt;/li&gt;        &lt;li&gt;A command class that can be used in WPF and Silverlight, to loosely wire your controls to methods in the ViewModel. &lt;/li&gt;        &lt;li&gt;A messenging system to let ViewModels and other classes communicate in an uncoupled manner. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;A project template to create a new MVVM application in Visual Studio. &lt;/li&gt;    &lt;li&gt;Some snippets to easily extend existing MVVM applications (for example with new properties). &lt;/li&gt;    &lt;li&gt;Some sample applications. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I have already most of it ready, and am working on the sample apps, which is a great way to identify things that are missing from the toolkit. I already learned a lot from working on this, as well as the many discussions around this with my peers in the community.&lt;/p&gt;  &lt;p&gt;More blog posts will follow around this topic. Stay tuned!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132440"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132440" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/132440.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/GOugWdYOC1o" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/05/27/working-on-a-mvvm-ldquolightrdquo-toolkit.aspx</guid>
            <pubDate>Wed, 27 May 2009 14:41:30 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/132440.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/05/27/working-on-a-mvvm-ldquolightrdquo-toolkit.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/132440.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/132440.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/05/27/working-on-a-mvvm-ldquolightrdquo-toolkit.aspx</feedburner:origLink></item>
        <item>
            <title>HP Touchsmart TX2 keyboard failure (and the cure)</title>
            <category>Work</category>
            <category>Technical stuff</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/99TcWiBUCVw/hp-touchsmart-tx2-keyboard-failure-and-the-cure.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.hp.com/united-states/campaigns/touchsmart/notebook/gallery.html"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="3507421560_6131a1e9a4[1]" border="0" alt="3507421560_6131a1e9a4[1]" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/WindowsLiveWriter/HPTouchsmartTX2keyboardfailureandthecure_BF30/3507421560_6131a1e9a4%5B1%5D_1.png" width="240" height="212" /&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;p&gt;This morning, something weird happened on my new &lt;a href="http://www.hp.com/united-states/campaigns/touchsmart/notebook/gallery.html"&gt;HP Touchsmart TX2&lt;/a&gt; (a multitouch tablet PC). The keyboard just stopped working, including all the buttons around it (such as the volume up, volume mute and volume down buttons). The keys simply didn’t react anymore.&lt;/p&gt;  &lt;p&gt;To solve the issue, I tried rebooting, and this is when I noticed that the keyboard also didn’t work in the BIOS. For example, I was unable to display the boot menu by pressing the “ESC” key anymore.&lt;/p&gt;  &lt;p&gt;I then connected an external USB keyboard, and it worked just fine. This really sounded like a hardware failure.&lt;/p&gt;  &lt;p&gt;Since the device is of course still under warranty, I called HP tech support. I chose the French language option, meaning I was talking to a French technician. I have to say, I was impressed by the quality of the support.&lt;/p&gt;  &lt;p&gt;First, I was directed to a guy responsible for the desktop Touchsmart PCs, who couldn’t help me (bad start) but promised me another technician would call me in “a few minutes”. I thought “yeah right”, but what do you know, 15 minutes later they actually called.&lt;/p&gt;  &lt;p&gt;The cure was the following:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Remove the battery. &lt;/li&gt;    &lt;li&gt;Unplug the laptop. &lt;/li&gt;    &lt;li&gt;Press the “Power on” button for 3 minutes. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This part is not very funny, because the power on button is actually a sliding button, and it is quite painful to press it for 3 minutes (aka eternity).&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Without letting the power button go, replug the laptop to the power adapter. &lt;/li&gt;    &lt;li&gt;Restart the laptop normally. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;After these steps, the keyboard was back. I assume that it is a kind of reset, and that pressing the power button was to make sure that all the condensers were actually empty. Anyway, it worked, and it saved myself the painful step of sending my laptop back to HP!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131841"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131841" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/131841.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/99TcWiBUCVw" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/05/06/hp-touchsmart-tx2-keyboard-failure-and-the-cure.aspx</guid>
            <pubDate>Wed, 06 May 2009 18:48:15 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/131841.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/05/06/hp-touchsmart-tx2-keyboard-failure-and-the-cure.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/131841.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/131841.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/05/06/hp-touchsmart-tx2-keyboard-failure-and-the-cure.aspx</feedburner:origLink></item>
        <item>
            <title>The #techdays presentations screencasts are online (French and German)</title>
            <category>.NET</category>
            <category>.NET 3.5</category>
            <category>Expression Blend</category>
            <category>TechDays 09</category>
            <category>Technical stuff</category>
            <category>Work</category>
            <category>WPF</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/x5CBNl5k4xY/the-techdays-presentations-screencasts-are-online-french-and-german.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.microsoft.com/switzerland/msdn/fr/techdays/Presentations.aspx" target="_blank"&gt;&lt;img style="margin: 0px 10px 0px 0px; display: inline" src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/4797/r_techdays%2709%20Speaker_black.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And now the German version of the session is online too. Get it at &lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/switzerland/msdn/de/techdays/default.aspx" href="http://www.microsoft.com/switzerland/msdn/de/techdays/default.aspx"&gt;http://www.microsoft.com/switzerland/msdn/de/techdays/default.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Reminder, the French version is at&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/switzerland/msdn/fr/techdays/Presentations.aspx" href="http://www.microsoft.com/switzerland/msdn/fr/techdays/Presentations.aspx"&gt;http://www.microsoft.com/switzerland/msdn/fr/techdays/Presentations.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The slides are also available at this URL. Have fun!!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131837"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131837" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/131837.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/x5CBNl5k4xY" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/05/06/the-techdays-presentations-screencasts-are-online-french-and-german.aspx</guid>
            <pubDate>Wed, 06 May 2009 17:24:44 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/131837.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/05/06/the-techdays-presentations-screencasts-are-online-french-and-german.aspx#feedback</comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/131837.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/131837.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/05/06/the-techdays-presentations-screencasts-are-online-french-and-german.aspx</feedburner:origLink></item>
        <item>
            <title>Installing Windows 7 from a USB drive</title>
            <category>Work</category>
            <category>Windows 7</category>
            <category>Technical stuff</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/pRx40oPGCsM/installing-windows-7-from-a-usb-drive.aspx</link>
            <description>&lt;p&gt;Yesterday, Windows 7 RC (release candidate) was published on &lt;a href="http://www.msdn.com" target="_blank"&gt;MSDN&lt;/a&gt;, so the subscribers are currently downloading it. I have been using Windows 7 since October 2008, when it was pre-released during the PDC conference. Then I moved to the beta when it was released, and have been using it as my main system since then. I almost never had to go back to Vista (which I kept installed on another partition of my main laptop, just in case).&lt;/p&gt;  &lt;p&gt;By a funny coincidence, though, Win7 beta stopped working for me last night, after a nasty crash that aparently corrupted the user profile. This would be possible to fix, but I decided what the heck, all my data is safe anyway (I have a 3rd partition for data, plus back everything up to &lt;a href="http://mozy.com" target="_blank"&gt;Mozy&lt;/a&gt;) so it's not like I really need to go back into Win7 beta, especially since the RC is almost there.&lt;/p&gt;  &lt;p&gt;So now I am eager to install. The bits are currently being downloaded, and I have a couple of hours to kill while waiting. So why not study an alternative way to install Win7 to a PC? At the last MIX, I remember I heard someone mention that you don't need a DVD to install Win7. A simple UBS stick is enough, provided it is big enough to hold the 2.5 GB data contained in the Win7 ISO file. Well it so happens that we got a free 4GB USB stick at MIX, so here we go, perfect conditions for the test :)&lt;/p&gt;  &lt;p&gt;I searched online, and found this &lt;a href="http://edge.technet.com/Media/Installing-Win7-using-a-USB-Stick/" target="_blank"&gt;gem of a video, by Dennis Chung&lt;/a&gt;, one of the DPE in Singapore, that shows in details how to do that.&lt;/p&gt;  &lt;p&gt;&lt;object type="application/x-silverlight-2" height="240" width="320" data="data:application/x-oleobject;base64,QfXq3+HzJEysrJnDBxUISgAIAAATIQAAzhgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt; &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /&gt; &lt;/a&gt;&lt;/object&gt;&lt;/p&gt;  &lt;p&gt;To make it even easier, here are the steps:&lt;/p&gt;  &lt;h2&gt;Preparing the USB stick&lt;/h2&gt;  &lt;ol&gt;   &lt;li&gt;Plug the USB stick in a USB port, and make sure that you don't have any data you need on it. The data will be erased. &lt;/li&gt;    &lt;li&gt;Open a command line console &lt;/li&gt;    &lt;li&gt;Type &lt;strong&gt;Diskpart&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Type &lt;strong&gt;List Disk&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Type &lt;strong&gt;Select Disk N&lt;/strong&gt; where N is the number corresponding to your USB disk. This should be easy to find based on the size of the disk. &lt;/li&gt;    &lt;li&gt;Type &lt;strong&gt;clean&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Type &lt;strong&gt;create partition primary&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Type &lt;strong&gt;active&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Type &lt;strong&gt;format fs=fat32 quick&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Type &lt;strong&gt;assign&lt;/strong&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;After this is done, you should see the USB disk appear in Windows Explorer in the list of mounted drives:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3655/3488125579_27ebe8445a_o_d.png" /&gt; &lt;/p&gt;  &lt;h2&gt;Copying the files&lt;/h2&gt;  &lt;p&gt;Then, you need to mount the ISO file as a virtual DVD drive. For this, you will need a 3rd party tool. Personally, I like &lt;a href="http://www.slysoft.com/en/virtual-clonedrive.html" target="_blank"&gt;VirtualCloneDrive&lt;/a&gt;. Simply copy all the content of the ISO file (mounted through VirtualCloneDrive) to your USB stick.&lt;/p&gt;  &lt;h2&gt;Booting&lt;/h2&gt;  &lt;p&gt;In order to boot from the USB stick, you need to modify the boot order in the BIOS of your computer. Accessing the BIOS menu depends on your machine. On my Alienware M15X, I need to press XXXX while the machine is starting up. This gives me access to the BIOS options, where I can select the boot sequence. If the USB stick is found, the laptop will boot from there.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/WindowsLiveWriter/InstallingWindows7fromaUSBdrive_E2BF/3491075058_6b54e553ed_o%5B1%5D_2.jpg" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="3491075058_6b54e553ed_o[1]" border="0" alt="3491075058_6b54e553ed_o[1]" src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/WindowsLiveWriter/InstallingWindows7fromaUSBdrive_E2BF/3491075058_6b54e553ed_o%5B1%5D_thumb.jpg" width="804" height="604" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Note: To speed up the boot sequence, revert the setting to always boot from the hard disk after you are done installing Windows 7.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;With this done, you should now see your Windows 7 installer starting up and leading you through the installation process. Have fun!!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/WindowsLiveWriter/InstallingWindows7fromaUSBdrive_E2BF/3490261235_802a4ca71e_o%5B1%5D_2.jpg" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="3490261235_802a4ca71e_o[1]" border="0" alt="3490261235_802a4ca71e_o[1]" src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/WindowsLiveWriter/InstallingWindows7fromaUSBdrive_E2BF/3490261235_802a4ca71e_o%5B1%5D_thumb.jpg" width="804" height="604" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/WindowsLiveWriter/InstallingWindows7fromaUSBdrive_E2BF/3491075504_7c5496359e_o%5B1%5D_2.jpg" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="3491075504_7c5496359e_o[1]" border="0" alt="3491075504_7c5496359e_o[1]" src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/WindowsLiveWriter/InstallingWindows7fromaUSBdrive_E2BF/3491075504_7c5496359e_o%5B1%5D_thumb.jpg" width="804" height="604" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/WindowsLiveWriter/InstallingWindows7fromaUSBdrive_E2BF/3491075842_9fce8be0cb_o%5B1%5D_2.jpg" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="3491075842_9fce8be0cb_o[1]" border="0" alt="3491075842_9fce8be0cb_o[1]" src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/WindowsLiveWriter/InstallingWindows7fromaUSBdrive_E2BF/3491075842_9fce8be0cb_o%5B1%5D_thumb.jpg" width="804" height="604" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131646"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131646" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/131646.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/pRx40oPGCsM" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/05/01/installing-windows-7-from-a-usb-drive.aspx</guid>
            <pubDate>Fri, 01 May 2009 16:20:51 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/131646.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/05/01/installing-windows-7-from-a-usb-drive.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/131646.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/131646.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/05/01/installing-windows-7-from-a-usb-drive.aspx</feedburner:origLink></item>
        <item>
            <title>Switching expertise: From Client App Dev to Silverlight</title>
            <category>.NET</category>
            <category>.NET 3.5</category>
            <category>MVP</category>
            <category>Silverlight</category>
            <category>Technical stuff</category>
            <category>Work</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/Lu1azi2wq84/switching-expertise-from-client-app-dev-to-silverlight.aspx</link>
            <description>&lt;p&gt; &lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/4797/o_Silverlight.png" /&gt; &lt;/p&gt;  &lt;p&gt;At the last MVP summit in March, some of us were informed that a new MVP expertise had been created for Silverlight. They asked a small number of existing MVPs with strong Silverlight competency (including yours truly) if they would agree to switch to that new expertise.&lt;/p&gt;  &lt;p&gt;I must admit that I have not always been very happy with the thought of a new expertise dedicated only to Silverlight. In my opinion, it is very important to keep Silverlight close to Windows Presentation Foundation, and to make sure that WPF experts are informed about the latest changes and the future plans of Silverlight. This is why I liked the Client App Dev expertise, gathering under one roof WPF and Silverlight people.&lt;/p&gt;  &lt;p&gt;So why did I accept to switch then? Well, precisely for this reason. Since the new expertise is created anyway, I thought that it would be good to be part of that, and to make sure that the product group is sensitive to this aspect, and keeps close to WPF. Also, since my audience is made as much of WPF than Silverlight developers, it will be a good way to spread the news about Silverlight plans and maybe to contribute to bring these 2 platforms even closer.&lt;/p&gt;  &lt;p&gt;I am excited about the switch, actually, especially because the Silverlight expertise will be a small group, allowing quite a rich interaction with the product group. I know personally some of the &lt;a href="https://mvp.support.microsoft.com/communities/mvp.aspx?product=1&amp;amp;competency=Silverlight" target="_blank"&gt;other Silverlight MVPs&lt;/a&gt;, and all of them by reputation. This should be a very lively group and I am proud to be part of it.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.galasoft.ch/images/MVP_Horizontal_FullColor_cc.png" /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131574"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131574" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/131574.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/Lu1azi2wq84" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/04/29/switching-expertise-from-client-app-dev-to-silverlight.aspx</guid>
            <pubDate>Wed, 29 Apr 2009 21:25:25 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/131574.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/04/29/switching-expertise-from-client-app-dev-to-silverlight.aspx#feedback</comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/131574.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/131574.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/04/29/switching-expertise-from-client-app-dev-to-silverlight.aspx</feedburner:origLink></item>
        <item>
            <title>The #techdays presentations screencasts are online (French only)</title>
            <category>.NET</category>
            <category>.NET 3.5</category>
            <category>Expression Blend</category>
            <category>IdentityMine</category>
            <category>TechDays 09</category>
            <category>Technical stuff</category>
            <category>Windows 7</category>
            <category>Work</category>
            <category>WPF</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/PttWw9p1s2Q/the-techdays-presentations-screencasts-are-online-french-only.aspx</link>
            <description>&lt;div class="frame"&gt;Update: The &lt;a href="http://www.microsoft.com/switzerland/msdn/de/techdays/default.aspx"&gt;German version of the presentation&lt;/a&gt; is online too. &lt;/div&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/switzerland/msdn/fr/techdays/Presentations.aspx" target="_blank"&gt;&lt;img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/4797/r_techdays%2709%20Speaker_black.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I was just notified that the screencast for the session I gave at TechDays in Geneva a few weeks ago is now online. You can see this presentation (in French) at&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/switzerland/msdn/fr/techdays/Presentations.aspx" href="http://www.microsoft.com/switzerland/msdn/fr/techdays/Presentations.aspx"&gt;http://www.microsoft.com/switzerland/msdn/fr/techdays/Presentations.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The slides are also available at this URL. Have fun!!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131377"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131377" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/131377.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/PttWw9p1s2Q" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/04/22/the-techdays-presentations-screencasts-are-online-french-only.aspx</guid>
            <pubDate>Wed, 22 Apr 2009 22:21:17 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/131377.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/04/22/the-techdays-presentations-screencasts-are-online-french-only.aspx#feedback</comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/131377.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/131377.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/04/22/the-techdays-presentations-screencasts-are-online-french-only.aspx</feedburner:origLink></item>
        <item>
            <title>Posting the source code for #techdays (Switzerland) talks</title>
            <category>.NET</category>
            <category>.NET 3.5</category>
            <category>Expression Blend</category>
            <category>IdentityMine</category>
            <category>TechDays 09</category>
            <category>Technical stuff</category>
            <category>Windows 7</category>
            <category>Work</category>
            <category>WPF</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/C0_wHSK9dmg/posting-the-source-code-for-techdays-switzerland-talks.aspx</link>
            <description>&lt;div class="frame"&gt;   &lt;h1&gt;Update:&lt;/h1&gt;    &lt;p&gt;I updated the installation instructions to make it clearer that you need the WPF toolkit and SQL Server express before you can run the application.&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;TechDays Switzerland is always a very nice venue, and this year in Geneva and in Bern were no exceptions. For me it was a special occasion, because I gave the same talk in French in Geneva, and in German in Bern, and I had never done this before. I think it went well. Altogether approximately 450 people saw this talk. I think I will possibly reuse it later this year at other occasions, because it is a good one.&lt;/p&gt;  &lt;p&gt;The topic was "WPF today and tomorrow" and the abstract was:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Entwicklung von WPF Applikationen – heute und morgen&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Im Rahmen dieser Session werden Best Practices zur Entwicklung der Windows Presentation Foundation (WPF) erörtert. Wir erstellen Lookless-Controls und gestalten sie entsprechend. Ausserdem werden moderne Präsentationsmodelle, die den Designer-Developer-Workflow erleichtern sollen, sowie im .NET-Framework und im WPF-Toolkit erstellte Controls vorgestellt. Mithilfe von Visual Studio und Expression Blend üben wir uns in der Erstellung von Anwendungen.      &lt;br /&gt;Ein weiterer in dieser Session behandelter Aspekt ist die künftige Entwicklung der WPF. Mit der bevorstehenden Einführung von .NET 4 wird die WPF weiter an Flexibilität und Leistungsstärke gewinnen. Pixel-Shader, Ergänzungen an der XAML-Sprache, die Multi-Touch-Technologie, neue Controls und andere Erweiterungen – all dies führt uns zu einer neuartigen User Experience und zu neuen Möglichkeiten der Interaktion (Think Minority Report!).&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Windows Presentation Foundation: aujourd'hui et demain&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Cette session passe en revue les pratiques de développement utilisées avec Windows Presentation Foundation de nos jours. Nous construirons une application de business connectée à une banque de données, utiliserons les nouveaux contrôles « Line of Business » (Datagrid, Ribbon) et utiliserons Visual Studio et Blend pour rendre nos applications plus belles.      &lt;br /&gt;Ensuite, nous parlerons du future de WPF. Avec .NET 4 qui arrive, WPF sera aussi plus puissant et flexible. Pixel shaders, les additions au langage XAML, les applications à touche multiple (mulittouch) et d’autres additions nous rapprocherons de l’expérience utilisateur du futur (telles que dans « Minority Report »).&lt;/em&gt;&lt;/p&gt;  &lt;h2&gt;Slides&lt;/h2&gt;  &lt;p&gt;The slides for the sessions should be available on the TechDays website soon (&lt;a href="http://www.techdays.ch"&gt;www.techdays.ch&lt;/a&gt;) as well as a recording of the session. In the mean time, &lt;a href="http://www.slideshare.net/lbugnion/techdays-switzerland-2009" target="_blank"&gt;I uploaded the slides here&lt;/a&gt;.&lt;/p&gt;  &lt;div style="text-align: left; width: 425px" id="__ss_1313047"&gt;&lt;a style="margin: 12px 0px 3px; display: block; font: 14px helvetica,arial,sans-serif; text-decoration: underline" title="TechDays Switzerland 2009" href="http://www.slideshare.net/lbugnion/techdays-switzerland-2009?type=powerpoint"&gt;TechDays Switzerland 2009&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=techdaysswitzerland2009-090419145702-phpapp02&amp;amp;stripped_title=techdays-switzerland-2009" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=techdaysswitzerland2009-090419145702-phpapp02&amp;amp;stripped_title=techdays-switzerland-2009" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;    &lt;div style="font-family: tahoma,arial; height: 26px; font-size: 11px; padding-top: 2px"&gt;View more &lt;a style="text-decoration: underline" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline" href="http://www.slideshare.net/lbugnion"&gt;lbugnion&lt;/a&gt;.&lt;/div&gt; &lt;/div&gt;  &lt;h2&gt;Video&lt;/h2&gt;  &lt;p&gt;I showed a small video about pixel shaders in this talk. The video is &lt;a href="https://cid-40cffde85f1ab56a.skydrive.live.com/self.aspx/Videos/TechDaysCH09/ShaderVideo.wmv" target="_blank"&gt;available for download here&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;Source code&lt;/h2&gt;  &lt;p&gt;Here is the source code of the "Line of Business" application we built together. As a reminder, it is inspired by a "hands on lab" put together by the DPE team at Microsoft Switzerland. This lab &lt;a href="http://tinyurl.com/WPFLOB" target="_blank"&gt;can be downloaded here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To run the application, you must first install the following:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Install &lt;a href="http://www.microsoft.com/express/sql/download/" target="_blank"&gt;SQL Server Express&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Extract the &lt;a href="http://www.galasoft.ch/mydotnet/articles/resources/techdaysch09/NORTHWND.zip" target="_blank"&gt;Northwind database&lt;/a&gt; to C:\temp.&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Install the &lt;a href="http://www.codeplex.com/wpf" target="_blank"&gt;WPF Toolkit&lt;/a&gt;.&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.galasoft.ch/mydotnet/articles/resources/techdaysch09/LobDemo.zip" target="_blank"&gt;&lt;strong&gt;Source code for the LOB application&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;. &lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131296"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131296" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/131296.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/C0_wHSK9dmg" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/04/19/posting-the-source-code-for-techdays-switzerland-talks.aspx</guid>
            <pubDate>Mon, 20 Apr 2009 03:07:39 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/131296.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/04/19/posting-the-source-code-for-techdays-switzerland-talks.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/131296.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/131296.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/04/19/posting-the-source-code-for-techdays-switzerland-talks.aspx</feedburner:origLink></item>
        <item>
            <title>Using a Behavior to magnify your WPF applications</title>
            <category>.NET</category>
            <category>.NET 3.5</category>
            <category>Expression Blend</category>
            <category>MIX</category>
            <category>MIX09</category>
            <category>Technical stuff</category>
            <category>Work</category>
            <category>WPF</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/fZHGvFi2OCU/using-a-behavior-to-magnify-your-wpf-applications.aspx</link>
            <description>&lt;p&gt;At MIX 2009, the Expression Blend team cam up with a new concept called Behaviors. In fact, the only thing new is the way that the Behaviors are packed. WPF developers have been doing what we called "Attached Behaviors" for quite some time already: see &lt;a href="http://groups.google.com/group/wpf-disciples/browse_thread/thread/bbf3a9d83bd9c21e/d2b8e66663e01224?lnk=gst&amp;amp;q=attached+behavior#d2b8e66663e01224"&gt;this thread&lt;/a&gt; (dated July 2008) to read a discussion around this topic at the WPF Disciples group.&lt;/p&gt;  &lt;p&gt;Attached Behaviors leverage a feature of WPF called Attached Properties, that allows you to add a property to an element even if this element doesn't implement it. When the Attached Property value is set (or changes), you get an access to the element to which the property is attached, and you get a chance to attach an event handler to it, or to modify how it looks, reacts, etc... This is why we call this Attached Behavior. In fact it is similar to extension methods in C#: You define a method somewhere in your code, and you attach it to another element that doesn't know about it. For more information about attached behaviors, you can read the article that my good friend and fellow WPF Disciple Josh Smith &lt;a href="http://www.codeproject.com/KB/WPF/AttachedBehaviors.aspx" target="_blank"&gt;wrote about them&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The Behaviors proposed by the Blend team are using Attached Behaviors under the covers, and propose a neat way to "pack" them and to attach them to an element. In this post, we will see how I built a Behavior that you can use to add a magnifying glass to a WPF application in just a few lines of XAML (the Behavior implementation needs more than that though ;) but it is neatly packed and can be reused).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;In this article, you will see&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;How to download the assemblies needed. &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;How to add them into Expression Blend 3 or in Visual Studio 2008. &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;How to set the ZoomBehavior's properties. &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;How the ZoomBehavior is built (and of course you can download the source code). &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;And a sample application.&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3647/3412149897_0e350c7ba9.jpg?v=0" /&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;Default magnifier on a picture&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;h2&gt;Why Expression.Interactivity?&lt;/h2&gt;  &lt;p&gt;This question was asked many times after the Behaviors were shown at MIX: Why do I need to add a reference to an Expression Blend assembly to use Behaviors in my application, even though they do not really have anything to do with Blend? Sure, Blend provides a nice way to add a Behavior to an element visually, but you can do the same in XAML.&lt;/p&gt;  &lt;p&gt;The answer is that Behaviors have been implemented by members of the Blend team, and are still very new. They just needed a place to store them, and it made sense to them to put that code in an assembly that comes with Blend. In my opinion it was not the best choice, and putting Behaviors in the WPF Toolkit (and in the Silverlight Toolkit) would have been a better option. I suppose that this will change later, and that Behaviors will maybe even flow into the .NET framework (and maybe even into the System.* namespace).&lt;/p&gt;  &lt;h2&gt;What does the behavior do?&lt;/h2&gt;  &lt;p&gt;The ZoomBehavior I developed and expose here allows to easily add a magnifying glass to any WPF window. With just a few lines of XAML code, you add a relative complex functionality. You can have any shape and any content - photos, videos, user interface elements, shapes, etc...&lt;/p&gt; &lt;img src="http://farm4.static.flickr.com/3627/3412150387_540c388c9a.jpg?v=0" /&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;Custom magnifier on a video&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;img src="http://farm4.static.flickr.com/3381/3412954854_2a21635ebc.jpg?v=0" /&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;Custom magnifier on text&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;img src="http://farm4.static.flickr.com/3360/3412954946_4d818229f6.jpg?v=0" /&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;Default magnifier with custom width on UI elements&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;h2&gt;What about Silverlight?&lt;/h2&gt;  &lt;p&gt;Behaviors work in Silverlight as well as in WPF. The mechanisms they rely on are compatible. However, my ZoomBehavior does not work in Silverlight, because it relies on a class named VisualBrush that is not available in Silverlight yet. Also, I draw the magnifying glass on the Adorner layer, which is not available in Silverlight applications (but we could imagine a workaround for that particular limitation).&lt;/p&gt;  &lt;p&gt;In other words, if you do Silverlight code, you can learn from this sample, but you cannot use it.&lt;/p&gt;  &lt;h2&gt;Using the ZoomBehavior in Expression Blend 3&lt;/h2&gt;  &lt;p&gt;Expression Blend 3 is probably the easiest way to add a Behavior to an application. You will need Expression Blend 3, which is currently in Community Technology Preview state, and &lt;a href="http://www.microsoft.com/expression/try-it/blendpreview.aspx"&gt;can be downloaded here&lt;/a&gt;.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Download my &lt;a href="http://www.galasoft.ch/mydotnet/GalaSoft.Utilities/GalaSoft.Utilities.Release.V1.zip"&gt;Utilities assembly&lt;/a&gt;. This assembly is in a Zip file. Extract it to a local folder. &lt;/li&gt;    &lt;li&gt;In Blend 3, right click on the Project tab, on the References folder. &lt;/li&gt;    &lt;li&gt;From the context menu, select Add Reference. Navigate to the folder containing the Utilities assembly, select it and press OK. &lt;/li&gt;    &lt;li&gt;Build the application. This ensures that all the referenced assemblies are copied to the bin/Debug folder. &lt;/li&gt;    &lt;li&gt;Open the Assets Library. &lt;/li&gt;    &lt;li&gt;You should see the ZoomBehavior in the Behaviors tab. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3309/3412149179_a917343cb8.jpg?v=0" /&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;The Asset Library and the ZoomBehavior&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Drag and drop the ZoomBehavior on any element in the Window.      &lt;br /&gt;&lt;em&gt;Note: Typically, you want to add this behavior to the LayoutRoot panel (the first element under the main window). Even if you add the ZoomBehavior to a child element somewhere in the window, the magnifier will be added to the window's Content element, and will be visible in the whole window.&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;You should see the behavior appear in the Objects and Timeline panel. &lt;/li&gt; &lt;/ul&gt; &lt;img src="http://farm4.static.flickr.com/3590/3412953756_5e7fa8d798.jpg?v=0" /&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;Objects and Timeline panel&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;To toggle the magnifier on and off, you need a little snippet of code. For example, you can use a ToggleButton and then write the following C# code:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;First add the following using directive to the top of the page: &lt;/li&gt; &lt;/ul&gt;  &lt;pre class="csharp" name="code"&gt;using GalaSoft.Utilities.Wpf.Zoom;&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;Then, use this snippet for the Click event handler on the Button: &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="csharp" name="code"&gt;/// &lt;summary&gt;
/// Test the ToggleZoom extension method
/// &lt;/summary&gt;
private void Button_Click(object sender, RoutedEventArgs e)
{
  TestRectangle.ToggleZoom();
}&lt;/pre&gt;

&lt;p&gt;The result is a round magnifier, with a magnifying factor of 2.0 and a diameter of 200 pixels. You will see below how to change the size and aspect of the magniifier.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Alternatively, you can use the IsVisible dependency property on the ZoomBehavior object, set it directly or data bind it, for example to a checkbox or a ToggleButton, or any other boolean property. &lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://farm4.static.flickr.com/3555/3412150697_265ce4955e.jpg?v=0" /&gt; 

&lt;p&gt;&lt;strong&gt;&lt;em&gt;ZoomBehavior properties in Blend 3&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;img src="http://farm4.static.flickr.com/3350/3412150743_12329f50d9.jpg?v=0" /&gt; 

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Binding the IsVisible property in Blend 3&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;img src="http://farm4.static.flickr.com/3363/3412955168_024520a69f.jpg?v=0" /&gt; 

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Binding the IsVisible property in Blend 3&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;Using the ZoomBehavior in Visual Studio&lt;/h2&gt;

&lt;p&gt;Adding the magnifier can also be done directly in XAML, without using Blend 3:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Download my &lt;a href="http://www.galasoft.ch/mydotnet/GalaSoft.Utilities/GalaSoft.Utilities.Release.V1.zip"&gt;Utilities assembly and the Microsoft Expression Interactivity assembly&lt;/a&gt;. These assemblies are in a Zip file. Extract them to a local folder. &lt;/li&gt;

  &lt;li&gt;In Visual Studio, add a reference to both assemblies to your WPF application 
    &lt;ul&gt;
      &lt;li&gt;Right click on the References folder &lt;/li&gt;

      &lt;li&gt;Select Add Reference from the context menu &lt;/li&gt;

      &lt;li&gt;Browse to the folder in which you saved both assemblies above, and select them. Then press OK. &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;

  &lt;li&gt;In XAML, add two XML namespaces to the Window tag: &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="xml" name="code"&gt;xmlns:i="http://schemas.microsoft.com/expression/2009/interactivity"
xmlns:zoom="clr-namespace:GalaSoft.Utilities.Wpf.Zoom;assembly=GalaSoft.Utilities"&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;Add the following attached property to the element you want to attach the magnifier to (in that case, the Rectangle named TestRectangle). 
    &lt;br /&gt;&lt;em&gt;Note: Typically, you want to add this behavior to the LayoutRoot panel (the first element under the main window). Even if you add the ZoomBehavior to a child element somewhere in the window (like in this sample), the magnifier will be added to the window's Content element, and will be visible in the whole window.&lt;/em&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="xml" name="code"&gt;&amp;lt;Rectangle x:Name="TestRectangle"
           Fill="#FF821A32"
           Stroke="#FF000000"
           HorizontalAlignment="Right"
           Margin="0,260,17,354"
           Width="179"&amp;gt;

  &amp;lt;i:Interaction.Behaviors&amp;gt;
    &amp;lt;zoom:ZoomBehavior x:Name="MyZoom" /&amp;gt;
  &amp;lt;/i:Interaction.Behaviors&amp;gt;

&amp;lt;/Rectangle&amp;gt;&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;Here too, to toggle the magnifier on/off, you need to add the namespace GalaSoft.Utilities.Wpf.Zoom to your code-behind, and then call the extension method ToggleZoom() on the element to which you added the behavior. For example: &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="csharp" name="code"&gt;TestRectangle.ToggleZoom();&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;And of course here too you can use a binding on the IsVisible property &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="xml" name="code"&gt;&amp;lt;i:Interaction.Behaviors&amp;gt;
  &amp;lt;zoom:ZoomBehavior x:Name="MyZoom"
                     IsVisible="{Binding ElementName=ToggleZoomCheckBox,
                                         Path=IsChecked, Mode=TwoWay}" /&amp;gt;
&amp;lt;/i:Interaction.Behaviors&amp;gt;&lt;/pre&gt;

&lt;h2&gt;Using properties&lt;/h2&gt;

&lt;p&gt;There are a number of properties that you can use to customize the magnifier's look and feel. All these properties are Dependency Properties, which means that they can be data bound or animated, such as in the sample that you can download below.&lt;/p&gt;

&lt;h3&gt;Zoom factor&lt;/h3&gt;

&lt;p&gt;The property ZoomFactor can be set to any value between 1.0 and Double.MaxValue. The default value is 2.0.&lt;/p&gt;

&lt;h3&gt;Magnifier height and width&lt;/h3&gt;

&lt;p&gt;The properties MagnifierWidth and MagnifierHeight govern the dimensions of the magnifying glass. Default value: 200 px * 200 px.&lt;/p&gt;

&lt;h3&gt;Distance from the mouse&lt;/h3&gt;

&lt;p&gt;When the magnifier is visible, the mouse cursor turns into a cross. The magnifier appears next to the cursor, either left or right, below or above, depending on the mouse position. If you move the mouse too fast, the cursor might "land" on the magnifier, which you want to avoid. In that case, and depending on the shape of the magnifier, you may want to increase the distance from the mouse, using the DistanceFromMouse property. Default value: 5 pixels.&lt;/p&gt;

&lt;h3&gt;Magnifier shape&lt;/h3&gt;

&lt;p&gt;By default, the magnifier is an Ellipse. You can however specify any shape you want, using the Template property.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Create a ControlTemplate, either in Blend or in Visual Studio. &lt;/li&gt;

  &lt;li&gt;The ControlTemplate must target a Control (TargetType property). &lt;/li&gt;

  &lt;li&gt;One of the elements of the ControlTemplate must set its Fill (or Background) property to a TemplateBinding on the Control's Background. This is where the magnified view will appear. &lt;/li&gt;

  &lt;li&gt;Save this template in the window's resources (for example). &lt;/li&gt;

  &lt;li&gt;Set the ZoomBehavior's Template property to the saved ControlTemplate. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For instance:&lt;/p&gt;

&lt;pre class="xml" name="code"&gt;&amp;lt;ControlTemplate x:Key="ZoomGlassTemplate1"
                 TargetType="{x:Type Control}"&amp;gt;
  &amp;lt;Grid Background="Silver"&amp;gt;
    &amp;lt;Rectangle Fill="{TemplateBinding Background}"
               Stroke="#FF000000"
               StrokeThickness="5"
               StrokeDashArray="1 2" /&amp;gt;
  &amp;lt;/Grid&amp;gt;
&amp;lt;/ControlTemplate&amp;gt;&lt;/pre&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;pre class="xml" name="code"&gt;&amp;lt;i:Interaction.Behaviors&amp;gt;
  &amp;lt;zoom:ZoomBehavior x:Name="MyZoom"
                     Template="{StaticResource ZoomGlassTemplate1}"
                     DistanceFromMouse="20" /&amp;gt;
&amp;lt;/i:Interaction.Behaviors&amp;gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;Tip: You want to make sure that an opaque background is set in your template (in that case, the Grid's Background is set to Silver), to avoid having a transparent background and seeing the window's content below the magnifier when it is close to the window's edges.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IsVisible&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This boolean property can be set directly, or data bound for example to a checkbox, to toggle the magnifier on and off.&lt;/p&gt;

&lt;h2&gt;Downloads&lt;/h2&gt;

&lt;p&gt;You can download the following files:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Assemblies needed to add the ZoomBehavior to your application (&lt;a href="http://www.galasoft.ch/mydotnet/GalaSoft.Utilities/GalaSoft.Utilities.Release.V1.zip"&gt;GalaSoft.Utilities and Microsoft.Expression.Interactivity&lt;/a&gt;). &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.galasoft.ch/mydotnet/GalaSoft.Utilities/GalaSoft.Utilities.Source.zip"&gt;Source code for my Utilities classes&lt;/a&gt; (the ZoomBehavior classes are into the Wpf/Zoom subfolder) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope you'll have fun playing with this behavior, and feel free to give me your feedback!&lt;/p&gt;

&lt;h2&gt;Sample application&lt;/h2&gt;

&lt;p&gt;The &lt;a href="http://www.galasoft.ch/mydotnet/GalaSoft.Utilities/ZoomBehaviorTest.zip" target="_blank"&gt;sample application&lt;/a&gt; allows you to test the ZoomBehavior with multiple shapes, sliders for dependency properties and dynamic content.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Use the shapes on the left to change the shape of the magnifier. The round shape sets the default template. The other two templates are defined in Window1.xaml. &lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://farm4.static.flickr.com/3611/3412150907_9abde79d68.jpg?v=0" /&gt; 

&lt;p&gt;&lt;strong&gt;&lt;em&gt;RadioButtons to choose templates&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Use the button and checkbox on the top right to toggle the magnifier on/off. You can use the ToggleZoom extension method, or use the IsVisble dependency property on the ZoomBehavior. &lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://farm4.static.flickr.com/3396/3412955264_8ab850cbca.jpg?v=0" /&gt; 

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Toggling the magnifier on/off&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Press the "Z" key to toggle the ZoomBehavior on/off. &lt;/li&gt;

  &lt;li&gt;Pass the cursor on UI elements, shapes, image and even video and see the magnified content &lt;/li&gt;

  &lt;li&gt;Use the sliders on the bottom right to change the width, height and the zoom factor of the magnifier. &lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://farm4.static.flickr.com/3654/3412151281_75945c7aea.jpg?v=0" /&gt; 

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Changing the width, height and zoom factor&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;How does it even work?&lt;/h2&gt;

&lt;p&gt;The ZomBehavior relies on three classes.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;ZoomBehavior&lt;/strong&gt; 

    &lt;ul&gt;
      &lt;li&gt;This class inherits the Microsoft.Expression.Interactivity.Behavior class, which is a generic class. The ZoomBehavior can be attached to any FrameworkElement. However, the magnifier will always be available for the whole window containing the FrameworkElement. &lt;/li&gt;

      &lt;li&gt;This class also defines a set of dependency properties detailed above in the Using Properties section. &lt;/li&gt;

      &lt;li&gt;The ZoomBehavior also defines a method used to toggle the magnifier on/off. There is also another way to toggle the magnifier, using an attached method. &lt;/li&gt;

      &lt;li&gt;To get a grip on the FrameworkElement using the behavior, you can override the OnAttached method, which will be called when the behavior is attached to an element. Then use the AssociatedObject of the Behavior class, which is automatically casted to a FrameworkElement in ZoomBehavior (thanks to the generic implementation). &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;ZoomAdorner&lt;/strong&gt; 

    &lt;ul&gt;
      &lt;li&gt;This class inherits the System.Windows.Documents.Adorner class, that defines objects that can be added to the AdornerLayer. &lt;/li&gt;

      &lt;li&gt;The AdornerLayer is a special layer that is guaranteed to always appear in front of all the other elements on the window. This is perfect to draw decorations for objects (such as handles to resize an element) or in our case, to make sure that the magnifier is on top of all other elements. &lt;/li&gt;

      &lt;li&gt;If no template is defined, the method CreateGlass will create an Ellipse to display the magnified view. &lt;/li&gt;

      &lt;li&gt;If a template is defined, the method CreateGlass will create a Control and apply the template to that element. This allows using any shape to display the magnified view. &lt;/li&gt;

      &lt;li&gt;We override a few methods and properties in the ZoomAdorner class, to allow placing any element in the AdornerLayer. We use the helper class VisualCollection to create a tree of visual elements below the adorner. This requires overriding VisualChildrenCount, GetVisualChild, ArrangeOverride and MeasureOverride. &lt;/li&gt;

      &lt;li&gt;We attach an event handler to the root element on which the magnifier is displayed, to track mouse movements. When we detach the adorner, we must remember to remove the event handler to avoid memory leaks. &lt;/li&gt;

      &lt;li&gt;The magnified view is provided by a VisualBrush. This is a representation of the observed scene, which we can move by changing the ViewBox property. &lt;/li&gt;

      &lt;li&gt;The method SetGlass is called everytime that the mouse moves, or that the aspect of the magnifier changes (through a dependency property). It is used to calculate the magnifier's size, position, and the ViewBox of the VisualBrush. &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;ZoomExtension&lt;/strong&gt; 

    &lt;ul&gt;
      &lt;li&gt;This class is a utility class, that defines an extension method available on every FrameworkElement. &lt;/li&gt;

      &lt;li&gt;The method ToggleZoom will only be active on the element on which you added the ZoomBehavior. On other elements, it will simply be ignored. &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;License&lt;/h2&gt;
&lt;a href="http://creativecommons.org/licenses/by/3.0/" target="_blank"&gt;&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" align="left" src="http://creativecommons.org/images/public/somerights20.png" /&gt;&lt;/a&gt; 

&lt;p&gt;The GalaSoft.Utilities assembly and all the classes it contains are distributed under the &lt;strong&gt;Creative Commons License (Attribution 3.0 Unported).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a title="http://creativecommons.org/licenses/by/3.0/" href="http://creativecommons.org/licenses/by/3.0/"&gt;http://creativecommons.org/licenses/by/3.0/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;I hope you will have fun using this behavior. For me it was a great occasion to learn how to program behaviors, and to review the Adorner Layer, a great feature of WPF applications. But having played with the ZoomBehavior quite a lot in the last few days, I think it has a potential for many WPF applications. Feel free to use it!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130749"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130749" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/130749.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/fZHGvFi2OCU" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/04/05/using-a-behavior-to-magnify-your-wpf-applications.aspx</guid>
            <pubDate>Sun, 05 Apr 2009 05:32:21 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/130749.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/04/05/using-a-behavior-to-magnify-your-wpf-applications.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/130749.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/130749.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/04/05/using-a-behavior-to-magnify-your-wpf-applications.aspx</feedburner:origLink></item>
        <item>
            <title>Two days FREE training: WPF LOB</title>
            <category>.NET</category>
            <category>.NET 3.5</category>
            <category>Technical stuff</category>
            <category>Work</category>
            <category>WPF</category>
            <link>http://feedproxy.google.com/~r/galasoft/~3/U8SO8iR0Cdk/two-days-free-training-wpf-lob.aspx</link>
            <description>&lt;p&gt;Get some of that: Microsoft's Jaime Rodriguez and Karl Shifflett are on tour and will come to a number of locations to give a two days training packed with WPF training for building Line of Business (LOB) applications.&lt;/p&gt;  &lt;p&gt;"That must cost a lot", you think? (well maybe you don't if you read the title of this post) No it is FREE, yes you heard me, no costs, no commitment, no strings attached. You can even choose to follow one day only, or both, as you want.&lt;/p&gt;  &lt;p&gt;And believe me, you get two of the best WPF experts you can imagine! Both Jaime and Karl have years of experience in WPF, and especially in building LOB applications. Both spent literally hours (days?) thinking about this, and how to build the best applications in the easiest way.&lt;/p&gt;  &lt;p&gt;Don't wait, first come first serve! Go register now!&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/jaimer/archive/2009/04/01/announcing-the-using-wpf-to-build-lob-applications-training-tour.aspx" href="http://blogs.msdn.com/jaimer/archive/2009/04/01/announcing-the-using-wpf-to-build-lob-applications-training-tour.aspx"&gt;http://blogs.msdn.com/jaimer/archive/2009/04/01/announcing-the-using-wpf-to-build-lob-applications-training-tour.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130709"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130709" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/130709.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/galasoft/~4/U8SO8iR0Cdk" height="1" width="1"/&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid isPermaLink="false">http://blog.galasoft.ch/archive/2009/04/03/two-days-free-training-wpf-lob.aspx</guid>
            <pubDate>Fri, 03 Apr 2009 15:53:12 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/130709.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/04/03/two-days-free-training-wpf-lob.aspx#feedback</comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/130709.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/130709.aspx</trackback:ping>
        <feedburner:origLink>http://blog.galasoft.ch/archive/2009/04/03/two-days-free-training-wpf-lob.aspx</feedburner:origLink></item>
    </channel>
</rss>
