<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Jerry Nixon</title><subtitle type="html">Microsoft Developer Evangelist</subtitle><id>http://blogs.msdn.com/b/jerrynixon/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/jerrynixon/" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/b/jerrynixon/atom.aspx" /><generator uri="http://telligent.com" version="5.6.50428.7875">Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><updated>2013-01-11T12:10:38Z</updated><entry><title>Horizontal Screen Breakpoints for Web Designers to Support</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/jerrynixon/archive/2013/05/15/horizontal-screen-breakpoints-for-web-designers-to-support.aspx" /><id>http://blogs.msdn.com/b/jerrynixon/archive/2013/05/15/horizontal-screen-breakpoints-for-web-designers-to-support.aspx</id><published>2013-05-15T16:25:11Z</published><updated>2013-05-15T16:25:11Z</updated><content type="html">&lt;p&gt;It’s difficult to create a site that looks great across browsers. The weaker web developers simply give up – supporting only a piece of the market, squandering opportunity for themselves or their customers.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/0081.image_5F00_6.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px 11px 0px 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/5504.image_5F00_thumb_5F00_2.png" width="550" height="317" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;But, now the ante is raised with responsive web design. Leveraging CSS media queries, developers rearrange content to accommodate the width (et al) of different screen sizes. And it’s not simply a normal site with a mobile site, too. Users are coming at you with a myriad screen sizes. &lt;/p&gt;  &lt;!--more--&gt;  &lt;p&gt;“…users may not be getting [a] webpage's best experience on devices like Apple iPad, Microsoft Surface, Amazon Kindle, XBOX 360, and other modern browsers on smaller or larger screens. These mobile experiences account for about &lt;a href="http://www.businessinsider.com/state-of-internet-slides-2012-10?op=1"&gt;12% of the global internet traffic&lt;/a&gt; and are expected to grow quickly in the next 5 years (Business Insider, Nov 2012).” - &lt;a title="http://www.modern.ie" href="http://www.modern.ie"&gt;http://www.modern.ie&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/3487.image_5F00_8.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px 11px 0px 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/8321.image_5F00_thumb_5F00_3.png" width="550" height="223" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Though I pick XAML as my Windows 8 UI, it’s undeniable that the web is an HTML/JavaScript playground. You can’t get by without ‘em, and the approach you take can change the experience of your user or your customer. Should you want to research more about responsive web design: &lt;a title="http://msdn.microsoft.com/en-us/magazine/dn151701.aspx" href="http://msdn.microsoft.com/en-us/magazine/dn151701.aspx"&gt;Why the Web Is Ready for Responsive Web Design, by Rahul Lalmalani (MSDN Magazine March 2013)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/0250.image_5F00_14.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px 11px 0px 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/7563.image_5F00_thumb_5F00_6.png" width="356" height="21" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Best of luck!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10418967" width="1" height="1"&gt;</content><author><name>jerry-nixon</name><uri>http://blogs.msdn.com/jerry_4000_nixoncorp.com/ProfileUrlRedirect.ashx</uri></author><category term="Development" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/Development/" /></entry><entry><title>Ready to learn XAML?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/jerrynixon/archive/2013/05/10/ready-to-learn-xaml.aspx" /><id>http://blogs.msdn.com/b/jerrynixon/archive/2013/05/10/ready-to-learn-xaml.aspx</id><published>2013-05-10T15:30:40Z</published><updated>2013-05-10T15:30:40Z</updated><content type="html">&lt;p&gt;&lt;a href="http://twitter.com/darenmay"&gt;Daren May&lt;/a&gt; and I teach the basics of &lt;a href="dev.windows.com"&gt;Windows 8 XAML&lt;/a&gt; in a Jump Start course for &lt;a href="http://www.microsoftvirtualacademy.com/training-courses/essentials-of-developing-windows-store-apps-using-c-jump-start"&gt;Microsoft Virtual Academy&lt;/a&gt; (Recorded May 2013). If you are learning XAML, come learn with us in this free, all-day course (now available on demand). We have a lot of fun in these courses; but you get all the candy.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/0474.image_5F00_4.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/0257.image_5F00_thumb_5F00_1.png" width="550" height="285" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Mod 01: &lt;a href="http://channel9.msdn.com/posts/Essentials-of-Developing-Windows-Store-Apps-using-C-01-Overview-of-the-Windows-8-Platform-and-Window"&gt;Overview of the Windows 8 Platform and Windows Store Apps&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Mod 02: &lt;a href="http://channel9.msdn.com/posts/Essentials-of-Developing-Windows-Store-Apps-using-C-02-Creating-User-Interfaces-using-XAML"&gt;Creating User Interfaces using XAML&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Mod 03: &lt;a href="http://channel9.msdn.com/posts/Essentials-of-Developing-Windows-Store-Apps-using-C-03-Presenting-Data-and-Implementing-Layout-using"&gt;Presenting Data and Implementing Layout using Windows 8 Built-In Controls&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Mod 04: &lt;a href="http://channel9.msdn.com/posts/Essentials-of-Developing-Windows-Store-Apps-using-C-04-Handling-Files-in-Windows-Store-Apps-and-Proc"&gt;Handling Files in Windows Store Apps and Process Lifecycle Management&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Mod 05: &lt;a href="http://channel9.msdn.com/posts/Essentials-of-Developing-Windows-Store-Apps-using-C-05-Working-with-Resources-Styles-and-Templates"&gt;Working with Resources, Styles, and Templates&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Mod 06: &lt;a href="http://channel9.msdn.com/Series/Essentials-of-Developing-Windows-Store-Apps-using-C-/Essentials-of-Developing-Windows-Store-Apps-using-C-06-Designing-and-Implementing-Navigation-in-a-Wi?format=smooth"&gt;Designing and Implementing Navigation in a Windows Store App&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Mod 07: &lt;a href="http://channel9.msdn.com/posts/Essentials-of-Developing-Windows-Store-Apps-using-C-07-Implementing-Windows-8-Contracts-Tiles-and-Us"&gt;Implementing Windows 8 Contracts, Tiles and User Notifications&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Mod 08: &lt;a href="http://channel9.msdn.com/posts/Essentials-of-Developing-Windows-Store-Apps-using-C-08-Local-Data-and-Planning-for-Windows-Store-App"&gt;Local Data and Planning for Windows Store App Deployment&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10417654" width="1" height="1"&gt;</content><author><name>jerry-nixon</name><uri>http://blogs.msdn.com/jerry_4000_nixoncorp.com/ProfileUrlRedirect.ashx</uri></author><category term="XAML" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/XAML/" /></entry><entry><title>Best Windows Phone Commercial Ever</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/jerrynixon/archive/2013/05/07/best-windows-phone-commercial-ever.aspx" /><id>http://blogs.msdn.com/b/jerrynixon/archive/2013/05/07/best-windows-phone-commercial-ever.aspx</id><published>2013-05-07T17:46:10Z</published><updated>2013-05-07T17:46:10Z</updated><content type="html">&lt;iframe height="315" src="http://www.youtube.com/embed/Z19vR1GldRI" frameborder="0" width="550" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;  &lt;ul&gt;   &lt;li&gt;“Siri, search one-trick pony” &lt;/li&gt;    &lt;li&gt;“Aren’t you a little young to have an IPhone” &lt;/li&gt;    &lt;li&gt;“Isheep” &lt;/li&gt;    &lt;li&gt;“Copy-bots” &lt;/li&gt;    &lt;li&gt;“Auto-correct… this!” &lt;/li&gt;    &lt;li&gt;Boom! “Is there an app for that?” &lt;/li&gt;    &lt;li&gt;“Siri, search karate! No, Ka-ra-te!” &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;“Do you think if they knew about the Nokia Lumia they would stop fighting?”    &lt;br /&gt;“I don’t know. I think they kind of like fighting.”&lt;/p&gt;  &lt;p&gt;Stop fighting. Switch.&lt;/p&gt;  &lt;p&gt;Hehe! WP is the “peaceful” phone. &lt;/p&gt;  &lt;p&gt;And smartphone of the freakin’ year! Boo-yah, baby!&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Pretty great commercial.&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10416734" width="1" height="1"&gt;</content><author><name>jerry-nixon</name><uri>http://blogs.msdn.com/jerry_4000_nixoncorp.com/ProfileUrlRedirect.ashx</uri></author><category term="WP8" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/WP8/" /></entry><entry><title>Binding to an ENUM in Windows 8</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/jerrynixon/archive/2013/03/04/binding-to-an-enum-in-windows-8.aspx" /><id>http://blogs.msdn.com/b/jerrynixon/archive/2013/03/04/binding-to-an-enum-in-windows-8.aspx</id><published>2013-03-04T18:36:13Z</published><updated>2013-03-04T18:36:13Z</updated><content type="html">&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/3173.image_5F00_18.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 11px 11px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" align="right" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/0246.image_5F00_thumb_5F00_8.png" width="140" height="140" /&gt;&lt;/a&gt;You create a Settings flyout for your app so users can configure their experience. Sometimes, your settings are based on a ENUM that you use throughout your app. But how do you bind to an ENUM in XAML?&lt;/p&gt;  &lt;h2&gt;Our sample ENUM&lt;/h2&gt;  &lt;p&gt;The first thing you should know is that you cannot really bind to a ENUM, but with some code we can expose an ENUM as a type you can bind to. Let’s take a look at the code:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/8357.image_5F00_2.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/7367.image_5F00_thumb.png" width="312" height="151" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h1&gt;Read the whole article &lt;a href="http://blog.jerrynixon.com/2013/03/binding-to-enum-in-windows-8.html"&gt;here&lt;/a&gt;&lt;/h1&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10399210" width="1" height="1"&gt;</content><author><name>jerry-nixon</name><uri>http://blogs.msdn.com/jerry_4000_nixoncorp.com/ProfileUrlRedirect.ashx</uri></author><category term="Windows" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/Windows/" /><category term="Development" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/Development/" /><category term="XAML" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/XAML/" /></entry><entry><title>App Challenge: Windows 8 Apps For Social Good Contest</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/jerrynixon/archive/2013/02/07/app-challenge-windows-8-apps-for-social-good-contest.aspx" /><id>http://blogs.msdn.com/b/jerrynixon/archive/2013/02/07/app-challenge-windows-8-apps-for-social-good-contest.aspx</id><published>2013-02-07T20:49:51Z</published><updated>2013-02-07T20:49:51Z</updated><content type="html">&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/5707.image_5F00_2.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 11px 11px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" align="right" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/7041.image_5F00_thumb.png" width="159" height="131" /&gt;&lt;/a&gt;&lt;b&gt;Entries must serve a &amp;quot;social good&amp;quot;. &lt;/b&gt;WE define this as a good or service that provides some sort of benefit to the general public and doesn’t solely exist to provide the maximum possible return to shareholders. &lt;/p&gt;  &lt;p&gt;Some classic examples of social good topics are: clean water, literacy, food security, healthy &amp;amp; safe environment. For the purposes of this contest, we’re considering any topic within TechSoup Global's &lt;a href="http://hackerhelper.wikispaces.com/"&gt;HackerHelper Wiki&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Status&lt;/strong&gt;: Open for submissions     &lt;br /&gt;&lt;strong&gt;Submissions&lt;/strong&gt; &lt;strong&gt;Open&lt;/strong&gt;: Mon, 11/05/2012 - 12:01am     &lt;br /&gt;&lt;strong&gt;Submissions&lt;/strong&gt; &lt;strong&gt;Close&lt;/strong&gt;: Thu, 02/28/2013 - 11:59pm     &lt;br /&gt;&lt;strong&gt;Voting Opens&lt;/strong&gt;: Fri, 03/01/2013 - 12:01am     &lt;br /&gt;&lt;strong&gt;Voting Closes&lt;/strong&gt;: Fri, 03/15/2013 - 11:59pm     &lt;br /&gt;&lt;strong&gt;Winners Announced&lt;/strong&gt;: Mon, 03/25/2013 - 12:00pm&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Winner Receives:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Best Overall Windows 8 App: $15,000 &lt;/li&gt;    &lt;li&gt;Best Overall Windows 8 Phone App: $15,000; &lt;/li&gt;    &lt;li&gt;People’s Choice App: $10,000; &lt;/li&gt;    &lt;li&gt;PLUS Windows 8 Phone for each winner! &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Learn more &lt;a href="http://www.netsquared.org/challenge/windows-8-apps-social-good-contest#.URQSQqPn-8U"&gt;here&lt;/a&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10391986" width="1" height="1"&gt;</content><author><name>jerry-nixon</name><uri>http://blogs.msdn.com/jerry_4000_nixoncorp.com/ProfileUrlRedirect.ashx</uri></author><category term="Windows" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/Windows/" /></entry><entry><title>Walkthrough: Locking Asynchronous File Operations</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/jerrynixon/archive/2013/02/04/walkthrough-locking-asynchronous-file-operations.aspx" /><id>http://blogs.msdn.com/b/jerrynixon/archive/2013/02/04/walkthrough-locking-asynchronous-file-operations.aspx</id><published>2013-02-04T19:17:00Z</published><updated>2013-02-04T19:17:00Z</updated><content type="html">&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/6661.image_5F00_4.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 11px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" align="right" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/0638.image_5F00_thumb_5F00_1.png" width="140" height="140" /&gt;&lt;/a&gt;When I started writing Windows 8 apps, one of my first productions was wrapping file operations in a helper class called &lt;a href="http://codepaste.net/gtu5mq"&gt;StorageHelper&lt;/a&gt;. This class has successfully been leveraged by thousands of Windows 8 developers. I certainly use it every time I interact with a File or a Setting. &lt;/p&gt;  &lt;p&gt;But the StorageHelper isn’t perfect in every scenario. For most mainstream applications it is perfect. But for some edge cases where file operations occur in parallel, an asynchronous read or write may not complete before another operation is attempted on the same file. This causes parallel locking. Hans Windhoff, a community developer in Colorado, took my StorageHelper and updated it with the solution – solving locks with some smarts and voodoo. &lt;/p&gt;  &lt;h2&gt;Here’s Hans’ experience:&lt;/h2&gt;  &lt;!--more--&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/4118.image_5F00_2.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 11px 11px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" align="right" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/4405.image_5F00_thumb.png" width="200" height="136" /&gt;&lt;/a&gt;When I was writing my first Windows 8 app store application, I was also first using the C# async/await in .Net 4.5. &lt;/p&gt;  &lt;p&gt;Asynchronous programming keeps the application user interface (UI) responsive. Async/await makes asynchronous programming simple to write, and easy to read. But in some scenarios a re-entrance situation arises; you are not normally confronted with these in synchronous programming. &lt;/p&gt;  &lt;p&gt;File operations are a excellent examples of re-entrance; particularly when executed from within event handlers. When handling UI events, like a button click,&amp;#160; it is common to disable the button during the operation. This pattern works fine as long as there is no other button that will call the same code or uses the same resources, like a file. &lt;/p&gt;  &lt;p&gt;One problem calling things asynchronously is that while awaiting a completion, other stuff may happen; you may not know what that other stuff will be. &lt;/p&gt;  &lt;p&gt;A situation I came across is this: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;A Windows app store application has two frames. &lt;/li&gt;    &lt;li&gt;There is no given sequence in which these frames are called. &lt;/li&gt;    &lt;li&gt;Both frames need some data that comes from a file. &lt;/li&gt;    &lt;li&gt;The data needs to be written back into that file when the frames close (are navigated from). &lt;/li&gt;    &lt;li&gt;Both frames use the same data and therefore the same file. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Typically, I would put the loading and saving of the data into OnNavigatedTo/From event handlers for each frame. In the pre-async/await times, if you don’t worry about a “little” delay, putting these calls directly into the event handlers is no problem. &lt;/p&gt;  &lt;p&gt;But if the file access takes time, that delay becomes an issue. Since Windows 8 app store apps do not support synchronous file access functions, the developer is forced (by design) into async patterns, keeping the UI responsive; the event handlers become asynchronous. &lt;/p&gt;  &lt;p&gt;The signature of the event handlers is void. If the event handlers are to be awaited, they become - what Jerry Nixon calls -&amp;#160; “&lt;a href="http://stackoverflow.com/questions/8043296/whats-the-difference-between-returning-void-and-returning-a-task"&gt;FireAndForget&lt;/a&gt;”. They return control when the first await is hit. However, when navigating from one frame to the other, saving and loading may overlap and throw an ACCESSDENIED exception. &lt;/p&gt;  &lt;p&gt;In the pre-async/await days you could use a thread or task. Windows 8 file operations are natively asynchronous. Where a lock might have been the solution to handle multithreading conflicts, locks are not supported in an awaited operation.&amp;#160; Also a lock would &lt;u&gt;not&lt;/u&gt; work in a re-entrance scenario, because the lock is still on the same thread (the UI thread in the case of event handlers). &lt;/p&gt;  &lt;p&gt;To get around this problem I used the AsyncLock from Stephen Toub (&lt;a href="http://blogs.msdn.com/b/pfxteam/archive/2012/02/12/10266988.aspx"&gt;Building Async Coordination Primitives, Part 6: AsyncLock&lt;/a&gt;) to lock a block around any file access StorageHelper perform. Please note that my contribution here is rather small. &lt;/p&gt;  &lt;p&gt;First I bring in the two classes from Stephen Toub’s articles: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;AsyncSemaphore &lt;/li&gt;    &lt;li&gt;AsyncLock &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Then in Jerry Nixon’s StorageHelper class I add a member:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/4011.image_5F00_6.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px 11px 0px 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/0880.image_5F00_thumb_5F00_2.png" width="489" height="34" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This is my only lock that I then use to synchronize all file access.    &lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;Writing a file:&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/0218.image_5F00_8.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px 11px 0px 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/2746.image_5F00_thumb_5F00_3.png" width="410" height="298" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Reading a file:&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/2437.image_5F00_10.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px 11px 0px 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/1460.image_5F00_thumb_5F00_4.png" width="360" height="294" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The &lt;em&gt;using &lt;/em&gt;also takes care about the possibility of an exception being thrown, so the AsyncLock m_lock will be released if this should happen. Please note that disabling parts of the UI in both frames may still be needed because – as already outlined above – the OnNavigatedTo event handler becomes “FireAndForget” when async and await are added to the definition. So as long as the fired and forgotten event handler has not done its work, the data it is supposed to read, may not be consistent.     &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="10" width="550" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;Hans Windhoff is a Microsoft developer in Colorado. Find him &lt;a href="http://www.linkedin.com/pub/hans-windhoff/17/564/399/"&gt;here&lt;/a&gt;. &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10390974" width="1" height="1"&gt;</content><author><name>jerry-nixon</name><uri>http://blogs.msdn.com/jerry_4000_nixoncorp.com/ProfileUrlRedirect.ashx</uri></author><category term="Windows" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/Windows/" /><category term="Community" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/Community/" /></entry><entry><title>DevRadio: Using Xamarin to Create the Draw a Stickman app for Windows 8</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/jerrynixon/archive/2013/01/21/devradio-using-xamarin-to-create-the-draw-a-stickman-app-for-windows-8.aspx" /><id>http://blogs.msdn.com/b/jerrynixon/archive/2013/01/21/devradio-using-xamarin-to-create-the-draw-a-stickman-app-for-windows-8.aspx</id><published>2013-01-21T19:16:34Z</published><updated>2013-01-21T19:16:34Z</updated><content type="html">&lt;p&gt;&lt;b&gt;Abstract:&lt;/b&gt; &lt;a href="http://aka.ms/MyGreatIdea"&gt;&lt;img title="clip_image002" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 11px 0px 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="clip_image002" align="right" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/4010.clip_5F00_image002_5F00_5476ed31_2D00_ab14_2D00_487a_2D00_918c_2D00_aabd06ae82a3.jpg" width="214" height="97" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117938"&gt;Jerry Nixon&lt;/a&gt; welcomes CEO of &lt;a href="http://aka.ms/Xamarin"&gt;Xamarin&lt;/a&gt;, Nat Friedman and President of &lt;a href="http://www.hitcents.com/"&gt;Hitcents&lt;/a&gt;, Chris Mills to the show as they discuss how Hitcents used Xamarin’s MonoTouch to launch their app, “&lt;a href="http://aka.ms/DrawAStickmanApp"&gt;Draw a Stickman EPIC&lt;/a&gt;” on Windows 8. Tune in as they chat about the ins-and-outs on how easy it was to use Xamarin’s platform to launch their app in the Windows Store and across multiple platforms. &lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blog.jerrynixon.com/2013/01/devradio-using-xamarin-to-create-draw.html"&gt;Read the whole article here&lt;/a&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10386925" width="1" height="1"&gt;</content><author><name>jerry-nixon</name><uri>http://blogs.msdn.com/jerry_4000_nixoncorp.com/ProfileUrlRedirect.ashx</uri></author><category term="DevRadio" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/DevRadio/" /></entry><entry><title>DevRadio: Integrating Bing Maps into Your Windows 8 apps</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/jerrynixon/archive/2013/01/21/devradio-integrating-bing-maps-into-your-windows-8-apps.aspx" /><id>http://blogs.msdn.com/b/jerrynixon/archive/2013/01/21/devradio-integrating-bing-maps-into-your-windows-8-apps.aspx</id><published>2013-01-21T19:13:34Z</published><updated>2013-01-21T19:13:34Z</updated><content type="html">&lt;p&gt;&lt;b&gt;Abstract:&lt;/b&gt; &lt;a href="http://aka.ms/MyGreatIdea"&gt;&lt;img title="clip_image002" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 11px 0px 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="clip_image002" align="right" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/7536.clip_5F00_image002_5F00_4e12be94_2D00_17e7_2D00_4083_2D00_bc58_2D00_73056fc3ca36.jpg" width="214" height="97" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117938"&gt;Jerry Nixon&lt;/a&gt; welcomes Ian Bennett and Jim Blizzard to the show as they discuss how they integrated a Bing Map into their Windows 8 app. Tune in as they chat about the &lt;a href="http://code.msdn.microsoft.com/Bing-Maps-SDK-for-Metro-31b378eb/view/SamplePack#content"&gt;&lt;b&gt;Bing Maps SDK&lt;/b&gt;&lt;/a&gt;, along with the why, how-to and lessons learned from developing with Bing Maps. &lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blog.jerrynixon.com/2013/01/devradio-integrating-bing-maps-into.html"&gt;Read the whole article here&lt;/a&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10386924" width="1" height="1"&gt;</content><author><name>jerry-nixon</name><uri>http://blogs.msdn.com/jerry_4000_nixoncorp.com/ProfileUrlRedirect.ashx</uri></author><category term="DevRadio" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/DevRadio/" /><category term="Bing" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/Bing/" /></entry><entry><title>DevRadio: Windows Phone 8 Features Overview</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/jerrynixon/archive/2013/01/17/devradio-windows-phone-8-features-overview.aspx" /><id>http://blogs.msdn.com/b/jerrynixon/archive/2013/01/17/devradio-windows-phone-8-features-overview.aspx</id><published>2013-01-17T17:56:21Z</published><updated>2013-01-17T17:56:21Z</updated><content type="html">&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/2514.image_5F00_2.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 11px 11px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" align="right" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/8461.image_5F00_thumb.png" width="140" height="140" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Technical Evangelists &lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117938"&gt;Jerry Nixon&lt;/a&gt;, &lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117405"&gt;Daniel Egan&lt;/a&gt; and &lt;a href="http://windowsdevelopershow.com/"&gt;Ryan Lowdermilk&lt;/a&gt; discuss their Top 20 (give or take) &lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115861"&gt;&lt;b&gt;Windows Phone 8&lt;/b&gt;&lt;/a&gt; features. Tune in as they discuss NFC support, Data Sense, Geolocation, Writable OS Tasks, Bluetooth and Skype APIs and much, much more! &lt;/p&gt;  &lt;p&gt;&lt;iframe style="height:288px;width:512px" src="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Windows-Phone-8-Feature-Overview/player?w=512&amp;amp;h=288" frameBorder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Next Steps:&lt;/b&gt;    &lt;br /&gt;&lt;b&gt;Step #1 –&lt;/b&gt; &lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200115861"&gt;Begin Your Windows Phone 8 App Adventure here&lt;/a&gt;    &lt;br /&gt;&lt;b&gt;Step #2 –&lt;/b&gt; &lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200113727"&gt;Download the Windows Phone SDK&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp3"&gt;&lt;img title="clip_image002" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 11px 11px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="clip_image002" align="right" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/8468.clip_5F00_image002_5F00_ff6e133b_2D00_1cef_2D00_4555_2D00_8e14_2D00_16882b34bfc4.gif" width="15" height="15" /&gt;&lt;/a&gt;Subscribe to our podcast via &lt;a href="http://itunes.apple.com/us/podcast/devradio-mp4-channel-9/id544163838"&gt;iTunes&lt;/a&gt; or &lt;a href="http://channel9.msdn.com/Blogs/DevRadio/feed/mp4"&gt;RSS&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;If you're interested in learning more about the products or solutions discussed in this episode, click on any of the below links for free, in-depth information:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Websites:&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="https://dev.windowsphone.com/en-us"&gt;Windows Phone 8 Dev Center&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Blogs &amp;amp; Articles:&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117938"&gt;Jerry Nixon’s Blog&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200117405"&gt;Daniel Egan’s Blog&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://windowsdevelopershow.com/"&gt;Ryan Lowdermilk’s Blog&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Videos:&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Using-appMobi-to-Build-Windows-8--Windows-Phone-Apps"&gt;Microsoft DevRadio: Using appMobi to Build Windows 8 &amp;amp; Windows Phone Apps&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/Blogs/DevRadio/Microsoft-DevRadio-Creating-Games-for-Windows-8-and-Windows-Phone-using-GameMaker-Studio-from-YoYo-G"&gt;Microsoft DevRadio: Creating Games for Windows 8 and Windows Phone using GameMaker Studio from YoYo Games&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Download&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://media.ch9.ms/ch9/ce01/e3d43a77-a9a5-455e-9c0e-78071c72ce01/DevRadioWinPhone8.mp3"&gt;MP3&lt;/a&gt; (Audio only)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://media.ch9.ms/ch9/ce01/e3d43a77-a9a5-455e-9c0e-78071c72ce01/DevRadioWinPhone8.mp4"&gt;MP4&lt;/a&gt; (iPod, Zune HD)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://media.ch9.ms/ch9/ce01/e3d43a77-a9a5-455e-9c0e-78071c72ce01/DevRadioWinPhone8_high.mp4"&gt;High Quality MP4&lt;/a&gt; (iPad, PC)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://media.ch9.ms/ch9/ce01/e3d43a77-a9a5-455e-9c0e-78071c72ce01/DevRadioWinPhone8_mid.mp4"&gt;Mid Quality MP4&lt;/a&gt; (WP7, HTML5)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://media.ch9.ms/ch9/ce01/e3d43a77-a9a5-455e-9c0e-78071c72ce01/DevRadioWinPhone8_Source.wmv"&gt;High Quality WMV&lt;/a&gt; (PC, Xbox, MCE)&lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10385990" width="1" height="1"&gt;</content><author><name>jerry-nixon</name><uri>http://blogs.msdn.com/jerry_4000_nixoncorp.com/ProfileUrlRedirect.ashx</uri></author><category term="DevRadio" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/DevRadio/" /><category term="WP8" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/WP8/" /></entry><entry><title>Walkthrough: Dynamically Skinning your Windows 8 App</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/jerrynixon/archive/2013/01/11/walkthrough-dynamically-skinning-your-windows-8-app.aspx" /><id>http://blogs.msdn.com/b/jerrynixon/archive/2013/01/11/walkthrough-dynamically-skinning-your-windows-8-app.aspx</id><published>2013-01-11T19:10:38Z</published><updated>2013-01-11T19:10:38Z</updated><content type="html">&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/4532.image_5F00_2.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; margin: 0px 11px 11px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" align="right" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-48-98-metablogapi/1070.image_5F00_thumb.png" width="140" height="140" /&gt;&lt;/a&gt;One powerful feature of XAML is the ability to make any control look however the developer or designer wants without having to change the control itself. Similar to, but far more powerful than CSS, skinning a control in XAML lets you change how it looks, change the type of control, and even inject behavior. &lt;/p&gt;  &lt;p&gt;You can change its behavior, customize it’s API, and even add properties as needed. Taken to the extreme, it can actually be a little confusing. But used appropriately, it’s a powerful, time-saving feature. &lt;/p&gt;  &lt;h3&gt;Read the whole article &lt;a href="http://blog.jerrynixon.com/2013/01/walkthrough-dynamically-skinning-your.html"&gt;here&lt;/a&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10384330" width="1" height="1"&gt;</content><author><name>jerry-nixon</name><uri>http://blogs.msdn.com/jerry_4000_nixoncorp.com/ProfileUrlRedirect.ashx</uri></author><category term="Windows" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/Windows/" /><category term="XAML" scheme="http://blogs.msdn.com/b/jerrynixon/archive/tags/XAML/" /></entry></feed>