<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>Work</title>
        <link>http://geekswithblogs.net/lbugnion/category/7619.aspx</link>
        <description>About my work at Siemens</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>My talk at #notatpdc postponed</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2009/11/19/my-talk-at-notatpdc-postponed.aspx</link>
            <description>&lt;p&gt;Hey guys,&lt;/p&gt;  &lt;p&gt;I am really sorry for having to postpone my talk about Expression Blend 3 and SketchFlow. We had some huge difficulties with the NotAtPDC.com website, and unfortunately we were not able to locate the site administrator on time to solve the issue. Without a speaker login, I was able to talk to the attendees, but not share my desktop. Now I love to &lt;strong&gt;talk&lt;/strong&gt; about Blend but I love even more to &lt;strong&gt;show&lt;/strong&gt; Blend ;)&lt;/p&gt;  &lt;p&gt;Ironically, as a Microsoft MVP I do have a LiveMeeting account, so I would be able to host the talk myself, but organizing a LiveMeeting take a little time, and I didn’t want to rush into that, cut my talk short or step on the next speaker’s feet (let’s hope that the issues get solved in time for him!)&lt;/p&gt;  &lt;p&gt;We will definitely reschedule the talk, either within NotAtPDC (if we find a suitable time slot) or a bit later, so definitely stay tuned on this blog and &lt;a href="http://www.twitter.com/lbugnion"&gt;my twitter feed&lt;/a&gt; for more info.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136419"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136419" 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://geekswithblogs.net/lbugnion/aggbug/136419.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2009/11/19/my-talk-at-notatpdc-postponed.aspx</guid>
            <pubDate>Thu, 19 Nov 2009 20:16:05 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/136419.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2009/11/19/my-talk-at-notatpdc-postponed.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/136419.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/136419.aspx</trackback:ping>
        </item>
        <item>
            <title>Silverlight 4 beta released at #PDC09</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2009/11/18/silverlight-4-beta-released-at-pdc09.aspx</link>
            <description>&lt;p&gt;&lt;img style="margin: 0px 10px 0px 0px; display: inline" border="0" align="left" src="http://storage.timheuer.com/sl4bloglogo.png" /&gt;&lt;/p&gt;  &lt;p&gt;Well people, it was an amazing keynote. Silverlight 4 beta was just presented by Scott Guthrie at the &lt;a href="http://microsoftpdc.com/"&gt;Professional Developer Conference 2009&lt;/a&gt; in Los Angeles. As soon as Silverlight 3 was released a few months ago, the Silverlight team started working on new features to create what will be a really exciting release.&lt;/p&gt;  &lt;p&gt;As of now, the Silverlight 4 beta bits and all the necessary tools are available for download. Probably the best place to start is Tim Heuer (Silverlight evangelist for Microsoft) who has a &lt;a href="http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx"&gt;guide to the new features on his blog&lt;/a&gt;. A great and very clear read!&lt;/p&gt;  &lt;p&gt;Another fantastic resource is my friend Corrado Cavalli’s &lt;a href="http://www.codeworks.it/public/docs/Silverlight4eng.pdf"&gt;PDF document&lt;/a&gt; with all the new features (there is also an Italian version &lt;a href="http://blogs.ugidotnet.org/corrado/archive/2009/11/18/silverlight-4-whatrsquos-new.aspx"&gt;on Corrado’s blog&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Just found out about the &lt;a href="http://channel9.msdn.com/learn/courses/Silverlight4/"&gt;Silverlight 4 Training Course available on Channel 9&lt;/a&gt;, put together by Adam Kinney and John Papa, two Microsoft evangelists!&lt;/p&gt;  &lt;h2&gt;What happens with WPF?&lt;/h2&gt;  &lt;p&gt;Those of you who know me well know that &lt;a href="http://groups.google.com/group/wpf-disciples/?pli=1"&gt;I love WPF&lt;/a&gt; as much as Silverlight, and I am really super happy &lt;a href="http://www.identitymine.com"&gt;to work for IdentityMine&lt;/a&gt;, a firm that is very active in both environments. &lt;/p&gt;  &lt;p&gt;Windows Presentation Foundation is not dead, not at all. With WPF4 (which is available in beta with &lt;a href="http://msdn.microsoft.com/de-de/vstudio/dd582936.aspx"&gt;Visual Studio 2010 beta 2&lt;/a&gt;), a load of new features is making it to the desktop as well. In the beginning of the year at MIX09, I had a talk about the .NET continuum, and we are exactly there, with Silverlight and WPF coming closer, but still having their respective features. WPF is more than ever Silverlight’s big sister, they are closer than they have ever been, which is a blessing for us developers because passing from one world to the other has never been easier. &lt;/p&gt;  &lt;p&gt;With Silverlight running &lt;a href="http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx#elevated"&gt;out of the browser with elevated permissions&lt;/a&gt;, and with the possibility to modify the appearance of the window hosting the out-of-browser application, Silverlight is coming very close to a desktop application. But it is not one yet. So the question is, will we see a “merge” between Silverlight and WPF in the coming few years? Well to be frank, I am a very vocal proponent of the convergence, and I am pretty sure that we will go that way sooner or later. The good news is that all that Microsoft learned over the years while creating WPF is invested in Silverlight. In some areas, it has been made even better, because they learned from some mistakes. In others, they capitalized on the fantastic functionalities available in WPF and made that available to us without a change in Silverlight. My point is that talking about the death of WPF is &lt;a href="http://www.friends-tv.org/zz708.html"&gt;a cow’s opinion, it’s a moo point&lt;/a&gt;. WPF and Silverlight will continue to grow ever closer, and we will continue to enjoy the best of both worlds, the desktop and the web! &lt;strong&gt;Exciting years to be a client developer indeed!&lt;/strong&gt;&lt;/p&gt;  &lt;h2&gt;These are YOUR features&lt;/h2&gt;  &lt;p&gt;One thing the Silverlight does really well is listen to the community. I read somewhere that 70% of the features requested by the community have made it into Silverlight 4 beta. This is pretty amazing. So continue that work, place your requests either directly to Microsoft evangelists if you have the chance to know one, or &lt;a href="http://twitter.com/JustinAngel/silverlight-mvps"&gt;through Silverlight MVPs&lt;/a&gt; who have possibilities to get to talk to the Silverlight team often. &lt;/p&gt;  &lt;p&gt;And the story is not over yet… Keep your eyes open, we have amazing years in front of us!&lt;/p&gt;  &lt;p&gt;Happy coding!!&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;/div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136397"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136397" 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://geekswithblogs.net/lbugnion/aggbug/136397.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2009/11/18/silverlight-4-beta-released-at-pdc09.aspx</guid>
            <pubDate>Wed, 18 Nov 2009 19:58:06 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/136397.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2009/11/18/silverlight-4-beta-released-at-pdc09.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/136397.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/136397.aspx</trackback:ping>
        </item>
        <item>
            <title>Talking at #notatpdc about Blend 3 and SketchFlow</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2009/11/17/talking-at-notatpdc-about-blend-3.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.notatpdc.com/"&gt;&lt;img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="notatpdc09sm[1]" border="0" alt="notatpdc09sm[1]" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/WindowsLiveWriter/TalkingatnotatpdcaboutBlend3_8915/notatpdc09sm%5B1%5D_3.png" width="132" height="132" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.notatpdc.com/"&gt;NotAtPDC is an awesome initiative&lt;/a&gt; from within the .NET community that allows people who cannot for any reason attend one of the major conferences (such as PDC, MIX etc…) to share knowledge, have fun, interact and generally have all kind of good times without leaving their home or office.&lt;/p&gt;  &lt;p&gt;This year, I cannot make it to the Professional Developer Conference because of multiple reasons (too much work, too many travels ;)) but &lt;a href="http://www.notatpdc.com/Schedule/Detail/31"&gt;I will talk to the NotAtPDC conference 2009&lt;/a&gt;!&lt;/p&gt;  &lt;p&gt;My talk is titled &lt;strong&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/attend?id=F98RD3&amp;amp;pw=Pa$$w0rd"&gt;Expression Blend 3: From Design to Realization&lt;/a&gt;&lt;/strong&gt; and is scheduled at 11AM CST on 2009/11/19 (see below for the time at your location).&lt;/p&gt;  &lt;p&gt;&lt;em&gt;When designers envision beautiful applications, and pass the comps to developers for realization, the result is often not really up to their expectations. Expression Blend stands between the designer and the developer, and facilitates the workflow. It is not "just" a design tool, it is a visual development environment! In this session, we will show you new features in Expression Blend 3, such as the "interactive sketching tool" SketchFlow and more. This session will take a deep look at the new Blend 3 features such as SketchFlow, Photoshop import, Design-time data, etc…&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;I am really looking forward to giving this talk, which should be a lot of fun. Let’s face it, Blend 3 is awesome and taking a good in-depth look at the great features that are included in V3 should prove valuable to designers AND developers.&lt;/p&gt;  &lt;p&gt;Thanks a lot to Steve Andrews, Rachel Appel and all those who take some of their precious free time to organize this event!&lt;/p&gt;  &lt;h2&gt;Logging in the session&lt;/h2&gt;  &lt;p&gt;You need LiveMeeting to log in the session. Make sure you download and test LiveMeeting in advance! The direct link to the session for attendees is:    &lt;br /&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/attend?id=F98RD3&amp;amp;pw=Pa$$w0rd"&gt;&lt;strong&gt;https://www.livemeeting.com/cc/usergroups/attend?id=F98RD3&amp;amp;pw=Pa$$w0rd&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="463"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="188"&gt;&lt;strong&gt;Location&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="273"&gt;&lt;strong&gt;Date/Time&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="188"&gt;Pacific Standard Time&lt;/td&gt;        &lt;td valign="top" width="273"&gt;Thu, 11/19/2009, 9AM&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="188"&gt;Mountain Standard Time&lt;/td&gt;        &lt;td valign="top" width="273"&gt;Thu, 11/19/2009, 10AM&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="188"&gt;Central Standard Time&lt;/td&gt;        &lt;td valign="top" width="273"&gt;Thu, 11/19/2009, 11AM&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="188"&gt;Eastern Standard Time&lt;/td&gt;        &lt;td valign="top" width="273"&gt;Thu, 11/19/2009, 12PM&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="188"&gt;London&lt;/td&gt;        &lt;td valign="top" width="273"&gt;Thu, 19th Nov 2009, 17:00&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="188"&gt;Paris, Zurich, Milano…&lt;/td&gt;        &lt;td valign="top" width="273"&gt;Thu, 19th Nov 2009, 18:00&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Should your location not appear in this table, my apologies, make sure you check the &lt;a href="http://www.timeanddate.com/worldclock/converted.html?day=19&amp;amp;month=11&amp;amp;year=2009&amp;amp;hour=11&amp;amp;min=0&amp;amp;sec=0&amp;amp;p1=64"&gt;World Clock Converter&lt;/a&gt; to avoid missing the start of the session :)&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136384"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136384" 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://geekswithblogs.net/lbugnion/aggbug/136384.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2009/11/17/talking-at-notatpdc-about-blend-3.aspx</guid>
            <pubDate>Wed, 18 Nov 2009 08:51:27 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/136384.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2009/11/17/talking-at-notatpdc-about-blend-3.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/136384.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/136384.aspx</trackback:ping>
        </item>
        <item>
            <title>Bug correction in Messenger and new feature in EventToCommand (MVVM Light Toolkit V3 alpha)</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2009/11/13/bug-correction-in-messenger-and-new-feature-in-eventtocommand-mvvm.aspx</link>
            <description>&lt;div class="frame"&gt;&lt;strong&gt;Update (11/14/2009):&lt;/strong&gt; The sample application is available &lt;a href="http://galasoft.ch/mvvm/resources/Samples/EventToCommand.zip" target="_blank"&gt;as a zip file&lt;/a&gt;, and I also published the Silverlight version to be &lt;a href="http://galasoft.ch/mvvm/resources/Samples/EventToCommandDemo/TestPage.html"&gt;executed directly in your browser&lt;/a&gt;.&lt;/div&gt;  &lt;p&gt;&lt;a title="MVVM_Black by lbugnionblog, on Flickr" href="http://www.flickr.com/photos/36917929@N06/4084199726/"&gt;&lt;img style="margin: 0px 10px 0px 0px; display: inline" alt="MVVM_Black" align="left" src="http://farm3.static.flickr.com/2617/4084199726_d1cc8527aa_o.png" width="240" height="206" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The advantage of pushing very early software to the advanced users is that bugs are detected before too many people suffer from them, and features requests can be placed and implemented without pain. This is exactly what happened with the MVVM Light Toolkit V3 alpha 2.&lt;/p&gt;  &lt;h2&gt;Bug correction&lt;/h2&gt;  &lt;p&gt;This applies to the new “send with token” feature of the Messenger. When a recipient registers for a type of message, it can provide a token (any object). Then, when a sender sends a message, it can also provide the same token. The Messenger will only send the messages to those recipients who provided the same token when registering. This enables creating separate optimized communication channels between objects. The token can be any object, for example a string, a GUID, etc…&lt;/p&gt;  &lt;p&gt;A silly mistake I made in the Messenger preventer simple values (such as an Integer) to be used as a token when sending a message. Simple values can be very valuable for this scenario, since a common reference is not needed to the token: It is simply a kind of contract that the sender and the receiver agree upon in advance. This is as decoupled as it gets, and yet enables a private channel of communication between two objects. Anyway, this mistake is corrected, and available in &lt;a href="http://mvvmlight.codeplex.com/SourceControl/ListDownloadableCommits.aspx"&gt;changeset 34855 on Codeplex&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;New feature&lt;/h2&gt;  &lt;p&gt;A &lt;a href="http://mvvmlight.codeplex.com/Thread/View.aspx?ThreadId=74835"&gt;user on Codeplex&lt;/a&gt; required an additional feature in the EventToCommand behavior: Adding a way to get the EventArgs from the fired event to the invoked command. I tried to find a good way to implement that, and decided to make this an opt-in feature. The scenario is:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;if you set the new property &lt;strong&gt;PassEventArgsToCommand&lt;/strong&gt; to true in the EventToCommand &lt;/li&gt;    &lt;li&gt;and you do NOT set the CommandParameter, nor the CommandParameterValue &lt;/li&gt;    &lt;li&gt;and you use a RelayCommand&amp;lt;EventArgs&amp;gt; as the data bound command &lt;/li&gt;    &lt;li&gt;then the parameter passed to the RelayCommand will be the EventArgs. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I believe that passing the EventArgs straight to the ViewModel is a bit overstepping the separation of concerns between the View and the ViewModel. However I do also acknowledge that there are cases where this can be useful, and so now it is possible. This feature is also implemented in &lt;a href="http://mvvmlight.codeplex.com/SourceControl/ListDownloadableCommits.aspx"&gt;changeset 34855 on Codeplex&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I also updated the sample application &lt;a href="http://galasoft.ch/mvvm/resources/Samples/EventToCommand.zip" target="_blank"&gt;which can be downloaded here&lt;/a&gt;, or from Codeplex (see below). The Silverlight version of the sample application &lt;a href="http://galasoft.ch/mvvm/resources/Samples/EventToCommandDemo/TestPage.html" target="_blank"&gt;can also be run here&lt;/a&gt;.&lt;/p&gt; &lt;a title="EventToCommand demo" href="http://www.flickr.com/photos/36917929@N06/4102403273"&gt;&lt;img src="http://farm3.static.flickr.com/2715/4102403273_28c14af3fa.jpg" width="500" height="494" /&gt;&lt;/a&gt;   &lt;h2&gt;Sample applications on Codeplex&lt;/h2&gt;  &lt;p&gt;I took the occasion to &lt;a href="http://mvvmlight.codeplex.com/sourcecontrol/changeset/view/34873?projectName=mvvmlight"&gt;upload some sample applications&lt;/a&gt; on Codeplex too.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;EventToCommand: This application demoes the feature of the same name, and is &lt;a href="http://blog.galasoft.ch/archive/2009/11/05/mvvm-light-toolkit-v3-alpha-2-eventtocommand-behavior.aspx"&gt;detailed in this blog post&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;CleanShutdown: This application shows a practical use for the Messenger, and a way to implement a clean shutdown that can easily be extended with additional components. &lt;a href="http://blog.galasoft.ch/archive/2009/10/18/clean-shutdown-in-silverlight-and-wpf-applications.aspx"&gt;More about this application here&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;RaiseCanExecuteChanged: This app shows how to use RelayCommands and more info about this sample is &lt;a href="http://blog.galasoft.ch/archive/2009/09/26/using-relaycommands-in-silverlight-and-wpf.aspx"&gt;found in this blog post&lt;/a&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Happy coding!!&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;/div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136296"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136296" 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://geekswithblogs.net/lbugnion/aggbug/136296.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2009/11/13/bug-correction-in-messenger-and-new-feature-in-eventtocommand-mvvm.aspx</guid>
            <pubDate>Fri, 13 Nov 2009 23:55:39 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/136296.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2009/11/13/bug-correction-in-messenger-and-new-feature-in-eventtocommand-mvvm.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/136296.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/136296.aspx</trackback:ping>
        </item>
        <item>
            <title>MVVM Light Toolkit Logo by P. Schutz</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2009/11/07/mvvm-light-toolkit-logo-by-p.-schutz.aspx</link>
            <description>&lt;p&gt;I met &lt;a href="http://info.philippe-schutz.com"&gt;Philippe Schutz&lt;/a&gt; at the TechDays in Geneva early this year, and have been following him on Facebook since then. He does amazing work with logos and icons, and it is only natural that I have thought of him when I decided to get a new logo and icons for the MVVM Light Toolkit.&lt;/p&gt;  &lt;p&gt;A brand identity is quite important to me even in private projects. This is why I created the site GalaSoft (&lt;a href="http://www.galasoft.ch"&gt;www.galasoft.ch&lt;/a&gt;) years ago, and started using this “brand” consistently as well as the cat logo (more about that on a &lt;a href="http://blog.galasoft.ch/archive/2008/10/19/redesigning-my-website-with-the-help-of-expression-blend.aspx"&gt;post I wrote last year&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;With the MVVM Light Toolkit starting to gain quite some popularity in the community, I have received a few suggestions to open a Facebook page for it, and to promote it on some other platforms. To do this, I needed a logo, something to display proudly and conveying the image, the message of MVVM Light.&lt;/p&gt;  &lt;p&gt;So I present to you proudly the new MVVM Light Toolkit logos designed by &lt;a href="http://info.philippe-schutz.com"&gt;Philippe Schutz&lt;/a&gt;:&lt;/p&gt; &lt;a title="MVVM_Black by lbugnionblog, on Flickr" href="http://www.flickr.com/photos/36917929@N06/4084199726/"&gt;&lt;img alt="MVVM_Black" src="http://farm3.static.flickr.com/2617/4084199726_d1cc8527aa_o.png" width="349" height="300" /&gt;&lt;/a&gt;   &lt;p&gt; &lt;/p&gt; &lt;a title="MVVM_White by lbugnionblog, on Flickr" href="http://www.flickr.com/photos/36917929@N06/4084208308/"&gt;&lt;img alt="MVVM_White" src="http://farm3.static.flickr.com/2706/4084208308_f541fd0597_o.png" width="356" height="300" /&gt;&lt;/a&gt;   &lt;p&gt;Yeah I know, they are beautiful.&lt;/p&gt;  &lt;p&gt;The design is meant to remind from the Windows 7 aesthetics, and of the Silverlight / .NET logos. I think it is a total success. Of course, the feather suggests the idea of lightness, as opposed to more complex frameworks that are very powerful, but also quite hard to understand and start with.&lt;/p&gt;  &lt;p&gt;I will work hard to include this new identity in the MVVM Light Toolkit and all the material related (websites, etc…). I am also preparing a Facebook page for “the fans” ;) So as usual, stay tuned!&lt;/p&gt;  &lt;p&gt;&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;/div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136123"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136123" 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://geekswithblogs.net/lbugnion/aggbug/136123.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2009/11/07/mvvm-light-toolkit-logo-by-p.-schutz.aspx</guid>
            <pubDate>Sat, 07 Nov 2009 22:03:54 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/136123.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2009/11/07/mvvm-light-toolkit-logo-by-p.-schutz.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/136123.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/136123.aspx</trackback:ping>
        </item>
        <item>
            <title>Going to Berlin (TechEd Europe)</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2009/11/06/going-to-berlin-teched-europe.aspx</link>
            <description>&lt;a title="Meet me at TechEd Europe" href="http://www.flickr.com/photos/36917929@N06/4081094678"&gt;&lt;img src="http://farm3.static.flickr.com/2729/4081094678_e8f1e3772d_o.png" width="230" height="150" /&gt;&lt;/a&gt;   &lt;p&gt;I will make a short appearance at Tech Ed Europe. Due to the amount of work we have right now, I cannot spend more than a couple of days in Berlin, but I still hope to meet many of you all. &lt;/p&gt;  &lt;p&gt;I will arrive in Berlin on the Sunday, 8th of November, and leave on Tuesday, the 10th. During the day, I will mostly be helping at the Silverlight booth, together with other MVPs and Silverlight evangelist superstar Tim Heuer. I really hope that many will come and admire the booth, Silverlight 3, ask many questions and hopefully get good answers ;)&lt;/p&gt;  &lt;p&gt;See you there!&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;/div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136067"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136067" 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://geekswithblogs.net/lbugnion/aggbug/136067.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2009/11/06/going-to-berlin-teched-europe.aspx</guid>
            <pubDate>Fri, 06 Nov 2009 18:15:22 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/136067.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2009/11/06/going-to-berlin-teched-europe.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/136067.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/136067.aspx</trackback:ping>
        </item>
        <item>
            <title>MVVM Light Toolkit V3 Alpha 2: EventToCommand behavior</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2009/11/05/mvvm-light-toolkit-v3-alpha-2-eventtocommand-behavior.aspx</link>
            <description>&lt;div class="frame"&gt;&lt;strong&gt;Update (11/14/2009):&lt;/strong&gt; I updated EventToCommand with a new feature: You can now pass the EventArgs of the fired event to the invoked command. &lt;a href="http://blog.galasoft.ch/archive/2009/11/13/bug-correction-in-messenger-and-new-feature-in-eventtocommand-mvvm.aspx"&gt;See this post for more explanations&lt;/a&gt;.&lt;/div&gt;  &lt;p&gt;Here is another early release of the MVVM Light Toolkit V3 (Alpha 2). I decided to release gradually and early as soon as a new part of this new version is ready, to allow advanced users to install, test and give feedback about the new features. If you haven’t seen it yet, the features available in &lt;a href="http://blog.galasoft.ch/archive/2009/10/27/mvvm-light-toolkit-v3-alpha-1.aspx"&gt;V3 Alpha 1 are described in a previous article&lt;/a&gt;. There will be a few more alphas before I make a V3 release, which means more good things are a-coming ;)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Usual disclaimer:&lt;/strong&gt; Alpha releases are not feature complete (meaning that APIs may change) and it is very possible that there are bugs in the code. Use with care and &lt;a href="http://www.galasoft.ch/contact"&gt;give feedback&lt;/a&gt; if something is not working, thanks!!&lt;/p&gt;  &lt;h2&gt;EventToCommand behavior&lt;/h2&gt;  &lt;p&gt;The new feature available in V3 Alpha2 is called &lt;strong&gt;EventToCommand&lt;/strong&gt; and is a &lt;a href="http://blogs.msdn.com/expression/archive/2009/03/23/an-introduction-to-behaviors-triggers-and-actions.aspx"&gt;Blend behavior&lt;/a&gt;. These pieces of code are optimized for Expression Blend, but can also be added directly in XAML, as we will see in this article.&lt;/p&gt;  &lt;p&gt;EventToCommand is used to &lt;strong&gt;bind an event to an ICommand directly in XAML&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Even though Expression Blend facilitates the usage of EventToCommand, it is not a prerequisite. EventToCommand can be used even if Expression Blend is not installed on your system, or on your users’ system.&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h2&gt;Credits, History&lt;/h2&gt;  &lt;p&gt;This behavior reuses much code from the Expression Blend sample behavior named &lt;a href="http://expressionblend.codeplex.com/"&gt;InvokeDataCommand&lt;/a&gt;. I want to give props to the Expression team for creating and publishing these great samples. This would not have been possible without the work put into these samples. I want to especially thank &lt;strong&gt;Pete Blois&lt;/strong&gt; and &lt;strong&gt;Jeff Kelly&lt;/strong&gt; of the Expression team for their help.&lt;/p&gt;  &lt;p&gt;I also want to thank &lt;strong&gt;Rishi&lt;/strong&gt;, the creator of the &lt;a href="http://nroute.codeplex.com/"&gt;nRoute toolkit&lt;/a&gt;, for the interesting discussions and a couple of ideas that I implemented in EventToCommand. &lt;/p&gt;  &lt;p&gt;If you are already using InvokeDataCommand, the new EventToCommand behavior brings the following additional features:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;WPF / Silverlight compatibility&lt;/strong&gt;: The WPF version of the Expression Blend sample behavior InvokeDataCommand &lt;a href="http://expressionblend.codeplex.com/WorkItem/View.aspx?WorkItemId=5335"&gt;has a bug&lt;/a&gt; that prevents it to work (the Silverlight version runs fine though). The bug is corrected in EventToCommand, and both versions run well. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;CommandParameter is bindable&lt;/strong&gt;. You can bind this property, for example, to the value of a slider, the content of a TextBox, or any other property that is accessible to a data binding. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Disabling the attached control:&lt;/strong&gt; If the IsEnabled property is available for the attached element, you can opt-in to automatically disable the element if the Command’s CanExecute method returns false. This is dynamic, i.e. if the value of CanExecute changes, the element will be disabled/enabled.       &lt;ul&gt;       &lt;li&gt;In Silverlight, this is valid for all Controls. &lt;/li&gt;        &lt;li&gt;In WPF, this is valid for all FrameworkElements (Panels, Shapes, Controls, etc…). &lt;/li&gt;        &lt;li&gt;Note: By default, the element will &lt;strong&gt;not&lt;/strong&gt; be disabled/enabled automatically. Since one element can have multiple EventToCommand behaviors added to link multiple events to commands, you probably want only one or two of these to affect the IsEnabled property. This can be turned on by using the &lt;strong&gt;MustToggleIsEnabled&lt;/strong&gt; property, which can be either set in XAML (see below) or databound to a boolean value (checkbox, etc…). &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h2&gt;Source code, Binaries&lt;/h2&gt;  &lt;p&gt;The source code is &lt;a href="http://www.galasoft.ch/mvvm/resources/V3/GalaSoft.MvvmLight_Source_V3Alpha2.zip"&gt;available for download&lt;/a&gt; from my website. If you prefer, you can go &lt;a href="http://mvvmlight.codeplex.com/SourceControl/ListDownloadableCommits.aspx"&gt;to the Codeplex page&lt;/a&gt; where the source code has also been updated.&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://www.galasoft.ch/mvvm/resources/V3/GalaSoft.MvvmLight_Binaries_V3Alpha2.zip"&gt;binaries can be found here&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;Features, Usage&lt;/h2&gt;  &lt;p&gt;&lt;strong&gt;EventToCommand&lt;/strong&gt; is a behavior that can be added to any FrameworkElement. This can be a Rectangle, an Ellipse (in fact, any shape), an Image, any Control (Button, Slider, CheckBox, RadioButton, and many many others) etc. In short: If you can add an element to your UI, you can probably add EventToCommand to it.&lt;/p&gt;  &lt;p&gt;For more information about ICommand (and their MVVM Light implementation, RelayCommand), &lt;a href="http://blog.galasoft.ch/archive/2009/09/26/using-relaycommands-in-silverlight-and-wpf.aspx"&gt;read this article&lt;/a&gt;. You can bind any event to any command. Typically, you will use this to link an element’s event to a command defined in a ViewModel class. For more information about the ViewModel pattern in WPF and Silverlight, &lt;a href="http://www.galasoft.ch/mvvm/getstarted"&gt;this page will help you&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;In Expression Blend:&lt;/h3&gt;  &lt;p&gt;Adding an EventToCommand to any element in Expression Blend is super easy thanks to the visual support.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Right click on the References folder and select “Add Reference”. &lt;/li&gt; &lt;/ul&gt; &lt;a title="Adding references" href="http://www.flickr.com/photos/36917929@N06/4076890743"&gt;&lt;img src="http://farm3.static.flickr.com/2658/4076890743_d398cda55c.jpg" width="359" height="187" /&gt;&lt;/a&gt;   &lt;ul&gt;   &lt;li&gt;Add a reference to the MVVM Light DLLs. You need two: &lt;strong&gt;GalaSoft.MvvmLight.dll&lt;/strong&gt; and &lt;strong&gt;GalaSoft.MvvmLight.Extras.dll&lt;/strong&gt;. In addition, you need the &lt;strong&gt;System.Windows.Interactivity.dll&lt;/strong&gt; which contains the base code for all behaviors.       &lt;br /&gt;&lt;em&gt;&lt;a href="http://www.galasoft.ch/mvvm/resources/V3/GalaSoft.MvvmLight_Binaries_V3Alpha2.zip"&gt;You can download the DLLs needed here&lt;/a&gt;.&lt;/em&gt;  &lt;/li&gt;    &lt;li&gt;Open your project in Expression Blend, and build it to make sure that everything is working fine. &lt;/li&gt;    &lt;li&gt;Locate the element on which you want to add a command in the Objects and Timeline panel. &lt;/li&gt;    &lt;li&gt;Open the Assets panel and find the Behaviors category.      &lt;br /&gt;&lt;em&gt;You can also find behaviors in the Asset library, which is the last button on the bottom of the toolbar.&lt;/em&gt; &lt;/li&gt; &lt;/ul&gt; &lt;a title="Finding EventToCommand" href="http://www.flickr.com/photos/36917929@N06/4077646092/"&gt;&lt;img alt="FliCA4" src="http://farm3.static.flickr.com/2475/4077646092_063122b6ae_o.png" width="672" height="225" /&gt;&lt;/a&gt;   &lt;ul&gt;   &lt;li&gt;Drag the EventToCommand behavior on the element you selected before in the Objects and Timeline panel. &lt;/li&gt; &lt;/ul&gt; &lt;a title="Drag and drop EventToCommand" href="http://www.flickr.com/photos/36917929@N06/4076892115"&gt;&lt;img src="http://farm4.static.flickr.com/3492/4076892115_3e696ab73a.jpg" width="364" height="209" /&gt;&lt;/a&gt;   &lt;ul&gt;   &lt;li&gt;With the EventToCommand selected, select the Properties panel. &lt;/li&gt;    &lt;li&gt;Select the event you want to handle. &lt;/li&gt; &lt;/ul&gt; &lt;a title="Selecting the event" href="http://www.flickr.com/photos/36917929@N06/4077647408"&gt;&lt;img src="http://farm3.static.flickr.com/2770/4077647408_b12c68f015.jpg" width="344" height="385" /&gt;&lt;/a&gt;   &lt;ul&gt;   &lt;li&gt;In the Miscellaneous section, bind the EventToCommand to the ICommand you want to execute when the event is fired.      &lt;br /&gt;&lt;em&gt;If you use &lt;a href="http://www.galasoft.ch/mvvm/getstarted"&gt;the MVVM pattern&lt;/a&gt;, you probably want to use an ICommand (&lt;a href="http://blog.galasoft.ch/archive/2009/09/26/using-relaycommands-in-silverlight-and-wpf.aspx"&gt;for example a RelayCommand&lt;/a&gt;) located in the ViewModel that is set as the DataContext for your window/page.         &lt;br /&gt;In WPF, you can also enter a value, for example ApplicationCommands.Save. In that case, you must &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.input.commandbinding.aspx"&gt;set a CommandBinding&lt;/a&gt;.&lt;/em&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a title="Advanced properties button" href="http://www.flickr.com/photos/36917929@N06/4076893421"&gt;&lt;img src="http://farm4.static.flickr.com/3487/4076893421_9bb2e9fc09.jpg" width="313" height="75" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a title="Data binding" href="http://www.flickr.com/photos/36917929@N06/4077648672"&gt;&lt;img src="http://farm3.static.flickr.com/2749/4077648672_5f276f2ef1.jpg" width="311" height="272" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="Data binding editor" href="http://www.flickr.com/photos/36917929@N06/4077649032/"&gt;&lt;img alt="Fli249C" src="http://farm3.static.flickr.com/2740/4077649032_e2d741480e_o.png" width="619" height="179" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If you want to pass a parameter to the ICommand, you can set the CommandParameter property. You can data bind CommandParameter to something (for example the Text property of a TextBox, etc…). If you want to set a hard coded value ) for example “Hello world”, you need to set CommandParameterValue in the XAML editor (see the “Caveat” section below). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a title="Advanced properties button" href="http://www.flickr.com/photos/36917929@N06/4076894807"&gt;&lt;img src="http://farm3.static.flickr.com/2792/4076894807_c22d0604fe.jpg" width="321" height="62" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a title="Data binding editor" href="http://www.flickr.com/photos/36917929@N06/4077649906/"&gt;&lt;img alt="FliD557" src="http://farm3.static.flickr.com/2688/4077649906_b89ee62060_o.png" width="621" height="288" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Finally, if you want the attached element to be disabled depending on the ICommand.CanExecute method, set the MustToggleIsEnabledValue property to True. You can also use MustToggleIsEnabled to data bind this property to something else (for example a CheckBox’s IsChecked property) (see the “Caveat” section below).      &lt;ul&gt;       &lt;li&gt;In Silverlight, this will only work on Controls. Use the VisualStateManager to modify the appearance of the disabled control. &lt;/li&gt;        &lt;li&gt;In WPF, any FrameworkElement can be disabled. Use the Triggers panel to modify the appearance of the FrameworkElement when it is disabled. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;a title="Setting MustToggleIsEnabled" href="http://www.flickr.com/photos/36917929@N06/4076897585"&gt;&lt;img src="http://farm4.static.flickr.com/3517/4076897585_dc1f5ae7da.jpg" width="305" height="58" /&gt;&lt;/a&gt;   &lt;h3&gt;&lt;/h3&gt;  &lt;h3&gt;In XAML&lt;/h3&gt;  &lt;p&gt;Using the XAML editor, follow the steps to add an EventToCommand to an element.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Add a reference to the MVVM Light DLLs. You need two: &lt;strong&gt;GalaSoft.MvvmLight.dll&lt;/strong&gt; and &lt;strong&gt;GalaSoft.MvvmLight.Extras.dll&lt;/strong&gt;. In addition, you need the &lt;strong&gt;System.Windows.Interactivity.dll&lt;/strong&gt; which contains the base code for all behaviors.       &lt;br /&gt;&lt;em&gt;&lt;a href="http://www.galasoft.ch/mvvm/resources/V3/GalaSoft.MvvmLight_Binaries_V3Alpha2.zip"&gt;You can download the DLLs needed here&lt;/a&gt;.&lt;/em&gt;  &lt;/li&gt;    &lt;li&gt;Add an xmlns for the following namespaces: &lt;/li&gt; &lt;/ul&gt;  &lt;pre class="xml" name="code"&gt;xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras"&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Add the EventToCommand to the desired element (in this example, a Rectangle) with the following XAML code: 
      &lt;br /&gt;&lt;em&gt;This presupposes that the DataContext of your page/window is set to a ViewModel containing the TestCommand command, as is usual in the MVVM pattern.&lt;/em&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="xml" name="code"&gt;&amp;lt;Rectangle Fill="White"
           Stroke="Black"
           Width="200"
           Height="100"&amp;gt;
    &amp;lt;i:Interaction.Triggers&amp;gt;
        &amp;lt;i:EventTrigger EventName="MouseEnter"&amp;gt;
            &amp;lt;cmd:EventToCommand Command="{Binding TestCommand,
                                          Mode=OneWay}"
               CommandParameter="{Binding Text,
                                  ElementName=MyTextBox,
                                  Mode=OneWay}"
               MustToggleIsEnabledValue="True" /&amp;gt;
        &amp;lt;/i:EventTrigger&amp;gt;
    &amp;lt;/i:Interaction.Triggers&amp;gt;
&amp;lt;/Rectangle&amp;gt;&lt;/pre&gt;

&lt;h3&gt;Listening to events on other elements&lt;/h3&gt;

&lt;p&gt;Because EventToCommand derives from System.Windows.Interactivity.TriggerAction&amp;lt;T&amp;gt;, it has a property named SourceName. With this property, you can attach EventToCommand to an element, but listen to events on another element. I didn’t explicitly forbid this in the code, but I would recommend against it. I think that it creates confusing code that can easily be broken. The best is probably to always listen to events on the attached element itself, and leave SourceName empty.&lt;/p&gt;

&lt;h2&gt;Small caveat&lt;/h2&gt;

&lt;p&gt;Because of limitations in the Silverlight framework (specifically, the fact that data bindings can only be applied to a FrameworkElement), I had to resort to a small trick to make CommandParameter and MustToggleIsEnabled bindable. You will see in the code that there are four properties:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;CommandParameter&lt;/strong&gt;: 

    &lt;ul&gt;
      &lt;li&gt;In Silverlight, used to data bind CommandParameter. &lt;/li&gt;

      &lt;li&gt;In WPF, used either for data binding or for hard coded values. &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;CommandParameterValue:&lt;/strong&gt; 

    &lt;ul&gt;
      &lt;li&gt;In Silverlight and in WPF, used for hard coded values only. &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;MustToggleIsEnabled:&lt;/strong&gt; 

    &lt;ul&gt;
      &lt;li&gt;In Silverlight, used to data bind MustToggleIsEnabled. &lt;/li&gt;

      &lt;li&gt;In WPF, used either for data binding or for hard coded values. &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;MustToggleIsEnabledValue:&lt;/strong&gt; 

    &lt;ul&gt;
      &lt;li&gt;In Silverlight and in WPF, used for hard coded values only. &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, if you don’t care about Silverlight compatibility for your XAML code, you can always use CommandParameter or MustToggleIsEnabled in WPF, either for data binding or for hard coded values. If you want to share your XAML between a Silverlight and a WPF application, then you should respect the rules above, or else you will get exceptions in Silverlight when the XAML is being parsed.&lt;/p&gt;

&lt;h2&gt;Demo application&lt;/h2&gt;

&lt;p&gt;The demo application shows multiple usages of the EventToCommand behavior. The application runs in Silverlight and in WPF. &lt;a href="http://galasoft.ch/mvvm/resources/Samples/EventToCommand.zip"&gt;Feel free to download the code&lt;/a&gt; and play with it to learn how to use EventToCommand! The Silverlight version of the sample application &lt;a href="http://galasoft.ch/mvvm/resources/Samples/EventToCommandDemo/TestPage.html" target="_blank"&gt;can also be executed&lt;/a&gt; directly in your web browser.&lt;/p&gt;
&lt;a title="EventToCommand demo" href="http://www.flickr.com/photos/36917929@N06/4102403273"&gt;&lt;img src="http://farm3.static.flickr.com/2715/4102403273_28c14af3fa.jpg" width="500" height="494" /&gt;&lt;/a&gt; 

&lt;ul&gt;
  &lt;li&gt;Binding a Button’s Click event and a Rectangle’s MouseEnter event to a simple RelayCommand. &lt;/li&gt;

  &lt;li&gt;Binding a Button’s Click event and a Rectangle’s MouseEnter event to a RelayCommand with a data bound parameter. &lt;/li&gt;

  &lt;li&gt;Binding a Button’s Click event and a Rectangle’s MouseEnter event to a RelayCommand with a hard coded parameter. &lt;/li&gt;

  &lt;li&gt;Binding a Button’s Click event and a Rectangle’s MouseEnter event to a RelayCommand and disabling them depending on the parameter’s value. 
    &lt;br /&gt;&lt;em&gt;Note: In Silverlight, Rectangles cannot be disabled.&lt;/em&gt; &lt;/li&gt;

  &lt;li&gt;Passing the EventArgs of a fired event to the invoked command.
    &lt;br /&gt;&lt;em&gt;Note: This feature was added after V3 alpha 2 was released. &lt;a href="http://blog.galasoft.ch/archive/2009/11/13/bug-correction-in-messenger-and-new-feature-in-eventtocommand-mvvm.aspx"&gt;See this post&lt;/a&gt; for more information.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;License&lt;/h2&gt;

&lt;p&gt;MVVM Light Toolkit is distributed under the MIT License. This license grants you the right to do pretty much anything you want with the code, but don’t come crying if you break something (&lt;a href="http://www.galasoft.ch/license_MIT.txt"&gt;the exact wording is found here&lt;/a&gt;). Some parts of the GalaSoft.MvvmLight.Extras DLL are licensed under the MS-PL license.&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;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136016"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136016" 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://geekswithblogs.net/lbugnion/aggbug/136016.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2009/11/05/mvvm-light-toolkit-v3-alpha-2-eventtocommand-behavior.aspx</guid>
            <pubDate>Thu, 05 Nov 2009 14:57:43 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/136016.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2009/11/05/mvvm-light-toolkit-v3-alpha-2-eventtocommand-behavior.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/136016.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/136016.aspx</trackback:ping>
        </item>
        <item>
            <title>Quick tip: Snooping WPF application with elevated permissions</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2009/11/03/quick-tip-snooping-wpf-application-with-elevated-permissions.aspx</link>
            <description>&lt;p&gt;Here is a quick tip: If you want &lt;a href="http://blois.us/Snoop/"&gt;to use Snoop on a WPF&lt;/a&gt; application running with elevated permissions, you need to &lt;strong&gt;run Snoop with elevated permissions too&lt;/strong&gt;, or else your application will not appear in the application’s list displayed by Snoop.&lt;/p&gt;  &lt;p&gt;Thankfully, it is really easy to run Snoop in elevated mode in Windows 7:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Press Ctrl-Shift on your keyboard. &lt;/li&gt;    &lt;li&gt;Click on the Snoop icon in the Taskbar or in the Start menu. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Props for this quick tip go to my colleague &lt;strong&gt;Frank Preuss at IdentityMine&lt;/strong&gt; :)&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Note: If you do develop WPF applications, and don’t use Snoop yet, well you have to try it. It is like wanting to develop .NET without &lt;a href="http://www.red-gate.com/products/reflector/"&gt;using Reflector&lt;/a&gt;. It’s possible, but it is painful.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;a href="http://blois.us/Snoop"&gt;Snoop is a great tool developed by Pete Blois&lt;/a&gt; (of the Expression team). It is a must have in every WPF developer’s toolbox.&lt;/em&gt;&lt;/p&gt; &lt;a title="2009110301 by lbugnionblog, on Flickr" href="http://www.flickr.com/photos/36917929@N06/4071321007/"&gt;&lt;img alt="2009110301" src="http://farm3.static.flickr.com/2645/4071321007_a0dd3f9744_o.png" width="599" height="26" /&gt;&lt;/a&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;/div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135970"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135970" 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://geekswithblogs.net/lbugnion/aggbug/135970.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2009/11/03/quick-tip-snooping-wpf-application-with-elevated-permissions.aspx</guid>
            <pubDate>Tue, 03 Nov 2009 13:15:04 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/135970.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2009/11/03/quick-tip-snooping-wpf-application-with-elevated-permissions.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/135970.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/135970.aspx</trackback:ping>
        </item>
        <item>
            <title>MVVM Light Toolkit V3 Alpha 1</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2009/10/27/mvvm-light-toolkit-v3-alpha-1.aspx</link>
            <description>&lt;p&gt;This is a super early release of the next version of the &lt;a href="http://www.galasoft.ch/mvvm/getstarted"&gt;MVVM Light Toolkit&lt;/a&gt;. Please enjoy with care, be aware that this version is &lt;strong&gt;not fully tested&lt;/strong&gt; and &lt;strong&gt;not feature complete&lt;/strong&gt; by a long shot.&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://galasoft.ch/mvvm/resources/V3/GalaSoft.MvvmLight_Binaries_V3Alpha1.zip"&gt;binaries are available for download&lt;/a&gt;, as well &lt;a href="http://galasoft.ch/mvvm/resources/V3/GalaSoft.MvvmLight_Source_V3Alpha1.zip"&gt;as the source code&lt;/a&gt;. In addition, the source code for V3 alpha1 is &lt;a href="http://mvvmlight.codeplex.com/SourceControl/ListDownloadableCommits.aspx"&gt;up to date in Codeplex&lt;/a&gt;, so you can also get the code from there.&lt;/p&gt;  &lt;h2&gt;What’s new in the Messenger?&lt;/h2&gt;  &lt;p&gt;So far the changes are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Bug correction: A “collection was modified” error could occur if a recipient was registering for a message type in the same method it used to receive another message. A similar error had been fixed in V2, but unfortunately this one remained. A unit test was added to isolate this case, and a fix has been implemented. &lt;/li&gt;    &lt;li&gt;New built-in message types: &lt;strong&gt;NotificationMessageAction and NotificationMessageAction&amp;lt;TCallbackParameter&amp;gt;&lt;/strong&gt;. These types can be used to send a message through the Messenger, and get a callback. A next post will give more information about this scenario. &lt;/li&gt;    &lt;li&gt;Renamed message types: To avoid some confusion, I renamed CommandMessage to &lt;strong&gt;NotificationMessage&lt;/strong&gt;. These messages are used to convey a notification (of type string) from a sender to a recipient. The term “command” was too confusing because it is a loaded term in the MVVM pattern (ICommand, RoutedCommand, RelayCommand, etc…). The term NotificationMessage is clearer. The old types are still available but have been marked Obsolete and will be removed in a future version of the toolkit. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;At this point it is good to remember that the Messenger class (from V2) can be used to send &lt;strong&gt;any kind of message&lt;/strong&gt;, from simple values to complex objects. The built-in message types are merely a convenience for specific scenarios, but nothing forces you to use them!&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;To make testing and mocking easier, it is now possible to &lt;strong&gt;override the Messenger.Default&lt;/strong&gt; property and provide another implementation. In addition, all the public methods of the Messenger class have now been marked virtual, which means that they can be overriden. A next post will give more information about this scenario. &lt;/li&gt;    &lt;li&gt;In V2, you could send a message to a given type of recipients only by using the method overload Send&amp;lt;TMessage, TRecipient&amp;gt;. In V3, &lt;strong&gt;TRecipient&lt;/strong&gt; &lt;strong&gt;can now be an interface&lt;/strong&gt;. This enables the Messenger to send messages to all the objects implementing a given interface. Note that the Messenger can send &lt;strong&gt;to any type of recipient&lt;/strong&gt;, and no special requirement is needed to receive a message. But if some of your objects happen to implement an interface (for example IViewModel), you can make sure that your messages reach only these recipients (of course, the recipients still need to register for a type of messages). &lt;/li&gt;    &lt;li&gt;When a recipient registers for a type of message, it can &lt;strong&gt;provide a token&lt;/strong&gt; (any object). Then, when a sender sends a message, it can also provide the same token. The Messenger will only send the messages to those recipients who provided the same token when registering. This enables creating separate optimized communication channels between objects. The token can be any object, for example a string, a GUID, etc… &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;What’s new in ViewModelBase?&lt;/h2&gt;  &lt;p&gt;In V3 alpha 1, a small change has been made to ViewModelBase: The constructor ViewModelBase(Messenger) has been replaced by &lt;strong&gt;ViewModelBase(IMessenger)&lt;/strong&gt;. This makes it easier to test and mock ViewModels that use their own implementation of the IMessenger interface.&lt;/p&gt;  &lt;p&gt;More changes will be implemented in V3 final.&lt;/p&gt;  &lt;h2&gt;Installation&lt;/h2&gt;  &lt;p&gt;if you have MVVM Light Toolkit V2 installed, you can easily deploy the V3 alpha1 DLLs manually by following the steps:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;In Windows, choose the Start menu then All Programs, MVVM Light Toolkit, Binaries (Assemblies). This starts the Windows Explorer in the Binaries folder. &lt;/li&gt;    &lt;li&gt;(optional but recommended) Rename GalaSoft.MvvmLight.dll (and the Silverlight version too) to GalaSoft.MvvmLight.bak. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://galasoft.ch/mvvm/resources/V3/GalaSoft.MvvmLight_Binaries_V3Alpha1.zip"&gt;Download the V3 alpha1 binaries&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;Extract this file to a local folder. &lt;/li&gt;    &lt;li&gt;Copy the WPF version of the assembly in Binaries, and then copy the Silverlight version to Binaries\Silverlight. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;After these few steps, you are all set to use the new features described here. Again, remember that this is a super early release, so use with care and revert to V2 if you are encountering issues. Also, please give me feedback and suggestions!&lt;/p&gt;  &lt;h2&gt;What else?&lt;/h2&gt;  &lt;p&gt;I will publish in the next few days a few blog posts about these new features, and also continue to work on new features. As soon as some features are ready, I will push an alpha2 and blog about it. Thanks a lot for the support!!&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;/div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135753"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135753" 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://geekswithblogs.net/lbugnion/aggbug/135753.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2009/10/27/mvvm-light-toolkit-v3-alpha-1.aspx</guid>
            <pubDate>Tue, 27 Oct 2009 20:05:02 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/135753.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2009/10/27/mvvm-light-toolkit-v3-alpha-1.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/135753.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/135753.aspx</trackback:ping>
        </item>
        <item>
            <title>Microsoft #shape conference</title>
            <link>http://geekswithblogs.net/lbugnion/archive/2009/10/27/microsoft-shape-conference.aspx</link>
            <description>&lt;h2&gt;&lt;/h2&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/switzerland/shape"&gt;&lt;img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.galasoft.ch/blogs-all/Microsoftshapeconference_8FF7/image.png" width="244" height="103" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The &lt;a href="http://www.microsoft.com/switzerland/shape"&gt;Shape conference&lt;/a&gt; is a new web technologies oriented conference organized by Microsoft Switzerland. It is held in Zurich Oerlikon, and has two tracks, one design-oriented and one development-oriented.&lt;/p&gt;  &lt;h2&gt;Best of Swiss Silverlight award&lt;/h2&gt;  &lt;p&gt;The Best of Swiss Silverlight awards are rewarding the best Silverlight applications developed in Switzerland this year. The winners are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;3rd place: Siemens with an application to optimize energy efficiency in buildings. Very happy about that, because I have been a contributor to Siemens adopting WPF and starting to think more about new UI technologies, and it makes me very happy to see them adopt Silverlight now! &lt;/li&gt;    &lt;li&gt;2nd place: The hospital of Solothurn, Switzerland, for a medical application. &lt;/li&gt;    &lt;li&gt;2nd place too: The Swiss post, for an e-business web application &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Interestingly, with these 3 applications,  the jury rerwarded some Line-of-business type applications, where Silverlight is used to enrich the content and the interaction.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;1st place goes to Sobees for their &lt;a href="http://sobees.com/"&gt;Silverlight-based Sobees Web&lt;/a&gt;. This client can be used in and out of the browser, to access Twitter and Facebook accounts (including posting status updates, search, etc…). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I am really happy for Sobees and want to congratulate them very warmly to this award. It is more than deserved. I know the Sobees team since 2007 and have followed their history, and was happy to help them with a couple of technical issues. The comparison in the challenges they faced while developing their richer application in WPF, and the lighter application in Silverlight is very interesting. Especially the problem of the deployment was interesting to face, as the “full .NET” 3.5 SP1 is not available on some of their target machines (XP, Vista) and needs to be installed, which is a relatively heavy download, even with the client profile. On the other hand, Silverlight is often already installed, and even if it is not, it is easy to download and fast to install.&lt;/p&gt;  &lt;p&gt;Since Sobees Web can be installed out of the browser (a feature I have been &lt;a href="http://blog.galasoft.ch/archive/2008/04/24/silverlight-running-standalone-full-trust-applications.aspx"&gt;begging Microsoft to implement&lt;/a&gt; already in 2008 ;) it can be used very much like a standalone application, with minor restrictions. I am really happy to see this innovative application rewarded, a very well deserved step for Sobees! &lt;/p&gt;  &lt;h2&gt;Design thinking&lt;/h2&gt;  &lt;p&gt;Ruedi Alexander Müller-Beyeler&lt;/p&gt;  &lt;p&gt;Designers are still misunderstood by the clients.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Designers are responsible for colors. &lt;/li&gt;    &lt;li&gt;Designers are artists but content and ideas comes from us, the client. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Design should be more than this.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;English meaning of the word (Entwerfen). &lt;/li&gt;    &lt;li&gt;Designers should be closer from developers, especially in software. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Talks about his experience in re-designing the news at the german TV channel ZDF, and the different experiences and challenges faced.&lt;/p&gt;  &lt;p&gt;Compares design process to software development process: Iterative, we never know exactly when we will be done, we are anyway never completely done.&lt;/p&gt;  &lt;p&gt;Funny note: HDTV is also influencing the way that news studios are designed: Presenters will not agree to be filmed as close as in normal definition, because HDTV will show all their flaws. This plays a role already now in the way that TV studios are designed.&lt;/p&gt;  &lt;p&gt;Introduced some fake virtual 3D models in the studios (blue screen technology with 3D models, mostly pre-recorded) that the anchors can interact with. This was a wish from the anchors themselves, who would have wanted full 3D, but the technology is not quite ready yet.&lt;/p&gt;  &lt;p&gt;The Internet changes the game, especially in the way that multimedia elements interact together. However the demographics for TV news is not always used to the internet (seniors), so this must be taken in account too.&lt;/p&gt;  &lt;p&gt;Anchors and other technicians needed to be trained for this new design, early interaction with the people is needed to train them.&lt;/p&gt;  &lt;p&gt;Conclusion: Design is more than just design :) Design should be “design thinking”, meaning that everyone involved, even non-designers, must learn to think more about design, and design should be more integrated in every steps of the process. On the other hand, designers must learn to “open their black box” and communicate more during the design process with the client and other persons involved.&lt;/p&gt;  &lt;h2&gt;And more…&lt;/h2&gt;  &lt;p&gt;I don’t have a report for the next sessions I followed, but they were pretty cool. The sessions were filmed so I am pretty sure they will be available online soon. Some of them are in English, most of them in German, so pick the ones that interest you and enjoy! In the morning I followed the designer track (with sessions about Expression Blend and SketchFlow). In the afternoon, I followed the sessions about RIA Services and Azure. All the sessions were very interesting and I can definitely recommend checking the videos if you are into this kind of things ;) &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;/div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135747"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135747" 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://geekswithblogs.net/lbugnion/aggbug/135747.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://geekswithblogs.net/lbugnion/archive/2009/10/27/microsoft-shape-conference.aspx</guid>
            <pubDate>Tue, 27 Oct 2009 17:26:58 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/lbugnion/comments/135747.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/lbugnion/archive/2009/10/27/microsoft-shape-conference.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/135747.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/135747.aspx</trackback:ping>
        </item>
    </channel>
</rss>