<rss version="2.0" 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/">
    <channel>
        <title>Expression Blend</title>
        <link>http://geekswithblogs.net/lbugnion/category/7118.aspx</link>
        <description>Microsoft Expression Blend</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>
        <item>
            <title>Detecting design mode in Windows 8/WinRT</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2011/09/25/detecting-design-mode-in-windows-8winrt.aspx</link>
            <description>&lt;p&gt;One of the very useful features of the &lt;a href="http://www.galasoft.ch/mvvm"&gt;MVVM Light toolkit&lt;/a&gt; is to help with the creation of design time data, in order to give something to see on the design surface (Expression Blend, Visual Studio designer). This is especially useful when designing list controls such as ListBox, ComboBox, etc. Without design time data, these controls will remain empty, and the designer will not see what he is working on. This can cost a lot of time and cause frustration.&lt;/p&gt;  &lt;p&gt;Detecting design mode was always incompatible in WPF and in Silverlight.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;In WPF, we use a rather complicated snippet: &lt;/li&gt; &lt;/ul&gt;  &lt;pre class="csharp" name="code"&gt;var prop = DesignerProperties.IsInDesignModeProperty;
_isInDesignMode
    = (bool)DependencyPropertyDescriptor
                 .FromProperty(prop, typeof(FrameworkElement))
                 .Metadata.DefaultValue;&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;In Silverlight, there is a convenient property: &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="csharp" name="code"&gt;_isInDesignMode = DesignerProperties.IsInDesignTool;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In WinRT, &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.designmode.designmodeenabled(v=VS.85).aspx"&gt;we have to use yet another property&lt;/a&gt;: &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="csharp" name="code"&gt;_isInDesignMode 
    = Windows.ApplicationModel.DesignMode.DesignModeEnabled;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;Abstracting the differences&lt;/h2&gt;

&lt;p&gt;These differences can make it difficult to share code between these environments. This is why the MVVM Light toolkit abstracts these and provides a convenient property on the ViewModelBase class:&lt;/p&gt;

&lt;pre class="csharp" name="code"&gt;(within a ViewModel deriving from ViewModelBase):

if (IsInDesignMode)
{
    // Create design time data
}
else
{
    // Create run time data
}

(within any class not deriving from ViewModelBase):

if (ViewModelBase.IsInDesignModeStatic)
{
    // Create design time data
}
else
{
    // Create run time data
}&lt;/pre&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

&lt;p&gt;Laurent&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;div style="margin-bottom: -1em"&gt;
  &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;

  &lt;div style="position: relative; left: 130px; top: -36px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt; 

    &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt; 

    &lt;br /&gt;&lt;iframe style="border-top-style: none; margin-bottom: -20px; height: 23px; width: 450px; border-bottom-style: none; overflow: hidden; border-right-style: none; border-left-style: none; margin-top: 7px" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.galasoft.ch/archive/2011/09/25/detecting-design-mode-in-windows-8winrt.aspx&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=450&amp;amp;action=like&amp;amp;colorscheme=light" frameborder="0" allowtransparency="allowtransparency" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;/div&gt; &lt;img src="http://geekswithblogs.net/lbugnion/aggbug/147036.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2011/09/25/detecting-design-mode-in-windows-8winrt.aspx</guid>
            <pubDate>Sun, 25 Sep 2011 19:02:59 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/147036.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2011/09/25/detecting-design-mode-in-windows-8winrt.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/147036.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/147036.aspx</trackback:ping>
        </item>
        <item>
            <title>MVVM Light V4 beta1</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2011/09/12/mvvm-light-v4-beta1.aspx</link>
            <description>&lt;p&gt;This morning, I published MVVM Light V4 beta1 in the form of an MSI. The installation instructions are detailed on the &lt;a href="http://www.galasoft.ch/mvvm/installing/"&gt;MVVM Light installation page&lt;/a&gt;. Please make sure to &lt;a href="http://www.galasoft.ch/mvvm/cleaning/"&gt;uninstall previous versions&lt;/a&gt; before you install V4 beta1.&lt;/p&gt;  &lt;p&gt;There are &lt;a href="http://www.galasoft.ch/mvvm/installing/changes/"&gt;quite a few changes in this version&lt;/a&gt;, and I plan to blog about various features in the coming days. As usual, stay tuned!&lt;/p&gt;  &lt;h2&gt;Change log&lt;/h2&gt;  &lt;h3&gt;General changes&lt;/h3&gt;  &lt;ul class="squarelist"&gt;   &lt;li&gt;Added &lt;a href="#XmlnsDefinitionAttribute"&gt;XmlnsDefinitionAttribute for GalaSoft.MvvmLight.Command&lt;/a&gt; in Extras assembly. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Setup&lt;/h3&gt;  &lt;ul class="squarelist"&gt;   &lt;li&gt;&lt;a href="http://www.galasoft.ch/mvvm/installing"&gt;Created an installer&lt;/a&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Messenger&lt;/h3&gt;  &lt;ul class="squarelist"&gt;   &lt;li&gt;Fixed &lt;a href="http://mvvmlight.codeplex.com/workitem/7521"&gt;Issue #7521&lt;/a&gt;: race condition in Messenger.Default. &lt;/li&gt;    &lt;li&gt;Fixed &lt;a href="http://mvvmlight.codeplex.com/workitem/7539"&gt;Issue #7539&lt;/a&gt;: Messenger support for uncast objects. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;ViewModelBase&lt;/h3&gt;  &lt;ul class="squarelist"&gt;   &lt;li&gt;Added support for RaisePropertyChanged(null) and RaisePropertyChanged(string.empty). A blog post about this will follow. &lt;/li&gt;    &lt;li&gt;Fixed &lt;a href="http://mvvmlight.codeplex.com/workitem/7520"&gt;Issue #7520&lt;/a&gt;: RaisePropertyChanged() fails in ReleaseBuild. This overload was removed because of the many issues, and replaced by the Set methods. &lt;/li&gt;    &lt;li&gt;Added Set(...) methods. A blog post about this will follow. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;RelayCommand&lt;/h3&gt;  &lt;ul class="squarelist"&gt;   &lt;li&gt;Fixed &lt;a href="http://mvvmlight.codeplex.com/workitem/7522"&gt;Issue #7522&lt;/a&gt;: used deprecated Predicate instead of Func. &lt;/li&gt;    &lt;li&gt;Fixed &lt;a href="http://mvvmlight.codeplex.com/workitem/7534"&gt;Issue #7534&lt;/a&gt;: RelayCommand has security issue. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;SimpleIoc&lt;/h3&gt;  &lt;ul class="squarelist"&gt;   &lt;li&gt;Implemented method IsRegistered&amp;lt;T&amp;gt;(). A blog post about this will follow. &lt;/li&gt;    &lt;li&gt;Fixed issue "Contains&amp;lt;T&amp;gt;() is returning true even if no instance was already instantiated". Contains&amp;lt;T&amp;gt;() only returns true if an instance is already created. IsRegistered&amp;lt;T&amp;gt;() returns true if the class has been registered with the IOC container. &lt;/li&gt;    &lt;li&gt;Fixed issue "Instances get created at registration already when registered with a key and a factory". Registering the instance does not execute the factory method yet. The method is only executed when the method GetInstance is called the first time. &lt;/li&gt;    &lt;li&gt;Fixed issue "Use the correct DLLs for CommonServiceLocator". The original DLLs from &lt;a href="http://commonservicelocator.codeplex.com"&gt;http://commonservicelocator.codeplex.com&lt;/a&gt; are now used everywhere. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;DispatcherHelper&lt;/h3&gt;  &lt;ul class="squarelist"&gt;   &lt;li&gt;The class was moved from GalaSoft.MvvmLight.Extras.dll into GalaSoft.MvvmLight.dll. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Project Templates&lt;/h3&gt;  &lt;ul class="squarelist"&gt;   &lt;li&gt;A couple of internal changes to the template's structure. &lt;/li&gt;    &lt;li&gt;Using the new slightly modified MVVM Light logo. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;ViewModelLocator Template&lt;/h3&gt;  &lt;ul class="squarelist"&gt;   &lt;li&gt;Modified template to use SimpleIoc. &lt;/li&gt;    &lt;li&gt;A couple of internal changes to the template's structure. &lt;/li&gt;    &lt;li&gt;Using the new slightly modified MVVM Light logo. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;ViewModel Template&lt;/h3&gt;  &lt;ul class="squarelist"&gt;   &lt;li&gt;A couple of internal changes to the template's structure. &lt;/li&gt;    &lt;li&gt;Using the new slightly modified MVVM Light logo. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;View Template&lt;/h3&gt;  &lt;ul class="squarelist"&gt;   &lt;li&gt;Fixed issue in XAML for WP7 and WP7.1 templates. &lt;/li&gt;    &lt;li&gt;A couple of internal changes to the template's structure. &lt;/li&gt;    &lt;li&gt;Using the new slightly modified MVVM Light logo. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;INPC snippet&lt;/h3&gt;  &lt;ul class="squarelist"&gt;   &lt;li&gt;Setter in property is now public. &lt;/li&gt;    &lt;li&gt;Added $end$ marker. &lt;/li&gt;    &lt;li&gt;Added new snippets with various ways to call RaisePropertyChanged. &lt;/li&gt;    &lt;li&gt;Added a snippet using the new ViewModelBase.Set() method. &lt;/li&gt;    &lt;li&gt;A blog post will follow about all this. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;ViewModelLocator property snippet&lt;/h3&gt;  &lt;ul class="squarelist"&gt;   &lt;li&gt;Added $end$ marker. &lt;/li&gt;    &lt;li&gt;Modified to use SimpleIoc. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Relay Command snippets&lt;/h3&gt;  &lt;ul class="squarelist"&gt;   &lt;li&gt;Added code snippets for RelayCommands. A blog post about this will follow. &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Details&lt;/h2&gt;  &lt;h3&gt;&lt;a id="XmlnsDefinitionAttribute"&gt;&lt;/a&gt;XmlnsDefinitionAttribute for GalaSoft.MvvmLight.Command in Extras assembly&lt;/h3&gt;  &lt;p&gt;Thanks to the addition of XmlnsDefinitionAttribute, you can simplify the inclusion of the MVVM Light EventToCommand action in XAML. See the before and after below:&lt;/p&gt;  &lt;pre class="xml" name="code"&gt;Before:

&amp;lt;UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
             
             xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.SL4"
             
             xmlns:cmd="http://www.galasoft.ch/mvvmlight" 
             x:Class="MvvmLight4.MainPage"&amp;gt;

After:

&amp;lt;UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
             xmlns:cmd="http://www.galasoft.ch/mvvmlight" 
             x:Class="MvvmLight4.MainPage"&amp;gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;div style="margin-bottom: -1em"&gt;
  &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;

  &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt; 

    &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt; 

    &lt;br /&gt;&lt;iframe style="border-bottom-style: none; margin-top: 7px; border-left-style: none; width: 450px; border-top-style: none; margin-bottom: -20px; height: 23px; border-right-style: none; overflow: hidden" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.galasoft.ch/archive/2011/09/12/mvvm-light-v4-beta1.aspx&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=450&amp;amp;action=like&amp;amp;colorscheme=light" frameborder="0" allowtransparency="allowtransparency" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;/div&gt; &lt;img src="http://geekswithblogs.net/lbugnion/aggbug/146840.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2011/09/12/mvvm-light-v4-beta1.aspx</guid>
            <pubDate>Mon, 12 Sep 2011 16:00:20 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/146840.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2011/09/12/mvvm-light-v4-beta1.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/146840.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/146840.aspx</trackback:ping>
        </item>
        <item>
            <title>MVVM light V3 installer for non-English systems</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2011/09/01/mvvm-light-v3-installer-for-non-english-systems.aspx</link>
            <description>&lt;p&gt;After &lt;a href="http://www.galasoft.ch/mvvm/installing/index.html"&gt;I released the MVVM Light installer&lt;/a&gt;, I got a note saying that parts of the installation failed on non-English systems (in that case a German installation of Expression Blend and Visual Studio). Specifically, what failed was the code snippets on Visual Studio, and the project and item templates in Expression Blend.&lt;/p&gt;  &lt;p&gt;After investigating, it is correct that these two particular features of MVVM Light were installed to language-coded folders. Correcting the issue for Expression Blend was easy enough (Blend can also find project and item templates in the My Documents folder, under Expression\Blend 4\ItemTemplates and Expression\Blend 4\ProjectTemplates, which are language independent).&lt;/p&gt;  &lt;p&gt;Unfortunately it was not that easy for code snippets, so eventually I had to resort to a few custom actions in the installer. How annoying that we cannot install code snippets to a language-neutral folder!!&lt;/p&gt;  &lt;p&gt;Anyway, after a lot of efforts and even more testing, &lt;a href="http://www.galasoft.ch/mvvm/installing/index.html"&gt;I published a new version which corrects the previous issues&lt;/a&gt;. So now I can happily resume my efforts on V4 beta 1 which is nearing completion, and which will also come with a neat installer &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/Windows-Live-Writer/MVVM-light-V3-installer-for-non-English-_12C83/wlEmoticon-smile_2.png" /&gt;&lt;/p&gt;  &lt;p&gt;Happy coding,&lt;/p&gt;  &lt;p&gt;Laurent&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="margin-bottom: -1em"&gt;   &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;    &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt;       &lt;br /&gt;&lt;iframe style="border-bottom-style: none; margin-top: 7px; border-left-style: none; width: 450px; border-top-style: none; margin-bottom: -20px; height: 23px; border-right-style: none; overflow: hidden" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.galasoft.ch/archive/2011/09/01/mvvm-light-v3-installer-for-non-english-systems.aspx&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=450&amp;amp;action=like&amp;amp;colorscheme=light" frameborder="0" allowtransparency="allowtransparency" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt; &lt;/div&gt; &lt;img src="http://geekswithblogs.net/lbugnion/aggbug/146738.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2011/09/01/mvvm-light-v3-installer-for-non-english-systems.aspx</guid>
            <pubDate>Thu, 01 Sep 2011 20:28:01 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/146738.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2011/09/01/mvvm-light-v3-installer-for-non-english-systems.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/146738.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/146738.aspx</trackback:ping>
        </item>
        <item>
            <title>Automated installer for MVVM Light V3!</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2011/08/07/automated-installer-for-mvvm-light-v3.aspx</link>
            <description>&lt;p&gt;For a very (too) long time, the installation procedure for MVVM Light sucked. It involved downloading and unzipping files in various locations. Unfortunately, creating an automated installer is not completely trivial because of the variety of files that are getting installed: Binaries, Code Snippets, Project and Item Templates, all require different locations, and all that for VS2008, VS2010, Blend 4 and Silverlight 3, Silverlight 4, WPF3.5 SP1, WPF4, WP7.0 and now WP7.1 “Mango”.&lt;/p&gt;  &lt;p&gt;Thankfully, MVVM Light is taking advantage of a great community. First, &lt;a href="http://twitter.com/leonzandman"&gt;Leon Zandman&lt;/a&gt; initiated the project of an MSI for MVVM Light. Unfortunately, Leon was not able to complete this initiative, but &lt;a href="http://sharpgis.net/"&gt;the very helpful and capable Morten Nielsen&lt;/a&gt; created the installer in Wix. This gave me the occasion to learn Wix (I had only created setups with the Visual Studio setup project so far), and to tweak the installer. I am really grateful to Morten for his time!&lt;/p&gt;  &lt;p&gt;Yesterday, I &lt;a href="http://www.galasoft.ch/mvvm/installing/"&gt;published the automated installer for MVVM Light V3&lt;/a&gt;. This installer contains binaries, project and item template as well as code snippets for Silverlight 3, Silverlight 4, WPF3.5SP1, WPF4, Windows Phone 7.0 and Windows Phone 7.5 “Mango”. It allows you to develop in Visual Studio 2008, Visual Studio 2010, Expression Blend 4 and/or Visual Studio Express for Windows Phone.&lt;/p&gt;  &lt;div class="frame"&gt;&lt;strong&gt;Update:&lt;/strong&gt; The previous version has issues on non-English systems. This issue has been corrected now (as of 1st of September 2011).&lt;/div&gt;  &lt;h2&gt;And then?&lt;/h2&gt;  &lt;p&gt;A lot of people asked me when MVVM Light V4 will be published. As I mentioned above, I will release a beta 1 very soon. Beta 1 means that the API should be reasonably stable. I do however have more things I want to fix, so I am also planning a beta 2 before I hit RTM. The goal with beta 2 is to let people test my fixes, just to make sure that I didn’t break anything (yes I do run quite a few unit tests in all available frameworks, but… &lt;a href="http://en.wikipedia.org/wiki/Errare_humanum_est#errare_humanum_est"&gt;errare humanum est&lt;/a&gt;!).&lt;/p&gt;  &lt;p&gt;It is really hard for me to give a precise timeline for those releases, because &lt;a href="http://www.identitymine.com"&gt;of work&lt;/a&gt;, a new house that we are moving to in August, &lt;a href="http://www.flickr.com/photos/lbugnion/5994256381/"&gt;my wonderful family&lt;/a&gt; who also requires some of my time here and there and my greedy Kindle 3 (just finished &lt;a href="http://www.amazon.com/Dance-Dragons-Book-Song-ebook/dp/B004XISI4A/ref=tmm_kin_title_0?ie=UTF8&amp;amp;m=APZETQFSWU1YM"&gt;A Dance with Dragons&lt;/a&gt;, that one was pretty amazing). However roughly put, it looks like this:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;MVVM Light V4 beta 1 before end of August. &lt;/li&gt;    &lt;li&gt;MVVM Light V4 beta 2 not too long after that. &lt;/li&gt;    &lt;li&gt;MVVM Light V4 RTM not too long after that &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/Windows-Live-Writer/Installing-MVVM-Light_9D5D/wlEmoticon-smile_2.png" /&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;More than ever, I am amazed and delighted at the great feedback I receive from the MVVM Light community. This is not a perfect product, but your continuous constructive feedback keeps me motivated to continue developing and making this toolkit better. Thanks for your fantastic support!&lt;/p&gt;  &lt;p&gt;Happy coding!&lt;/p&gt;  &lt;p&gt;Laurent&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="margin-bottom: -1em"&gt;   &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;    &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt;       &lt;br /&gt;&lt;iframe style="border-bottom-style: none; margin-top: 7px; border-left-style: none; width: 450px; border-top-style: none; margin-bottom: -20px; height: 23px; border-right-style: none; overflow: hidden" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.galasoft.ch/archive/2011/08/07/automated-installer-for-mvvm-light-v3.aspx&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=450&amp;amp;action=like&amp;amp;colorscheme=light" frameborder="0" allowtransparency="allowtransparency" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt; &lt;/div&gt; &lt;img src="http://geekswithblogs.net/lbugnion/aggbug/146449.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2011/08/07/automated-installer-for-mvvm-light-v3.aspx</guid>
            <pubDate>Sat, 06 Aug 2011 23:50:59 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/146449.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2011/08/07/automated-installer-for-mvvm-light-v3.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/146449.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/146449.aspx</trackback:ping>
        </item>
        <item>
            <title>Is your application powered by #mvvmlight?</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2011/05/20/is-your-application-powered-by-mvvmlight.aspx</link>
            <description>&lt;p&gt;A couple of days ago I had the wonderful surprise to find &lt;a href="http://content.usatoday.com/communities/labs/post/2011/05/windows-phone-7-app-live/1"&gt;a mention (and a link!) to MVVM Light on USAToday.com&lt;/a&gt;. The article talks about the new USA Today app available for Windows Phone 7. MVVM Light is mentioned as well as JSON.NET just after the high quality of the development tools is mentioned:&lt;/p&gt;  &lt;div style="border-right-width: 2px; background: white; border-top-width: 2px; border-bottom-width: 2px; border-left-width: 2px" class="frame"&gt;&lt;em&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;/em&gt;&lt;em&gt;“That same high bar for tools extends into the community as well. &lt;/em&gt;&lt;a href="http://mvvmlight.codeplex.com/"&gt;&lt;em&gt;MVVM Light&lt;/em&gt;&lt;/a&gt;&lt;em&gt; and JSON.Net were extremely useful moving past mundane tasks and instead getting to the business of building our app.” – &lt;a href="http://content.usatoday.com/topics/reporter/Tim+Carlson"&gt;Tim Carlson&lt;/a&gt;, USA TODAY&lt;/em&gt;&lt;em&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;/em&gt;&lt;/div&gt;  &lt;p&gt;This is of course fantastic, but it made me realize that I did not, until now, keep track of what applications (in Windows Phone 7 but also Silverlight and WPF) use MVVM Light to facilitate the development. &lt;/p&gt;  &lt;h2&gt;An appeal to MVVM Light users&lt;/h2&gt;  &lt;p&gt;In order to correct this, I would love to hear from you. Do you use MVVM Light? Did you publish an application (WP7, Silverlight, WPF) using the bits? If yes, do you mind answering the following optional questions:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;What is the name and homepage of your project? &lt;/li&gt;    &lt;li&gt;What framework is it? (WP7, Silverlight, WPF?) &lt;/li&gt;    &lt;li&gt;Do you allow me to use this info for promotion (on the MVVM Light Toolkit’s page, or in conferences)? (if you prefer me to keep this info confidential, you have my assurance that I will happily comply). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Feel free to answer in the comments below, or per email to &lt;strong&gt;&lt;a href="mailto:laurent@galasoft.ch"&gt;laurent@galasoft.ch&lt;/a&gt;&lt;/strong&gt;. This is, in advance, very much appreciated!&lt;/p&gt;  &lt;p&gt;Happy coding,    &lt;br /&gt;Laurent&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="margin-bottom: -1em"&gt;   &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;    &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt;       &lt;br /&gt;&lt;iframe style="border-bottom-style: none; margin-top: 7px; border-left-style: none; width: 450px; border-top-style: none; margin-bottom: -20px; height: 23px; border-right-style: none; overflow: hidden" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.galasoft.ch/archive/2011/05/20/is-your-application-powered-by-mvvmlight.aspx&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=450&amp;amp;action=like&amp;amp;colorscheme=light" frameborder="0" allowtransparency="allowtransparency" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt; &lt;/div&gt; &lt;img src="http://geekswithblogs.net/lbugnion/aggbug/145460.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2011/05/20/is-your-application-powered-by-mvvmlight.aspx</guid>
            <pubDate>Fri, 20 May 2011 16:56:31 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/145460.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2011/05/20/is-your-application-powered-by-mvvmlight.aspx#feedback</comments>
            <slash:comments>21</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/145460.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/145460.aspx</trackback:ping>
        </item>
        <item>
            <title>My Swiss TechDays presentations sample code</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2011/05/06/my-swiss-techdays-presentations-sample-code.aspx</link>
            <description>&lt;p&gt;I published the &lt;a href="http://cid-40cffde85f1ab56a.office.live.com/browse.aspx/Presentations"&gt;sample code from my presentations about Windows Phone 7&lt;/a&gt; at TechDays Switzerland. I also published the Powerpoint slides on Slideshare (&lt;a href="http://www.slideshare.net/lbugnion/windows-phone-7-overview-7857675"&gt;Windows Phone 7 Overview&lt;/a&gt; / &lt;a href="http://www.slideshare.net/lbugnion/windows-phone-7-deep-dive"&gt;Windows Phone 7 Deep Dive&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;One of the talks is &lt;a href="http://channel9.msdn.com/Series/TechDays-11-Switzerland/TechDays-11-Basel-Windows-Phone-7-Overview"&gt;available as a video on Channel 9&lt;/a&gt;. I expect the other one to be made available soon, stay tuned for an update.&lt;/p&gt; &lt;iframe style="width: 512px; height: 288px" src="http://channel9.msdn.com/Series/TechDays-11-Switzerland/TechDays-11-Basel-Windows-Phone-7-Overview/player?w=512&amp;amp;h=288" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;   &lt;div style="width:425px" id="__ss_7857675"&gt; &lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/lbugnion/windows-phone-7-overview-7857675" title="Windows Phone 7 Overview"&gt;Windows Phone 7 Overview&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/7857675" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&gt; View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/lbugnion"&gt;Laurent Bugnion&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;   &lt;div style="width: 425px" id="__ss_7857699"&gt;&lt;strong style="margin: 12px 0px 4px; display: block"&gt;&lt;a title="Windows Phone 7 Deep Dive" href="http://www.slideshare.net/lbugnion/windows-phone-7-deep-dive"&gt;Windows Phone 7 Deep Dive&lt;/a&gt;&lt;/strong&gt; &lt;iframe height="355" marginheight="0" src="http://www.slideshare.net/slideshow/embed_code/7857699" frameborder="0" width="425" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;    &lt;div style="padding-bottom: 12px; padding-left: 0px; padding-right: 0px; padding-top: 5px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/lbugnion"&gt;Laurent Bugnion&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="margin-bottom: -1em"&gt;   &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;    &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt;       &lt;br /&gt;&lt;iframe style="border-bottom-style: none; margin-top: 7px; border-left-style: none; width: 450px; border-top-style: none; margin-bottom: -20px; height: 23px; border-right-style: none; overflow: hidden" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.galasoft.ch/archive/2011/05/06/my-swiss-techdays-presentations-sample-code.aspx&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=450&amp;amp;action=like&amp;amp;colorscheme=light" frameborder="0" allowtransparency="allowtransparency" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt; &lt;/div&gt; &lt;img src="http://geekswithblogs.net/lbugnion/aggbug/145209.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2011/05/06/my-swiss-techdays-presentations-sample-code.aspx</guid>
            <pubDate>Fri, 06 May 2011 08:52:15 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/145209.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2011/05/06/my-swiss-techdays-presentations-sample-code.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/145209.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/145209.aspx</trackback:ping>
        </item>
        <item>
            <title>MVVM Light V4 preview 3 (BL16, MIX11 edition!!) #mvvmlight</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2011/04/14/mvvm-light-v4-preview-3-bl16-mix11-edition-mvvmlight.aspx</link>
            <description>&lt;p&gt;At MIX11, I am releasing a new preview of MVVM Light version 4. This new preview contains one small change and one large change.&lt;/p&gt;  &lt;h2&gt;ObservableObject replaces NotifyPropertyChanged&lt;/h2&gt;  &lt;p&gt;In the previous preview, I introduced a new class named NotifyPropertyChanged. However, I got a few suggestions to rename this class to &lt;strong&gt;ObservableObject&lt;/strong&gt;, which is indeed a better name. In BL16, NotifyPropertyChanged was deleted and replaced by ObservableObject. Nothing else changes, just the name.&lt;/p&gt;  &lt;p&gt;ObservableObject is a very simple implementation of INotifyPropertyChanged suitable for data objects (in the Model, typically) that need to raise the PropertyChanged event, but that are not quite ViewModels. In my MIX11 session, I demo a usage of ObservableObject to build an application using JSON. In WCF, we don’t really need ObservableObject, since all the generated proxies will automatically implement INotifyPropertyChanged.&lt;/p&gt;  &lt;p&gt;We have:&lt;/p&gt; &lt;a title="Inheritance diagram" href="http://www.flickr.com/photos/36917929@N06/5602714681"&gt;&lt;img src="http://farm5.static.flickr.com/4110/5602714681_5263044218.jpg" width="274" height="281" /&gt;&lt;/a&gt;   &lt;h2&gt;Introducing SimpleIoc, a simple IOC container&lt;/h2&gt;  &lt;p&gt;Last year at MIX10, I did a demo using the Unity IOC container. This helper simplifies the creation and the resolution of services and of the ViewModels, and allows for a cleaner syntax in the ViewModelLocator. Since then, I have tried a multitude of variants for the ViewModelLocator class, and I still came back, over and over again, to the same idea: using an IOC container to do the bulk of the work.&lt;/p&gt;  &lt;p&gt;However, I did not want to settle on a given IOC container. There are so many of them, each with specific features, and each with an army of followers &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/Windows-Live-Writer/72a9eb60a78a_E155/wlEmoticon-smile_2.png" /&gt; so instead… I created my own. Well, to be honest I inspired myself strongly from &lt;a href="http://msmvps.com/blogs/vcsjones/archive/2010/11/25/a-really-super-light-and-simple-ioc-container-for-windows-phone-7.aspx"&gt;an existing simple IOC implementation&lt;/a&gt;, and I extended it with features that are super useful when working with ViewModels. Also a source of inspiration, the &lt;a href="http://simpleservicelocator.codeplex.com/"&gt;SimpleServiceLocator available on Codeplex&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;A more complete article dedicated to the SimpleIoc class in MVVM Light V4 will follow. Also, my MIX11 session “&lt;a href="http://blog.galasoft.ch/archive/2011/04/13/deep-dive-mvvm-samples-mix11-deepdivemvvm.aspx"&gt;Deep Dive MVVM&lt;/a&gt;” features the SimpleIoc in the samples. The session’s recording is available at &lt;a title="http://channel9.msdn.com/Events/MIX/MIX11/OPN03" href="http://channel9.msdn.com/Events/MIX/MIX11/OPN03"&gt;http://channel9.msdn.com/Events/MIX/MIX11/OPN03&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Laurent&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="margin-bottom: -1em"&gt;   &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;    &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt;       &lt;br /&gt;&lt;iframe style="border-bottom-style: none; margin-top: 7px; border-left-style: none; width: 450px; border-top-style: none; margin-bottom: -20px; height: 23px; border-right-style: none; overflow: hidden" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.galasoft.ch/archive/2011/04/14/mvvm-light-v4-preview-3-bl16-mix11-edition-mvvmlight.aspx&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=450&amp;amp;action=like&amp;amp;colorscheme=light" frameborder="0" allowtransparency="allowtransparency" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt; &lt;/div&gt; &lt;img src="http://geekswithblogs.net/lbugnion/aggbug/144875.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2011/04/14/mvvm-light-v4-preview-3-bl16-mix11-edition-mvvmlight.aspx</guid>
            <pubDate>Thu, 14 Apr 2011 14:16:49 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/144875.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2011/04/14/mvvm-light-v4-preview-3-bl16-mix11-edition-mvvmlight.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/144875.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/144875.aspx</trackback:ping>
        </item>
        <item>
            <title>Deep Dive MVVM samples #mix11 #deepdivemvvm</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2011/04/13/deep-dive-mvvm-samples-mix11-deepdivemvvm.aspx</link>
            <description>&lt;p&gt;Here is the sample code I demoed in my MIX11 session “Deep Dive MVVM”. Please &lt;a href="http://www.galasoft.ch/mvvm/resources/Samples/MIX11-DeepDiveMvvm-Samples.zip"&gt;download the Zip file&lt;/a&gt;, and then unblock it in Windows Explorer by right-clicking it, and then selecting Properties. If you see an “Unblock” button, please click it. You can then extract the content of the Zip file on your hard drive.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.galasoft.ch/mvvm/resources/Samples/MIX11Final_BUGNION_OPN04.pptx"&gt;The slides are also available for download&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;Last year’s session&lt;/h2&gt;  &lt;p&gt;To fully understand this session, an understanding of what MVVM is should be available. I recommend the following links:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;“&lt;a href="http://channel9.msdn.com/Events/MIX/MIX10/EX14"&gt;Understanding the MVVM pattern&lt;/a&gt;” is the session I presented at MIX10. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blog.galasoft.ch/archive/2010/03/16/sample-code-for-my-mix10-talk-online.aspx"&gt;Sample code&lt;/a&gt; for “Understanding the MVVM pattern”. &lt;/li&gt;    &lt;li&gt;MVVM Light Toolkit “&lt;a href="http://www.galasoft.ch/mvvm/"&gt;Get Started&lt;/a&gt;” page. &lt;/li&gt;    &lt;li&gt;MVVM Light Toolkit &lt;a href="http://mvvmlight.codeplex.com/"&gt;on Codeplex&lt;/a&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;This year’s session&lt;/h2&gt;  &lt;p&gt;The video of Deep Dive MVVM is already available for download (awesome job, MIX team). &lt;a href="http://channel9.msdn.com/Events/MIX/MIX11/OPN03"&gt;Go to the MIX website&lt;/a&gt; to download it in various formats, or stream it.&lt;/p&gt;  &lt;h2&gt;Prerequisites&lt;/h2&gt;  &lt;p&gt;To execute the samples, you should have &lt;a href="http://www.microsoft.com/visualstudio/en-us/"&gt;Visual Studio 2010&lt;/a&gt; as well as the &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=04704acf-a63a-4f97-952c-8b51b34b00ce"&gt;Windows Phone 7 tools&lt;/a&gt; installed.&lt;/p&gt;  &lt;div class="frame"&gt;   &lt;h2&gt;Update: Getting the samples to run&lt;/h2&gt;    &lt;p&gt;In order to run the JsonDemo sample, you need to run the web application first because the Facebook service simulation is local. The easiest way is to right click on JsonDemo.SL4TestPage.html and select “View in Browser” from the context menu. This will start the development web server in Visual Studio. Then, you can run the WP7 application in the emulator.&lt;/p&gt; &lt;/div&gt;  &lt;h2&gt;Snippets&lt;/h2&gt;  &lt;p&gt;For your convenience, I added the snippets of code that I was dragging/dropping from the Toolbox during the session. The file “snippets.txt” is included inside the ZIP file.&lt;/p&gt;  &lt;h2&gt;00 JsonDemo – Start&lt;/h2&gt;  &lt;p&gt;This is the start state, which will compile and run fine, but without the added functionality we built in during the session.&lt;/p&gt;  &lt;h2&gt;01 JsonDemo - After wiring up&lt;/h2&gt;  &lt;p&gt;This is the state of the application after the first demo, where all the objects are wired up and connected, and the message is sent from the MasterViewModel to the DetailsViewModel. We also added the IsOlderThanMeIndicatorVisibility property and connected it to the corresponding Rectangle in the DataTemplate (in the MasterView).&lt;/p&gt;  &lt;h2&gt;02 JsonDemo – Behaviors&lt;/h2&gt;  &lt;p&gt;This is the state after adding the “please wait” animation, the states and connecting the MasterViewModel’s IsBusy property to the GoToStateAction and ControlStoryboardAction instances through the DataTrigger. In Windows Phone 7, we added some code behind to replicate the functionality.&lt;/p&gt;  &lt;h2&gt;03 JsonDemo - WP7 DialogService&lt;/h2&gt;  &lt;p&gt;In this section we added a view service, the IDialogService, to the WP7 application and implemented it to display a custom message box. In SL4, the functionality is also available although no custom message box was made, so the fallback MessageBox is used instead.&lt;/p&gt;  &lt;h2&gt;04 NavigationDemo&lt;/h2&gt;  &lt;p&gt;This section introduces another view service, the INavigationService with one implementation in Silverlight 4 and one for Windows Phone 7.&lt;/p&gt;  &lt;h2&gt;05 JsonDemo - Unit test&lt;/h2&gt;  &lt;p&gt;In this last section, we add unit tests (with mock, well precisely with stubs!) to the Silverlight 4 and to the Windows Phone 7 applications. This is the final state of the demo.&lt;/p&gt;  &lt;p&gt;I hope that this session was helpful, and that it will help you build awesome MVVM applications!&lt;/p&gt;  &lt;p&gt;Happy coding,&lt;/p&gt;  &lt;p&gt;Laurent&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="margin-bottom: -1em"&gt;   &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;    &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt;       &lt;br /&gt;&lt;iframe style="border-bottom-style: none; margin-top: 7px; border-left-style: none; width: 450px; border-top-style: none; margin-bottom: -20px; height: 23px; border-right-style: none; overflow: hidden" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.galasoft.ch/archive/2011/04/13/deep-dive-mvvm-samples-mix11-deepdivemvvm.aspx&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=450&amp;amp;action=like&amp;amp;colorscheme=light" frameborder="0" allowtransparency="allowtransparency" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt; &lt;/div&gt; &lt;img src="http://geekswithblogs.net/lbugnion/aggbug/144843.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2011/04/13/deep-dive-mvvm-samples-mix11-deepdivemvvm.aspx</guid>
            <pubDate>Wed, 13 Apr 2011 13:04:27 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/144843.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2011/04/13/deep-dive-mvvm-samples-mix11-deepdivemvvm.aspx#feedback</comments>
            <slash:comments>11</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/144843.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/144843.aspx</trackback:ping>
        </item>
        <item>
            <title>My MVVM talk&amp;rsquo;s material is online (#uktechdays)</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2011/03/24/my-mvvm-talkrsquos-material-is-online-uktechdays.aspx</link>
            <description>&lt;p&gt;Quick announcement: I just had the extreme pleasure to talk at the UK TechDays online conference (organized over LiveMeeting) and had about 100 persons in the session, thanks to all for allowing me to talk to you about MVVM!&lt;/p&gt;  &lt;p&gt;I just &lt;a href="https://cid-40cffde85f1ab56a.office.live.com/browse.aspx/Presentations"&gt;pushed the whole sample code as well as the slides to a SkyDrive folder&lt;/a&gt;, so feel free to download and experiment.&lt;/p&gt;  &lt;p&gt;And don’t forget:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;A &lt;a href="http://www.galasoft.ch/mvvmvideo1"&gt;recording of session with similar material but with 30 minutes more time&lt;/a&gt; for additional samples is online for your viewing pleasure. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/events/MIX/MIX11/OPN03"&gt;Deep Dive MVVM at MIX11&lt;/a&gt; will go much deeper and show advanced samples around MVVM, view services, unit testing a VM, and more. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The session was recorded, and I will announce in this space when it is online for your (re-)viewing pleasure.&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Laurent&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="margin-bottom: -1em"&gt;   &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;    &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt;       &lt;br /&gt;&lt;iframe style="border-bottom-style: none; margin-top: 7px; border-left-style: none; width: 450px; border-top-style: none; margin-bottom: -20px; height: 23px; border-right-style: none; overflow: hidden" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.galasoft.ch/archive/2011/03/24/my-mvvm-talkrsquos-material-is-online-uktechdays.aspx&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=450&amp;amp;action=like&amp;amp;colorscheme=light" frameborder="0" allowtransparency="allowtransparency" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt; &lt;/div&gt; &lt;img src="http://geekswithblogs.net/lbugnion/aggbug/144507.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2011/03/24/my-mvvm-talkrsquos-material-is-online-uktechdays.aspx</guid>
            <pubDate>Thu, 24 Mar 2011 18:35:34 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/144507.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2011/03/24/my-mvvm-talkrsquos-material-is-online-uktechdays.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/144507.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/144507.aspx</trackback:ping>
        </item>
        <item>
            <title>With WPF and Silverlight against cancer</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2011/03/15/with-wpf-and-silverlight-against-cancer.aspx</link>
            <description>&lt;p&gt;MVPs are well known for their good heart (like the &lt;a href="http://geekgive.org/"&gt;GeekGive initiative shows&lt;/a&gt;) and Client App Dev MVP &lt;a href="http://www.dotnet-blog.net"&gt;Gregor Biswanger&lt;/a&gt; is no exception. At the latest MVP summit (beginning of March 2011), he took over a DVD about WPF 4 and Silverlight 4 and asked a few Microsoft superstars to sign it. &lt;a href="http://www.dotnet-blog.net/post/2011/03/15/WPF-4-und-Silverlight-4-gegen-Krebs!.aspx"&gt;Right now, the DVD is auctioned on eBay&lt;/a&gt; and of course the proceeds will go to a charitable work: The German League against Cancer (Deutsche Krebshilfe). The post is in German and English (scroll down for the English text).&lt;/p&gt;  &lt;p&gt;This sounds like a great idea, and considering who signed it, it is going to be a real collectible:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Scott Hanselman (Principal Program Manager Lead in Server and Tools Online) &lt;/li&gt;    &lt;li&gt;Tim Heuer (Program Manager for Microsoft Silverlight) &lt;/li&gt;    &lt;li&gt;Rob Relyea (Principal Program Manager Lead - Client Platform WPF &amp;amp; Silverlight) &lt;/li&gt;    &lt;li&gt;Pete Brown (Developer Division Community Program Manager - Windows Client) &lt;/li&gt;    &lt;li&gt;Eric Fabricant (Program Manager WPF) &lt;/li&gt;    &lt;li&gt;Jeff Wilcox (Silverlight Senior SDE) &lt;/li&gt;    &lt;li&gt;Jeffrey R Ferman (SDET Visual Studio Client Dev Tools) &lt;/li&gt;    &lt;li&gt;Chan Verbeck (Expression Blend Team) &lt;/li&gt;    &lt;li&gt;Yaniv Feinberg (Expression Blend Team) &lt;/li&gt;    &lt;li&gt;Douglas Olson (Director Dev Expression) &lt;/li&gt;    &lt;li&gt;Samuel W. Bent (Principal Software Design Engineer WPF) &lt;/li&gt;    &lt;li&gt;John Papa (Technical Evangelist for Silverlight) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So if you feel that you could do a generous gesture, &lt;a href="http://www.dotnet-blog.net/post/2011/03/15/WPF-4-und-Silverlight-4-gegen-Krebs!.aspx"&gt;go ahead and take a look at the auction&lt;/a&gt;, and talk about it around you. Let’s prove again that geeks rule, also when it comes to giving to a good cause!&lt;/p&gt;  &lt;p&gt;Cheers!&lt;/p&gt;  &lt;p&gt;Laurent&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="margin-bottom: -1em"&gt;   &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;    &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt;       &lt;br /&gt;&lt;iframe style="border-bottom-style: none; margin-top: 7px; border-left-style: none; width: 450px; border-top-style: none; margin-bottom: -20px; height: 23px; border-right-style: none; overflow: hidden" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.galasoft.ch/archive/2011/03/15/with-wpf-and-silverlight-against-cancer.aspx&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=450&amp;amp;action=like&amp;amp;colorscheme=light" frameborder="0" allowtransparency="allowtransparency" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt; &lt;/div&gt; &lt;img src="http://geekswithblogs.net/lbugnion/aggbug/144379.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2011/03/15/with-wpf-and-silverlight-against-cancer.aspx</guid>
            <pubDate>Tue, 15 Mar 2011 18:42:36 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/144379.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2011/03/15/with-wpf-and-silverlight-against-cancer.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/144379.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/144379.aspx</trackback:ping>
        </item>
    </channel>
</rss>
