<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" 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:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Channel 9 - Entries tagged with MVVM</title>
    <atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Tags/mvvm/RSS"></atom:link>
    <itunes:summary></itunes:summary>
    <itunes:author>Microsoft</itunes:author>
    <itunes:subtitle></itunes:subtitle>
    <image>
      <url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
      <title>Channel 9 - Entries tagged with MVVM</title>
      <link>http://channel9.msdn.com/Tags/mvvm</link>
    </image>
    <itunes:image href=""></itunes:image>
    <itunes:category text="Technology"></itunes:category>
    <description>Channel 9 keeps you up to date with the latest news and behind the scenes info from Microsoft that developers love to keep up with. From LINQ to SilverLight – Watch videos and hear about all the cool technologies coming and the people behind them.</description>
    <link>http://channel9.msdn.com/Tags/mvvm</link>
    <language>en</language>
    <pubDate>Tue, 21 May 2013 01:42:33 GMT</pubDate>
    <lastBuildDate>Tue, 21 May 2013 01:42:33 GMT</lastBuildDate>
    <generator>Rev9</generator>
    <c9:totalResults>48</c9:totalResults>
    <c9:pageCount>2</c9:pageCount>
    <c9:pageSize>25</c9:pageSize>
  <item>
      <title>Andy and Okra is your Windows 8 App Store MVVM app building supercharger...</title>
      <description><![CDATA[<p>Today's Modern Monday project by Andrew Wilkinson is one of those kinds of projects that makes me love developers.</p><p>Imagine this...</p><blockquote><p>Building Windows 8 MVVM app... Gaa, don't like the available templates, but good enough to start with. hack, hack, hack.</p><p>Building second app. Ahh, templates again... hack, hack, hack...</p><p>Third app. Project templates... Oh this is silly, enough! Creating own darn project templates. And while I'm at it, Item templates too!</p><p>That took a bit, but now, wow, building app's is faster, with much less hacking.</p><p>App four, five, six... This is nice! You know, having gotten so much from the community, it would be cool to gave back. Bet there are others who could use these templates! ...</p></blockquote><h2><a href="http://andyonwpf.blogspot.co.uk/2013/05/windows-store-mvvm-templates-for-visual.html">Windows Store MVVM Templates for Visual Studio</a></h2><blockquote><p>If you have ever tried to create a Windows Store application using the MVVM pattern then you will probably have found that the Visual Studio project and item templates are a bit cumbersome. I often find myself adding a new page to my projects using one of the default templates, only to need to rewrite it to follow the MVVM pattern before I can even start adding application specific logic. What if there was a way to take advantage of the selection of project and page templates provided by Visual Studio, but have them produce fully MVVM compliant code?</p><p>Well today I’d like to announce the release of a free extension for Visual Studio 2012 (including the Express editions for Windows 8) that provides just that. It is based upon the open source <a href="http://okra.codeplex.com/">Okra App Framework</a>, and provides almost all of the Visual Studio Windows Store templates in an MVVM friendly manner.</p><h4>Installing the Extension</h4><p>The “Windows Store MVVM Templates for the Okra App Framework” ...</p><h4>What Templates are Provided?</h4><p>There are two types of template included, project templates and item templates. The project templates are designed to get you started with a new application and provide exactly the same behaviour as the default Visual Studio templates (but written following the MVVM pattern).</p><ul><li>Okra Basic App - A single-page Okra App Framework project with no predefined controls or layout. </li><li>Okra Grid App - A three-page Okra App Framework project that navigates among grouped items arranged in a grid. Dedicated pages display group and item details. </li><li>Okra Split App - A two-page Okra App Framework project that navigates among grouped items. The first page allows group selection while the second displays an item list alongside details for the selected item. </li></ul><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B2%5D-133.png" alt="image" width="500" height="346" border="0"></p><p>...</p><p>Also included are a number of item templates that allow you to add new pages to any existing Okra App Framework based application, whether created using the project templates or not.</p><ul><li>Basic Page (MVVM) </li><li>Split Page (MVVM) </li><li>Items Page (MVVM) </li><li>Item Detail Page (MVVM) </li><li>Grouped Items Page (MVVM) </li><li>Group Detail Page (MVVM) </li><li>Search Contract (MVVM) </li><li>Share Target Contract (MVVM) </li><li>Settings Pane (MVVM) </li></ul><p>...</p><h4>What do the MVVM Pages Look Like?</h4><p>All the page templates (and each of the pages in the project templates) include the following files,</p><p>...</p></blockquote><p>If you're building Modern UI MVVM app's, looks like this should really help speed up your delivery and help you focus on what will make your app great...</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:18e08633c74645339bd1a1c20149d595">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/Andy-and-Okra-is-your-Windows-8-App-Store-MVVM-app-building-supercharger</comments>
      <itunes:summary>Today&#39;s Modern Monday project by Andrew Wilkinson is one of those kinds of projects that makes me love developers. Imagine this... Building Windows 8 MVVM app... Gaa, don&#39;t like the available templates, but good enough to start with. hack, hack, hack. Building second app. Ahh, templates again... hack, hack, hack... Third app. Project templates... Oh this is silly, enough! Creating own darn project templates. And while I&#39;m at it, Item templates too! That took a bit, but now, wow, building app&#39;s is faster, with much less hacking. App four, five, six... This is nice! You know, having gotten so much from the community, it would be cool to gave back. Bet there are others who could use these templates! ... Windows Store MVVM Templates for Visual StudioIf you have ever tried to create a Windows Store application using the MVVM pattern then you will probably have found that the Visual Studio project and item templates are a bit cumbersome. I often find myself adding a new page to my projects using one of the default templates, only to need to rewrite it to follow the MVVM pattern before I can even start adding application specific logic. What if there was a way to take advantage of the selection of project and page templates provided by Visual Studio, but have them produce fully MVVM compliant code? Well today I’d like to announce the release of a free extension for Visual Studio 2012 (including the Express editions for Windows 8) that provides just that. It is based upon the open source Okra App Framework, and provides almost all of the Visual Studio Windows Store templates in an MVVM friendly manner. Installing the ExtensionThe “Windows Store MVVM Templates for the Okra App Framework” ... What Templates are Provided?There are two types of template included, project templates and item templates. The project templates are designed to get you started with a new application and provide exactly the same behaviour as the default Visual Studio templates (but written following th</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/Andy-and-Okra-is-your-Windows-8-App-Store-MVVM-app-building-supercharger</link>
      <pubDate>Mon, 20 May 2013 13:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/Andy-and-Okra-is-your-Windows-8-App-Store-MVVM-app-building-supercharger</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/3d21aad9-0594-4180-9dfc-f0c641cfbd19.png" height="69" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/1a2a2963-9220-4b3e-bc58-feedcaaa0d46.png" height="152" width="220"></media:thumbnail>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/Andy-and-Okra-is-your-Windows-8-App-Store-MVVM-app-building-supercharger/RSS</wfw:commentRss>
      <category>C#</category>
      <category>Coding4Fun</category>
      <category>MVVM</category>
      <category>XAML</category>
      <category>Windows Store App</category>
    </item>
  <item>
      <title>Speed your Phone App Dev with the Cimbalino Windows Phone Toolkit</title>
      <description><![CDATA[<p>Today's Mobile Monday is a toolkit by Pedro Lamas that will help speed up your Windows Phone 7.x and 8 app development.</p><p>Yeah, I know it feels like I've been doing allot frameworks recently, but in my weird world, playing with new frameworks and seeing how they work is &quot;fun&quot;. Why? They let you focus on building your apps, and not worrying about the goo. Or they let you see how the library author dealt with the goo. Or you LIKE goo and want to create your own goo buster. So many opportunities for fun. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p><p>Anyway...</p><h2><a href="http://cimbalino.org/" target="_blank">Cimbalino Windows Phone Toolkit</a></h2><blockquote><p>Cimbalino Windows Phone Toolkit is a set of useful and powerful items that will help you build your Silverlight applications for Windows Phone.</p><p>The Toolkit is divided in projects, regarding different Windows Phone application required capabilities:</p><ul><li><strong>Cimbalino.Phone.Toolkit</strong> - the base project of the toolkit, containing base MVVM services, some very useful converters, helper classes and extension methods, and the bindable Application Bar behavior </li><li><strong>Cimbalino.Phone.Toolkit.Camera</strong> - MVVM compatible services for camera access </li><li><strong>Cimbalino.Phone.Toolkit.Controls</strong> - Controls library (requires Silverlight for Windows Phone Toolkit) </li><li><strong>Cimbalino.Phone.Toolkit.DeviceInfo</strong> - MVVM compatible services for device information access </li><li><strong>Cimbalino.Phone.Toolkit.Location</strong> - MVVM compatible services for location access </li><li><strong>Cimbalino.Phone.Toolkit.PhoneDialer</strong> - MVVM compatible services for phone dialer access </li><li><strong>Cimbalino.Phone.Toolkit.UserInfo</strong> - MVVM compatible services for user information access </li></ul><p><strong>Note:</strong> this toolkit is only compatible with the <a href="http://go.microsoft.com/fwlink/?LinkId=226403">Windows Phone SDK 7.1.x</a> and <a href="http://go.microsoft.com/fwlink/?LinkId=265773">Windows Phone 8.0</a>!</p><h4>Nuget</h4><p>The packages are available thru <a href="http://nuget.org/">NuGet</a> <a href="http://nuget.org/List/Packages/Cimbalino.Phone.Toolkit">here</a>, with the same handles as the project names (e.g., the main package is &quot;Cimbalino.Phone.Toolkit&quot;)</p><h4>Download</h4><p>Please visit the <a href="https://github.com/Cimbalino/Cimbalino-Phone-Toolkit/downloads">download section on GitHub</a> to download the latest release of the toolkit.</p></blockquote><p>I thought one of the cool things was that it supports both Windows Phone 7.1 and 8...</p><p><a href="https://github.com/Cimbalino/Cimbalino-Phone-Toolkit\" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B4%5D-12.png" alt="image" width="304" height="384" border="0"></a></p><p>While you can easily grab the binaries from NuGut, since source is part of the fun, I grabbed the latest drop. Which compiled with no problems or errors.</p><p>How do you use it? There's a couple samples in the repository... Here's the Location sample.</p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B12%5D-43.png" alt="image" width="520" height="259" border="0"></p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B11%5D-50.png" alt="image" width="332" height="384" border="0"></p><p>So okay, what else is there of interest? Just check out snaps of the main library;</p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B15%5D-30.png" alt="image" width="235" height="364" border="0"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B24%5D-13.png" alt="image" width="260" height="364" border="0"></p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B21%5D-18.png" alt="image" width="277" height="246" border="0"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B18%5D-22.png" alt="image" width="278" height="228" border="0"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B27%5D-12.png" alt="image" width="296" height="226" border="0"></p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B30%5D-8.png" alt="image" width="186" height="364" border="0"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B36%5D-3.png" alt="image" width="182" height="364" border="0"></p><p>That enough to wet your appetite?</p><p>Cimbalino, you ask? Here's Pedro's answer.</p><blockquote><p>&quot;Cimbalino&quot; is the word people from <a href="http://maps.google.com/maps?q=Porto,&#43;portugal&amp;hl=en&amp;sll=41.228172,-8.61944&amp;sspn=0.00915,0.021136&amp;t=h&amp;hnear=Oporto,&#43;Portugal&amp;z=13">Porto</a> (my home town!) use for expresso coffee!</p><p>The name <em>Cimbalino</em> is a reference to <em>La Cimbali</em>, a popular brand for expresso machines a few years ago in Portugal.</p><p>If you'd like you can <a href="http://translate.google.com/translate_tts?ie=UTF-8&amp;q=cimbalino&amp;tl=pt">hear</a> how it is correctly read in Portuguese.</p></blockquote> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:df0a506848f245a0a9b2a19f012eeb31">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/Speed-your-Phone-App-Dev-with-the-Cimbalino-Windows-Phone-Toolkit</comments>
      <itunes:summary>Today&#39;s Mobile Monday is a toolkit by Pedro Lamas that will help speed up your Windows Phone 7.x and 8 app development. Yeah, I know it feels like I&#39;ve been doing allot frameworks recently, but in my weird world, playing with new frameworks and seeing how they work is &amp;quot;fun&amp;quot;. Why? They let you focus on building your apps, and not worrying about the goo. Or they let you see how the library author dealt with the goo. Or you LIKE goo and want to create your own goo buster. So many opportunities for fun.  Anyway... Cimbalino Windows Phone ToolkitCimbalino Windows Phone Toolkit is a set of useful and powerful items that will help you build your Silverlight applications for Windows Phone. The Toolkit is divided in projects, regarding different Windows Phone application required capabilities: Cimbalino.Phone.Toolkit - the base project of the toolkit, containing base MVVM services, some very useful converters, helper classes and extension methods, and the bindable Application Bar behavior Cimbalino.Phone.Toolkit.Camera - MVVM compatible services for camera access Cimbalino.Phone.Toolkit.Controls - Controls library (requires Silverlight for Windows Phone Toolkit) Cimbalino.Phone.Toolkit.DeviceInfo - MVVM compatible services for device information access Cimbalino.Phone.Toolkit.Location - MVVM compatible services for location access Cimbalino.Phone.Toolkit.PhoneDialer - MVVM compatible services for phone dialer access Cimbalino.Phone.Toolkit.UserInfo - MVVM compatible services for user information access Note: this toolkit is only compatible with the Windows Phone SDK 7.1.x and Windows Phone 8.0! NugetThe packages are available thru NuGet here, with the same handles as the project names (e.g., the main package is &amp;quot;Cimbalino.Phone.Toolkit&amp;quot;) DownloadPlease visit the download section on GitHub to download the latest release of the toolkit. I thought one of the cool things was that it supports both Windows Phone 7.1 and 8...  While you can easily grab the binar</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/Speed-your-Phone-App-Dev-with-the-Cimbalino-Windows-Phone-Toolkit</link>
      <pubDate>Mon, 15 Apr 2013 13:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/Speed-your-Phone-App-Dev-with-the-Cimbalino-Windows-Phone-Toolkit</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/f88dbff2-e25b-49dc-ace0-c4e490f1f6d4.png" height="100" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/7b636505-71d2-4e96-8920-bd5a64487433.png" height="220" width="220"></media:thumbnail>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>2</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/Speed-your-Phone-App-Dev-with-the-Cimbalino-Windows-Phone-Toolkit/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>MVVM</category>
      <category>Windows Phone</category>
      <category>Windows Phone 7</category>
      <category>Windows Phone 8</category>
    </item>
  <item>
      <title>TWC9: Update 2 CTP4 Go Live, Office 2013 Dev Tools, Kinect code and more</title>
      <description><![CDATA[<p>This week on Channel 9, Dan and Brian Peek discuss the week's top developer news, including;</p><ul><li><a href="http://channel9.msdn.com/Shows/This&#43;Week&#43;On&#43;Channel&#43;9/TWC9-March-8-2013#time=42s">[0:42]</a>&nbsp;<a href="http://blogs.msdn.com/b/visualstudioalm/archive/2013/03/04/march-ctp-of-visual-studio-update-2.aspx">March CTP (“CTP4”) of Visual Studio Update 2 now available</a> (Charles Sterling) </li><li><a href="http://channel9.msdn.com/Shows/This&#43;Week&#43;On&#43;Channel&#43;9/TWC9-March-8-2013#time=2m7s">[2:07]</a>&nbsp;<a href="http://blogs.msdn.com/b/somasegar/archive/2013/03/04/now-available-office-developer-tools-for-visual-studio-2012.aspx">Now Available: Office Developer Tools for Visual Studio 2012</a> (S. Somasegar) </li><li><a href="http://channel9.msdn.com/Shows/This&#43;Week&#43;On&#43;Channel&#43;9/TWC9-March-8-2013#time=3m33s">[3:33]</a>&nbsp;<a href="http://blogs.msdn.com/b/visualstudioalm/archive/2013/03/07/core-ignorecase-corruption-issue-fixed-in-visual-studio-tools-for-git-0-8-0-0.aspx" target="_blank">Visual Studio Tools for Git 0.8.0.0</a> (Andy Lewis) </li><li><a href="http://channel9.msdn.com/Shows/This&#43;Week&#43;On&#43;Channel&#43;9/TWC9-March-8-2013#time=4m49s">[4:49]</a>&nbsp;<a href="http://blogs.msdn.com/b/lightswitch/archive/2013/03/04/announcing-a-new-preview-of-the-lightswitch-html-client.aspx">Announcing a New Preview of the LightSwitch HTML Client</a> </li><li><a href="http://channel9.msdn.com/Shows/This&#43;Week&#43;On&#43;Channel&#43;9/TWC9-March-8-2013#time=6m7s">[6:07]</a>&nbsp;<a href="http://blogs.msdn.com/b/bethmassi/archive/2013/03/04/getting-started-with-lightswitch-in-visual-studio-2012-update-2-ctp4.aspx">Getting Started with LightSwitch in Visual Studio 2012 Update 2 CTP4</a> (Beth Massi) </li><li><a href="http://channel9.msdn.com/Shows/This&#43;Week&#43;On&#43;Channel&#43;9/TWC9-March-8-2013#time=6m40s">[6:40]</a>&nbsp;<a href="http://blog.markedup.com/2013/03/metroappsite-free-open-source-metro-style-website-templates-for-your-windows-store-apps/">MetroAppSite: Free, Open Source Metro-Style Website Templates for Your Windows Store Apps</a> (Aaron Stannard) </li><li><a href="http://channel9.msdn.com/Shows/This&#43;Week&#43;On&#43;Channel&#43;9/TWC9-March-8-2013#time=7m35s">[7:35]</a>&nbsp;<a href="http://www.silverlightshow.net/video/Applied-MVVM-in-Win8-Webinar.aspx">Recording of Webinar 'Applied MVVM in Windows 8 apps' by Gill Cleeren</a> (Gill Cleeren) </li><li><a href="http://channel9.msdn.com/Shows/This&#43;Week&#43;On&#43;Channel&#43;9/TWC9-March-8-2013#time=9m1s">[9:01]</a>&nbsp;<a href="http://www.silverlightshow.net/items/Advanced-MVVM-concepts-using-Contoso-Cookbook-An-analysis-of-a-complete-MVVM-application-Part-1.aspx">Advanced MVVM concepts using Contoso Cookbook: An analysis of a complete MVVM application: Part 1</a> (Gill Cleeren) </li><li><a href="http://channel9.msdn.com/Shows/This&#43;Week&#43;On&#43;Channel&#43;9/TWC9-March-8-2013#time=9m44s">[9:44]</a>&nbsp;<a href="http://blogs.msdn.com/b/k4wdev/archive/2013/03/06/easy-access-to-kinect-for-windows-sample-code.aspx">Easy Access to Kinect for Windows Sample Code</a> (Ben Lower) </li><li><a href="http://channel9.msdn.com/Shows/This&#43;Week&#43;On&#43;Channel&#43;9/TWC9-March-8-2013#time=10m34s">[10:34]</a>&nbsp;<a href="http://sol.gfxile.net/interpolation/index.html" target="_blank">Interpolation Tricks</a> </li></ul><p><strong>Picks of the Week!</strong></p><ul><li>Dan's Pick of the Week: <a href="http://channel9.msdn.com/Shows/This&#43;Week&#43;On&#43;Channel&#43;9/TWC9-March-8-2013#time=12m6s">[12:06]</a>&nbsp;<a href="http://unity3d.com/beta/windowsstoreapps" target="_blank">Unity Windows Store apps open beta</a>, and <a href="http://channel9.msdn.com/Events/Windows-Camp/Building-Windows-Games-with-Unity">Channel 9 Live event</a>! </li><li>Brian's Pick of the Week: <a href="http://channel9.msdn.com/Shows/This&#43;Week&#43;On&#43;Channel&#43;9/TWC9-March-8-2013#time=12m52s">[12:52]</a>&nbsp;<a href="http://channel9.msdn.com/coding4fun/articles/Pano-Head" target="_blank">Panoramic Camera Head</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:b588fc5964e74c6b9aeba17a0173c0e6">]]></description>
      <comments>http://channel9.msdn.com/Shows/This+Week+On+Channel+9/TWC9-March-8-2013</comments>
      <itunes:summary>This week on Channel 9, Dan and Brian Peek discuss the week&#39;s top developer news, including; [0:42]&amp;nbsp;March CTP (“CTP4”) of Visual Studio Update 2 now available (Charles Sterling) [2:07]&amp;nbsp;Now Available: Office Developer Tools for Visual Studio 2012 (S. Somasegar) [3:33]&amp;nbsp;Visual Studio Tools for Git 0.8.0.0 (Andy Lewis) [4:49]&amp;nbsp;Announcing a New Preview of the LightSwitch HTML Client [6:07]&amp;nbsp;Getting Started with LightSwitch in Visual Studio 2012 Update 2 CTP4 (Beth Massi) [6:40]&amp;nbsp;MetroAppSite: Free, Open Source Metro-Style Website Templates for Your Windows Store Apps (Aaron Stannard) [7:35]&amp;nbsp;Recording of Webinar &#39;Applied MVVM in Windows 8 apps&#39; by Gill Cleeren (Gill Cleeren) [9:01]&amp;nbsp;Advanced MVVM concepts using Contoso Cookbook: An analysis of a complete MVVM application: Part 1 (Gill Cleeren) [9:44]&amp;nbsp;Easy Access to Kinect for Windows Sample Code (Ben Lower) [10:34]&amp;nbsp;Interpolation Tricks Picks of the Week! Dan&#39;s Pick of the Week: [12:06]&amp;nbsp;Unity Windows Store apps open beta, and Channel 9 Live event! Brian&#39;s Pick of the Week: [12:52]&amp;nbsp;Panoramic Camera Head </itunes:summary>
      <itunes:duration>859</itunes:duration>
      <link>http://channel9.msdn.com/Shows/This+Week+On+Channel+9/TWC9-March-8-2013</link>
      <pubDate>Sat, 09 Mar 2013 19:20:42 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/This+Week+On+Channel+9/TWC9-March-8-2013</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/2797/75c198ec-2cd3-4516-b772-03b2d9682797/TWC920130308_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/2797/75c198ec-2cd3-4516-b772-03b2d9682797/TWC920130308_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/2797/75c198ec-2cd3-4516-b772-03b2d9682797/TWC920130308_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/2797/75c198ec-2cd3-4516-b772-03b2d9682797/TWC920130308.mp3" expression="full" duration="859" fileSize="13750855" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/2797/75c198ec-2cd3-4516-b772-03b2d9682797/TWC920130308.mp4" expression="full" duration="859" fileSize="81450103" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/2797/75c198ec-2cd3-4516-b772-03b2d9682797/TWC920130308.webm" expression="full" duration="859" fileSize="32160240" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/2797/75c198ec-2cd3-4516-b772-03b2d9682797/TWC920130308.wma" expression="full" duration="859" fileSize="6956287" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/2797/75c198ec-2cd3-4516-b772-03b2d9682797/TWC920130308.wmv" expression="full" duration="859" fileSize="60123143" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/2797/75c198ec-2cd3-4516-b772-03b2d9682797/TWC920130308_high.mp4" expression="full" duration="859" fileSize="178959348" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/2797/75c198ec-2cd3-4516-b772-03b2d9682797/TWC920130308_mid.mp4" expression="full" duration="859" fileSize="124929609" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/2797/75c198ec-2cd3-4516-b772-03b2d9682797/TWC920130308_Source.wmv" expression="full" duration="859" fileSize="175685144" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/2797/75c198ec-2cd3-4516-b772-03b2d9682797/TWC920130308.ism/manifest" expression="full" duration="859" fileSize="6036" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/2797/75c198ec-2cd3-4516-b772-03b2d9682797/TWC920130308.wmv" length="60123143" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Brian Peek, Dan Fernandez, Greg Duncan</dc:creator>
      <itunes:author>Brian Peek, Dan Fernandez, Greg Duncan</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/This+Week+On+Channel+9/TWC9-March-8-2013/RSS</wfw:commentRss>
      <category>ALM</category>
      <category>Kinect</category>
      <category>LightSwitch</category>
      <category>MVVM</category>
      <category>Kinect SDK</category>
      <category>Visual Studio 2012</category>
      <category>Windows Store App</category>
    </item>
  <item>
      <title>Building Apps for Both Windows 8 and Windows Phone 8: (03) Model-View-ViewModel</title>
      <description><![CDATA[<p>This module introduces the user to MVVM (Model-View-ViewModel), the architecture and the Pros and cons. It will provide and overview for how to share code using MVVM, .NET portable class library as well as going over best practices and providing a wealth of resource information.</p><ul><li><a href="http://channel9.msdn.com/Series/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-Jump-Start/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-03-Model-View-ViewModel#time=03m29s">[03:29]</a> - Architecture overview of MVVM </li><li><a href="http://channel9.msdn.com/Series/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-Jump-Start/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-03-Model-View-ViewModel#time=08m06s">[08:06]</a> - MVVM and code sharing </li><li><a href="http://channel9.msdn.com/Series/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-Jump-Start/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-03-Model-View-ViewModel#time=22m48s">[22:48]</a> - Messages </li><li><a href="http://channel9.msdn.com/Series/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-Jump-Start/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-03-Model-View-ViewModel#time=28m14s">[28:14]</a> - Best practices </li></ul><p>Full course outline:</p><ul><li>Mod 01a: <a title="Comparing Windows 8 and Windows Phone 8, Part 1" href="http://channel9.msdn.com/posts/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-01a-Comparing-Windows-8-and-Windows-Phone-8-Par" target="_self">Comparing Windows 8 and Windows Phone 8, Part 1</a> </li><li>Mod 01b: <a title="Comparing Windows 8 and Windows Phone 8, Part 2" href="http://channel9.msdn.com/posts/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-01b-Comparing-Windows-8-and-Windows-Phone-8-Par" target="_self">Comparing Windows 8 and Windows Phone 8, Part 2</a> </li><li>Mod 02: <a title="Basics of View Models" href="http://channel9.msdn.com/posts/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-02-Basics-of-View-Models" target="_self">Basics of View Models</a> </li><li>Mod 03: Model-View-ViewModel </li><li>Mod 04: <a title="Sharing Code Between Windows 8 and Windows Phone 8" href="http://channel9.msdn.com/posts/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-04-Sharing-Code-Between-Windows-8-and-Windows-P" target="_self">Sharing Code Between Windows 8 and Windows Phone 8</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:60c61614524e406f9c4aa16f0122ea3c">]]></description>
      <comments>http://channel9.msdn.com/Series/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-Jump-Start/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-03-Model-View-ViewModel</comments>
      <itunes:summary>This module introduces the user to MVVM (Model-View-ViewModel), the architecture and the Pros and cons. It will provide and overview for how to share code using MVVM, .NET portable class library as well as going over best practices and providing a wealth of resource information. [03:29] - Architecture overview of MVVM [08:06] - MVVM and code sharing [22:48] - Messages [28:14] - Best practices Full course outline: Mod 01a: Comparing Windows 8 and Windows Phone 8, Part 1 Mod 01b: Comparing Windows 8 and Windows Phone 8, Part 2 Mod 02: Basics of View Models Mod 03: Model-View-ViewModel Mod 04: Sharing Code Between Windows 8 and Windows Phone 8 </itunes:summary>
      <itunes:duration>2116</itunes:duration>
      <link>http://channel9.msdn.com/Series/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-Jump-Start/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-03-Model-View-ViewModel</link>
      <pubDate>Tue, 26 Feb 2013 22:45:35 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-Jump-Start/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-03-Model-View-ViewModel</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/3aba/c7b83abd-9d40-4685-aecf-96cfef6d3aba/W8WP8JSMod03_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/3aba/c7b83abd-9d40-4685-aecf-96cfef6d3aba/W8WP8JSMod03_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/3aba/c7b83abd-9d40-4685-aecf-96cfef6d3aba/W8WP8JSMod03_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/3aba/c7b83abd-9d40-4685-aecf-96cfef6d3aba/W8WP8JSMod03.mp3" expression="full" duration="2116" fileSize="33865410" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3aba/c7b83abd-9d40-4685-aecf-96cfef6d3aba/W8WP8JSMod03.mp4" expression="full" duration="2116" fileSize="205783151" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3aba/c7b83abd-9d40-4685-aecf-96cfef6d3aba/W8WP8JSMod03.webm" expression="full" duration="2116" fileSize="64735072" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3aba/c7b83abd-9d40-4685-aecf-96cfef6d3aba/W8WP8JSMod03.wma" expression="full" duration="2116" fileSize="17121823" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3aba/c7b83abd-9d40-4685-aecf-96cfef6d3aba/W8WP8JSMod03.wmv" expression="full" duration="2116" fileSize="91343333" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3aba/c7b83abd-9d40-4685-aecf-96cfef6d3aba/W8WP8JSMod03_high.mp4" expression="full" duration="2116" fileSize="451078808" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3aba/c7b83abd-9d40-4685-aecf-96cfef6d3aba/W8WP8JSMod03_mid.mp4" expression="full" duration="2116" fileSize="315253089" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/3aba/c7b83abd-9d40-4685-aecf-96cfef6d3aba/W8WP8JSMod03_Source.wmv" expression="full" duration="2116" fileSize="355721876" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/3aba/c7b83abd-9d40-4685-aecf-96cfef6d3aba/W8WP8JSMod03.ism/manifest" expression="full" duration="2116" fileSize="8430" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/3aba/c7b83abd-9d40-4685-aecf-96cfef6d3aba/W8WP8JSMod03.wmv" length="91343333" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Ben Riga, JeffKoch</dc:creator>
      <itunes:author>Ben Riga, JeffKoch</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-Jump-Start/Building-Apps-for-Both-Windows-8-and-Windows-Phone-8-03-Model-View-ViewModel/RSS</wfw:commentRss>
      <category>Application Development</category>
      <category>MVVM</category>
      <category>Windows 8</category>
      <category>Windows Phone 8</category>
    </item>
  <item>
      <title>AvalonDock v2</title>
      <description><![CDATA[<p>Today's project by Adolfo Marinucci is one that you might of seen and not even known it. It's used in a number of places/app's and lets you create professional looking and interacting applications without you having to break open your piggy bank...</p><p>Like Visual Studio's docking behavior? It's Window Management? It's auto-hiding areas? Want a free [New BSD License (BSD)] WPF control that lets you build the same kind of thing?</p><h2><a href="http://avalondock.codeplex.com/" target="_blank">AvalonDock</a></h2><blockquote><p><strong>Project Description</strong><br>AvalonDock is a WPF controls library which can be used to create a docking layout system like that is present in VisualStudio.</p><p><strong>Features</strong></p><ul><li>Supports MVVM design </li><li>Almost everything can be restyled </li><li>Support for Windows Forms controls </li></ul><p>...</p></blockquote><h2><a href="http://avalondock.codeplex.com/wikipage?title=AvalonDock%202.0%20Getting%20Start%20Guide&amp;referringTitle=Documentation" target="_blank">AvalonDock 2.0 getting started guide PART 1</a></h2><blockquote><p>AvalonDock 2.0 allows to create an interface for WPF very similar to Visual Studio GUI. It's important to understand that has been developed with this in mind so it's most suited for projects that have documents and tools.</p><p>In this tutorial I'll show you how to start using with AvalonDock. Below information are relative to version 2.0 and connot be valid for earlier versions.</p><p>AvalonDock is composed of a layout model, a series of controls representing the views and a DockingManager class which represents the docking area where user can drag and drop documents and tools.</p><p>Looking at the below screenshot we can identify the AvalonDock components.</p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B2%5D-106.png" alt="image" width="500" height="334" border="0"></p><ul><li><strong>DockingManager</strong> This is the core control in AvalonDock. It arranges contained panes, handles fly out panes and floating windows. In the above image the DockingManager object contains everything (in WPF terms) from the toolbar on top and the status bar on bottom. DockingManager class also handles saving and restoring layout. </li><li><strong>LayoutPanel</strong> This panel arranges children panes along a direction (selected with property Orientation) adding a resizer between them. Above a LayoutPanel with horizontal orientation arranges three panes: a LayoutAnchorablePane on left, a LayoutDocumentPane in the central area, and a LayoutDockablePane on right. </li><li><strong>LayoutAnchorablePane</strong> This layout element contains a collection of LayoutAnchorable obiects. Usually it arranges contents like a tabcontrol. In the above screenshot LayoutDockablePanes are the container of contents 'Strumenti' and 'Progetti' (Tools and Projects in English) on the left and the container of 'Classi' and 'Proprieta'' (Classes and Properties in English) on the right. A LayoutDockablePane can be auto-hidden (like that containing contents 'Errori'(errors), 'Lista Azioni'(action list) and 'Uscita'(output)) and can be dragged over the DockingManager as floating window or anchored to a border of the parent DockingManager. </li><li><strong>LayoutDocumentPane</strong> A pane of this type contains usually documents (object of type DocumentContent) but optionally can also contain DockableContents object like the above 'Tools' or 'Classes' contents. Above a document content is placed inside a ResizingPanel (horizontally orienteted) in the central area between the too DockablePane object just mentioned. A document pane can't be moved. </li><li><strong>LayoutAnchorable</strong> A anchorable content is the container of application controls. It's always contained in a pane (LayoutAnchorablePane or LayoutDocumentPane). In the above screen shot, LayoutAnchorable objects are the 'classi'(classes) object (which contains a SharpDevelop object), the 'strumenti'(tools) object but also the 'Errori' (errors) (which is in the AutoHidden state and is contained in a autohidden pane). A LayoutAnchorable as name suggests can be dragged away from its container pane and be repositioned into another esisting pane, or to a border of the parent DockingManager or left in a floating window (LayoutAnchorableFloatingWindow). </li><li><strong>LayoutDocument</strong> is a content that can be hosted only in a LayoutDocumentPane. It's a particular content because can't be anchored to a border but can be positioned only into a LayoutDocumentPane or floated in a LayoutDocumentFloatingWindow. Above LayoutDocument objects are the 'program.cs' or 'MainForm.cs' files. </li><li><strong>LayoutFloatingWindow</strong> It's a window that contains contents when are dragged or moved over a DockingManager. A LayoutFloatingWindow (and its specializations LayoutAnchorableFloatingWindow and LayoutDocumentFloatingWindow) derives from Window, and always contains a pane (LayoutAnchorablePane or LayoutDocumentPane) which in turn contains one or more contents (LayoutAnchorable or LayoutDocument). The LayoutFloatingWindow object is created directly from the DockingManager when user start a dragging operation for a content or a DockablePane or manually by code calling the LayoutContent.Float() method. </li><li><strong>LayoutPane</strong> It's a base class for LayoutDockablePane and LayoutDocumentPane. It provides common properties and methods for both. </li><li><strong>LayoutContent</strong> It's a base class for LayoutAnchorable and LayoutDocument. It provides common properties and methods for both. </li></ul><p>...</p></blockquote><p>Here's some snaps from the Dec 4,2012 samples release;</p><p>In firing up the MVVM code sample, there's a couple references you might have to fix up.</p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B6%5D-61.png" alt="image" width="333" height="265" border="0"></p><p>Just <a href="http://nuget.org/packages/AvalonDock" target="_blank">Nuget for AvalonDock</a>, install and you're good to go. Matter of fact, if you install it via nuget you get a couple additional themes too.</p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B10%5D-34.png" alt="image" width="329" height="226" border="0"></p><p>The MVVM sample is simple, but that's just fine. Here's a snap of it</p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B13%5D-22.png" alt="image" width="500" height="296" border="0"></p><p>And here's a couple snaps of it using the different themes.</p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B16%5D-23.png" alt="image" width="500" height="333" border="0"></p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B19%5D-14.png" alt="image" width="475" height="364" border="0"></p><p>How hard is it to change a theme? Less than one line of code.</p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B22%5D-10.png" alt="image" width="500" height="297" border="0"></p><p>...</p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B26%5D-12.png" alt="image" width="347" height="169" border="0"></p><p>Okay, you're a diehard WinForm dev? Feel left out? Don't! There's WinForm support for you too!</p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B29%5D-8.png" alt="image" width="500" height="361" border="0"></p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B32%5D-8.png" alt="image" width="500" height="270" border="0"></p><p>So get Docking!</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:2d70ec0652dd42cbba78a14b0155c97e">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/AvalonDock-v2</comments>
      <itunes:summary>Today&#39;s project by Adolfo Marinucci is one that you might of seen and not even known it. It&#39;s used in a number of places/app&#39;s and lets you create professional looking and interacting applications without you having to break open your piggy bank... Like Visual Studio&#39;s docking behavior? It&#39;s Window Management? It&#39;s auto-hiding areas? Want a free [New BSD License (BSD)] WPF control that lets you build the same kind of thing? AvalonDockProject DescriptionAvalonDock is a WPF controls library which can be used to create a docking layout system like that is present in VisualStudio. Features Supports MVVM design Almost everything can be restyled Support for Windows Forms controls ... AvalonDock 2.0 getting started guide PART 1AvalonDock 2.0 allows to create an interface for WPF very similar to Visual Studio GUI. It&#39;s important to understand that has been developed with this in mind so it&#39;s most suited for projects that have documents and tools. In this tutorial I&#39;ll show you how to start using with AvalonDock. Below information are relative to version 2.0 and connot be valid for earlier versions. AvalonDock is composed of a layout model, a series of controls representing the views and a DockingManager class which represents the docking area where user can drag and drop documents and tools. Looking at the below screenshot we can identify the AvalonDock components.  DockingManager This is the core control in AvalonDock. It arranges contained panes, handles fly out panes and floating windows. In the above image the DockingManager object contains everything (in WPF terms) from the toolbar on top and the status bar on bottom. DockingManager class also handles saving and restoring layout. LayoutPanel This panel arranges children panes along a direction (selected with property Orientation) adding a resizer between them. Above a LayoutPanel with horizontal orientation arranges three panes: a LayoutAnchorablePane on left, a LayoutDocumentPane in the central area, and a LayoutDocka</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/AvalonDock-v2</link>
      <pubDate>Wed, 23 Jan 2013 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/AvalonDock-v2</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/f6b3f210-d097-4b5f-9f39-b02568c65bcd.png" height="67" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/14f20fb2-495c-439a-98cd-23a9cbe6d03c.png" height="147" width="220"></media:thumbnail>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/AvalonDock-v2/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>MVVM</category>
      <category>WinForms</category>
      <category>WPF</category>
    </item>
  <item>
      <title>Kinecting to Google Maps</title>
      <description><![CDATA[<p>Today's project provides a good bit of code to look at and play with. The project's description really undersells all you can learn from it...</p><h2>Using the Microsoft Kinect to control GoogleMap</h2><blockquote><p>The project is a WPF application that uses Microsoft Kinect to control google maps.</p><p>Feel free to learn <strong>WPF MVVM</strong> pattern and <strong>Kinect development</strong> from it!</p></blockquote><p><strong>Project Information URL:</strong> <a title="http://kinectmap.codeplex.com/" href="http://kinectmap.codeplex.com/">http://kinectmap.codeplex.com/</a></p><p><strong>Project Source URL:</strong> <a title="http://kinectmap.codeplex.com/SourceControl/changeset/view/15754" href="http://kinectmap.codeplex.com/SourceControl/changeset/view/15754">http://kinectmap.codeplex.com/SourceControl/changeset/view/15754</a></p><p><a href="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B2%5D-201.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image_thumb-198.png" alt="image" width="320" height="384" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B8%5D-69.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image_thumb%5B2%5D-79.png" alt="image" width="313" height="372" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image%5B5%5D-132.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/image_thumb%5B1%5D-140.png" alt="image" width="520" height="290" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/SNAGHTML153a79e4%5B4%5D.png" target="_blank"><img title="SNAGHTML153a79e4" src="http://files.channel9.msdn.com/wlwimages/f1dda9cc6de74512b7c19f0101402403/SNAGHTML153a79e4_thumb%5B1%5D.png" alt="SNAGHTML153a79e4" width="500" height="257" border="0"></a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:6d7a965a171c41fba1c2a1220146577e">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/kinect/Kinecting-to-Google-Maps</comments>
      <itunes:summary>Today&#39;s project provides a good bit of code to look at and play with. The project&#39;s description really undersells all you can learn from it... Using the Microsoft Kinect to control GoogleMapThe project is a WPF application that uses Microsoft Kinect to control google maps. Feel free to learn WPF MVVM pattern and Kinect development from it! Project Information URL: http://kinectmap.codeplex.com/ Project Source URL: http://kinectmap.codeplex.com/SourceControl/changeset/view/15754     </itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/kinect/Kinecting-to-Google-Maps</link>
      <pubDate>Fri, 14 Dec 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/kinect/Kinecting-to-Google-Maps</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/87b60341-4590-4383-9f1e-db7486d834b8.png" height="54" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/f2e534c8-6f6d-46b2-b118-40739042e428.png" height="119" width="220"></media:thumbnail>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/kinect/Kinecting-to-Google-Maps/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>Kinect</category>
      <category>MVVM</category>
      <category>WPF</category>
    </item>
  <item>
      <title>&quot;HTML5, JavaScript, Knockout, JQuery, Guide for Recovering Silverlight/WPF/C# Addicts.&quot; Series</title>
      <description><![CDATA[<p>In today's second Web Wednesday post (the post earlier today was actually last Wednesday's post, but I forgot to actually schedule it for publishing... Doh! So you guys get two posts today!) I'm highlighting a post that I thought I might need in the near future and thought, &quot;Hey, maybe the C4F readers might find this interesting too!&quot;</p><p>I cover WPF and C# so often, because it's my comfort zone, and not the web stuff nearly enough. So these posts by Nick Polyak seemed like a great fit, one to help me, and hopefully you, expand our comfort zones a little... (That and I really liked the title... <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif?v=c9' alt='Wink' /></p><h2><a href="http://www.codeproject.com/Articles/456638/HTML5-JavaScript-Knockout-JQuery-Guide-for-Recover" target="_blank">HTML5, JavaScript, Knockout, JQuery, Guide for Recovering Silverlight/WPF/C# Addicts. Part 1 - JavaScript and DOM.</a></h2><blockquote><h4>Introduction&nbsp;</h4>Being a consultant, makes me very sensitive to the newest trends in technology. <p>Several years ago, I came across WPF and fell in love with it. WPF introduced brand new concepts that enable the developers to achieve almost total separation between the visual design of the UI application and the underlying non-visual implementation. At the same time WPF provides great features for visual development. Silverlight brought the WPF power to multiple platforms.</p><p>Recent developments, however, indicate that Microsoft soured on both WPF and Silverlight in favor of HTML5/JavaScript. This is, probably, the correct strategy for Microsoft in the current tough situation. Over a period of several years, Microsoft lost its status as the largest software company and lost its superiority in the internet browser market. The primary reason behind it is that Microsoft overlooked and came too late to the smart phone and tablet markets. Being a follower is different from being the trend setter and currently Microsoft has to beat everyone else in their own game, which is HTML5 and JavaScript (and based on the previous history I am confident it is going to become a leader again).</p><p>These developments caused me to put a lot of effort into learning and working with HTML5 and JavaScript. I am also trying to understand how to apply the concepts I learned while working on WPF/Silverlight in JavaScript development.</p><p>The purpose of these series of articles is to make it easier for WPF/Silverlight developers to master programming HTML5/JavaScript utilizing WPF and Silverlight concepts. These articles assume that the reader already has some basic familiarity with HTML and JavaScript, so people who are completely new to it, should start with something else.</p><p>...</p></blockquote><h2><a href="http://www.codeproject.com/Articles/464853/HTML5-JavaScript-Knockout-JQuery-Guide-for-Recover" target="_blank">HTML5, JavaScript, Knockout, JQuery, Guide for Recovering Silverlight/WPF/C# Addicts. Part 2 - Solar System Animation built with SVG, Knockout and MVVM Pattern.</a></h2><blockquote><h4>Important Note</h4><p>Friends, if you like the article, please vote for it [On the Code Project page, <a href="http://www.codeproject.com/Articles/464853/HTML5-JavaScript-Knockout-JQuery-Guide-for-Recover" target="_blank">here</a>]. Also I'd appreciate a couple of lines about what you think can be improved and what else you want to hear. Thanks!</p><p>This is part 2 of HTML5 series. Part 1 can be accessed at <a href="http://www.codeproject.com/Articles/456638/HTML5-JavaScript-Knockout-JQuery-Guide-for-Recover">HTML5, JavaScript, Knockout, JQuery, Guide for Recovering Silverlight/WPF/C# Addicts. Part 1 - JavaScript and DOM.</a></p><p>Several years ago I came across Bea Stollnitz's (Costa's) example converting a usual ListView into a planetary system and was fascinated by it. You can find her article and code at <a href="http://www.zagstudio.com/blog/470#.UFzPhY1lSaQ">The power of Styles and Templates in WPF</a>. Even though the MVVM pattern, had not been formalized at that time, she was adhering to a strict separation between the view model and the view's templates and styles.</p><p>I decided to build a similar application in HTML5/JavaScript also strictly adhering to the MVVM pattern. You can see the result at <a href="http://awebpros.com/#Demos.HTML5Demos.">Solar System Demo</a>. Make sure to view the demo using the HTML5 compatible browsers. If you use Chrome or Firefox you can even see that the planets are moving around the sun (IE 9 does not support SVG animations, so if you use IE 9, the planets won't move). The speed of the planet images in the demo is chosen randomly and has nothing to do with the actual planet speed. I'll talk more about the demo below.</p><p>In order to achieve the separation between visual and non-visual components I use <a href="http://knockoutjs.com/">Knockoutjs</a> framework. <a href="http://knockoutjs.com/">Knockoutjs</a> is an excellent open source framework giving developers ability to bind properties and events within HTML to JavaScript's entities representing the View Model. The <a href="http://knockoutjs.com/">Knockoutjs</a> bindings are similar to those of WPF and Silverlight. From my point of view, <a href="http://knockoutjs.com/">Knockoutjs</a> is a must for building an HTML web site that has a considerable amount of business logic.</p><p>This article is by no means a detailed tutorial on <a href="http://knockoutjs.com/">Knockoutjs</a>, even though I'll try to present some its most important features. Perhaps, in one of the subsequent articles, I'll give more information on <a href="http://knockoutjs.com/">Knockoutjs</a>, but in the meanwhile <a href="http://knockoutjs.com/">Knockoutjs</a> website has great documentation and tutorials. Also there are two excellent Pluralsite courses on <a href="http://knockoutjs.com/">Knockoutjs</a>: <a href="http://www.pluralsight.com/training/Courses/TableOfContents/knockout-mvvm">Building HTML5 and JavaScript Apps with MVVM and Knockout</a> by John Papa as well as <a href="http://www.pluralsight.com/training/Courses/TableOfContents/knockout">Knockout Fundamentals</a> by Steve Michelotti. (You have to subscribe to pluralsite.com in order to be able to access the tutorials).</p><p>In order to draw the non-textual visuals, e.g. the orbits and in order do animations I am using SVG. SVG is part of HTML5 spec and it provides HTML tags to create various shapes use transforms on them and create animations. SVG is quite similar to WPF/Silverlight Shape/Path, transforms and animations functionality. Again, this article is not a tutorial on SVG, it just demonstrates some SVG concepts. Perhaps in the future articles I'll talk about SVG in more detail.</p><p>...</p></blockquote><p>Enough said? Go read these post and get your web dev on!</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:4884ec8530b24da1bc02a122012f9163">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/HTML5-JavaScript-Knockout-JQuery-Guide-for-Recovering-SilverlightWPFC-Addicts-Series</comments>
      <itunes:summary>In today&#39;s second Web Wednesday post (the post earlier today was actually last Wednesday&#39;s post, but I forgot to actually schedule it for publishing... Doh! So you guys get two posts today!) I&#39;m highlighting a post that I thought I might need in the near future and thought, &amp;quot;Hey, maybe the C4F readers might find this interesting too!&amp;quot; I cover WPF and C# so often, because it&#39;s my comfort zone, and not the web stuff nearly enough. So these posts by Nick Polyak seemed like a great fit, one to help me, and hopefully you, expand our comfort zones a little... (That and I really liked the title...  HTML5, JavaScript, Knockout, JQuery, Guide for Recovering Silverlight/WPF/C# Addicts. Part 1 - JavaScript and DOM.Introduction&amp;nbsp;Being a consultant, makes me very sensitive to the newest trends in technology. Several years ago, I came across WPF and fell in love with it. WPF introduced brand new concepts that enable the developers to achieve almost total separation between the visual design of the UI application and the underlying non-visual implementation. At the same time WPF provides great features for visual development. Silverlight brought the WPF power to multiple platforms. Recent developments, however, indicate that Microsoft soured on both WPF and Silverlight in favor of HTML5/JavaScript. This is, probably, the correct strategy for Microsoft in the current tough situation. Over a period of several years, Microsoft lost its status as the largest software company and lost its superiority in the internet browser market. The primary reason behind it is that Microsoft overlooked and came too late to the smart phone and tablet markets. Being a follower is different from being the trend setter and currently Microsoft has to beat everyone else in their own game, which is HTML5 and JavaScript (and based on the previous history I am confident it is going to become a leader again). These developments caused me to put a lot of effort into learning and working with HTML</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/HTML5-JavaScript-Knockout-JQuery-Guide-for-Recovering-SilverlightWPFC-Addicts-Series</link>
      <pubDate>Wed, 12 Dec 2012 15:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/HTML5-JavaScript-Knockout-JQuery-Guide-for-Recovering-SilverlightWPFC-Addicts-Series</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/6ec1438d-e883-469a-bc8d-07cd06a36a90.png" height="61" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/b397bee4-2ade-42db-beef-3e5fa3ea3789.png" height="135" width="220"></media:thumbnail>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>3</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/HTML5-JavaScript-Knockout-JQuery-Guide-for-Recovering-SilverlightWPFC-Addicts-Series/RSS</wfw:commentRss>
      <category>Coding4Fun</category>
      <category>CSS</category>
      <category>HTML</category>
      <category>JavaScript</category>
      <category>MVVM</category>
      <category>SVG</category>
    </item>
  <item>
      <title>Sharing &quot;Awesome&quot; Across Multiple Screens</title>
      <description><![CDATA[<p><img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-29-devsdevsdevs/6116.ms_5F00_0314_5F00_d3_5F00_logo.png" alt=""></p><p>Windows Phone apps don't just simply run on Windows 8 as they are. There are ways. However, to architect your code so that you can share your &quot;awesome&quot; across multiple screens. <a href="http://alnurismail.com" target="_blank">Alnur Ismail</a> shows how.</p><p><strong>Join the Conversation</strong> <br>Do you see yourself writing a complete app and then refactoring to use portable class libraries? or architecting with portable classes from the beginning? Start a new conversation in the <a href="http://linkd.in/CdnDevs" target="_blank">Canadian Developer Connection group on LinkedIn</a>. Alnur, as well as fellow Canadian developers are there networking, sharing, and learning. While visiting the group, make sure to join the group and stay connected.</p><p><em>This segment was presented and recording LIVE on Wednesday, December 5, 2012.</em></p><p><strong>D³: LIVE &amp; INTERACTiVE <br></strong>In case you haven't heard about the show, <a href="http://devs3.ms/devscubed">Developers, Developers, Developers: LIVE &amp; INTERACTIVE</a> (D³) is a monthly show hosted by <a href="http://jrozenblit.ca/about">Jonathan Rozenblit</a>. The show airs live <strong>every first Wednesday of the month at 12:00 PM ET</strong> and features the latest updates on what's new and exciting in the world of development; featured presentations; and guests. LIVE and INTERACTIVE means that you'll be part of the show – You're invited to interact with us; ask questions and get them answered; and share your thoughts and opinions.</p><p><a href="http://linkd.in/CanadianDeveloperConnection"><strong><img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-29-devsdevsdevs/1234.LinkedIn.png" alt=" " width="15" height="16" border="0"></strong></a> Join the <a href="http://linkd.in/CanadianDeveloperConnection">Canadian Developer Connection</a> LinkedIn group&nbsp; <br><a href="http://twitter.com/devsdevsdevs"><img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-29-devsdevsdevs/3806.Twitter.png" alt=" " width="15" height="15" border="0"></a> Follow <a href="http://twitter.com/devsdevsdevs">@devsdevdevs</a> <br><a href="https://www.facebook.com/#!/pages/Developers-Developers-Developers-LIVE-and-Interactive/273573892687218"><img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-29-devsdevsdevs/3487.Facebook.png" alt=" " width="15" height="15" border="0"></a> Like D³ on <a href="http://on.fb.me/DevsDevsDevs">Facebook</a> <br><img src="http://blogs.msdn.com/resized-image.ashx/__size/28x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/1512.itunes.png" alt="" width="15" height="15"> Subscribe to podcasts via <a href="http://devs3.ms/d3podcast" target="_blank">iTunes,</a> <a href="zune://feeds.feedburner.com/devscubed">Zune</a>, or <a href="http://devs3.ms/d3videorss" target="_blank">RSS</a> <br><img title="WindowsStore_tile_green_small_40x40" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-29-metablogapi/7288.WindowsStore_5F00_tile_5F00_green_5F00_small_5F00_40x40_5F00_thumb_5F00_1F01BFD7.png" alt="WindowsStore_tile_green_small_40x40" width="15" height="15" border="0">&nbsp;Download the <a href="http://devs3.ms/cdndevsw8" target="_blank">Canadian Developer Connection Windows Store app </a><br><a href="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/2364.windowsphone.png" rel="lightbox"><img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-components-userfiles/00-00-33-52-95-Attached&#43;Files/2364.windowsphone.png" alt="" width="15" height="15"></a> Download the <a href="http://aka.ms/cdndevswp" target="_blank">Canadian Developer Connection Windows Phone app</a></p><p><a href="http://devs3.ms/devscubed">More D³: LIVE &amp; INTERACTIVE &gt;&gt;</a></p><p>&nbsp;</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:0ce588d8cbf24e9dab78a11f0008a984">]]></description>
      <comments>http://channel9.msdn.com/Blogs/devsdevsdevs/d3ep1301</comments>
      <itunes:summary> Windows Phone apps don&#39;t just simply run on Windows 8 as they are. There are ways. However, to architect your code so that you can share your &amp;quot;awesome&amp;quot; across multiple screens. Alnur Ismail shows how. Join the Conversation Do you see yourself writing a complete app and then refactoring to use portable class libraries? or architecting with portable classes from the beginning? Start a new conversation in the Canadian Developer Connection group on LinkedIn. Alnur, as well as fellow Canadian developers are there networking, sharing, and learning. While visiting the group, make sure to join the group and stay connected. This segment was presented and recording LIVE on Wednesday, December 5, 2012. D&#179;: LIVE &amp;amp; INTERACTiVE In case you haven&#39;t heard about the show, Developers, Developers, Developers: LIVE &amp;amp; INTERACTIVE (D&#179;) is a monthly show hosted by Jonathan Rozenblit. The show airs live every first Wednesday of the month at 12:00 PM ET and features the latest updates on what&#39;s new and exciting in the world of development; featured presentations; and guests. LIVE and INTERACTIVE means that you&#39;ll be part of the show – You&#39;re invited to interact with us; ask questions and get them answered; and share your thoughts and opinions.  Join the Canadian Developer Connection LinkedIn group&amp;nbsp;  Follow @devsdevdevs  Like D&#179; on Facebook  Subscribe to podcasts via iTunes, Zune, or RSS &amp;nbsp;Download the Canadian Developer Connection Windows Store app  Download the Canadian Developer Connection Windows Phone app More D&#179;: LIVE &amp;amp; INTERACTIVE &amp;gt;&amp;gt; &amp;nbsp; </itunes:summary>
      <itunes:duration>2774</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/devsdevsdevs/d3ep1301</link>
      <pubDate>Thu, 06 Dec 2012 05:34:02 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/devsdevsdevs/d3ep1301</guid>
      <media:thumbnail url="http://media.ch9.ms/ch9/36ba/eff145bf-cf05-45e1-ade4-e93b14e836ba/D3EP1301_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/36ba/eff145bf-cf05-45e1-ade4-e93b14e836ba/D3EP1301_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://media.ch9.ms/ch9/36ba/eff145bf-cf05-45e1-ade4-e93b14e836ba/D3EP1301_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://media.ch9.ms/ch9/36ba/eff145bf-cf05-45e1-ade4-e93b14e836ba/D3EP1301.mp3" expression="full" duration="2774" fileSize="44396252" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/36ba/eff145bf-cf05-45e1-ade4-e93b14e836ba/D3EP1301.mp4" expression="full" duration="2774" fileSize="270357496" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/36ba/eff145bf-cf05-45e1-ade4-e93b14e836ba/D3EP1301.webm" expression="full" duration="2774" fileSize="100519504" type="video/webm" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/36ba/eff145bf-cf05-45e1-ade4-e93b14e836ba/D3EP1301.wma" expression="full" duration="2774" fileSize="22441907" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://media.ch9.ms/ch9/36ba/eff145bf-cf05-45e1-ade4-e93b14e836ba/D3EP1301.wmv" expression="full" duration="2774" fileSize="138479993" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/36ba/eff145bf-cf05-45e1-ade4-e93b14e836ba/D3EP1301_high.mp4" expression="full" duration="2774" fileSize="589573857" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/36ba/eff145bf-cf05-45e1-ade4-e93b14e836ba/D3EP1301_mid.mp4" expression="full" duration="2774" fileSize="412970090" type="video/mp4" medium="video"></media:content>
        <media:content url="http://media.ch9.ms/ch9/36ba/eff145bf-cf05-45e1-ade4-e93b14e836ba/D3EP1301_Source.wmv" expression="full" duration="2774" fileSize="376639907" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/36ba/eff145bf-cf05-45e1-ade4-e93b14e836ba/D3EP1301.ism/manifest" expression="full" duration="2774" fileSize="5996" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://media.ch9.ms/ch9/36ba/eff145bf-cf05-45e1-ade4-e93b14e836ba/D3EP1301.wmv" length="138479993" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Jonathan Rozenblit</dc:creator>
      <itunes:author>Jonathan Rozenblit</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/devsdevsdevs/d3ep1301/RSS</wfw:commentRss>
      <category>MVVM</category>
      <category>Visual Studio</category>
      <category>Windows Phone</category>
      <category>Windows 8</category>
    </item>
  <item>
      <title>&quot;MVVM Diagram Designer&quot;</title>
      <description><![CDATA[<p>Today's post is from the one and only Sacha Barber where he takes to not only a cool diagramming solution, but in&nbsp;building it&nbsp;with MVVM and, best of all, how we could reuse it in out own applications!</p><h2><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer" target="_blank">MVVM Diagram Designer</a></h2><blockquote><p>A while back a user called &quot;sucram (real name Marcus)&quot;&nbsp; posted a series of articles here about how to create a diagram designer using WPF. Sucrams original links are as follows:</p><ul><li><a href="http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-1">http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-1</a> </li><li><a href="http://www.codeproject.com/Articles/23265/WPF-Diagram-Designer-Part-2">http://www.codeproject.com/Articles/23265/WPF-Diagram-Designer-Part-2</a> </li><li><a href="http://www.codeproject.com/Articles/23871/WPF-Diagram-Designer-Part-3">http://www.codeproject.com/Articles/23871/WPF-Diagram-Designer-Part-3</a> </li><li><a href="http://www.codeproject.com/Articles/24681/WPF-Diagram-Designer-Part-4">http://www.codeproject.com/Articles/24681/WPF-Diagram-Designer-Part-4</a> </li></ul><p>I remember being truly blown away by this series of articles, as they showed you how to do the following things:</p><ul><li>Toolbox </li><li>Drag and Drop </li><li>Rubber band selection using Adorners </li><li>Resizing items using Adorners </li><li>Rotating items using Adorners </li><li>Connecting items </li><li>Scrollable designer surface, complete with zoombox </li></ul><p>WOW that sounds fantastic, sounds exactly like the sort of things you would need to create a fully functional diagram designer. Well Yeah, its was and still is, but........the thing is I have used WPF a lot, and trying to use the code attached to sucrams series of article in WPF just wasn't that great. He had taken a very control centric view, in that everything was geared around adding new controls and supplying static styles for said controls.</p><p>In reality it was more like working with a Win Forms application. Not that there is anything wrong with that, and I really truly do not mean to sound ungrateful, as that could not be further from the truth, without that original series of articles it would have taken me a lot longer to come up with a working diagram designer that I was happy with. So for that I am truly grateful, thanks sucram you rock.</p><p>Anyway as I say sucrams original codebase took a very control centric point of view, and added controls using code behind, and held collections of items directly in the diagram surface control. As I say if that is what you want cool, however, it was not what I wanted. What I wanted was</p><ul><li>All of the features of curams original code (actually I didn't want any rotating of items, or resizing of items) </li><li>A more MVVM driven approach, you know allow data binding of items, delete of items via <code>ICommand </code>etc. etc. </li><li>Allow me to control the creation of an entire diagram from within a single ViewModel </li><li>Allow for complex objects to be added to the diagram i.e. ViewModels that I could style using <code>DataTemplate</code>(s). Sucrams original code only allowed simply strings to be used as a <code>DataContext </code>which would control what <code>ImageSource </code>an <code>Image </code>would use to show for a diagram item. I needed my items to be quite rich and allow popups to be shown and associated with the diagram item, such that the data related to the diagram item could be manipulated </li><li>Allow me to save the diagram to some backing store </li><li>Allow me to load a previously saved diagram from some backing store </li></ul><p>To this end I have pretty much completely re-written sucrams original code, I think there is probably about 2 classes that stayed the same, there is now more code, a lot more, however from an end user experience, I think it is now dead easy to control the creation of diagrams from a centralized ViewModel, which allows a diagram to be created via well known WPF paradigms like <code>Binding</code>/<code>DataTemplating</code>.</p><p>For example this is how the attached DemoApp code creates a simple diagram that is shown when you first run the DemoApp:</p><p><pre class="brush: csharp">public partial class Window1 : Window
{
    private Window1ViewModel window1ViewModel;

    public Window1()
    {
        InitializeComponent();

        window1ViewModel = new Window1ViewModel();
        this.DataContext = window1ViewModel;
        this.Loaded &#43;= new RoutedEventHandler(Window1_Loaded);
    }


    /// &lt;summary&gt;
    /// This shows you how you can create diagram items in code
    /// &lt;/summary&gt;
    void Window1_Loaded(object sender, RoutedEventArgs e)
    {
        SettingsDesignerItemViewModel item1 = new SettingsDesignerItemViewModel();
        item1.Parent = window1ViewModel.DiagramViewModel;
        item1.Left = 100;
        item1.Top = 100;
        window1ViewModel.DiagramViewModel.Items.Add(item1);

        PersistDesignerItemViewModel item2 = new PersistDesignerItemViewModel();
        item2.Parent = window1ViewModel.DiagramViewModel;
        item2.Left = 300;
        item2.Top = 300;
        window1ViewModel.DiagramViewModel.Items.Add(item2);

        ConnectorViewModel con1 = new ConnectorViewModel(item1.RightConnector, item2.TopConnector);
        con1.Parent = window1ViewModel.DiagramViewModel;
        window1ViewModel.DiagramViewModel.Items.Add(con1);
    }
}
</pre></p><p>As the article progresses I will show you how to use the new MVVM driven diagram designer classes in your own applications, and you could leave it right there if you wanted to, but if you want to know how it all works that will be explained in the rest of the article.</p><p>...</p><ul><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Introduction">Introduction</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#What-Does-It-Look-Like">What Does It Look Like</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Attached-Codebase-Structure">Attached Codebase Structure</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#How-Do-I-Use-It-In-My-Own-Applications">How Do I Use It In My Own Applications</a> <ul><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Use-It-Step-1-:-Creating-The-Raw-XAML">Use It Step 1 : Creating The Raw XAML</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Use-It-Step-2-:-Creating-The-Main-ViewModel">Use It Step 2 : Creating The Main ViewModel</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Use-It-Step-3-:-Creating-Toolbox-Item-DataTemplates">Use It Step 3 : Creating Toolbox Item DataTemplates</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Use-It-Step-4-:-Creating-The-Diagram-Item-ViewModels">Use It Step 4 : Creating The Diagram Item ViewModels</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Use-It-Step-5-:-Creating-Diagram-Item-Designer-Surface-DataTemplates">Use It Step 5 : Creating Diagram Item Designer Surface DataTemplates</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Use-It-Step-6-:-Creating-Diagram-Item-Popup-DataTemplates">Use It Step 6 : Creating Diagram Item Popup DataTemplates</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Use-It-Step-7-:-Persistence">Use It Step 7 : Persistence</a> <ul><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#What-Are-The-Important-Things-To-Save">What Are The Important Things To Save</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Saving/Hydrating-A-Diagram">Saving/Hydrating A Diagram</a> </li></ul></li></ul></li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#How-Does-The-Diagram-Designer-Stuff-Actually-Work">How Does The Diagram Designer Stuff Actually Work</a> <ul><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Drag-And-Drop-To-The-Design-Surface">Drag And Drop To The Design Surface</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Binding-The-Items-Collection">Binding The Items Collection</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Adding-Connections">Adding Connections</a> <ul><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#ConnectorInfoBase/PartCreatedConnectorInfo">ConnectorInfoBase/PartCreatedConnectorInfo</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#FullyCreatedConnectorInfo">FullyCreatedConnectorInfo</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#ConnectorViewModel">ConnectorViewModel</a> </li></ul></li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Selection/Deselection">Selection/Deselection</a> <ul><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Flavour-1-:-Standard-Mouse-Down-Selection">Flavour 1 : Standard Mouse Down Selection</a> </li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Flavour-2-:-Rubberband-Selection">Flavour 2 : Rubberband Selection</a> </li></ul></li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#Deleting-Items">Deleting Items</a> </li></ul></li><li><a href="http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer#That's-It-For-Now">That's It For Now</a> </li></ul></blockquote><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B2%5D-94.png" alt="image" width="500" height="281" border="0"></p><blockquote><h3>How Do I Use It In My Own Applications</h3><p>This section will talk you through how to create a diagram in your own application. It assumes the following</p><ul><li>That you want to use WPF things like Binding/DataTemplating/MVVM </li><li>You actually want to persist / hydrate diagrams to some backing store (Like I say I chose to use RavenDB which is a no sql document database, but if this is not for you, it should be pretty easy for you to craft your own data access layer talking to your preferred SQL backend) </li></ul><p>If you want to create your own MVVM style diagram designer, I have broken it down into 7 easy steps, as long as you follow these 7 steps to the letter you should be just fine. There is also a working example of these 7 steps by way of the attached <code>DemoApp </code>project code, so you can examine that whilst reading this text, so hopefully you will be ok.</p><p>...</p></blockquote><p>I love that he takes the time to share how we can use this in our own app's.</p><p>Here's a snap of it running on my system (which was easy and painless)</p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B5%5D-47.png" alt="image" width="500" height="298" border="0"></p><p><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B9%5D-28.png" alt="image" width="295" height="384" border="0"></p><p>One other thing of note is how RavenDB is used as the data store. If you've been hearing about NoSQL but haven't had a chance to see it in use, well here's you chance! It's all here in the download, nothing extra needed.</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:8cc57eba6b6849728666a10c0164b7db">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/MVVM-Diagram-Designer</comments>
      <itunes:summary>Today&#39;s post is from the one and only Sacha Barber where he takes to not only a cool diagramming solution, but in&amp;nbsp;building it&amp;nbsp;with MVVM and, best of all, how we could reuse it in out own applications! MVVM Diagram DesignerA while back a user called &amp;quot;sucram (real name Marcus)&amp;quot;&amp;nbsp; posted a series of articles here about how to create a diagram designer using WPF. Sucrams original links are as follows: http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-1 http://www.codeproject.com/Articles/23265/WPF-Diagram-Designer-Part-2 http://www.codeproject.com/Articles/23871/WPF-Diagram-Designer-Part-3 http://www.codeproject.com/Articles/24681/WPF-Diagram-Designer-Part-4 I remember being truly blown away by this series of articles, as they showed you how to do the following things: Toolbox Drag and Drop Rubber band selection using Adorners Resizing items using Adorners Rotating items using Adorners Connecting items Scrollable designer surface, complete with zoombox WOW that sounds fantastic, sounds exactly like the sort of things you would need to create a fully functional diagram designer. Well Yeah, its was and still is, but........the thing is I have used WPF a lot, and trying to use the code attached to sucrams series of article in WPF just wasn&#39;t that great. He had taken a very control centric view, in that everything was geared around adding new controls and supplying static styles for said controls. In reality it was more like working with a Win Forms application. Not that there is anything wrong with that, and I really truly do not mean to sound ungrateful, as that could not be further from the truth, without that original series of articles it would have taken me a lot longer to come up with a working diagram designer that I was happy with. So for that I am truly grateful, thanks sucram you rock. Anyway as I say sucrams original codebase took a very control centric point of view, and added controls using code behind, and held collec</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/MVVM-Diagram-Designer</link>
      <pubDate>Wed, 21 Nov 2012 14:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/MVVM-Diagram-Designer</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/8eb3411b-20f4-42b6-8b1d-5078ff043e38.png" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/94ba90ca-19b4-4604-b612-22af4bbc1ce7.png" height="124" width="220"></media:thumbnail>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/MVVM-Diagram-Designer/RSS</wfw:commentRss>
      <category>C#</category>
      <category>Coding4Fun</category>
      <category>MVVM</category>
      <category>WPF</category>
    </item>
  <item>
      <title>This Windows Phone 7.1(5) app is your source for WinSource (which comes with the source)</title>
      <description><![CDATA[<p>Today's Mobile Monday post is a Windows Phone 7.x app <a href="http://www.winsource.com/" target="_blank">WinSource</a> reader app by Sébastien Lachance.</p><p>&quot;A Windows Phone 7.x App! What are you thinking, Greg? Windows Phone 8 should be in days! Why highlight a 7.x app? Are you smoking dope?&quot;</p><p>No, no... The point I'm trying to make is that Windows Phone 7.x app's &quot;will just work&quot; on Windows Phone 8 (at least that's the intent and goal). So you don't have to wait for the Windows Phone 8 SDK to be released, you don't have to wait for Windows Phone 8 to take off, you can start coding today, releasing app's today. And if you release a Windows Phone 7.x app you will not only b e able to run on Windows Phone 8, but also on all the existing Windows Phone 7x devices too. See, I'm no smoking dope!</p><p>Anyway...</p><h2><a href="http://dotnetapp.com/blog/2012/09/21/my-winsource-app-is-now-open-source-on-the-nokia-developer-website/">My WinSource app is now open source on the Nokia developer website</a></h2><blockquote><h5>Introduction</h5><p>In the summer 2012, the <a href="http://www.winsource.com/">​WinSource</a> website held a contest among the Windows Phone developers to create an official application for their website.</p><p>I was a participant in the contest and I can tell you that it was a really interesting and challenging contest. My application finished in third position.</p><p>You can download the application from the winner at <a href="http://www.windowsphone.com/s?appid=dab5ea63-f5c3-4db7-87bf-6c4b2fad6d61">​here</a>.</p><h5>Important notice</h5><p>Before I decided to put the full source code of my complete application. I asked the owners of the <a href="http://www.winsource.com/">​WinSource</a> from the Neverstill company if I can publish the source code of my application. They accepted my idea, because it is a great way to help the Windows Phone community.</p><p>In the current form, the application has enough features that it can be an alternate ​WinSource application. <strong>The only restriction is a user cannot publish or use the </strong>​WinSource’s <strong>logo, the assets or the content from the </strong>​WinSource<strong>.</strong> NOTE, this project is ​licensed under a slightly modified MIT license which reflects the above restriction.</p><p>The purpose of having this open project is to help the community creating a professional news reader for any other websites that give the permissions. It also shows different concepts which can be applied in different type of applications.</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B2%5D-83.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb-83.png" alt="image" width="520" height="363" border="0"></a></p><p>...&quot;</p></blockquote><p>The app provides a working example of a number of cool features</p><blockquote><p>My application contains the following features:</p><ul><li>The metro design is used throughout the app, while the main page is showcased using the panorama design. </li><li>Fast navigation between pages. </li><li>Articles classified by date. </li><li>Play YouTube videos. </li><li>A description of each team member, including a display of the author name &amp; image on each author’s page. Also included is the option to send the author an email. </li><li>Article links can be shared on Twitter, Windows Live, Facebook, or by email. </li><li>The application bar contains shortcuts to the Facebook page and the Twitter page of the website. </li><li>The About page provides a way to send an email and to write a review of the app. </li><li>Option to automatically refresh articles when the application launches. </li></ul><p>The following list contains advanced features:</p><ul><li>Offline mode. Articles can be read even when no internet connection is available. </li><li>Unlimited space for saving articles, which can then be accessed using the <em>Saved Articles</em> page. </li><li>Articles can be periodically downloaded(every ~4 hours) in the background, even when the app is not running. This feature does not require server support. </li><li>Toast notification will display the number of new articles available, and a badge count in the application live tile will also display this number. </li><li>The back of the live tile will display the latest article title. </li></ul><p>...</p></blockquote><p>It also relies on a number of open source libraries;</p><blockquote><h5>Open source libraries</h5><p>I used three open source libraries that are well known in the developer community:</p><ul><li>GalaSoft MvvmLight (<a href="http://mvvmlight.codeplex.com/">​http://mvvmlight.codeplex.com/</a>): Used to architecture a modular application and to easily add future features. </li><li>Newtonsoft.Json (<a href="http://json.codeplex.com/">​http://json.codeplex.com/</a>): Used to save and love articles for the offline mode. </li><li>Silverlight Toolkit (<a href="http://silverlight.codeplex.com/">​http://silverlight.codeplex.com/</a>): Used for hub tile control and for the optimized list control. </li></ul><p>...</p></blockquote><p>The source (which you can get by clicking through and scrolling to the bottom of the page, compiled and ran for me the vey first time, with no hassles or tweaks.</p><p>Here's a snap of it running on my machine;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLf9fd8c1%5B3%5D.png" target="_blank"><img title="SNAGHTMLf9fd8c1" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTMLf9fd8c1_thumb.png" alt="SNAGHTMLf9fd8c1" width="220" height="384" border="0"></a></p><p>Here's a snap of the Solution;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B5%5D-43.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B1%5D-96.png" alt="image" width="245" height="147" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B8%5D-43.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B2%5D-79.png" alt="image" width="145" height="384" border="0"></a></p><blockquote><h6>What can you do with the source files of the application?</h6><p>Simple answer: <strong>create your own news application</strong>! The source files provided are the best starting point to get your news application ready. The mechanism is ready and your tasks are:</p><ul><li>Replace the assets in the <em>Assets </em>folder of the <em>WinSource</em> assembly. </li><li>Modify the classes in the <em>WinSource.Client</em> assembly in order to fetch the article descriptions and videos from your news source. </li><li>Remove or add sections in the Panorama. </li></ul><h6>Learning</h6><p>Also, if you read the code you can learn a lot about the Windows Phone SDK and about some best practices. The application is more complete than the ones in the MSDN samples.</p></blockquote><p>I think that sums it up well. There's a good bit you can learn from in this app, from MVVM, to keeping your UI responsive when doing network calls to interfacing with Facebook/Twitter and more. And that's nice is that you can leverage this code and knowledge if you're building apps for other platforms like Windows 8 or WPF on Windows 7...</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:af51953fcc72453da077a0f001565beb">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/This-Windows-Phone-715-app-is-your-source-for-WinSource-which-comes-with-the-source</comments>
      <itunes:summary>Today&#39;s Mobile Monday post is a Windows Phone 7.x app WinSource reader app by S&#233;bastien Lachance. &amp;quot;A Windows Phone 7.x App! What are you thinking, Greg? Windows Phone 8 should be in days! Why highlight a 7.x app? Are you smoking dope?&amp;quot; No, no... The point I&#39;m trying to make is that Windows Phone 7.x app&#39;s &amp;quot;will just work&amp;quot; on Windows Phone 8 (at least that&#39;s the intent and goal). So you don&#39;t have to wait for the Windows Phone 8 SDK to be released, you don&#39;t have to wait for Windows Phone 8 to take off, you can start coding today, releasing app&#39;s today. And if you release a Windows Phone 7.x app you will not only b e able to run on Windows Phone 8, but also on all the existing Windows Phone 7x devices too. See, I&#39;m no smoking dope! Anyway... My WinSource app is now open source on the Nokia developer websiteIntroductionIn the summer 2012, the ​WinSource website held a contest among the Windows Phone developers to create an official application for their website. I was a participant in the contest and I can tell you that it was a really interesting and challenging contest. My application finished in third position. You can download the application from the winner at ​here. Important noticeBefore I decided to put the full source code of my complete application. I asked the owners of the ​WinSource from the Neverstill company if I can publish the source code of my application. They accepted my idea, because it is a great way to help the Windows Phone community. In the current form, the application has enough features that it can be an alternate ​WinSource application. The only restriction is a user cannot publish or use the ​WinSource’s logo, the assets or the content from the ​WinSource. NOTE, this project is ​licensed under a slightly modified MIT license which reflects the above restriction. The purpose of having this open project is to help the community creating a professional news reader for any other websites that give the permissions. It also </itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/This-Windows-Phone-715-app-is-your-source-for-WinSource-which-comes-with-the-source</link>
      <pubDate>Mon, 22 Oct 2012 13:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/This-Windows-Phone-715-app-is-your-source-for-WinSource-which-comes-with-the-source</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/69667be5-76a7-440c-a5f3-e8479d824a75.png" height="63" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/b2ac7705-0fcf-4209-8a3b-21fb6c9c6bc0.png" height="138" width="220"></media:thumbnail>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/This-Windows-Phone-715-app-is-your-source-for-WinSource-which-comes-with-the-source/RSS</wfw:commentRss>
      <category>C#</category>
      <category>Coding4Fun</category>
      <category>MVVM</category>
      <category>Windows  Phone</category>
      <category>XAML</category>
    </item>
  <item>
      <title>Visual Studio 2012 Launch &quot;My Events&quot; sample modern application source</title>
      <description><![CDATA[<p>Containing with the Visual Studio 2012 Launch theme, in the keynotes (which you can see on-demand <a href="http://www.visualstudiolaunch.com/vs2012vle/Home" target="_blank">here</a>), you saw a number of demo's of the &quot;My Events&quot; application.</p><p>Think it was kind of cool and something you'd like to look see the source for?</p><h2><a href="http://code.msdn.microsoft.com/MY-EVENTS-Modern-Sample-9a42abc6" target="_blank">MY EVENTS - Sample Modern Application with Visual Studio 2012</a></h2><blockquote><p><em><em>The main goal of this sample modern application is to provide a sample app where you can see most of the new technologies related to Visual Studio 2012, in a practical way. </em><em><br></em></em><br><strong>Sample application context and scenarios</strong><br>This sample application shows most of the new technologies you can use with Visual Studio 2012 in order to build Modern Apps.</p><p>The context is about an events/conferences management system called “My Events”. <br>It is composed by:</p><ul><li><strong>Central Web API Services:</strong> </li><li><strong>Global Web-App (ASP.NET MVC4):</strong> </li><li><strong>Organizers WPF App (WPF):</strong> </li><li><strong>Organizers Windows 8 Store App (XAML/C#):</strong> </li><li><strong>Attendees Windows 8 Store App (HTML5/WinJS):</strong> </li></ul><p><strong>Goals</strong><br>This global system and the related client apps are highlighting the following points:</p><ul><li>Consumer end-user point of view with the latest UX technologies capabilities, typical of Modern-Apps. </li><li>Enterprise and LOB (Line of Business) point of view, when using a desktop application. </li><li>Cloud friendly. You can deploy very easily all the server assets (Web Api Services and Web app) into the Windows Azure cloud. </li><li>Extensible and open to more complex scenarios. Even though our scenario’s main goal is to ‘keep it simple’, we wanted to be able to leave it open for future extensions and complexity that is usually required when implementing a real production application. </li><li>Multiple technical approaches. We wanted to illustrate how multiple technical approaches can co-exist within the same solution (Web, mainstream-app, CRUD, etc.) </li><li>Easily deployable. The RI is easily deployable so that you can install it and experiment with it. </li></ul><p><em><em><em>The selected technologies and frameworks used are the following:</em></em></em></p><ul><li><em><em><em>Core</em></em></em> <ul><li><em><em><em>ASP.NET Web-API Services</em></em></em> </li><li><em><em><em>Entity Framework 5 (Code First)</em></em></em> </li><li><em><em><em>SQL Server LocalDB</em></em></em> </li></ul></li><li><em><em><em>Web App</em></em></em> <ul><li><em><em><em>ASP.NET MVC 4</em></em></em> </li><li><em><em><em>JavaScript &amp; </em><em>JQuery consuming Web Api Services</em></em></em> </li></ul></li><li><em><em><em>Windows 8 Store Apps</em></em></em> <ul><li><em><em><em>Windows 8 Store App using HTML5/WinJS</em></em></em> </li><li><em><em><em>Windows 8 Store Apps using XAML/C#</em></em></em> </li></ul></li><li><em><em><em>Desktop App</em></em></em> <ul><li><em><em><em>WPF (Windows Presentation Foundation) App</em></em></em> </li></ul></li></ul></blockquote><p>While this show's off allot...</p><blockquote><p><strong>What this sample application is NOT about</strong><br>This is not a production application and it is not intended as a guidance for complex scenarios/applications, as it mostly covers CRUD and Data-Driven scenarios, only. If you need guidance for complex scenarios, we recommend to check guidance material from the Microsoft Patterns &amp; Practices group like the ‘CQRS Journey guidance’, which shows a reference application with a related functional domain &amp; scope (Events/Conferences platform) but from a different point of view based on design-patterns and best architectural practices for complex scenarios, covering approaches like CQRS (Command &amp; Query Responsibility Segregation) &amp; DDD (Domain Driven Design).</p></blockquote><p>Ready to build it now?</p><blockquote><h3>Building the Sample</h3><p><em>Software required: </em></p><p><em>Visual Studio 2012, Windows 8, BingMaps JavaScript SDK [GD: which you can find here <a href="http://visualstudiogallery.msdn.microsoft.com/0c341dfb-4584-4738-949c-daf55b82df58" target="_blank">Bing Maps SDK for Metro style apps (Beta)</a>]</em></p><p><em>Check that you have the dependencies, open the solution and run it. The database will be generated for you using LocalDB and Entity Framework Initializers.</em></p></blockquote><p>If when running the web client for the first time, you get a runtime error here;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B8%5D-36.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B2%5D-69.png" alt="image" width="520" height="118" border="0"></a></p><p>...that it can't find a file in the FakeImages folder, what I did was just copy the folder into the path it thought to find the images. Easier than tweaking code.</p><p>So I coping the FakeImages folder from <br>...\MY EVENTS - Sample Modern Application with Visual Studio 2012\C#,JavaScript\MyEvents\MyEvents.Web\FakeImages <br>to <br>...\MY EVENTS - Sample Modern Application with Visual Studio 2012\FakeImages</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B5%5D-35.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B1%5D-84.png" alt="image" width="520" height="332" border="0"></a></p><p>Then the app ran fine. Once run the first time, you can delete that extra copy if you want, it's only need the first time the app runs, when its building its data store.</p><p>Also note: When creating an Event, also make sure to add at least one Session to it. Otherwise the event won't show up in the in a few of the Clients (This had me wondering if something was busted. I could see the event in the Web and Desktop apps, but in none of the Windows Store apps... Adding a Session fixed that. Doh!)</p><p>Here's a snap of the Solution;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B11%5D-31.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B3%5D-60.png" alt="image" width="364" height="335" border="0"></a></p><p>And some snaps of it running on my system.</p><p>Here's the Web app;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B17%5D-12.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B5%5D-44.png" alt="image" width="520" height="151" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B20%5D-12.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B6%5D-37.png" alt="image" width="520" height="258" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B14%5D-28.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B4%5D-51.png" alt="image" width="520" height="176" border="0"></a></p><p>The WPF Desktop app;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML9c8a535%5B3%5D.png" target="_blank"><img title="SNAGHTML9c8a535" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML9c8a535_thumb.png" alt="SNAGHTML9c8a535" width="520" height="362" border="0"></a></p><p>As a Windows Store app;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML9c920ce%5B3%5D.png" target="_blank"><img title="SNAGHTML9c920ce" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/SNAGHTML9c920ce_thumb.png" alt="SNAGHTML9c920ce" width="520" height="258" border="0"></a></p><blockquote><p><strong>Wrap up</strong><br>Therefore and as previously mentioned, our main objective is to highlight and show most of the new capabilities and technical possibilities offered by Visual Studio 2012 and all its related technologies in order to build <strong>Modern Apps</strong>.</p></blockquote><p>There's a bunch here to look in this source. From using a Solution wide version assembly file, to Portable Library projects, Windows Store apps, Facebook Integration, Twitter, Maps, MVC4, ASP.Net Web API, Json.Net, MVVM, unit testing the web backend and much, much more.</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:e874edc18e104ed7b9cea0cd0140264c">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/Visual-Studio-2012-Launch-My-Events-sample-modern-application-source</comments>
      <itunes:summary>Containing with the Visual Studio 2012 Launch theme, in the keynotes (which you can see on-demand here), you saw a number of demo&#39;s of the &amp;quot;My Events&amp;quot; application. Think it was kind of cool and something you&#39;d like to look see the source for? MY EVENTS - Sample Modern Application with Visual Studio 2012The main goal of this sample modern application is to provide a sample app where you can see most of the new technologies related to Visual Studio 2012, in a practical way. Sample application context and scenariosThis sample application shows most of the new technologies you can use with Visual Studio 2012 in order to build Modern Apps. The context is about an events/conferences management system called “My Events”. It is composed by: Central Web API Services: Global Web-App (ASP.NET MVC4): Organizers WPF App (WPF): Organizers Windows 8 Store App (XAML/C#): Attendees Windows 8 Store App (HTML5/WinJS): GoalsThis global system and the related client apps are highlighting the following points: Consumer end-user point of view with the latest UX technologies capabilities, typical of Modern-Apps. Enterprise and LOB (Line of Business) point of view, when using a desktop application. Cloud friendly. You can deploy very easily all the server assets (Web Api Services and Web app) into the Windows Azure cloud. Extensible and open to more complex scenarios. Even though our scenario’s main goal is to ‘keep it simple’, we wanted to be able to leave it open for future extensions and complexity that is usually required when implementing a real production application. Multiple technical approaches. We wanted to illustrate how multiple technical approaches can co-exist within the same solution (Web, mainstream-app, CRUD, etc.) Easily deployable. The RI is easily deployable so that you can install it and experiment with it. The selected technologies and frameworks used are the following: Core ASP.NET Web-API Services Entity Framework 5 (Code First) SQL Server LocalDB Web App A</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/Visual-Studio-2012-Launch-My-Events-sample-modern-application-source</link>
      <pubDate>Wed, 19 Sep 2012 13:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/Visual-Studio-2012-Launch-My-Events-sample-modern-application-source</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/670d11ab-7446-404c-ac1d-933cdd7425db.png" height="53" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/e7b2e641-2647-4b12-8c00-1c5735dc0eb1.png" height="117" width="220"></media:thumbnail>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/Visual-Studio-2012-Launch-My-Events-sample-modern-application-source/RSS</wfw:commentRss>
      <category>.NET Framework</category>
      <category>ASP.NET</category>
      <category>ASP.NET MVC</category>
      <category>Coding4Fun</category>
      <category>Facebook</category>
      <category>HTML5</category>
      <category>MVVM</category>
      <category>Twitter</category>
      <category>Visual Studio</category>
      <category>WPF</category>
      <category>Windows 8</category>
    </item>
  <item>
      <title>Gestating your Metro Style App with Cocoon</title>
      <description><![CDATA[<p>Today's Metro Monday project is a framework that will help you in your creation of Windows 8 Metro Style applications, helping take a little of the grunt work out, while helping build applications with some separation of concerns. Plus I dig how it uses MEF to compose a navigable application.</p><h2><a href="http://cocoon.codeplex.com/" target="_blank">Cocoon</a></h2><blockquote><p>Cocoon is a framework to support the development of .Net Windows 8 Metro-style applications, in particular those that link to web services. It simplifies accessing, displaying and editing data using standard Metro controls, and allows easy application of the MVVM pattern.</p><p>For more details, and news on the latest releases visit <a href="http://andyonwpf.blogspot.com">http://andyonwpf.blogspot.com</a></p><h3>Current Features</h3><ul><li>A navigation framework with, <ul><li>Attribute based page and view model discovery using MEF </li><li>Automatic creation and wiring up of page and view model </li><li>Passing of parameters to view models upon activation </li><li>Persistence of navigation and state upon application suspension </li></ul></li></ul><ul><li>A data framework with, <ul><li>Support for observable collections and data virtualization </li><li>An extensible framework for the retrieval, processing and display of data from the cloud </li></ul></li></ul><h3>Documentation</h3><ul><li><a href="http://andyonwpf.blogspot.com/2011/11/cocoon-new-framework-for-windows-8.html">Introduction</a> </li><li>Base Types <ul><li><a href="http://andyonwpf.blogspot.com/2011/12/observablevector-as-replacement-for.html">ObservableVector&lt;T&gt;</a> </li><li><a href="http://andyonwpf.blogspot.com/2011/12/data-virtualization-in-metro-style-apps.html">VirtualizingVector&lt;T&gt;</a> </li></ul></li><li>Cocoon Navigation Framework <ul><li><a href="http://andyonwpf.blogspot.co.uk/2012/04/navigation-in-cocoon-mvvm-for-metro.html">Defining pages and view models</a> </li><li>More to follow... </li></ul></li><li>Cocoon Data Framework (IDataListSource&lt;T&gt; and data lists) <ul><li><a href="http://andyonwpf.blogspot.com/2012/01/bridging-data-dividean-introduction-to.html">Introduction</a> </li><li><a href="http://andyonwpf.blogspot.co.uk/2012/04/using-cocoon-data-framework.html">Example Code</a> </li><li><a href="http://andyonwpf.blogspot.com/2012/01/simpledatalistsource-consuming-data.html">SimpleDataListSource&lt;T&gt;</a> </li><li><a href="http://andyonwpf.blogspot.co.uk/2012/02/pageddatalistsource-consuming-data-from.html">PagedDataListSource&lt;T&gt;</a> </li><li><a href="http://andyonwpf.blogspot.co.uk/2012/03/virtualizingdatalist-displaying-large.html">VirtualizingDataList&lt;T&gt;</a> </li></ul></li></ul></blockquote><h3><a href="http://andyonwpf.blogspot.com/2011/11/cocoon-new-framework-for-windows-8.html" target="_blank">Cocoon – A new framework for Windows 8 Development</a></h3><blockquote><p>To assist with Windows 8 Metro-style applications I would like to announce the Cocoon framework (<a href="http://cocoon.codeplex.com/">http://cocoon.codeplex.com/</a>). This aims to build on top of the learning from the Chrysalis project to provide a simple way to develop Metro-style applications in a manner that fits naturally with the MVVM design pattern.</p><p>It is likely that many Metro-style apps will be connected applications, downloading data from across the internet in response to user navigation. Modern applications are expected to do this in a seamless manner, retrieving data on demand and populating the user interface in response. In some ways this is at odds with the web API programming model that is based upon individual request-response calls, with paging used to retrieve large datasets. One of the first targets of the Cocoon framework is to simplify this process – bridging the world of stateless web API calls, with the “fast and fluid” interfaces expected by users.</p></blockquote><h3>&nbsp;<a href="http://andyonwpf.blogspot.co.uk/2012/04/navigation-in-cocoon-mvvm-for-metro.html" target="_blank">Navigation in Cocoon – MVVM for Metro-style apps</a></h3><blockquote><h4>Navigation in Cocoon</h4><p>Although not limited to this, the Cocoon framework is designed to work great with the Model-View-ViewModel (MVVM) pattern that has become common when designing XAML based applications. One problem when using this pattern is that you need some way of associating a view with a view-model. Often this is done by navigating directly to a page, and using a “ViewModelLocator” to identify and wire up the respective view-model.</p><p>In Cocoon a slightly different approach is used. Here, rather than navigating directly to a view, you navigate to a named page. Although the behaviour is extensible, by default Cocoon will use MEF (the built in composition framework included in .Net) to locate both the view and view-model associated with this page name, create and initialise instances of these and wire them together.</p><p>...</p><h4>The Navigation Manager</h4>In order to navigate between pages, Cocoon includes a navigation manager that can be accessed by importing the INavigationManager interface through MEF (simplified by the fact that all views and view models in Cocoon are themselves are composed by MEF).</blockquote><h3><a href="http://andyonwpf.blogspot.com/2012/05/getting-started-with-cocoon-navigation.html" target="_blank">Getting Started with Cocoon Navigation – The Cocoon Bootstrapper</a></h3><blockquote><p>Since the Cocoon navigation framework is built on top of the Managed Extensibility Framework (MEF), the application is composed with the required dependencies as the user navigates through the application. MEF is a composition framework that is built into the .Net framework, that enables the construction of loosely-coupled, easily maintainable and testable applications to be composed automatically at run time. An introductory guide for those who are not familiar with MEF is available <a href="http://www.codeproject.com/Articles/376033/From-Zero-to-Proficient-with-MEF">here</a>.</p><p>What I have not covered previously however was how to navigate to the application’s first page when it is launched,</p><h4>Launching Navigation Using The Cocoon Bootstrapper</h4>To simplify the initialization of Cocoon based applications the framework includes the ‘CocoonBootstrapper’ class that can be used at startup. This manages the configuration of MEF for the most common scenarios, initialization of services and activation of the application. <p>...</p></blockquote><p>Here's a snip of the sample app running.</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/Screenshot%20(8)%5B2%5D.png" target="_blank"><img title="Screenshot (8)" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/Screenshot%20(8)_thumb.png" alt="Screenshot (8)" width="650" height="365" border="0"></a></p><p>Note, to get the sample app to run, you'll need your own <a href="http://www.flickr.com" target="_blank">Flickr</a> API Key.</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/Screenshot%5B3%5D.png" target="_blank"><img title="Screenshot" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/Screenshot_thumb%5B4%5D.png" alt="Screenshot" width="669" height="354" border="0"></a></p><p>Here's a snap of the Solution;</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B2%5D-47.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb-46.png" alt="image" width="258" height="407" border="0"></a><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image%5B5%5D-21.png" target="_blank"><img title="image" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/image_thumb%5B1%5D-59.png" alt="image" width="251" height="407" border="0"></a></p><p>And some snaps of the code, showing a little bit of how MEF is used.</p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/Screenshot%20(9)%5B3%5D.png" target="_blank"><img title="Screenshot (9)" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/Screenshot%20(9)_thumb%5B4%5D.png" alt="Screenshot (9)" width="670" height="354" border="0"></a></p><p><a href="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/Screenshot%20(10)%5B3%5D.png" target="_blank"><img title="Screenshot (10)" src="http://files.channel9.msdn.com/wlwimages/ae054c0b4d7b402ab1239e6800c0220f/Screenshot%20(10)_thumb%5B4%5D.png" alt="Screenshot (10)" width="670" height="354" border="0"></a></p><p>If you've thought, &quot;I love MEF and I wonder if I can use it to compose Metro Style App's, without messing up navigation&quot; or looking for a new data handling framework or just want to check out a cool framework, Cocoon, and all its source, is ready for you...</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:2cd707c8ba8445788ca6a0560154382e">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/blog/Gestating-your-Metro-Style-App-with-Cocoon</comments>
      <itunes:summary>Today&#39;s Metro Monday project is a framework that will help you in your creation of Windows 8 Metro Style applications, helping take a little of the grunt work out, while helping build applications with some separation of concerns. Plus I dig how it uses MEF to compose a navigable application. CocoonCocoon is a framework to support the development of .Net Windows 8 Metro-style applications, in particular those that link to web services. It simplifies accessing, displaying and editing data using standard Metro controls, and allows easy application of the MVVM pattern. For more details, and news on the latest releases visit http://andyonwpf.blogspot.com Current FeaturesA navigation framework with, Attribute based page and view model discovery using MEF Automatic creation and wiring up of page and view model Passing of parameters to view models upon activation Persistence of navigation and state upon application suspension A data framework with, Support for observable collections and data virtualization An extensible framework for the retrieval, processing and display of data from the cloud DocumentationIntroduction Base Types ObservableVector&amp;lt;T&amp;gt; VirtualizingVector&amp;lt;T&amp;gt; Cocoon Navigation Framework Defining pages and view models More to follow... Cocoon Data Framework (IDataListSource&amp;lt;T&amp;gt; and data lists) Introduction Example Code SimpleDataListSource&amp;lt;T&amp;gt; PagedDataListSource&amp;lt;T&amp;gt; VirtualizingDataList&amp;lt;T&amp;gt; Cocoon – A new framework for Windows 8 DevelopmentTo assist with Windows 8 Metro-style applications I would like to announce the Cocoon framework (http://cocoon.codeplex.com/). This aims to build on top of the learning from the Chrysalis project to provide a simple way to develop Metro-style applications in a manner that fits naturally with the MVVM design pattern. It is likely that many Metro-style apps will be connected applications, downloading data from across the internet in response to user navigation. Modern applications are expected to</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/blog/Gestating-your-Metro-Style-App-with-Cocoon</link>
      <pubDate>Mon, 21 May 2012 13:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/blog/Gestating-your-Metro-Style-App-with-Cocoon</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/e08c6003-4574-444f-a14a-442e73da11b0.png" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/59545285-5ebd-41f7-940a-7ede3431f2a5.png" height="124" width="220"></media:thumbnail>      
      <dc:creator>Greg Duncan</dc:creator>
      <itunes:author>Greg Duncan</itunes:author>
      <slash:comments>4</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/blog/Gestating-your-Metro-Style-App-with-Cocoon/RSS</wfw:commentRss>
      <category>C#</category>
      <category>Coding4Fun</category>
      <category>MEF</category>
      <category>MVVM</category>
      <category>Windows Store App</category>
      <category>Microsoft Design Style</category>
    </item>
  <item>
      <title>The Full Stack, Part 16: More MVVM Fun With Some More Complex Binding Scenarios</title>
      <description><![CDATA[<p>Jesse and Jon dig a little deeper into the main screen of their Windows Phone Pomodoro client, looking at how MVVM works with more complex binding scenarios with selection and navigation.</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:cfd4d82cd3874be4ba319fe50005fb31">]]></description>
      <comments>http://channel9.msdn.com/Series/The-Full-Stack/The-Full-Stack-Part-16-More-MVVM-Fun-With-Some-More-Complex-Binding-Scenarios</comments>
      <itunes:summary>Jesse and Jon dig a little deeper into the main screen of their Windows Phone Pomodoro client, looking at how MVVM works with more complex binding scenarios with selection and navigation. </itunes:summary>
      <itunes:duration>1486</itunes:duration>
      <link>http://channel9.msdn.com/Series/The-Full-Stack/The-Full-Stack-Part-16-More-MVVM-Fun-With-Some-More-Complex-Binding-Scenarios</link>
      <pubDate>Fri, 27 Jan 2012 20:12:51 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/The-Full-Stack/The-Full-Stack-Part-16-More-MVVM-Fun-With-Some-More-Complex-Binding-Scenarios</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/fb31/cfd4d82c-d387-4be4-ba31-9fe50005fb31/FullStack16_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/fb31/cfd4d82c-d387-4be4-ba31-9fe50005fb31/FullStack16_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/fb31/cfd4d82c-d387-4be4-ba31-9fe50005fb31/FullStack16_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/fb31/cfd4d82c-d387-4be4-ba31-9fe50005fb31/FullStack16_2MB_ch9.wmv" expression="full" duration="1486" fileSize="52254071" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/fb31/cfd4d82c-d387-4be4-ba31-9fe50005fb31/FullStack16_ch9.mp3" expression="full" duration="1486" fileSize="11889264" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/fb31/cfd4d82c-d387-4be4-ba31-9fe50005fb31/FullStack16_ch9.webm" expression="full" duration="1486" fileSize="60608822" type="video/webm" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/fb31/cfd4d82c-d387-4be4-ba31-9fe50005fb31/FullStack16_ch9.wma" expression="full" duration="1486" fileSize="12020977" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/fb31/cfd4d82c-d387-4be4-ba31-9fe50005fb31/FullStack16_ch9.wmv" expression="full" duration="1486" fileSize="56894342" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/fb31/cfd4d82c-d387-4be4-ba31-9fe50005fb31/FullStack16_high_ch9.mp4" expression="full" duration="1486" fileSize="236651922" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/fb31/cfd4d82c-d387-4be4-ba31-9fe50005fb31/FullStack16_low_ch9.mp4" expression="full" duration="1486" fileSize="30652656" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/fb31/cfd4d82c-d387-4be4-ba31-9fe50005fb31/FullStack16_med_ch9.mp4" expression="full" duration="1486" fileSize="184430132" type="video/mp4" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/fb31/cfd4d82c-d387-4be4-ba31-9fe50005fb31/FullStack16.ism/manifest" expression="full" duration="1486" fileSize="6262" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/fb31/cfd4d82c-d387-4be4-ba31-9fe50005fb31/FullStack16_ch9.wmv" length="56894342" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Jon Galloway, Jesse Liberty</dc:creator>
      <itunes:author>Jon Galloway, Jesse Liberty</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/The-Full-Stack/The-Full-Stack-Part-16-More-MVVM-Fun-With-Some-More-Complex-Binding-Scenarios/RSS</wfw:commentRss>
      <category>MVVM</category>
      <category>Windows  Phone</category>
    </item>
  <item>
      <title>The Full Stack, Part 15: Starting a Pomodoro application with MVVM</title>
      <description><![CDATA[<p>In this episode of The Full Stack, Jesse and Jon kick off a new Pomodoro&nbsp;task / time management&nbsp;project with a Windows Phone application using MVVM Light, building out the basic models, and setting up home screen.</p><p>Links:</p><ul><li><a href="http://www.pomodorotechnique.com/">Pomodoro Technique</a> </li><li><a href="http://mvvmlight.codeplex.com/">MVVM Light</a> </li></ul> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:786d2f7260644327b33c9fdc01486da4">]]></description>
      <comments>http://channel9.msdn.com/Series/The-Full-Stack/The-Full-Stack-Part-15-Starting-a-Pomodoro-application-with-MVVM</comments>
      <itunes:summary>In this episode of The Full Stack, Jesse and Jon kick off a new Pomodoro&amp;nbsp;task / time management&amp;nbsp;project with a Windows Phone application using MVVM Light, building out the basic models, and setting up home screen. Links: Pomodoro Technique MVVM Light </itunes:summary>
      <itunes:duration>1603</itunes:duration>
      <link>http://channel9.msdn.com/Series/The-Full-Stack/The-Full-Stack-Part-15-Starting-a-Pomodoro-application-with-MVVM</link>
      <pubDate>Thu, 19 Jan 2012 20:09:23 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/The-Full-Stack/The-Full-Stack-Part-15-Starting-a-Pomodoro-application-with-MVVM</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/6da4/786d2f72-6064-4327-b33c-9fdc01486da4/FullStack15_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/6da4/786d2f72-6064-4327-b33c-9fdc01486da4/FullStack15_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/6da4/786d2f72-6064-4327-b33c-9fdc01486da4/FullStack15_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/6da4/786d2f72-6064-4327-b33c-9fdc01486da4/FullStack15_2MB_ch9.wmv" expression="full" duration="1603" fileSize="41156195" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/6da4/786d2f72-6064-4327-b33c-9fdc01486da4/FullStack15_ch9.mp3" expression="full" duration="1603" fileSize="12828673" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/6da4/786d2f72-6064-4327-b33c-9fdc01486da4/FullStack15_ch9.webm" expression="full" duration="1603" fileSize="66185956" type="video/webm" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/6da4/786d2f72-6064-4327-b33c-9fdc01486da4/FullStack15_ch9.wma" expression="full" duration="1603" fileSize="12976249" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/6da4/786d2f72-6064-4327-b33c-9fdc01486da4/FullStack15_ch9.wmv" expression="full" duration="1603" fileSize="56063050" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/6da4/786d2f72-6064-4327-b33c-9fdc01486da4/FullStack15_high_ch9.mp4" expression="full" duration="1603" fileSize="251998984" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/6da4/786d2f72-6064-4327-b33c-9fdc01486da4/FullStack15_low_ch9.mp4" expression="full" duration="1603" fileSize="31025311" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/6da4/786d2f72-6064-4327-b33c-9fdc01486da4/FullStack15_med_ch9.mp4" expression="full" duration="1603" fileSize="196252797" type="video/mp4" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/6da4/786d2f72-6064-4327-b33c-9fdc01486da4/FullStack15.ism/manifest" expression="full" duration="1603" fileSize="6262" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/6da4/786d2f72-6064-4327-b33c-9fdc01486da4/FullStack15_ch9.wmv" length="56063050" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Jon Galloway, Jesse Liberty</dc:creator>
      <itunes:author>Jon Galloway, Jesse Liberty</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/The-Full-Stack/The-Full-Stack-Part-15-Starting-a-Pomodoro-application-with-MVVM/RSS</wfw:commentRss>
      <category>MVVM</category>
      <category>Windows Phone</category>
    </item>
  <item>
      <title>The Full Stack, Part 14: Taking a look at MVVM with John Papa</title>
      <description><![CDATA[<p>Jon and Jesse decide to start on a new application, so they begin with a discussion with John Papa&nbsp;to make sure they've got the&nbsp;MVVM part figured out.</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:c13cf7f2f73f4126bf7b9fdc01440a2c">]]></description>
      <comments>http://channel9.msdn.com/Series/The-Full-Stack/The-Full-Stack-Part-14-Taking-a-look-at-MVVM-with-John-Papa</comments>
      <itunes:summary>Jon and Jesse decide to start on a new application, so they begin with a discussion with John Papa&amp;nbsp;to make sure they&#39;ve got the&amp;nbsp;MVVM part figured out. </itunes:summary>
      <itunes:duration>2858</itunes:duration>
      <link>http://channel9.msdn.com/Series/The-Full-Stack/The-Full-Stack-Part-14-Taking-a-look-at-MVVM-with-John-Papa</link>
      <pubDate>Thu, 19 Jan 2012 00:43:54 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/The-Full-Stack/The-Full-Stack-Part-14-Taking-a-look-at-MVVM-with-John-Papa</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/0a2c/c13cf7f2-f73f-4126-bf7b-9fdc01440a2c/FullStack14_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/0a2c/c13cf7f2-f73f-4126-bf7b-9fdc01440a2c/FullStack14_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/0a2c/c13cf7f2-f73f-4126-bf7b-9fdc01440a2c/FullStack14_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/0a2c/c13cf7f2-f73f-4126-bf7b-9fdc01440a2c/FullStack14_2MB_ch9.wmv" expression="full" duration="2858" fileSize="69481987" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/0a2c/c13cf7f2-f73f-4126-bf7b-9fdc01440a2c/FullStack14_ch9.mp3" expression="full" duration="2858" fileSize="22871815" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/0a2c/c13cf7f2-f73f-4126-bf7b-9fdc01440a2c/FullStack14_ch9.webm" expression="full" duration="2858" fileSize="112122547" type="video/webm" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/0a2c/c13cf7f2-f73f-4126-bf7b-9fdc01440a2c/FullStack14_ch9.wma" expression="full" duration="2858" fileSize="23126767" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/0a2c/c13cf7f2-f73f-4126-bf7b-9fdc01440a2c/FullStack14_ch9.wmv" expression="full" duration="2858" fileSize="97798582" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/0a2c/c13cf7f2-f73f-4126-bf7b-9fdc01440a2c/FullStack14_high_ch9.mp4" expression="full" duration="2858" fileSize="444305211" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/0a2c/c13cf7f2-f73f-4126-bf7b-9fdc01440a2c/FullStack14_low_ch9.mp4" expression="full" duration="2858" fileSize="46954381" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/0a2c/c13cf7f2-f73f-4126-bf7b-9fdc01440a2c/FullStack14_med_ch9.mp4" expression="full" duration="2858" fileSize="346392351" type="video/mp4" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/0a2c/c13cf7f2-f73f-4126-bf7b-9fdc01440a2c/FullStack14.ism/manifest" expression="full" duration="2858" fileSize="6240" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/0a2c/c13cf7f2-f73f-4126-bf7b-9fdc01440a2c/FullStack14_ch9.wmv" length="97798582" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Jon Galloway, John Papa, Jesse Liberty</dc:creator>
      <itunes:author>Jon Galloway, John Papa, Jesse Liberty</itunes:author>
      <slash:comments>6</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/The-Full-Stack/The-Full-Stack-Part-14-Taking-a-look-at-MVVM-with-John-Papa/RSS</wfw:commentRss>
      <category>MVVM</category>
      <category>Windows Phone</category>
    </item>
  <item>
      <title>MVVM Part 2</title>
      <description><![CDATA[<p>In part 2 we create a button and handle its click event using a behavior and a MVVMLight relay command.</p><p>&nbsp;</p><p><a href="http://jesseliberty.com/wp-content/files/MVVM2.zip">Source Code</a></p><p><a href="http://jesseliberty.com/2011/01/05/windows-phone-from-scratch-mvvm-light-toolkit-soup-to-nuts-part-2/">Mini-Tutorial</a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:80aff86a230a4cad83709fb80139face">]]></description>
      <comments>http://channel9.msdn.com/Series/The-Mango-Videos/MVVM-Part-2</comments>
      <itunes:summary>In part 2 we create a button and handle its click event using a behavior and a MVVMLight relay command. &amp;nbsp; Source Code Mini-Tutorial </itunes:summary>
      <itunes:duration>336</itunes:duration>
      <link>http://channel9.msdn.com/Series/The-Mango-Videos/MVVM-Part-2</link>
      <pubDate>Tue, 13 Dec 2011 19:47:49 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/The-Mango-Videos/MVVM-Part-2</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/face/80aff86a-230a-4cad-8370-9fb80139face/MVVM2_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/face/80aff86a-230a-4cad-8370-9fb80139face/MVVM2_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/face/80aff86a-230a-4cad-8370-9fb80139face/MVVM2_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/face/80aff86a-230a-4cad-8370-9fb80139face/MVVM2_custom_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/face/80aff86a-230a-4cad-8370-9fb80139face/MVVM2_2MB_ch9.wmv" expression="full" duration="336" fileSize="11058501" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/face/80aff86a-230a-4cad-8370-9fb80139face/MVVM2_ch9.mp3" expression="full" duration="336" fileSize="2695957" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/face/80aff86a-230a-4cad-8370-9fb80139face/MVVM2_ch9.webm" expression="full" duration="336" fileSize="13508443" type="video/webm" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/face/80aff86a-230a-4cad-8370-9fb80139face/MVVM2_ch9.wma" expression="full" duration="336" fileSize="2741623" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/face/80aff86a-230a-4cad-8370-9fb80139face/MVVM2_ch9.wmv" expression="full" duration="336" fileSize="13015450" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/face/80aff86a-230a-4cad-8370-9fb80139face/MVVM2_high_ch9.mp4" expression="full" duration="336" fileSize="53817855" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/face/80aff86a-230a-4cad-8370-9fb80139face/MVVM2_low_ch9.mp4" expression="full" duration="336" fileSize="7478559" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/face/80aff86a-230a-4cad-8370-9fb80139face/MVVM2_med_ch9.mp4" expression="full" duration="336" fileSize="42162081" type="video/mp4" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/face/80aff86a-230a-4cad-8370-9fb80139face/MVVM2.ism/manifest" expression="full" duration="336" fileSize="6182" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/face/80aff86a-230a-4cad-8370-9fb80139face/MVVM2_ch9.wmv" length="13015450" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Jesse Liberty</dc:creator>
      <itunes:author>Jesse Liberty</itunes:author>
      <slash:comments>4</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/The-Mango-Videos/MVVM-Part-2/RSS</wfw:commentRss>
      <category>MVVM</category>
    </item>
  <item>
      <title>ASP.NET MVC With Community Tools Part 11: KnockoutJS</title>
      <description><![CDATA[ <p>In this video, Brandon Satrom continues the screencast series &quot;Using ASP.NET MVC With Community Tools&quot; with an overview of KnockoutJS, a MVVM framework for creating rich, interactive JavaScript UIs. Brandon will demonstrate how you can use Knockout to define view models for your pages, and use Knockout's declarative binding syntax to keep that view model in sync as it is used in several places in an application. Finally, Brandon will demonstrate how&nbsp;Knockout integrates easily with ASP.NET MVC applications.</p><p>To install Knockout, just type install-package KnockoutJS in the Package Manager Console. To learn more, check out:&nbsp;<a href="http://www.knockoutjs.com">knockoutjs.com</a>.</p><p>For other episodes in this series, check out:&nbsp;<a href="http://bit.ly/mvcscreencasts">http://bit.ly/mvcscreencasts.</a></p><p>Also visit Brandon's blog at&nbsp;<a href="http://www.userinexperience.com">http://www.userinexperience.com</a>&nbsp;or follow Brandon on Twitter at&nbsp;<a href="http://www.twitter.com/BrandonSatrom">@BrandonSatrom</a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:e6c9d99f68164bd191639f100131119e">]]></description>
      <comments>http://channel9.msdn.com/posts/ASPNET-MVC-With-Community-Tools-Part-11-KnockoutJS</comments>
      <itunes:summary> In this video, Brandon Satrom continues the screencast series &amp;quot;Using ASP.NET MVC With Community Tools&amp;quot; with an overview of KnockoutJS, a MVVM framework for creating rich, interactive JavaScript UIs. Brandon will demonstrate how you can use Knockout to define view models for your pages, and use Knockout&#39;s declarative binding syntax to keep that view model in sync as it is used in several places in an application. Finally, Brandon will demonstrate how&amp;nbsp;Knockout integrates easily with ASP.NET MVC applications. To install Knockout, just type install-package KnockoutJS in the Package Manager Console. To learn more, check out:&amp;nbsp;knockoutjs.com. For other episodes in this series, check out:&amp;nbsp;http://bit.ly/mvcscreencasts. Also visit Brandon&#39;s blog at&amp;nbsp;http://www.userinexperience.com&amp;nbsp;or follow Brandon on Twitter at&amp;nbsp;@BrandonSatrom </itunes:summary>
      <itunes:duration>1210</itunes:duration>
      <link>http://channel9.msdn.com/posts/ASPNET-MVC-With-Community-Tools-Part-11-KnockoutJS</link>
      <pubDate>Tue, 28 Jun 2011 20:55:06 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/posts/ASPNET-MVC-With-Community-Tools-Part-11-KnockoutJS</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/119e/e6c9d99f-6816-4bd1-9163-9f100131119e/11KnockoutJS_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/119e/e6c9d99f-6816-4bd1-9163-9f100131119e/11KnockoutJS_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/119e/e6c9d99f-6816-4bd1-9163-9f100131119e/11KnockoutJS_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/119e/e6c9d99f-6816-4bd1-9163-9f100131119e/11KnockoutJS_2MB_ch9.wmv" expression="full" duration="1210" fileSize="36761129" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/119e/e6c9d99f-6816-4bd1-9163-9f100131119e/11KnockoutJS_2MB_ch9.wmv" expression="full" duration="1210" fileSize="1" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/119e/e6c9d99f-6816-4bd1-9163-9f100131119e/11KnockoutJS_ch9.mp3" expression="full" duration="1210" fileSize="9686149" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/119e/e6c9d99f-6816-4bd1-9163-9f100131119e/11KnockoutJS_ch9.wma" expression="full" duration="1210" fileSize="9804027" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/119e/e6c9d99f-6816-4bd1-9163-9f100131119e/11KnockoutJS_high_ch9.mp4" expression="full" duration="1210" fileSize="332669552" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/119e/e6c9d99f-6816-4bd1-9163-9f100131119e/11KnockoutJS_low_ch9.mp4" expression="full" duration="1210" fileSize="39325258" type="video/mp4" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/119e/e6c9d99f-6816-4bd1-9163-9f100131119e/11KnockoutJS_2MB_ch9.wmv" length="36761129" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Brandon Satrom</dc:creator>
      <itunes:author>Brandon Satrom</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/posts/ASPNET-MVC-With-Community-Tools-Part-11-KnockoutJS/rss</wfw:commentRss>
      <category>ASP.NET</category>
      <category>ASP.NET MVC</category>
      <category>JavaScript</category>
      <category>MVC</category>
      <category>MVVM</category>
      <category>OSS</category>
    </item>
  <item>
      <title>Silverlight TV 73: What&#39;s New in MVVM Light</title>
      <description><![CDATA[ <p>Laurent Bugnion of IdentityMine appears on the show to discuss his latest additions to the MVVM Light toolkit for both Silverlight, WPF,&nbsp;and Windows Phone.&nbsp;Laurent covers&nbsp;several new features, including IoC (Inversion of Control) containers, new ways to implement INotifyPropertyChanged using lambdas and/or reflection, and changes to the Messenger class.</p><p>Relevant links:</p><ul><ul><li><p><a href="http://johnpapa.net/">John's blog</a> and on Twitter (<a href="http://twitter.com/john_papa">@john_papa</a>)</p></li><li><p><a href="http://www.galasoft.ch/">Laurent's blog</a> and on Twitter (<a href="http://twitter.com/lbugnion">@lbugnion</a>)</p></li><li>Get <a href="http://www.galasoft.ch/mvvm/">MVVM Light </a></li></ul></ul><p><span>Laurent's videos</span></p><ul><ul><li><span><a href="http://www.galasoft.ch/mvvmvideo1">Understanding the MVVM pattern at MIX10&nbsp;</a></span></li><li><span><a href="http://www.galasoft.ch/mvvmvideo2">Deep Dive MVVM at MIX 11&nbsp;</a>&nbsp;</span></li></ul></ul><p>Follow <a href="http://www.twitter.com/SilverlightTV" shape="rect">@SilverlightTV</a> on Twitter for the latest updates.</p><p>&nbsp;</p><p>&nbsp;</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:34ed061ccf04460f8de49ee6017ccf47">]]></description>
      <comments>http://channel9.msdn.com/Shows/SilverlightTV/Silverlight-TV-73-Whats-New-in-MVVM-Light</comments>
      <itunes:summary> Laurent Bugnion of IdentityMine appears on the show to discuss his latest additions to the MVVM Light toolkit for both Silverlight, WPF,&amp;nbsp;and Windows Phone.&amp;nbsp;Laurent covers&amp;nbsp;several new features, including IoC (Inversion of Control) containers, new ways to implement INotifyPropertyChanged using lambdas and/or reflection, and changes to the Messenger class. Relevant links: John&#39;s blog and on Twitter (@john_papa) Laurent&#39;s blog and on Twitter (@lbugnion) Get MVVM Light Laurent&#39;s videos Understanding the MVVM pattern at MIX10&amp;nbsp;Deep Dive MVVM at MIX 11&amp;nbsp;&amp;nbsp;Follow @SilverlightTV on Twitter for the latest updates. &amp;nbsp; &amp;nbsp; </itunes:summary>
      <itunes:duration>1034</itunes:duration>
      <link>http://channel9.msdn.com/Shows/SilverlightTV/Silverlight-TV-73-Whats-New-in-MVVM-Light</link>
      <pubDate>Thu, 19 May 2011 16:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/SilverlightTV/Silverlight-TV-73-Whats-New-in-MVVM-Light</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/cf47/34ed061c-cf04-460f-8de4-9ee6017ccf47/sltv73_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/cf47/34ed061c-cf04-460f-8de4-9ee6017ccf47/sltv73_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/cf47/34ed061c-cf04-460f-8de4-9ee6017ccf47/sltv73_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/cf47/34ed061c-cf04-460f-8de4-9ee6017ccf47/sltv73_2MB_ch9.wmv" expression="full" duration="1034" fileSize="270256583" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/cf47/34ed061c-cf04-460f-8de4-9ee6017ccf47/sltv73_ch9.mp3" expression="full" duration="1034" fileSize="8277394" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/cf47/34ed061c-cf04-460f-8de4-9ee6017ccf47/sltv73_ch9.wma" expression="full" duration="1034" fileSize="8371119" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/cf47/34ed061c-cf04-460f-8de4-9ee6017ccf47/sltv73_ch9.wmv" expression="full" duration="1034" fileSize="173579637" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/cf47/34ed061c-cf04-460f-8de4-9ee6017ccf47/sltv73_high_ch9.mp4" expression="full" duration="1034" fileSize="373041938" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/cf47/34ed061c-cf04-460f-8de4-9ee6017ccf47/sltv73_low_ch9.mp4" expression="full" duration="1034" fileSize="81521354" type="video/mp4" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/cf47/34ed061c-cf04-460f-8de4-9ee6017ccf47/sltv73.ism/manifest" expression="full" duration="1034" fileSize="8330" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/cf47/34ed061c-cf04-460f-8de4-9ee6017ccf47/sltv73_ch9.wmv" length="173579637" type="video/x-ms-wmv"></enclosure>
      <dc:creator>John Papa</dc:creator>
      <itunes:author>John Papa</itunes:author>
      <slash:comments>7</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/SilverlightTV/Silverlight-TV-73-Whats-New-in-MVVM-Light/RSS</wfw:commentRss>
      <category>IdentityMine</category>
      <category>MVVM</category>
      <category>Windows Phone</category>
    </item>
  <item>
      <title>Currency Converter v2 – Now on Caffeine!</title>
      <description><![CDATA[ <p>Taking user feedback about the application into consideration, it’s time to make some improvements! J</p><p>Here are some of the reports we got from the users:</p><ul><li>The application is too slow when exchanging currencies </li><li>It uses too much data traffic/should cache the exchange rates </li><li>It doesn’t work for some currencies </li><li>The results are inaccurate/using out-of-date exchange rates </li></ul><p>So, what we can see from these comments is that we need a better data source, and that we should use some sort of caching mechanism…</p><p>I think I’ll go ahead and put some coffee on to boil!</p><h3>To Bing or not to Bing…</h3><p>The first version of Currency Converter used Bing to make the exchanges, which resulted in some of the reports you read above!</p><p>For this version, however, we decided to use MSN Money because it has more accurate and up-to-date data, and because it works every time no matter the currency!</p><p>MSN Money provides a very nice page on which we can see current currency exchange rates in relation to US Dollars; just open your Internet Explorer 8.0&#43; and navigate to the following URL:</p><p><a href="http://moneycentral.msn.com/investor/market/exchangerates.aspx">http://moneycentral.msn.com/investor/market/exchangerates.aspx</a></p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/image%5B5%5D.png"><img title="image" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/image_thumb%5B3%5D.png" alt="image" width="589" height="442" border="0"></a></p><p>As you can see here, we have all the data we need to convert from X to USD and from USD to X, and we can even convert from X to USD to Y.</p><p>So, why not just get all of this data on a single request, cache it, and use it offline to make the currency exchanges? J</p><p>Like before, we will retrieve the data we require from the page HTML by using Regular Expressions. To do so, open Internet Explorer Developer Tools (press F12), use the “Select element by click” option (Ctrl &#43; B), and click on the “Argentine Peso” text; you’ll get something looking like this:</p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/image%5B10%5D.png"><img title="image" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/image_thumb%5B6%5D.png" alt="image" width="589" height="442" border="0"></a></p><p>Using the information above, we can see a pattern in the code:</p><p><strong>HTML<br></strong><pre class="brush: html">&lt;tr&gt;
    &lt;td&gt;CURRENCY&lt;/td&gt;
    &lt;td style=”text-align:right”&gt;&lt;a SOMETHING&gt;VALUE_IN_USD&lt;/a&gt;&lt;/td&gt;
    &lt;td style=”text-align:right”&gt;&lt;a SOMETHING&gt;VALUE_PER_USD&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;</pre></p><p>Now that we know the pattern, we are now able to build this regular expression:</p><p><strong>C#<br></strong><pre class="brush: csharp">private static Regex _resultRegex = 
    new Regex(&quot;&lt;tr&gt;&lt;td&gt;(?&lt;currency&gt;[^&lt;&gt;]&#43;)&lt;/td&gt;&lt;td style=&quot;&quot;text-align:right&quot;&quot;&gt;.*?&gt;(?&lt;value&gt;[0-9.,]&#43;)&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&quot;);</pre></p><p>Applying this Regular Expression to the retrieved HTML will allows us to get every row matching it, and retrieve the Currency Name and the “Per USD” Exchange Rate!</p><h3>Time for some coding</h3><p>Now that we know how to get all the currency rates from a single URL, it’s time to make the necessary changes to our code to accommodate the new data!</p><p>Like the previous article, we will maintain the MVVM pattern, showing the coding from the pattern’s bottom (Model) to the very top (View).</p><h4>The (Re)Model</h4><p>Here are the changes we need to make on our model in order to accommodate the retrieved and cached currency rates:</p><ul><li>Set each currency to save its exchange rate and last update </li><li>Mark the base currency (US Dollar), giving it an exchange rate of 1.0 (trying to convert from USD to USD? Right…) </li><li>Add an “Update Exchange Rates” operation to the service </li></ul><p>And here is the full Model, with the changes in yellow:</p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/image%5B13%5D.png"><img title="image" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/image_thumb%5B7%5D.png" alt="image" width="547" height="402" border="0"></a></p><p><strong>C#<br></strong><pre class="brush: csharp">using System;public interface ICurrencyExchangeService
{
    ICurrency[] Currencies { get; }    ICurrency BaseCurrency { get; }    void ExchangeCurrency(double amount, ICurrency fromCurrency, ICurrency toCurrency, Action&lt;ICurrencyExchangeResult&gt; callback);    void UpdateCachedExchangeRates(Action&lt;CachedExchangeRatesUpdateResult&gt; callback, object state);
}public interface ICurrency
{
    string Name { get; }    double CachedExchangeRate { get; set; }    DateTime CachedExchangeRateUpdatedOn { get; set; }
}public interface ICurrencyExchangeResult
{
    Exception Error { get; }    string ExchangedCurrency { get; }    double ExchangedAmount { get; }
}public interface ICachedExchangeRatesUpdateResult
{
    Exception Error { get; }    object State { get; }
}</pre></p><p>The ICurrencyExchangeService now has a new BaseCurrency property that we will set with the “US Dollar” currency instance, as well as an UpdateCachedExchangeRates method to update all the exchange rates.</p><p>For the ICurrency, we have two new properties: the CachedExchangeRate to store the currency exchange rate value, and the CachedExchangeRateUpdatedOn for the last update date.</p><p>A new interface called ICachedExchangeRatesUpdateResult has been added in order to return any exception thrown by the ICurrencyExchangeService.UpdateCachedExchangeRates method asynchronous execution to the caller.</p><p>Now let’s look at the interface’s implementation:</p><p><a href="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/image%5B16%5D.png"><img title="image" src="http://files.channel9.msdn.com/wlwimages/1932b237046e4743a4e79e6800c0220f/image_thumb%5B8%5D.png" alt="image" width="589" height="392" border="0"></a></p><p>The first new thing to take note of is that we now have a CurrencyBase abstract class. From here, we extend the MsnMoneyCurrency class, adding a single Id property to store the numeric Id for the Currency found in MSN Money.</p><p>Next is the MsnMoneyV2CurrencyExchangeService, a direct implementation of the ICurrencyExchangeService.</p><p>Unlike BingCurrencyExchangeService from the previous version, notice that MsnMoneyV2CurrencyExchangeService does not extend the CurrencyExchangeServiceBase, and that it only requests online data in the UpdateCachedExchangeRates method and not on every ExchangeCurrency method call.</p><p>Here is the code for these classes:</p><p><strong>C#<br></strong><pre class="brush: csharp">public class MsnMoneyV2CurrencyExchangeService : ICurrencyExchangeService
{
    private const string MsnMoneyUrl = &quot;<a href="http://moneycentral.msn.com/investor/market/exchangerates.aspx?selRegion=1&amp;selCurrency=1&quot;;">http://moneycentral.msn.com/investor/market/exchangerates.aspx?selRegion=1&amp;selCurrency=1&quot;;</a>    #region Static Globals    private static Regex _resultRegex = new Regex(@&quot;&lt;tr&gt;&lt;td&gt;(?&lt;currency&gt;[^&lt;&gt;]&#43;)&lt;/td&gt;&lt;td style=&quot;&quot;text-align:right&quot;&quot;&gt;.*?&gt;(?&lt;value&gt;[0-9.,]&#43;)&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&quot;);    private static ICurrency[] _currencies = new ICurrency[] { 
        //The currencies exposed by MSN Money will go here
    };    #endregion    #region Properties    public ICurrency[] Currencies
    {
        get
        {
            return _currencies;
        }
    }    public ICurrency BaseCurrency { get; protected set; }    #endregion    public MsnMoneyV2CurrencyExchangeService()
    {
        BaseCurrency = Currencies.First(x =&gt; x.Name == &quot;US Dollar&quot;);
    }    public void ExchangeCurrency(double amount, ICurrency fromCurrency, ICurrency toCurrency, bool useCachedExchangeRates, Action&lt;ICurrencyExchangeResult&gt; callback, object state)
    {
        if (useCachedExchangeRates)
        {
            try
            {
                ExchangeCurrency(amount, fromCurrency, toCurrency, callback, state);                return;
            }
            catch
            {
            }
        }        UpdateCachedExchangeRates(result =&gt;
        {
            if (result.Error != null)
            {
                callback(new CurrencyExchangeResult(result.Error, state));                return;
            }            try
            {
                ExchangeCurrency(amount, fromCurrency, toCurrency, callback, state);
            }
            catch (Exception ex)
            {
                callback(new CurrencyExchangeResult(ex, state));
            }
        }, state);
    }    private void ExchangeCurrency(double amount, ICurrency fromCurrency, ICurrency toCurrency, Action&lt;ICurrencyExchangeResult&gt; callback, object state)
    {
        var fromExchangeRate = fromCurrency.CachedExchangeRate;
        var toExchangeRate = toCurrency.CachedExchangeRate;
        var timestamp = DateTime.Now;        if (fromCurrency == BaseCurrency)
            fromExchangeRate = 1.0;
        else
        {
            if (timestamp &gt; fromCurrency.CachedExchangeRateUpdatedOn)
                timestamp = fromCurrency.CachedExchangeRateUpdatedOn;
        }        if (toCurrency == BaseCurrency)
            toExchangeRate = 1.0;
        else
        {
            if (timestamp &gt; toCurrency.CachedExchangeRateUpdatedOn)
                timestamp = toCurrency.CachedExchangeRateUpdatedOn;
        }        if (fromExchangeRate &gt; 0 &amp;&amp; toExchangeRate &gt; 0)
        {
            var exchangedAmount = amount / fromExchangeRate * toExchangeRate;            callback(new CurrencyExchangeResult(toCurrency, exchangedAmount, timestamp, state));
        }
        else
            throw new Exception(&quot;Conversion not returned!&quot;);
    }    public void UpdateCachedExchangeRates(Action&lt;CachedExchangeRatesUpdateResult&gt; callback, object state)
    {
        var request = HttpWebRequest.Create(MsnMoneyUrl);        request.BeginGetResponse(ar =&gt;
        {
            try
            {
                var response = (HttpWebResponse)request.EndGetResponse(ar);                if (response.StatusCode == HttpStatusCode.OK)
                {
                    string responseContent;                    using (var streamReader = new StreamReader(response.GetResponseStream()))
                    {
                        responseContent = streamReader.ReadToEnd();
                    }                    foreach (var match in _resultRegex.Matches(responseContent).Cast&lt;Match&gt;())
                    {
                        var currencyName = match.Groups[&quot;currency&quot;].Value.Trim();                        var currency = Currencies.FirstOrDefault(x =&gt; string.Compare(x.Name, currencyName, StringComparison.InvariantCultureIgnoreCase) == 0);                        if (currency != null)
                        {
                            currency.CachedExchangeRate = double.Parse(match.Groups[&quot;value&quot;].Value, CultureInfo.InvariantCulture);
                            currency.CachedExchangeRateUpdatedOn = DateTime.Now;
                        }
                    }                    callback(new CachedExchangeRatesUpdateResult(ar.AsyncState));
                }
                else
                {
                    throw new Exception(string.Format(&quot;Http Error: ({0}) {1}&quot;,
                        response.StatusCode,
                        response.StatusDescription));
                }
            }
            catch (Exception ex)
            {
                callback(new CachedExchangeRatesUpdateResult(ex, ar.AsyncState));
            }
        }, state);
    }
}</pre></p><p>Here’s how it works: when the ExchangeCurrency method is called, we pass a parameter (useCachedExchangeRates) that instructs the method to use (or not!) the previously cached exchange rates.</p><p>Next, make the exchange operation and return the results. If the operation throws an exception, or if we didn’t allow for cached exchange rates usage, call the UpdateCachedExchangeRates to update the exchange rates and then run the exchange operation with the new data.</p><p>And that’s about it for the Model!</p><h4>The ViewModel</h4><p>We maintained the full ViewModel from the previous version, but added some new functionality to it. Here’s the coding (main changes are in yellow):</p><p><strong>C#<br></strong><pre class="brush: csharp">public class MainViewModel : INotifyPropertyChanged
{
    //Full previous code    #region Properties    [IgnoreDataMember]
    public ICurrencyExchangeResult Result
    {
        get
        {
            return _result;
        }
        protected set
        {
            if (_result == value)
                return;            _result = value;            RaisePropertyChanged(&quot;Result&quot;);
            RaisePropertyChanged(&quot;ExchangedCurrency&quot;);
            RaisePropertyChanged(&quot;ExchangedAmount&quot;);
            RaisePropertyChanged(&quot;ExchangedTimeStamp&quot;);
        }
    }    [IgnoreDataMember]
    public string ExchangedTimeStamp
    {
        get
        {
            if (_result == null)
                return string.Empty;            return string.Format(&quot;Data freshness:\n{0} at {1}&quot;,
                _result.Timestamp.ToShortDateString(),
                _result.Timestamp.ToShortTimeString());
        }
    }    [DataMember]
    public CurrencyCachedExchangeRate[] CurrenciesCachedExchangeRates
    {
        get
        {
            return Currencies
                .Select(x =&gt; new CurrencyCachedExchangeRate()
                {
                    CurrencyIndex = Array.IndexOf(Currencies, x),
                    CachedExchangeRate = x.CachedExchangeRate,
                    CachedExchangeRateUpdatedOn = x.CachedExchangeRateUpdatedOn
                })
                .ToArray();
        }
        set
        {
            foreach (var currencyData in value)
            {
                if (currencyData.CurrencyIndex &gt;= Currencies.Length)
                    continue;                var currency = Currencies[currencyData.CurrencyIndex];                currency.CachedExchangeRate = currencyData.CachedExchangeRate;
                currency.CachedExchangeRateUpdatedOn = currencyData.CachedExchangeRateUpdatedOn;
            }
        }
    }    #endregion    //Full previous code    public void ExchangeCurrency()
    {
        if (Busy)
            return;        BusyMessage = &quot;Exchanging amount...&quot;;        _currencyExchangeService.ExchangeCurrency(_amount, _fromCurrency, _toCurrency, true, CurrencyExchanged, null);
    }    public void UpdateCachedExchangeRates()
    {
        if (Busy)
            return;        BusyMessage = &quot;Updating cached exchange rates...&quot;;        _currencyExchangeService.UpdateCachedExchangeRates(ExchangeRatesUpdated, null);
    }    private void CurrencyExchanged(ICurrencyExchangeResult result)
    {
        InvokeOnUiThread(() =&gt;
        {
            Result = result;            BusyMessage = null;            if (result.Error != null)
            {
                if (System.Diagnostics.Debugger.IsAttached)
                    System.Diagnostics.Debugger.Break();
                else
                    MessageBox.Show(&quot;An error has ocorred!&quot;, &quot;Error&quot;, MessageBoxButton.OK);
            }
        });
    }    private void ExchangeRatesUpdated(ICachedExchangeRatesUpdateResult result)
    {
        InvokeOnUiThread(() =&gt;
        {
            BusyMessage = null;            Save();            if (result.Error != null)
            {
                if (System.Diagnostics.Debugger.IsAttached)
                    System.Diagnostics.Debugger.Break();
                else
                    MessageBox.Show(&quot;An error has ocorred!&quot;, &quot;Error&quot;, MessageBoxButton.OK);
            }
        });
    }    private void InvokeOnUiThread(Action action)
    {
        var dispatcher = System.Windows.Deployment.Current.Dispatcher;        if (dispatcher.CheckAccess())
            action();
        else
            dispatcher.BeginInvoke(action);
    }    #region Auxiliary Classes    public class CurrencyCachedExchangeRate
    {
        [DataMember]
        public int CurrencyIndex { get; set; }        [DataMember]
        public double CachedExchangeRate { get; set; }        [DataMember]
        public DateTime CachedExchangeRateUpdatedOn { get; set; }
    }    #endregion
}</pre></p><p>The first thing you will notice here is a new ExchangedTimeStamp read-only property that feeds the interface with the date string to denote when the used currency data was obtained. The interface is notified that this property value has changed when the Result property value is also changed.</p><p>Further down there’s another new property, CurrenciesCachedExchangeRates, that stores the cached exchange rates. For this to work, we have an auxiliary class called CurrencyCachedExchangeRate that stores the currency index along with the exchange rate as well as the update timestamp.</p><p>The UpdateCachedExchangeRates method allows users to manually force an update over the cached exchange rates.</p><p>The CurrencyExchanged and ExchangeRatesUpdated callbacks use the InvokeOnUiThread method to make sure that their codes run properly on the UI thread.</p><h4>The View</h4><p>Two simple changes have been made in the MainPage.xaml (our main View): an area on the screen has been added to show the exchange operation result timestamp, and a menu option has been added to force a full exchange rate update.</p><p>To make the first change, add a simple TextArea on the bottom StackPanel and bind it to the ExchangedTimeStamp property of the ViewModel:</p><p><strong>XAML<br></strong><pre class="brush: text">&lt;StackPanel x:Name=&quot;ContentPanel&quot; Grid.Row=&quot;1&quot; Margin=&quot;12,0,12,0&quot;&gt;
    &lt;TextBlock Margin=&quot;12,0,0,-5&quot; Style=&quot;{StaticResource PhoneTextSubtleStyle}&quot;&gt;Amount&lt;/TextBlock&gt;
    &lt;TextBox InputScope=&quot;TelephoneNumber&quot; Text=&quot;{Binding Amount, Mode=TwoWay, ValidatesOnExceptions=True, NotifyOnValidationError=True}&quot; /&gt;
    &lt;TextBlock Margin=&quot;12,10,0,-5&quot; Style=&quot;{StaticResource PhoneTextSubtleStyle}&quot;&gt;From&lt;/TextBlock&gt;
    &lt;toolkit:ListPicker ItemsSource=&quot;{Binding Currencies}&quot; SelectedItem=&quot;{Binding FromCurrency, Mode=TwoWay}&quot; FullModeHeader=&quot;FROM CURRENCY&quot; Style=&quot;{StaticResource CurrencyListPicker}&quot; /&gt;
    &lt;TextBlock Margin=&quot;12,10,0,-5&quot; Style=&quot;{StaticResource PhoneTextSubtleStyle}&quot;&gt;To&lt;/TextBlock&gt;
    &lt;toolkit:ListPicker ItemsSource=&quot;{Binding Currencies}&quot; SelectedItem=&quot;{Binding ToCurrency, Mode=TwoWay}&quot; FullModeHeader=&quot;TO CURRENCY&quot; Style=&quot;{StaticResource CurrencyListPicker}&quot; /&gt;
    &lt;StackPanel&gt;
        &lt;TextBlock Style=&quot;{StaticResource PhoneTextGroupHeaderStyle}&quot; Text=&quot;{Binding ExchangedCurrency}&quot;&gt;&lt;/TextBlock&gt;
        &lt;TextBlock Margin=&quot;25, 0, 0, 0&quot; Style=&quot;{StaticResource PhoneTextTitle1Style}&quot; Text=&quot;{Binding ExchangedAmount}&quot;&gt;&lt;/TextBlock&gt;
        &lt;TextBlock Style=&quot;{StaticResource PhoneTextSubtleStyle}&quot; Text=&quot;{Binding ExchangedTimeStamp}&quot; TextWrapping=&quot;Wrap&quot; TextAlignment=&quot;Right&quot;&gt;&lt;/TextBlock&gt;
    &lt;/StackPanel&gt;
&lt;/StackPanel&gt;</pre></p><p>As for the “update exchange rates” menu option, add a new ApplicationBarMenuItem to the MenuItems collection, set the appropriate text, and add a handler for the click event:</p><p><strong>XAML<br></strong><pre class="brush: text">&lt;phone:PhoneApplicationPage.ApplicationBar&gt;
    &lt;shell:ApplicationBar IsVisible=&quot;True&quot; IsMenuEnabled=&quot;True&quot;&gt;
        &lt;shell:ApplicationBarIconButton IconUri=&quot;/Images/appbar.money.usd.png&quot; Text=&quot;Exchange&quot; Click=&quot;ExchangeIconButton_Click&quot; /&gt;
        &lt;shell:ApplicationBar.MenuItems&gt;
            &lt;shell:ApplicationBarMenuItem Text=&quot;update exchange rates&quot; Click=&quot;UpdateExchangeRatesMenuItem_Click&quot; /&gt;
            &lt;shell:ApplicationBarMenuItem Text=&quot;about&quot; Click=&quot;AboutMenuItem_Click&quot; /&gt;
        &lt;/shell:ApplicationBar.MenuItems&gt;
    &lt;/shell:ApplicationBar&gt;
&lt;/phone:PhoneApplicationPage.ApplicationBar&gt;</pre></p><p>Now, all that is missing is implementing the UpdateExchangeRatesMenuItem_To do so, click the event handler in the MainPage.xaml.cs:</p><p><strong>C#<br></strong><pre class="brush: csharp">private void UpdateExchangeRatesMenuItem_Click(object sender, EventArgs e)
{
    var viewModel = DataContext as MainViewModel;    if (viewModel == null)
        return;    Dispatcher.BeginInvoke(() =&gt;
    {
        viewModel.UpdateCachedExchangeRates();
    });
}</pre></p><h3>Conclusion</h3><p>The bottom line is that your application is as good as the data source you use. By utilizing a new (better) data source, some really simple changes to the code, we now have the Currency Converter—faster than ever!</p><p>And just in time: the coffee is ready!</p><h3>About The Author</h3><p>Pedro Lamas is a Portuguese .Net Senior Developer on Microsoft’s Partner DevScope, where he works with all the cool stuff that Microsoft .Net has to offer its developers!</p><p>He’s also one of the administrators of PocketPT.net, the largest Windows Phone Portuguese community, where his contribution is mostly visible on support for Windows Phone developers, and as a speaker for Windows Phone Development in Microsoft Portugal Events.</p><p>You can read his <a href="http://www.pedrolamas.com">blog</a> or contact him via <a href="http://twitter.com/pedrolamas">twitter</a>!</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:f1949595c4fb4be1924f9ed4011b1714">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/articles/Currency-Converter-v2--Now-on-Caffeine</comments>
      <itunes:summary> Taking user feedback about the application into consideration, it’s time to make some improvements! J Here are some of the reports we got from the users: The application is too slow when exchanging currencies It uses too much data traffic/should cache the exchange rates It doesn’t work for some currencies The results are inaccurate/using out-of-date exchange rates So, what we can see from these comments is that we need a better data source, and that we should use some sort of caching mechanism… I think I’ll go ahead and put some coffee on to boil! To Bing or not to Bing…The first version of Currency Converter used Bing to make the exchanges, which resulted in some of the reports you read above! For this version, however, we decided to use MSN Money because it has more accurate and up-to-date data, and because it works every time no matter the currency! MSN Money provides a very nice page on which we can see current currency exchange rates in relation to US Dollars; just open your Internet Explorer 8.0&amp;#43; and navigate to the following URL: http://moneycentral.msn.com/investor/market/exchangerates.aspx  As you can see here, we have all the data we need to convert from X to USD and from USD to X, and we can even convert from X to USD to Y. So, why not just get all of this data on a single request, cache it, and use it offline to make the currency exchanges? J Like before, we will retrieve the data we require from the page HTML by using Regular Expressions. To do so, open Internet Explorer Developer Tools (press F12), use the “Select element by click” option (Ctrl &amp;#43; B), and click on the “Argentine Peso” text; you’ll get something looking like this:  Using the information above, we can see a pattern in the code: HTML&amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;CURRENCY&amp;lt;/td&amp;gt;
    &amp;lt;td style=”text-align:right”&amp;gt;&amp;lt;a SOMETHING&amp;gt;VALUE_IN_USD&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;
    &amp;lt;td style=”text-align:right”&amp;gt;&amp;lt;a SOMETHING&amp;gt;VALUE_PER_USD&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt; Now th</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/articles/Currency-Converter-v2--Now-on-Caffeine</link>
      <pubDate>Mon, 02 May 2011 12:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/articles/Currency-Converter-v2--Now-on-Caffeine</guid>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/d2ef20a2-9867-4013-9399-5c9a685add18.png" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://files.channel9.msdn.com/thumbnail/79fa25a3-94ee-45da-a789-4929539801c5.png" height="165" width="220"></media:thumbnail>      
      <dc:creator>Pedro Lamas</dc:creator>
      <itunes:author>Pedro Lamas</itunes:author>
      <slash:comments>6</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/articles/Currency-Converter-v2--Now-on-Caffeine/RSS</wfw:commentRss>
      <category>MVVM</category>
      <category>Silveright</category>
      <category>Silverlight</category>
      <category>Web Services</category>
      <category>Windows Phone</category>
      <category>XAML</category>
    </item>
  <item>
      <title>Message Based Navigation for WP7 MVVM Apps</title>
      <description><![CDATA[ <p>Do you have an MVVM-based Windows Phone 7 application and you don't like having to hook into the RootFrame to navigate between pages?&nbsp; Do you wish you could just &quot;ask&quot; to navigate to a new view from your view model?&nbsp;One possible solution can be found in this screencast.</p><p>Using an message bus to process navigation messages, view models can publish messages that are then handled by a separate navigation service, successfully decoupling your view model from the Windows Phone navigation service.&nbsp;</p><p>Get the finished <a href="http://s3.amazonaws.com/slickthought/Downloads/Code/MessageBusNav.zip">source code here</a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:c816a2d37b7044bda91f9ed00178d38f">]]></description>
      <comments>http://channel9.msdn.com/posts/Message-Based-Navigation-for-WP7-MVVM-Apps</comments>
      <itunes:summary> Do you have an MVVM-based Windows Phone 7 application and you don&#39;t like having to hook into the RootFrame to navigate between pages?&amp;nbsp; Do you wish you could just &amp;quot;ask&amp;quot; to navigate to a new view from your view model?&amp;nbsp;One possible solution can be found in this screencast. Using an message bus to process navigation messages, view models can publish messages that are then handled by a separate navigation service, successfully decoupling your view model from the Windows Phone navigation service.&amp;nbsp; Get the finished source code here </itunes:summary>
      <itunes:duration>672</itunes:duration>
      <link>http://channel9.msdn.com/posts/Message-Based-Navigation-for-WP7-MVVM-Apps</link>
      <pubDate>Tue, 26 Apr 2011 13:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/posts/Message-Based-Navigation-for-WP7-MVVM-Apps</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/d38f/c816a2d3-7b70-44bd-a91f-9ed00178d38f/MVVMNav_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/d38f/c816a2d3-7b70-44bd-a91f-9ed00178d38f/MVVMNav_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/d38f/c816a2d3-7b70-44bd-a91f-9ed00178d38f/MVVMNav_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/d38f/c816a2d3-7b70-44bd-a91f-9ed00178d38f/MVVMNav_2MB_ch9.wmv" expression="full" duration="672" fileSize="41487019" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/d38f/c816a2d3-7b70-44bd-a91f-9ed00178d38f/MVVMNav_ch9.mp3" expression="full" duration="672" fileSize="5380936" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/d38f/c816a2d3-7b70-44bd-a91f-9ed00178d38f/MVVMNav_ch9.wma" expression="full" duration="672" fileSize="5445223" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/d38f/c816a2d3-7b70-44bd-a91f-9ed00178d38f/MVVMNav_ch9.wmv" expression="full" duration="672" fileSize="34873466" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/d38f/c816a2d3-7b70-44bd-a91f-9ed00178d38f/MVVMNav_high_ch9.mp4" expression="full" duration="672" fileSize="187252662" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/d38f/c816a2d3-7b70-44bd-a91f-9ed00178d38f/MVVMNav_low_ch9.mp4" expression="full" duration="672" fileSize="20353221" type="video/mp4" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/d38f/c816a2d3-7b70-44bd-a91f-9ed00178d38f/MVVMNav.ism/manifest" expression="full" duration="672" fileSize="8446" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/d38f/c816a2d3-7b70-44bd-a91f-9ed00178d38f/MVVMNav_ch9.wmv" length="34873466" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Jeff Brand</dc:creator>
      <itunes:author>Jeff Brand</itunes:author>
      <slash:comments>2</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/posts/Message-Based-Navigation-for-WP7-MVVM-Apps/rss</wfw:commentRss>
      <category>MVVM</category>
      <category>Windows Phone 7</category>
    </item>
  <item>
      <title>NYC DevReady: MVVM - Session 5 (of 5) - Leveraging MVVM Inside PRISM</title>
      <description><![CDATA[ <p>MVVM. MVVM. MVVM.&nbsp; I bet you’ve seen that acronym more than three times before? Ever wonder what it means?&nbsp; I’ll tell you: “Model View-View Model”</p><p>Ever wonder what THAT means?! <a href="http://en.wikipedia.org/wiki/Model_View_ViewModel">MVVM is a popular design pattern</a> for coding the presentation layer in both Silverlight &amp; Windows Presentation Foundation (WPF). It seems to be the rage that all the cool kids are doing these days, which means YOU should probably pay attention to it!&nbsp; Get your development skills ready for MVVM (Model View View Model Design Pattern) and build some exciting applications for WPF, Silverlight or Windows Phone.</p><p>On March 21st, 2011 in New York City, Microsoft hosted a DevReady MVVM event along with DevExpress. This was a free full day training event.&nbsp; We recorded the event, and now it is here on Channel 9 for your learning pleasure!</p><p>Pop on some headphones and listen &amp; learn at your own pace!</p><p>The sessions were delivered by Microsoft MVP <a href="www.dotnetdude.com">Miguel Castro</a>, Microsoft Developer Evangelist <a href="http://smallandmighty.net/">Dani Diaz</a>, and DevExpress Tech Evangelist <a href="http://community.devexpress.com/blogs/seth/default.aspx">Seth Juarez</a>.</p><p>There are six sessions in total:</p><blockquote><p><strong><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-1-of-5-Demystifying-XAML">Demystifying XAML: Achieving Your Moment Of Clarity</a></strong></p><p>Still find XAML intimidating? Well, throw in MVVM and certain design practices and it can get worse. But the truth is that it isn't as complicated as it appears to be. In this short session, I'll give you the basics of how XAML works. I'll cover its syntax, control usage, the visual tree, and the scariest animal of all, binding. I'll give you your moment of clarity, I promise.</p><p><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-2-of-5-Programming-with-MVVM-Part-1"><strong>Programming with MVVM - </strong><strong>Part 1</strong></a></p><p>WPF overwhelmed us with the most powerful data binding ever released in a development platform. It seemed there was so much to learn in order to use it, but it really isn't that complicated. However, to use it to its full potential, you really do need to introduce the Model-View-ViewModel pattern. The ideas and goal around this pattern seem to vary from person to person, but the one thing that they all share is that it provides a point of binding for XAML pages. In this session, I'll show you what MVVM is and how to use it and what to put in it, in order to get maximum potential out of XAML binding.</p><p><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-3-of-5-Programming-with-MVVM-Part-2"><strong>Programming with MVVM - </strong><strong>Part 2</strong></a></p><p>Now that you’ve sat through my MVVM session (what? you didn’t?), I want to take it to the next level by continuing your studies into this awesome and necessary pattern. In this session, I’ll cover more advanced topics you use when programming using Model-View-ViewModel. These include Design-Time Data, ViewModel-First, Validation, and the ever-so-popular MVVM Frameworks. There I’ll actually show and give you a small MVVM framework with which to launch your development. Though I will do a brief review on the fundamentals and goals of MVVM and its usage, this session does expect a little bit of knowledge on the pattern from you.</p><p><strong><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-4-of-5-How-Using-MVVM-Saved-My-Butt-and-How-Laziness-Came-Back-To-Bite-Me">How Using MVVM Saved My Butt and How Laziness Came Back To Bite Me</a></strong></p><p>Get a preview of upcoming Visual Studio features that will allow you to share code between Microsoft .NET platforms. You’ll learn how to structure applications to maximize the amount of shared code, how to write an app that’s used across Silverlight Desktop and Windows Phone, and how to build business logic and helper functions that work across all 3 Screens plus the cloud.</p><p><strong>Leveraging MVVM Inside PRISM</strong></p><p>Understanding an architecture pattern like MVVM is great but many companies invest in third-party control suites to make their application development less painful. In this session, you'll learn how to leverage some great controls from DevExpress in conjunction with MVVM to build applications in both WPF and Silverlight.</p></blockquote> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:ea4228679b1346afb2919ebd015d3278">]]></description>
      <comments>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-5-of-5-Leveraging-MVVM-Inside-PRISM</comments>
      <itunes:summary> MVVM. MVVM. MVVM.&amp;nbsp; I bet you’ve seen that acronym more than three times before? Ever wonder what it means?&amp;nbsp; I’ll tell you: “Model View-View Model” Ever wonder what THAT means?! MVVM is a popular design pattern for coding the presentation layer in both Silverlight &amp;amp; Windows Presentation Foundation (WPF). It seems to be the rage that all the cool kids are doing these days, which means YOU should probably pay attention to it!&amp;nbsp; Get your development skills ready for MVVM (Model View View Model Design Pattern) and build some exciting applications for WPF, Silverlight or Windows Phone. On March 21st, 2011 in New York City, Microsoft hosted a DevReady MVVM event along with DevExpress. This was a free full day training event.&amp;nbsp; We recorded the event, and now it is here on Channel 9 for your learning pleasure! Pop on some headphones and listen &amp;amp; learn at your own pace! The sessions were delivered by Microsoft MVP Miguel Castro, Microsoft Developer Evangelist Dani Diaz, and DevExpress Tech Evangelist Seth Juarez. There are six sessions in total: Demystifying XAML: Achieving Your Moment Of Clarity Still find XAML intimidating? Well, throw in MVVM and certain design practices and it can get worse. But the truth is that it isn&#39;t as complicated as it appears to be. In this short session, I&#39;ll give you the basics of how XAML works. I&#39;ll cover its syntax, control usage, the visual tree, and the scariest animal of all, binding. I&#39;ll give you your moment of clarity, I promise. Programming with MVVM - Part 1 WPF overwhelmed us with the most powerful data binding ever released in a development platform. It seemed there was so much to learn in order to use it, but it really isn&#39;t that complicated. However, to use it to its full potential, you really do need to introduce the Model-View-ViewModel pattern. The ideas and goal around this pattern seem to vary from person to person, but the one thing that they all share is that it provides a point of binding for XAM</itunes:summary>
      <itunes:duration>4674</itunes:duration>
      <link>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-5-of-5-Leveraging-MVVM-Inside-PRISM</link>
      <pubDate>Wed, 06 Apr 2011 13:20:34 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-5-of-5-Leveraging-MVVM-Inside-PRISM</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/3278/ea422867-9b13-46af-b291-9ebd015d3278/NYCDRMVVMS5_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/3278/ea422867-9b13-46af-b291-9ebd015d3278/NYCDRMVVMS5_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/3278/ea422867-9b13-46af-b291-9ebd015d3278/NYCDRMVVMS5_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/3278/ea422867-9b13-46af-b291-9ebd015d3278/NYCDRMVVMS5_2MB_ch9.wmv" expression="full" duration="4674" fileSize="209882631" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/3278/ea422867-9b13-46af-b291-9ebd015d3278/NYCDRMVVMS5_ch9.mp3" expression="full" duration="4674" fileSize="37396665" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/3278/ea422867-9b13-46af-b291-9ebd015d3278/NYCDRMVVMS5_ch9.wma" expression="full" duration="4674" fileSize="37810317" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/3278/ea422867-9b13-46af-b291-9ebd015d3278/NYCDRMVVMS5_high_ch9.mp4" expression="full" duration="4674" fileSize="1185337337" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/3278/ea422867-9b13-46af-b291-9ebd015d3278/NYCDRMVVMS5_low_ch9.mp4" expression="full" duration="4674" fileSize="78856791" type="video/mp4" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/3278/ea422867-9b13-46af-b291-9ebd015d3278/NYCDRMVVMS5_2MB_ch9.wmv" length="209882631" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Peter Laudati</dc:creator>
      <itunes:author>Peter Laudati</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-5-of-5-Leveraging-MVVM-Inside-PRISM/rss</wfw:commentRss>
      <category>MVVM</category>
      <category>Silverlight</category>
      <category>Windows Phone 7</category>
      <category>WPF</category>
      <category>New York City</category>
    </item>
  <item>
      <title>NYC DevReady: MVVM - Session 4 (of 5) - How Using MVVM Saved My Butt and How Laziness Came Back To Bite Me</title>
      <description><![CDATA[ <p>MVVM. MVVM. MVVM.&nbsp; I bet you’ve seen that acronym more than three times before? Ever wonder what it means?&nbsp; I’ll tell you: “Model View-View Model”</p><p>Ever wonder what THAT means?! <a href="http://en.wikipedia.org/wiki/Model_View_ViewModel">MVVM is a popular design pattern</a> for coding the presentation layer in both Silverlight &amp; Windows Presentation Foundation (WPF). It seems to be the rage that all the cool kids are doing these days, which means YOU should probably pay attention to it!&nbsp; Get your development skills ready for MVVM (Model View View Model Design Pattern) and build some exciting applications for WPF, Silverlight or Windows Phone.</p><p>On March 21st, 2011 in New York City, Microsoft hosted a DevReady MVVM event along with DevExpress. This was a free full day training event.&nbsp; We recorded the event, and now it is here on Channel 9 for your learning pleasure!</p><p>Pop on some headphones and listen &amp; learn at your own pace!</p><p>The sessions were delivered by Microsoft MVP <a href="www.dotnetdude.com">Miguel Castro</a>, Microsoft Developer Evangelist <a href="http://smallandmighty.net/">Dani Diaz</a>, and DevExpress Tech Evangelist <a href="http://community.devexpress.com/blogs/seth/default.aspx">Seth Juarez</a>.</p><p>There are six sessions in total:</p><blockquote><p><strong><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-1-of-5-Demystifying-XAML">Demystifying XAML: Achieving Your Moment Of Clarity</a></strong></p><p>Still find XAML intimidating? Well, throw in MVVM and certain design practices and it can get worse. But the truth is that it isn't as complicated as it appears to be. In this short session, I'll give you the basics of how XAML works. I'll cover its syntax, control usage, the visual tree, and the scariest animal of all, binding. I'll give you your moment of clarity, I promise.</p><p><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-2-of-5-Programming-with-MVVM-Part-1"><strong>Programming with MVVM - </strong><strong>Part 1</strong></a></p><p>WPF overwhelmed us with the most powerful data binding ever released in a development platform. It seemed there was so much to learn in order to use it, but it really isn't that complicated. However, to use it to its full potential, you really do need to introduce the Model-View-ViewModel pattern. The ideas and goal around this pattern seem to vary from person to person, but the one thing that they all share is that it provides a point of binding for XAML pages. In this session, I'll show you what MVVM is and how to use it and what to put in it, in order to get maximum potential out of XAML binding.</p><p><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-3-of-5-Programming-with-MVVM-Part-2"><strong>Programming with MVVM - </strong><strong>Part 2</strong></a></p><p>Now that you’ve sat through my MVVM session (what? you didn’t?), I want to take it to the next level by continuing your studies into this awesome and necessary pattern. In this session, I’ll cover more advanced topics you use when programming using Model-View-ViewModel. These include Design-Time Data, ViewModel-First, Validation, and the ever-so-popular MVVM Frameworks. There I’ll actually show and give you a small MVVM framework with which to launch your development. Though I will do a brief review on the fundamentals and goals of MVVM and its usage, this session does expect a little bit of knowledge on the pattern from you.</p><p><strong>How Using MVVM Saved My Butt and How Laziness Came Back To Bite Me</strong></p><p>Get a preview of upcoming Visual Studio features that will allow you to share code between Microsoft .NET platforms. You’ll learn how to structure applications to maximize the amount of shared code, how to write an app that’s used across Silverlight Desktop and Windows Phone, and how to build business logic and helper functions that work across all 3 Screens plus the cloud.</p><p><strong><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-5-of-5-Leveraging-MVVM-Inside-PRISM">Leveraging MVVM Inside PRISM</a></strong></p><p>Understanding an architecture pattern like MVVM is great but many companies invest in third-party control suites to make their application development less painful. In this session, you'll learn how to leverage some great controls from DevExpress in conjunction with MVVM to build applications in both WPF and Silverlight.</p></blockquote> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:f9ec0b9d6fcd45249f649ebd015b42d7">]]></description>
      <comments>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-4-of-5-How-Using-MVVM-Saved-My-Butt-and-How-Laziness-Came-Back-To-Bite-Me</comments>
      <itunes:summary> MVVM. MVVM. MVVM.&amp;nbsp; I bet you’ve seen that acronym more than three times before? Ever wonder what it means?&amp;nbsp; I’ll tell you: “Model View-View Model” Ever wonder what THAT means?! MVVM is a popular design pattern for coding the presentation layer in both Silverlight &amp;amp; Windows Presentation Foundation (WPF). It seems to be the rage that all the cool kids are doing these days, which means YOU should probably pay attention to it!&amp;nbsp; Get your development skills ready for MVVM (Model View View Model Design Pattern) and build some exciting applications for WPF, Silverlight or Windows Phone. On March 21st, 2011 in New York City, Microsoft hosted a DevReady MVVM event along with DevExpress. This was a free full day training event.&amp;nbsp; We recorded the event, and now it is here on Channel 9 for your learning pleasure! Pop on some headphones and listen &amp;amp; learn at your own pace! The sessions were delivered by Microsoft MVP Miguel Castro, Microsoft Developer Evangelist Dani Diaz, and DevExpress Tech Evangelist Seth Juarez. There are six sessions in total: Demystifying XAML: Achieving Your Moment Of Clarity Still find XAML intimidating? Well, throw in MVVM and certain design practices and it can get worse. But the truth is that it isn&#39;t as complicated as it appears to be. In this short session, I&#39;ll give you the basics of how XAML works. I&#39;ll cover its syntax, control usage, the visual tree, and the scariest animal of all, binding. I&#39;ll give you your moment of clarity, I promise. Programming with MVVM - Part 1 WPF overwhelmed us with the most powerful data binding ever released in a development platform. It seemed there was so much to learn in order to use it, but it really isn&#39;t that complicated. However, to use it to its full potential, you really do need to introduce the Model-View-ViewModel pattern. The ideas and goal around this pattern seem to vary from person to person, but the one thing that they all share is that it provides a point of binding for XAM</itunes:summary>
      <itunes:duration>3172</itunes:duration>
      <link>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-4-of-5-How-Using-MVVM-Saved-My-Butt-and-How-Laziness-Came-Back-To-Bite-Me</link>
      <pubDate>Wed, 06 Apr 2011 11:26:14 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-4-of-5-How-Using-MVVM-Saved-My-Butt-and-How-Laziness-Came-Back-To-Bite-Me</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/42d7/f9ec0b9d-6fcd-4524-9f64-9ebd015b42d7/NYCDRMVVMS4_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/42d7/f9ec0b9d-6fcd-4524-9f64-9ebd015b42d7/NYCDRMVVMS4_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/42d7/f9ec0b9d-6fcd-4524-9f64-9ebd015b42d7/NYCDRMVVMS4_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/42d7/f9ec0b9d-6fcd-4524-9f64-9ebd015b42d7/NYCDRMVVMS4_2MB_ch9.wmv" expression="full" duration="3172" fileSize="138886719" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/42d7/f9ec0b9d-6fcd-4524-9f64-9ebd015b42d7/NYCDRMVVMS4_ch9.mp3" expression="full" duration="3172" fileSize="25381877" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/42d7/f9ec0b9d-6fcd-4524-9f64-9ebd015b42d7/NYCDRMVVMS4_ch9.wma" expression="full" duration="3172" fileSize="25659139" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/42d7/f9ec0b9d-6fcd-4524-9f64-9ebd015b42d7/NYCDRMVVMS4_high_ch9.mp4" expression="full" duration="3172" fileSize="807319940" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/42d7/f9ec0b9d-6fcd-4524-9f64-9ebd015b42d7/NYCDRMVVMS4_low_ch9.mp4" expression="full" duration="3172" fileSize="56412155" type="video/mp4" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/42d7/f9ec0b9d-6fcd-4524-9f64-9ebd015b42d7/NYCDRMVVMS4_2MB_ch9.wmv" length="138886719" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Peter Laudati</dc:creator>
      <itunes:author>Peter Laudati</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-4-of-5-How-Using-MVVM-Saved-My-Butt-and-How-Laziness-Came-Back-To-Bite-Me/rss</wfw:commentRss>
      <category>MVVM</category>
      <category>Silverlight</category>
      <category>Windows Phone 7</category>
      <category>WPF</category>
      <category>New York City</category>
    </item>
  <item>
      <title>NYC DevReady: MVVM - Session 3 (of 5) - Programming with MVVM - Part 2</title>
      <description><![CDATA[ <p>MVVM. MVVM. MVVM.&nbsp; I bet you’ve seen that acronym more than three times before? Ever wonder what it means?&nbsp; I’ll tell you: “Model View-View Model”</p><p>Ever wonder what THAT means?! <a href="http://en.wikipedia.org/wiki/Model_View_ViewModel">MVVM is a popular design pattern</a> for coding the presentation layer in both Silverlight &amp; Windows Presentation Foundation (WPF). It seems to be the rage that all the cool kids are doing these days, which means YOU should probably pay attention to it!&nbsp; Get your development skills ready for MVVM (Model View View Model Design Pattern) and build some exciting applications for WPF, Silverlight or Windows Phone.</p><p>On March 21st, 2011 in New York City, Microsoft hosted a DevReady MVVM event along with DevExpress. This was a free full day training event.&nbsp; We recorded the event, and now it is here on Channel 9 for your learning pleasure!</p><p>Pop on some headphones and listen &amp; learn at your own pace!</p><p>The sessions were delivered by Microsoft MVP <a href="www.dotnetdude.com">Miguel Castro</a>, Microsoft Developer Evangelist <a href="http://smallandmighty.net/">Dani Diaz</a>, and DevExpress Tech Evangelist <a href="http://community.devexpress.com/blogs/seth/default.aspx">Seth Juarez</a>.</p><p>There are six sessions in total:</p><blockquote><p><strong><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-1-of-5-Demystifying-XAML">Demystifying XAML: Achieving Your Moment Of Clarity</a></strong></p><p>Still find XAML intimidating? Well, throw in MVVM and certain design practices and it can get worse. But the truth is that it isn't as complicated as it appears to be. In this short session, I'll give you the basics of how XAML works. I'll cover its syntax, control usage, the visual tree, and the scariest animal of all, binding. I'll give you your moment of clarity, I promise.</p><p><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-2-of-5-Programming-with-MVVM-Part-1"><strong>Programming with MVVM - </strong><strong>Part 1</strong></a></p><p>WPF overwhelmed us with the most powerful data binding ever released in a development platform. It seemed there was so much to learn in order to use it, but it really isn't that complicated. However, to use it to its full potential, you really do need to introduce the Model-View-ViewModel pattern. The ideas and goal around this pattern seem to vary from person to person, but the one thing that they all share is that it provides a point of binding for XAML pages. In this session, I'll show you what MVVM is and how to use it and what to put in it, in order to get maximum potential out of XAML binding.</p><p><strong>Programming with MVVM - </strong><strong>Part 2</strong></p><p>Now that you’ve sat through my MVVM session (what? you didn’t?), I want to take it to the next level by continuing your studies into this awesome and necessary pattern. In this session, I’ll cover more advanced topics you use when programming using Model-View-ViewModel. These include Design-Time Data, ViewModel-First, Validation, and the ever-so-popular MVVM Frameworks. There I’ll actually show and give you a small MVVM framework with which to launch your development. Though I will do a brief review on the fundamentals and goals of MVVM and its usage, this session does expect a little bit of knowledge on the pattern from you.</p><p><strong><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-4-of-5-How-Using-MVVM-Saved-My-Butt-and-How-Laziness-Came-Back-To-Bite-Me">How Using MVVM Saved My Butt and How Laziness Came Back To Bite Me</a></strong></p><p>Get a preview of upcoming Visual Studio features that will allow you to share code between Microsoft .NET platforms. You’ll learn how to structure applications to maximize the amount of shared code, how to write an app that’s used across Silverlight Desktop and Windows Phone, and how to build business logic and helper functions that work across all 3 Screens plus the cloud.</p><p><strong><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-5-of-5-Leveraging-MVVM-Inside-PRISM">Leveraging MVVM Inside PRISM</a></strong></p><p>Understanding an architecture pattern like MVVM is great but many companies invest in third-party control suites to make their application development less painful. In this session, you'll learn how to leverage some great controls from DevExpress in conjunction with MVVM to build applications in both WPF and Silverlight.</p></blockquote> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:5c3750862910469793f59ebd015a2351">]]></description>
      <comments>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-3-of-5-Programming-with-MVVM-Part-2</comments>
      <itunes:summary> MVVM. MVVM. MVVM.&amp;nbsp; I bet you’ve seen that acronym more than three times before? Ever wonder what it means?&amp;nbsp; I’ll tell you: “Model View-View Model” Ever wonder what THAT means?! MVVM is a popular design pattern for coding the presentation layer in both Silverlight &amp;amp; Windows Presentation Foundation (WPF). It seems to be the rage that all the cool kids are doing these days, which means YOU should probably pay attention to it!&amp;nbsp; Get your development skills ready for MVVM (Model View View Model Design Pattern) and build some exciting applications for WPF, Silverlight or Windows Phone. On March 21st, 2011 in New York City, Microsoft hosted a DevReady MVVM event along with DevExpress. This was a free full day training event.&amp;nbsp; We recorded the event, and now it is here on Channel 9 for your learning pleasure! Pop on some headphones and listen &amp;amp; learn at your own pace! The sessions were delivered by Microsoft MVP Miguel Castro, Microsoft Developer Evangelist Dani Diaz, and DevExpress Tech Evangelist Seth Juarez. There are six sessions in total: Demystifying XAML: Achieving Your Moment Of Clarity Still find XAML intimidating? Well, throw in MVVM and certain design practices and it can get worse. But the truth is that it isn&#39;t as complicated as it appears to be. In this short session, I&#39;ll give you the basics of how XAML works. I&#39;ll cover its syntax, control usage, the visual tree, and the scariest animal of all, binding. I&#39;ll give you your moment of clarity, I promise. Programming with MVVM - Part 1 WPF overwhelmed us with the most powerful data binding ever released in a development platform. It seemed there was so much to learn in order to use it, but it really isn&#39;t that complicated. However, to use it to its full potential, you really do need to introduce the Model-View-ViewModel pattern. The ideas and goal around this pattern seem to vary from person to person, but the one thing that they all share is that it provides a point of binding for XAM</itunes:summary>
      <itunes:duration>5117</itunes:duration>
      <link>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-3-of-5-Programming-with-MVVM-Part-2</link>
      <pubDate>Wed, 06 Apr 2011 11:25:44 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-3-of-5-Programming-with-MVVM-Part-2</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/2351/5c375086-2910-4697-93f5-9ebd015a2351/NYCDRMVVMS3_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/2351/5c375086-2910-4697-93f5-9ebd015a2351/NYCDRMVVMS3_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/2351/5c375086-2910-4697-93f5-9ebd015a2351/NYCDRMVVMS3_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/2351/5c375086-2910-4697-93f5-9ebd015a2351/NYCDRMVVMS3_custom_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/2351/5c375086-2910-4697-93f5-9ebd015a2351/NYCDRMVVMS3_2MB_ch9.wmv" expression="full" duration="5117" fileSize="191736709" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/2351/5c375086-2910-4697-93f5-9ebd015a2351/NYCDRMVVMS3_ch9.mp3" expression="full" duration="5117" fileSize="40944306" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/2351/5c375086-2910-4697-93f5-9ebd015a2351/NYCDRMVVMS3_ch9.wma" expression="full" duration="5117" fileSize="41391085" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/2351/5c375086-2910-4697-93f5-9ebd015a2351/NYCDRMVVMS3_high_ch9.mp4" expression="full" duration="5117" fileSize="1280187148" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/2351/5c375086-2910-4697-93f5-9ebd015a2351/NYCDRMVVMS3_low_ch9.mp4" expression="full" duration="5117" fileSize="85692772" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/2351/5c375086-2910-4697-93f5-9ebd015a2351/NYCDRMVVMS3_Zune_ch9.wmv" expression="full" duration="5117" fileSize="135156188" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/2351/5c375086-2910-4697-93f5-9ebd015a2351/NYCDRMVVMS3_2MB_ch9.wmv" length="191736709" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Peter Laudati</dc:creator>
      <itunes:author>Peter Laudati</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-3-of-5-Programming-with-MVVM-Part-2/rss</wfw:commentRss>
      <category>MVVM</category>
      <category>Silverlight</category>
      <category>Windows Phone 7</category>
      <category>WPF</category>
      <category>New York City</category>
    </item>
  <item>
      <title>NYC DevReady: MVVM - Session 2 (of 5) - Programming with MVVM - Part 1</title>
      <description><![CDATA[ <p>MVVM. MVVM. MVVM.&nbsp; I bet you’ve seen that acronym more than three times before? Ever wonder what it means?&nbsp; I’ll tell you: “Model View-View Model”</p><p>Ever wonder what THAT means?! <a href="http://en.wikipedia.org/wiki/Model_View_ViewModel">MVVM is a popular design pattern</a> for coding the presentation layer in both Silverlight &amp; Windows Presentation Foundation (WPF). It seems to be the rage that all the cool kids are doing these days, which means YOU should probably pay attention to it!&nbsp; Get your development skills ready for MVVM (Model View View Model Design Pattern) and build some exciting applications for WPF, Silverlight or Windows Phone.</p><p>On March 21st, 2011 in New York City, Microsoft hosted a DevReady MVVM event along with DevExpress. This was a free full day training event.&nbsp; We recorded the event, and now it is here on Channel 9 for your learning pleasure!</p><p>Pop on some headphones and listen &amp; learn at your own pace!</p><p>The sessions were delivered by Microsoft MVP <a href="www.dotnetdude.com">Miguel Castro</a>, Microsoft Developer Evangelist <a href="http://smallandmighty.net/">Dani Diaz</a>, and DevExpress Tech Evangelist <a href="http://community.devexpress.com/blogs/seth/default.aspx">Seth Juarez</a>.</p><p>There are six sessions in total:</p><blockquote><p><strong><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-1-of-5-Demystifying-XAML">Demystifying XAML: Achieving Your Moment Of Clarity</a></strong></p><p>Still find XAML intimidating? Well, throw in MVVM and certain design practices and it can get worse. But the truth is that it isn't as complicated as it appears to be. In this short session, I'll give you the basics of how XAML works. I'll cover its syntax, control usage, the visual tree, and the scariest animal of all, binding. I'll give you your moment of clarity, I promise.</p><p><strong>Programming with MVVM - </strong><strong>Part 1</strong></p><p>WPF overwhelmed us with the most powerful data binding ever released in a development platform. It seemed there was so much to learn in order to use it, but it really isn't that complicated. However, to use it to its full potential, you really do need to introduce the Model-View-ViewModel pattern. The ideas and goal around this pattern seem to vary from person to person, but the one thing that they all share is that it provides a point of binding for XAML pages. In this session, I'll show you what MVVM is and how to use it and what to put in it, in order to get maximum potential out of XAML binding.</p><p><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-3-of-5-Programming-with-MVVM-Part-2"><strong>Programming with MVVM - </strong><strong>Part 2</strong></a></p><p>Now that you’ve sat through my MVVM session (what? you didn’t?), I want to take it to the next level by continuing your studies into this awesome and necessary pattern. In this session, I’ll cover more advanced topics you use when programming using Model-View-ViewModel. These include Design-Time Data, ViewModel-First, Validation, and the ever-so-popular MVVM Frameworks. There I’ll actually show and give you a small MVVM framework with which to launch your development. Though I will do a brief review on the fundamentals and goals of MVVM and its usage, this session does expect a little bit of knowledge on the pattern from you.</p><p><strong><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-4-of-5-How-Using-MVVM-Saved-My-Butt-and-How-Laziness-Came-Back-To-Bite-Me">How Using MVVM Saved My Butt and How Laziness Came Back To Bite Me</a></strong></p><p>Get a preview of upcoming Visual Studio features that will allow you to share code between Microsoft .NET platforms. You’ll learn how to structure applications to maximize the amount of shared code, how to write an app that’s used across Silverlight Desktop and Windows Phone, and how to build business logic and helper functions that work across all 3 Screens plus the cloud.</p><p><strong><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-5-of-5-Leveraging-MVVM-Inside-PRISM">Leveraging MVVM Inside PRISM</a></strong></p><p>Understanding an architecture pattern like MVVM is great but many companies invest in third-party control suites to make their application development less painful. In this session, you'll learn how to leverage some great controls from DevExpress in conjunction with MVVM to build applications in both WPF and Silverlight.</p></blockquote> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:19bd8bd56f13440aa8b99ebd01582451">]]></description>
      <comments>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-2-of-5-Programming-with-MVVM-Part-1</comments>
      <itunes:summary> MVVM. MVVM. MVVM.&amp;nbsp; I bet you’ve seen that acronym more than three times before? Ever wonder what it means?&amp;nbsp; I’ll tell you: “Model View-View Model” Ever wonder what THAT means?! MVVM is a popular design pattern for coding the presentation layer in both Silverlight &amp;amp; Windows Presentation Foundation (WPF). It seems to be the rage that all the cool kids are doing these days, which means YOU should probably pay attention to it!&amp;nbsp; Get your development skills ready for MVVM (Model View View Model Design Pattern) and build some exciting applications for WPF, Silverlight or Windows Phone. On March 21st, 2011 in New York City, Microsoft hosted a DevReady MVVM event along with DevExpress. This was a free full day training event.&amp;nbsp; We recorded the event, and now it is here on Channel 9 for your learning pleasure! Pop on some headphones and listen &amp;amp; learn at your own pace! The sessions were delivered by Microsoft MVP Miguel Castro, Microsoft Developer Evangelist Dani Diaz, and DevExpress Tech Evangelist Seth Juarez. There are six sessions in total: Demystifying XAML: Achieving Your Moment Of Clarity Still find XAML intimidating? Well, throw in MVVM and certain design practices and it can get worse. But the truth is that it isn&#39;t as complicated as it appears to be. In this short session, I&#39;ll give you the basics of how XAML works. I&#39;ll cover its syntax, control usage, the visual tree, and the scariest animal of all, binding. I&#39;ll give you your moment of clarity, I promise. Programming with MVVM - Part 1 WPF overwhelmed us with the most powerful data binding ever released in a development platform. It seemed there was so much to learn in order to use it, but it really isn&#39;t that complicated. However, to use it to its full potential, you really do need to introduce the Model-View-ViewModel pattern. The ideas and goal around this pattern seem to vary from person to person, but the one thing that they all share is that it provides a point of binding for XAM</itunes:summary>
      <itunes:duration>4224</itunes:duration>
      <link>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-2-of-5-Programming-with-MVVM-Part-1</link>
      <pubDate>Wed, 06 Apr 2011 10:33:38 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-2-of-5-Programming-with-MVVM-Part-1</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/2451/19bd8bd5-6f13-440a-a8b9-9ebd01582451/NYCDRMVVMS2_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/2451/19bd8bd5-6f13-440a-a8b9-9ebd01582451/NYCDRMVVMS2_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/2451/19bd8bd5-6f13-440a-a8b9-9ebd01582451/NYCDRMVVMS2_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/2451/19bd8bd5-6f13-440a-a8b9-9ebd01582451/NYCDRMVVMS2_2MB_ch9.wmv" expression="full" duration="4224" fileSize="166484081" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/2451/19bd8bd5-6f13-440a-a8b9-9ebd01582451/NYCDRMVVMS2_ch9.mp3" expression="full" duration="4224" fileSize="33798667" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/2451/19bd8bd5-6f13-440a-a8b9-9ebd01582451/NYCDRMVVMS2_ch9.wma" expression="full" duration="4224" fileSize="34169471" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/2451/19bd8bd5-6f13-440a-a8b9-9ebd01582451/NYCDRMVVMS2_high_ch9.mp4" expression="full" duration="4224" fileSize="1079610206" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/2451/19bd8bd5-6f13-440a-a8b9-9ebd01582451/NYCDRMVVMS2_low_ch9.mp4" expression="full" duration="4224" fileSize="70732879" type="video/mp4" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/2451/19bd8bd5-6f13-440a-a8b9-9ebd01582451/NYCDRMVVMS2_2MB_ch9.wmv" length="166484081" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Peter Laudati</dc:creator>
      <itunes:author>Peter Laudati</itunes:author>
      <slash:comments>0</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-2-of-5-Programming-with-MVVM-Part-1/rss</wfw:commentRss>
      <category>MVVM</category>
      <category>Silverlight</category>
      <category>Windows Phone 7</category>
      <category>WPF</category>
    </item>
  <item>
      <title>NYC DevReady: MVVM - Session 1 (of 5) - Demystifying XAML</title>
      <description><![CDATA[ <p>MVVM. MVVM. MVVM.&nbsp; I bet you’ve seen that acronym more than three times before? Ever wonder what it means?&nbsp; I’ll tell you: “Model View-View Model”</p><p>Ever wonder what THAT means?! <a href="http://en.wikipedia.org/wiki/Model_View_ViewModel">MVVM is a popular design pattern</a> for coding the presentation layer in both Silverlight &amp; Windows Presentation Foundation (WPF). It seems to be the rage that all the cool kids are doing these days, which means YOU should probably pay attention to it!&nbsp; Get your development skills ready for MVVM (Model View View Model Design Pattern) and build some exciting applications for WPF, Silverlight or Windows Phone.</p><p>On March 21st, 2011&nbsp;in New York City, Microsoft hosted a&nbsp;DevReady MVVM event along with DevExpress. This was a free full day training event.&nbsp; We recorded the event, and now it is here on Channel 9 for your learning pleasure!</p><p>Pop on some headphones and listen &amp; learn at your own pace!&nbsp;</p><p>The sessions were delivered by Microsoft MVP <a href="www.dotnetdude.com">Miguel Castro</a>, Microsoft Developer Evangelist <a href="http://smallandmighty.net/">Dani Diaz</a>, and DevExpress Tech Evangelist <a href="http://community.devexpress.com/blogs/seth/default.aspx">Seth Juarez</a>.</p><p>There are six sessions in total:</p><blockquote><p><strong>Demystifying XAML: Achieving Your Moment Of Clarity</strong></p><p>Still find XAML intimidating? Well, throw in MVVM and certain design practices and it can get worse. But the truth is that it isn't as complicated as it appears to be. In this short session, I'll give you the basics of how XAML works. I'll cover its syntax, control usage, the visual tree, and the scariest animal of all, binding. I'll give you your moment of clarity, I promise.</p><p><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-2-of-5-Programming-with-MVVM-Part-1"><strong>Programming with MVVM - </strong><strong>Part 1</strong></a></p><p>WPF overwhelmed us with the most powerful data binding ever released in a development platform. It seemed there was so much to learn in order to use it, but it really isn't that complicated. However, to use it to its full potential, you really do need to introduce the Model-View-ViewModel pattern. The ideas and goal around this pattern seem to vary from person to person, but the one thing that they all share is that it provides a point of binding for XAML pages. In this session, I'll show you what MVVM is and how to use it and what to put in it, in order to get maximum potential out of XAML binding.</p><p><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-3-of-5-Programming-with-MVVM-Part-2"><strong>Programming with MVVM - </strong><strong>Part 2</strong></a></p><p>Now that you’ve sat through my MVVM session (what? you didn’t?), I want to take it to the next level by continuing your studies into this awesome and necessary pattern. In this session, I’ll cover more advanced topics you use when programming using Model-View-ViewModel. These include Design-Time Data, ViewModel-First, Validation, and the ever-so-popular MVVM Frameworks. There I’ll actually show and give you a small MVVM framework with which to launch your development. Though I will do a brief review on the fundamentals and goals of MVVM and its usage, this session does expect a little bit of knowledge on the pattern from you.</p><p><strong><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-4-of-5-How-Using-MVVM-Saved-My-Butt-and-How-Laziness-Came-Back-To-Bite-Me">How Using MVVM Saved My Butt and How Laziness Came Back To Bite Me</a></strong></p><p>Get a preview of upcoming Visual Studio features that will allow you to share code between Microsoft .NET platforms. You’ll learn how to structure applications to maximize the amount of shared code, how to write an app that’s used across Silverlight Desktop and Windows Phone, and how to build business logic and helper functions that work across all 3 Screens plus the cloud.</p><p><strong><a href="http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-5-of-5-Leveraging-MVVM-Inside-PRISM">Leveraging MVVM Inside PRISM</a></strong></p><p>Understanding an architecture pattern like MVVM is great but many companies invest in third-party control suites to make their application development less painful. In this session, you'll learn how to leverage some great controls from DevExpress in conjunction with MVVM to build applications in both WPF and Silverlight.</p></blockquote> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/mvvm/RSS&WT.dl=0&WT.entryid=Entry:RSSView:1cbf48d50d3b4617a10d9ead014d4751">]]></description>
      <comments>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-1-of-5-Demystifying-XAML</comments>
      <itunes:summary> MVVM. MVVM. MVVM.&amp;nbsp; I bet you’ve seen that acronym more than three times before? Ever wonder what it means?&amp;nbsp; I’ll tell you: “Model View-View Model” Ever wonder what THAT means?! MVVM is a popular design pattern for coding the presentation layer in both Silverlight &amp;amp; Windows Presentation Foundation (WPF). It seems to be the rage that all the cool kids are doing these days, which means YOU should probably pay attention to it!&amp;nbsp; Get your development skills ready for MVVM (Model View View Model Design Pattern) and build some exciting applications for WPF, Silverlight or Windows Phone. On March 21st, 2011&amp;nbsp;in New York City, Microsoft hosted a&amp;nbsp;DevReady MVVM event along with DevExpress. This was a free full day training event.&amp;nbsp; We recorded the event, and now it is here on Channel 9 for your learning pleasure! Pop on some headphones and listen &amp;amp; learn at your own pace!&amp;nbsp; The sessions were delivered by Microsoft MVP Miguel Castro, Microsoft Developer Evangelist Dani Diaz, and DevExpress Tech Evangelist Seth Juarez. There are six sessions in total: Demystifying XAML: Achieving Your Moment Of Clarity Still find XAML intimidating? Well, throw in MVVM and certain design practices and it can get worse. But the truth is that it isn&#39;t as complicated as it appears to be. In this short session, I&#39;ll give you the basics of how XAML works. I&#39;ll cover its syntax, control usage, the visual tree, and the scariest animal of all, binding. I&#39;ll give you your moment of clarity, I promise. Programming with MVVM - Part 1 WPF overwhelmed us with the most powerful data binding ever released in a development platform. It seemed there was so much to learn in order to use it, but it really isn&#39;t that complicated. However, to use it to its full potential, you really do need to introduce the Model-View-ViewModel pattern. The ideas and goal around this pattern seem to vary from person to person, but the one thing that they all share is that it provides a point of</itunes:summary>
      <itunes:duration>5088</itunes:duration>
      <link>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-1-of-5-Demystifying-XAML</link>
      <pubDate>Wed, 06 Apr 2011 10:32:47 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-1-of-5-Demystifying-XAML</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/4751/1cbf48d5-0d3b-4617-a10d-9ead014d4751/NYCDRMVVMS1_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/4751/1cbf48d5-0d3b-4617-a10d-9ead014d4751/NYCDRMVVMS1_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/4751/1cbf48d5-0d3b-4617-a10d-9ead014d4751/NYCDRMVVMS1_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/4751/1cbf48d5-0d3b-4617-a10d-9ead014d4751/NYCDRMVVMS1_2MB_ch9.wmv" expression="full" duration="5088" fileSize="191772455" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/4751/1cbf48d5-0d3b-4617-a10d-9ead014d4751/NYCDRMVVMS1_ch9.mp3" expression="full" duration="5088" fileSize="40709596" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/4751/1cbf48d5-0d3b-4617-a10d-9ead014d4751/NYCDRMVVMS1_ch9.wma" expression="full" duration="5088" fileSize="41156773" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/4751/1cbf48d5-0d3b-4617-a10d-9ead014d4751/NYCDRMVVMS1_high_ch9.mp4" expression="full" duration="5088" fileSize="1271126139" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/4751/1cbf48d5-0d3b-4617-a10d-9ead014d4751/NYCDRMVVMS1_low_ch9.mp4" expression="full" duration="5088" fileSize="81079265" type="video/mp4" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/4751/1cbf48d5-0d3b-4617-a10d-9ead014d4751/NYCDRMVVMS1_2MB_ch9.wmv" length="191772455" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Peter Laudati</dc:creator>
      <itunes:author>Peter Laudati</itunes:author>
      <slash:comments>1</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/posts/NYC-DevReady-MVVM-Session-1-of-5-Demystifying-XAML/rss</wfw:commentRss>
      <category>MVVM</category>
      <category>Silverlight</category>
      <category>Windows Phone 7</category>
      <category>WPF</category>
      <category>New York City</category>
    </item>    
</channel>
</rss>