<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Architecture: The Harmony of Mathematical Precision...</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/jbarnes/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/jbarnes/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:12:36 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Programming the WinJS App Bar–Part 3–Advanced Topics</title>
      <link>https://docs.microsoft.com/archive/blogs/jbarnes/programming-the-winjs-app-barpart-3advanced-topics</link>
      <pubDate>Wed, 27 Mar 2013 08:24:04 GMT</pubDate>
      <dc:creator><![CDATA[jbarnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jbarnes/2013/03/27/programming-the-winjs-app-barpart-3advanced-topics/</guid>
      <description><![CDATA[&#160;  Hello – welcome back to the third and final installment of the (3) part series on...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5707.App_Bar_01E8F356.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5707.App_5F00_Bar_5F00_01E8F356.png"><img title="App_Bar" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="App_Bar" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1050.App_Bar_thumb_361D1C9C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1050.App_5F00_Bar_5F00_thumb_5F00_361D1C9C.png" width="553" height="187" /></a></p>  <p>&#160;</p>  <p>Hello – welcome back to the third and final installment of the (3) part series on programming the WinJS App Bar. In this post, I’ll cover some more of the exciting advanced topics in programming the WinJS App bar like:</p>  <ul>   <li><strong>Creating “Sticky” App Bars</strong> – that are not lightly dismissed</li>    <li><strong>Implementing a “Navigation” App Bar</strong></li>    <li><strong>Incorporating CSS styling</strong> – for maximum flexibility for customizing the look and feel</li>    <li><strong>Localization</strong> - for global appeal of your application </li>    <li><strong>Integrating custom Fly-Outs</strong> – for easy pop-up dialogs for user interactions       <br /></li> </ul>  <p>Just for a quick re-cap, here is the link to part 1 for a basic introduction and below are the links to the 3-part “How Do I” short video series on programming the WinJS App Bar for Channel 9 – here’s the line-up: </p>  <p>#1 - <a href="https://channel9.msdn.com/Blogs/How-Do-I/How-Do-I-Implement-App-Bars-in-a-Windows-8-Metro-Style-Application-Part1"><u><font color="#0066cc">How Do I: Implement App Bars in a Windows 8 Metro Style Application (Part1)?</font></u></a>     <br />#2 - <a href="https://channel9.msdn.com/Blogs/How-Do-I/How-Do-I-Implement-App-Bars-in-a-Windows-8-Metro-Style-Application-Part2"><u><font color="#0066cc">How Do I: Implement App Bars in a Windows 8 Metro Style Application (Part2)?</font></u></a>     <br />#3 - <a href="https://channel9.msdn.com/Blogs/How-Do-I/How-Do-I-Implement-App-Bars-in-a-Windows-8-Metro-Style-Application-Part3"><u><font color="#0066cc">How Do I: Implement App Bars in a Windows 8 Metro Style Application (Part3)?</font></u></a></p>  <h1>Creating “Sticky” App Bars</h1>  <p>Ok, you you have the basics down and you have some cool App Bar icons to use for your application – how do you make the most of an App Bar that is mostly hidden?&#160; In some cases, it is highly desirable to have your App bar remain visible – like when invoking the Camera to take a picture for example.</p>  <p>The good news is that it is extremely easy to do – by setting the AppBar data-win-options to “sticky:true” – like below:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3223.StickyAppBar_075763FA.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3223.StickyAppBar_5F00_075763FA.png"><img title="StickyAppBar" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="StickyAppBar" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6036.StickyAppBar_thumb_06EB3105.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6036.StickyAppBar_5F00_thumb_5F00_06EB3105.png" width="788" height="53" /></a></p>  <p>By invoking this setting, the App Bar will remain visible until the user swipes down or up again to “dismiss” the AppBar,</p>  <p>&#160;</p>  <h1>Implementing a “Navigation” App Bar</h1>  <p>Besides using an AppBar as a “commanding surface” from the bottom of your screen, they can also be used as a means of implementing “Quick Navigation” into your App,&#160; For example, in the Microsoft Bing Sports App, if you swipe down form the top of your screen, you will notice an AppBar at the top of your screen that will allow you to quickly navigate to the sport of your choice:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4010.TopNavAppBar_262DD7D8.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4010.TopNavAppBar_5F00_262DD7D8.png"><img title="TopNavAppBar" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="TopNavAppBar" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4885.TopNavAppBar_thumb_44F425E9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4885.TopNavAppBar_5F00_thumb_5F00_44F425E9.png" width="761" height="428" /></a>&#160;&#160; </p>    <p>This effect is very easy to do – and again all it takes it setting the AppBar data-win-options to “placement:'top'” – like below: </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5140.TopAppBar_4700FEE5.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5140.TopAppBar_5F00_4700FEE5.png"><img title="TopAppBar" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="TopAppBar" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3302.TopAppBar_thumb_2D98FBAB.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3302.TopAppBar_5F00_thumb_5F00_2D98FBAB.png" width="682" height="34" /></a></p>  <p>&#160;</p>  <h1>Incorporating CSS Styling</h1>  <p>For ultimate control over how your AppBar looks – you can implement the use of Cascading Style Sheets (CSS) to fully define the colors, fonts, and size of your AppBar items.&#160; All it takes to make this happen is (2) simple steps:</p>  <p>(1) Assign a class to the AppBar control like below:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/2742.AppBarCSS_05F27F81.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/2742.AppBarCSS_5F00_05F27F81.png"><img title="AppBarCSS" style="display: inline; background-image: none;" border="0" alt="AppBarCSS" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4786.AppBarCSS_thumb_3E9D298E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4786.AppBarCSS_5F00_thumb_5F00_3E9D298E.png" width="484" height="38" /></a></p>  <p> (2) Define a CSS Style sheet that overrides the default App Bar styles with your own styling:</p> <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6136.AppBarCSS2_500D8A66.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6136.AppBarCSS2_5F00_500D8A66.png"><img title="AppBarCSS2" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="AppBarCSS2" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6014.AppBarCSS2_thumb_2B0FC9ED.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6014.AppBarCSS2_5F00_thumb_5F00_2B0FC9ED.png" width="769" height="503" /></a>  <p>See this <a href="http://msdn.microsoft.com/en-us/library/windows/apps/br229670.aspx">link</a> for a full set of the available AppBar Styles.</p>  <p>&#160;</p>  <h1>Localization of your App Bar Resources</h1>  <p>When you are ready to take your application global – you will want to implement App Bar localization – so that folks in different countries can understand the App Bar commands in their native language.&#160; Fortunately, it is very easy to do this in Windows 8.</p>  <p>The first step is to define your AppBar Button with the additional “data-win-res” attribute – which defines the use of a resource file to be used for language translations:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1715.AppBarLocalization1_6928E49E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1715.AppBarLocalization1_5F00_6928E49E.png"><img title="AppBarLocalization1" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="AppBarLocalization1" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7585.AppBarLocalization1_thumb_33B02279.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7585.AppBarLocalization1_5F00_thumb_5F00_33B02279.png" width="771" height="116" /></a></p>  <p>The next step is to add a new folder to your solution named “Strings”.&#160; Then add a new folder underneath the Strings folder for each language code you wish to support:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7288.AppBarLocalization1.5_27AE3245.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7288.AppBarLocalization1.5_5F00_27AE3245.png"><img title="AppBarLocalization1.5" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="AppBarLocalization1.5" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0724.AppBarLocalization1.5_thumb_4AFB26EA.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0724.AppBarLocalization1.5_5F00_thumb_5F00_4AFB26EA.png" width="211" height="314" /></a></p>  <p>&#160;</p>  <p>Then “Add” a new “Resource File (.resjson)” item to the folder:&#160; </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/8712.AppBarLocalization2_69D19AC8.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/8712.AppBarLocalization2_5F00_69D19AC8.png"><img title="AppBarLocalization2" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="AppBarLocalization2" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0602.AppBarLocalization2_thumb_160E21AD.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0602.AppBarLocalization2_5F00_thumb_5F00_160E21AD.png" width="721" height="439" /></a></p>  <p>&#160;</p>  <p>At this point, you can provide language translations by editing the corresponding resource file for each language you wish to support.&#160; Note that the format is simply a text file – in JSON notation.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0876.AppBarLocalization3_6D8F3F98.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0876.AppBarLocalization3_5F00_6D8F3F98.png"><img title="AppBarLocalization3" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="AppBarLocalization3" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3021.AppBarLocalization3_thumb_1AA42C67.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3021.AppBarLocalization3_5F00_thumb_5F00_1AA42C67.png" width="718" height="317" /></a></p>  <p>The last thing required to implement localization for AppBar commands is to insert the following (2) lines of code into your application to handle processing for resource file translations and in the event the user changes the default language at the OS level:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7612.AppBarLocalization4_046E1115.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7612.AppBarLocalization4_5F00_046E1115.png"><img title="AppBarLocalization4" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="AppBarLocalization4" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4064.AppBarLocalization4_thumb_1FA66A16.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4064.AppBarLocalization4_5F00_thumb_5F00_1FA66A16.png" width="756" height="293" /></a></p>  <h1>Integrating Custom Fly-Outs from the App Bar</h1>  <p>One of the coolest capabilities in Windows 8 applications written using HTML/JS/CSS is the capability to implement custom Fly-Outs in your application to handle user input or notifications.</p>  <p>There are several steps to implement a custom App Bar Fly-Out, the first is to define your Fly Out in HTML and assigning the data-win-control attribute to &quot;WinJS.UI.Flyout&quot;:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7608.AppBarFlyOut1_5778AE39.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7608.AppBarFlyOut1_5F00_5778AE39.png"><img title="AppBarFlyOut1" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="AppBarFlyOut1" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0755.AppBarFlyOut1_thumb_09041BCF.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0755.AppBarFlyOut1_5F00_thumb_5F00_09041BCF.png" width="718" height="93" /></a></p>  <p>The next step is to define an App Bar command button with the following (2) data-win-options set to type “flyout” and the ID of the Fly Out HTML:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/8360.AppBarFlyOut2_4F14D8E2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/8360.AppBarFlyOut2_5F00_4F14D8E2.png"><img title="AppBarFlyOut2" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="AppBarFlyOut2" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0250.AppBarFlyOut2_thumb_608539BA.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0250.AppBarFlyOut2_5F00_thumb_5F00_608539BA.png" width="457" height="238" /></a></p>  <p> Once these are in place – you have a really nifty Fly Out control that can be invoked by a command in the App Bar:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5618.AppBarFlyOut3_749E5643.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5618.AppBarFlyOut3_5F00_749E5643.png"><img title="AppBarFlyOut3" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="AppBarFlyOut3" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0830.AppBarFlyOut3_thumb_3F25941E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0830.AppBarFlyOut3_5F00_thumb_5F00_3F25941E.png" width="610" height="333" /></a></p>  <p>The Fly Out can then be easily dismissed by pressing on the command button in the Fly Out – or by clicking anywhere else on the screen outside of the Fly Out control.</p>  <p>And there you have it!&#160; Some great ways to add advanced functionality for your Windows 8 App Bar commands! </p>  <p>Take a look at the screencast – @ 10 minutes: <a href="https://channel9.msdn.com/Blogs/How-Do-I/How-Do-I-Implement-App-Bars-in-a-Windows-8-Metro-Style-Application-Part3"><u><font color="#0066cc">How Do I: Implement App Bars in a Windows 8 Metro Style Application (Part3)?</font></u></a></p>  <p> Here’s a link to all of the <a href="http://sdrv.ms/NyD69H"><u><font color="#0066cc">full code samples.</font></u></a></p>  <p>And be sure to check-out the entire series of <a href="https://channel9.msdn.com/Blogs/How-Do-I"><u><font color="#0066cc">“How-Do-I” Windows 8 videos on Channel 9</font></u></a></p>]]></content:encoded>
    </item>
    <item>
      <title>Programming the WinJS App Bar–Part 2–Customizing the Look and Feel</title>
      <link>https://docs.microsoft.com/archive/blogs/jbarnes/programming-the-winjs-app-barpart-2customizing-the-look-and-feel</link>
      <pubDate>Mon, 13 Aug 2012 15:05:08 GMT</pubDate>
      <dc:creator><![CDATA[jbarnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jbarnes/2012/08/13/programming-the-winjs-app-barpart-2customizing-the-look-and-feel/</guid>
      <description><![CDATA[&#160;  Hello – we’re back with the second installment of the (3) part series on programming the...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6366.AppBarJB2_2B9FCF1C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6366.AppBarJB2_5F00_2B9FCF1C.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="AppBarJB2" border="0" alt="AppBarJB2" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1563.AppBarJB2_thumb_6A914FB7.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1563.AppBarJB2_5F00_thumb_5F00_6A914FB7.png" width="600" height="202" />&#160;</a></p>  <p>Hello – we’re back with the second installment of the (3) part series on programming the WinJS App Bar.&#160; In this post, I’ll cover some more of the finer points around customizing the look &amp; feel of your App Bar – specifically around how to find (or create your own) cool App Bar icons and how to position your App Bar and App Bar Commands according to the Windows 8 UX guidelines. </p>  <p>Just for a quick re-cap, here is the link to part 1 for a basic introduction and below are the links to the 3-part “How Do I” short video series on programming the WinJS App Bar for Channel 9 – here’s the line-up: </p>  <p>#1 - <a href="https://channel9.msdn.com/Blogs/How-Do-I/How-Do-I-Implement-App-Bars-in-a-Windows-8-Metro-Style-Application-Part1"><u><font color="#0066cc">How Do I: Implement App Bars in a Windows 8 Metro Style Application (Part1)?</font></u></a>    <br />#2 - <a href="https://channel9.msdn.com/Blogs/How-Do-I/How-Do-I-Implement-App-Bars-in-a-Windows-8-Metro-Style-Application-Part2"><u><font color="#0066cc">How Do I: Implement App Bars in a Windows 8 Metro Style Application (Part2)?</font></u></a>    <br />#3 - <a href="https://channel9.msdn.com/Blogs/How-Do-I/How-Do-I-Implement-App-Bars-in-a-Windows-8-Metro-Style-Application-Part3"><u><font color="#0066cc">How Do I: Implement App Bars in a Windows 8 Metro Style Application (Part3)?</font></u></a></p>  <h1>App Bar Icons – (3) options</h1>  <p>Ok, you you have the basics down and now you are looking for some cool icons to use in your app Bar.&#160; The first resource I will point you towards is the “stock” icons that are available in Windows 8.&#160; </p>  <h2>Option #1 – Windows 8 Default Icons:</h2>  <p>To see the list of default icons:</p>  <ul>   <li>Create a new (or open an existing) JavaScript Windows 8 App using Visual Studio 2012.</li>    <li>Expand the References\Windows Library for JavaScript \ JS \ UI.JS file.</li>    <li>Search for the word ”Glyphs” and you should see a screen similar to the one below:</li> </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6685.AppBar_Icons_1_74764122.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6685.AppBar_5F00_Icons_5F00_1_5F00_74764122.png"><img style="display: inline; background-image: none;" title="AppBar_Icons_1" border="0" alt="AppBar_Icons_1" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6114.AppBar_Icons_1_thumb_77C7B2FD.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6114.AppBar_5F00_Icons_5F00_1_5F00_thumb_5F00_77C7B2FD.png" width="600" height="338" /></a></p>  <ul>   <li>Here, you will see @ 193 definitions for default icon values that you can use in your Windows 8 application.</li>    <li>To use these icons in your App – simply reference them by name when specifying the icon value like below:</li> </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0815.AppBar_Icons_2a_5CAEE3EF.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0815.AppBar_5F00_Icons_5F00_2a_5F00_5CAEE3EF.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="AppBar_Icons_2a" border="0" alt="AppBar_Icons_2a" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4135.AppBar_Icons_2a_thumb_1BA0648B.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4135.AppBar_5F00_Icons_5F00_2a_5F00_thumb_5F00_1BA0648B.png" width="600" height="155" /></a>&#160;</p>  <h2>Option #2 – Segoe UI Fonts:</h2>  <p>The next resource for finding some cool App Bar icons is to make use of the Segue UI Fonts.&#160; The easiest way to do this in Windows 8 is to invoke the search charm from the Windows 8 Start Screen by swiping from the left and selecting the “Search” charm (or just hit any alpha-numeric key on a physical keyboard) and then typing the words”CHAR” – this will display the “Character Map” in the search results:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/2553.AppBar_Icons_4_056A4939.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/2553.AppBar_5F00_Icons_5F00_4_5F00_056A4939.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="AppBar_Icons_4" border="0" alt="AppBar_Icons_4" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4520.AppBar_Icons_4_thumb_2A1B60B0.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4520.AppBar_5F00_Icons_5F00_4_5F00_thumb_5F00_2A1B60B0.png" width="600" height="338" /></a></p>  <p>After selecting the Character Map – you will see the Character Map utility – be sure that the Segoe UI font is selected in the drop-down: </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1070.AppBar_Icons_3b_4E604532.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1070.AppBar_5F00_Icons_5F00_3b_5F00_4E604532.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="AppBar_Icons_3b" border="0" alt="AppBar_Icons_3b" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/2134.AppBar_Icons_3b_thumb_53CEB5D6.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/2134.AppBar_5F00_Icons_5F00_3b_5F00_thumb_5F00_53CEB5D6.png" width="600" height="637" /></a></p>  <p>From here, you can browse through the many interesting icon values in this font.&#160; When you find the one you want, be sure to note the specific character value – this will be used to denote your icon value by adding the prefix of “\u” + character value like so: </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4213.AppBar_Icons_2b_77A76763.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4213.AppBar_5F00_Icons_5F00_2b_5F00_77A76763.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="AppBar_Icons_2b" border="0" alt="AppBar_Icons_2b" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/2475.AppBar_Icons_2b_thumb_6FAFC501.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/2475.AppBar_5F00_Icons_5F00_2b_5F00_thumb_5F00_6FAFC501.png" width="600" height="158" /></a></p>  <h2>Option #3 – Custom Icon Images:</h2>  <p>If you haven’t found the right icon yet from either the default Windows 8 icons or the Segue UI fonts, you can always create your own.&#160; There is a great example of how to do this in the <a href="http://code.msdn.microsoft.com/windowsapps/App-bar-sample-a57eeae9">Windows 8 App Bar control Sample</a>.&#160; </p>  <p>The base size of the custom PNG image is 40 pixels x 40 pixels, with 2 rows of 4 images. The 1st row represents the normal button state, and the 2nd row is for the “toggled state” if your App Bar command has toggled states (like Pin or Un-Pin).&#160; Below is an example PNG for a custom icon for an “Accept” command from the SDK App Bar Control Sample above:&#160;&#160;&#160; </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/2475.AppBar_Icons_2c_556F5BDD.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/2475.AppBar_5F00_Icons_5F00_2c_5F00_556F5BDD.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="AppBar_Icons_2c" border="0" alt="AppBar_Icons_2c" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7268.AppBar_Icons_2c_thumb_06226389.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7268.AppBar_5F00_Icons_5F00_2c_5F00_thumb_5F00_06226389.png" width="600" height="300" /></a></p>  <p>Check-out this recent <a href="http://blogs.msdn.com/b/shawnste/archive/2012/06/16/custom-appbar-sprite-icons-for-your-windows-8-metro-style-html-app.aspx">blog post</a> for more information on how to create your own custom PNG images for use as App Bar icons.&#160; </p>  <p>As you can see, there are a wide variety of options available to you for finding the right icon for your App Bar.</p>  <p>&#160;</p>  <h1>App Bar – Positioning</h1>  <p>So now that you have some great looking icons for your App bar commands – the next topic to cover is positioning these app Bar commands on the bottom or top of the screen.&#160; Knowing when and how is the key to success here – as far as the question of App Bar on the top or bottom – the answer is that App bars on the top of the screen are reserved for “Navigational” commands.&#160; The bottom App bar is reserved for Application commands.</p>  <p>&#160;</p>  <h2>Left-side / Right-side</h2>  <p>The bottom left-side of the App Bar is reserved for contextual commands for your application – the right-side is reserved for global, App-wide commands.</p>  <p>The way to denote these is through the use of the “Section” attribute; note that setting the value to “Selection” will display the App Bar command on the left-side; using the value of “Global” will cause the App Bar command to display on the right-side of the screen:&#160; </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/8726.AppBar_Icons_7_23B43E88.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/8726.AppBar_5F00_Icons_5F00_7_5F00_23B43E88.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="AppBar_Icons_7" border="0" alt="AppBar_Icons_7" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0410.AppBar_Icons_7_thumb_3B6B75EE.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0410.AppBar_5F00_Icons_5F00_7_5F00_thumb_5F00_3B6B75EE.png" width="600" height="288" /></a></p>  <p>&#160;</p>  <h2>Top / Bottom</h2>  <p>By default, the App Bar will display on the bottom of the screen.&#160; To denote that the App Bar should be placed on the top of the screen (again for App Navigation) – all we have to do is modify the data-win-option for the “placement” attribute and set it to “top”: </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1884.AppBar_Icons_8_20BED9D5.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1884.AppBar_5F00_Icons_5F00_8_5F00_20BED9D5.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="AppBar_Icons_8" border="0" alt="AppBar_Icons_8" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5773.AppBar_Icons_8_thumb_400180A8.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5773.AppBar_5F00_Icons_5F00_8_5F00_thumb_5F00_400180A8.png" width="600" height="22" /></a>&#160;&#160; </p>  <p> And there you have it!&#160; There are multiple ways to get some great icons for your Windows 8 App Bar commands (including creating your own) along with how to position the App Bar and App Bar commands on the Top/Bottom or Left/Right. </p>  <p>Take a look at the screencast – @ 10 minutes: <a href="https://channel9.msdn.com/Blogs/How-Do-I/How-Do-I-Implement-App-Bars-in-a-Windows-8-Metro-Style-Application-Part2"><u><font color="#0066cc">How Do I: Implement App Bars in a Windows 8 Metro Style Application (Part2)?</font></u></a></p>  <p> Here’s a link to the <a href="http://sdrv.ms/NyD69H"><u><font color="#0066cc">full code samples.</font></u></a></p>  <p>And be sure to check-out the entire series of <a href="https://channel9.msdn.com/Blogs/How-Do-I"><u><font color="#0066cc">“How-Do-I” Windows 8 videos on Channel 9</font></u></a></p>  <div style="margin: 0px; padding: 0px; float: none; display: inline;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a0958cdd-648a-4534-9760-f8ffb5d8d898" class="wlWriterSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Windows+8" rel="tag"><u><font color="#0066cc">Windows 8</font></u></a></div>]]></content:encoded>
    </item>
    <item>
      <title>Programming the WinJS App Bar–Part 1–The Basics</title>
      <link>https://docs.microsoft.com/archive/blogs/jbarnes/programming-the-winjs-app-barpart-1the-basics</link>
      <pubDate>Mon, 06 Aug 2012 20:47:55 GMT</pubDate>
      <dc:creator><![CDATA[jbarnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jbarnes/2012/08/06/programming-the-winjs-app-barpart-1the-basics/</guid>
      <description><![CDATA[I’ve been doing a lot of Windows 8 HTML5 development lately and wanted to share some key...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7142.AppBarJB2_69975305.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7142.AppBarJB2_5F00_69975305.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="AppBarJB2" border="0" alt="AppBarJB2" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5483.AppBarJB2_thumb_6CC93AED.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5483.AppBarJB2_5F00_thumb_5F00_6CC93AED.png" width="600" height="202" /></a></p>  <p>I’ve been doing a lot of Windows 8 HTML5 development lately and wanted to share some key learning's for what I would consider to be one of the most integral parts of every GREAT windows 8 application – The App Bar.&#160; To that end, this is the first of a multi-part series on the topic of programming the Windows 8 App Bar – specifically via WinJS (HTML, JS, and CSS).</p>  <p>In Windows 8, t he App Bar is really the new “Toolbar” and provides a consistent commanding surface for both local contextual commands and global app functionality across screens – all nicely tucked at the bottom (or top) of the screen to keep the surface area of your App Free &amp; Clear.</p>  <p>Some examples uses of the App Bar may include operations such as:</p>  <ul>   <li>Pinning&#160; a Secondary Live Tile</li>    <li>Invoking a Camera interaction or working with other system elements</li>    <li>Providing Actions on a Data Entry Screen such as (File/Save/New…) </li> </ul>  <p>I recently completed a 3-part “How Do I” short video series on programming the WinJS App Bar for Channel 9 – here’s the line-up: </p>  <p>#1 - <a href="https://channel9.msdn.com/Blogs/How-Do-I/How-Do-I-Implement-App-Bars-in-a-Windows-8-Metro-Style-Application-Part1">How Do I: Implement App Bars in a Windows 8 Metro Style Application (Part1)?</a>    <br />#2 - <a href="https://channel9.msdn.com/Blogs/How-Do-I/How-Do-I-Implement-App-Bars-in-a-Windows-8-Metro-Style-Application-Part2">How Do I: Implement App Bars in a Windows 8 Metro Style Application (Part2)?</a>    <br />#3 - <a href="https://channel9.msdn.com/Blogs/How-Do-I/How-Do-I-Implement-App-Bars-in-a-Windows-8-Metro-Style-Application-Part3">How Do I: Implement App Bars in a Windows 8 Metro Style Application (Part3)?</a></p>  <p>The first part of the series is a basic introduction on how to get up and running quickly with HTML and JavaScript.&#160; As you can see below in the following HTML snippet, the key is assigning the “data-win-control” attribute values for&#160; <strong>WinJS.UI.AppBar</strong> and <strong>WinJS.UI.AppBarCommand</strong> values:</p>  <table border="1" cellspacing="0" cellpadding="0" width="800"><tbody>     <tr>       <td valign="top" width="800">         <p> &lt;div id=&quot;appBar&quot; data-win-control=&quot;WinJS.UI.AppBar&quot; data-win-options=&quot;&quot;&gt;</p>          <p>&#160;&#160;&#160; &lt;button            <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; data-win-control=&quot;WinJS.UI.AppBarCommand&quot;             <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; data-win-options=&quot;{             <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; id:'cmd1',             <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; label:'AppBar Command',             <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; icon:'placeholder',             <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; section:'global',             <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; tooltip:'Basic AppBar Command'             <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&quot;&gt;             <br />&#160;&#160;&#160; &lt;/button&gt;</p>          <p>&lt;/div&gt;</p>       </td>     </tr>   </tbody></table>  <p>In the example above, note that the data-win-options values for the WinJS.UI.AppBarCommand allow us to define things like the icon value (in this case using a “stock” App Bar icon value from UI.JS reference library), whether the App Bar command resides on the left or right (via the “section” value), and a descriptive tooltip value.&#160;&#160;&#160; </p>  <p>From there, you can easily wire-up event handlers in JavaScript for the App Bar command buttons – in this case, we will just display a message box when the user invokes the App Bar command by swiping-up from the bottom of the screen or using the Windows Key + Z and then selecting the AppBar command&#160;&#160;&#160; </p>  <table border="1" cellspacing="0" cellpadding="0" width="800"><tbody>     <tr>       <td valign="top" width="800">         <p>document.getElementById(&quot;cmd1&quot;).addEventListener(&quot;click&quot;, doAppBarCmd, false);            <br />function doAppBarCmd()             <br />{             <br />&#160;&#160;&#160; var alertDialog = new Windows.UI.Popups.MessageDialog(&quot;App Bar Command Clicked!&quot;);             <br />&#160;&#160;&#160; alertDialog.showAsync();             <br />}</p>       </td>     </tr>   </tbody></table>  <p>And that’s all you need to quickly get started with an App Bar in your Windows 8 application.&#160; The next video segments build on this basic example and show you how to add custom icons for your App Bar via the WinJS reference files, the Segue UI Character set, and using a custom .PNG template.&#160; Additionally, we will take a look at styling the app bar using CSS, specifying the location of App Bar elements (Top/Bottom or left/right), localization, and implementing custom Fly-outs.</p>  <p>Take a look at part 1 below – @ 8 minutes: How Do I: <a href="https://channel9.msdn.com/Blogs/How-Do-I/How-Do-I-Implement-App-Bars-in-a-Windows-8-Metro-Style-Application-Part1">Implement App Bars in a Windows 8 Metro Style Application (Part1)?</a></p> Here’s a link to the <a href="http://sdrv.ms/NyD69H">full code samples.</a>&#160; <p>And be sure to check-out the entire series of <a href="https://channel9.msdn.com/Blogs/How-Do-I">“How-Do-I” Windows 8 videos on Channel 9</a></p>  <div style="margin: 0px; padding: 0px; float: none; display: inline;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a0958cdd-648a-4534-9760-f8ffb5d8d898" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Windows+8" rel="tag">Windows 8</a></div>]]></content:encoded>
    </item>
    <item>
      <title>Hosting WP7 Deep Zoom Content in Azure Blob Storage</title>
      <link>https://docs.microsoft.com/archive/blogs/jbarnes/hosting-wp7-deep-zoom-content-in-azure-blob-storage</link>
      <pubDate>Wed, 07 Dec 2011 14:17:11 GMT</pubDate>
      <dc:creator><![CDATA[jbarnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jbarnes/2011/12/07/hosting-wp7-deep-zoom-content-in-azure-blob-storage/</guid>
      <description><![CDATA[One of the most awesome capabilities exposed in Windows Phone 7 is the ability to host Deep Zoom...]]></description>
      <content:encoded><![CDATA[<p>One of the most awesome capabilities exposed in Windows Phone 7 is the ability to host Deep Zoom images within your application.&#160; This is the same technology that powers such awesome Deep Zoom web experiences as the <a href="http://memorabilia.hardrock.com/">Hard Rock Memorabilia</a> and <a href="http://www.jumpman23mosaic.com/Home/AjaxMosaic">Michael Jordan Jump Man 23 Mosaic</a> web sites.</p>  <p>Here’s a few screenshots of the sample application I will walk you through in this blog post.&#160; The secret to success is the use of the the <a href="http://msdn.microsoft.com/en-us/site/system.windows.controls.multiscaleimage">Multi-Scale Image</a> control:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3443.DZ12_54891FB3.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3443.DZ12_5F00_54891FB3.png"><img style="display: inline; background-image: none;" title="DZ12" border="0" alt="DZ12" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4201.DZ12_thumb_5CBD454A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4201.DZ12_5F00_thumb_5F00_5CBD454A.png" width="131" height="244" /></a>&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4606.DZ13_427CDC26.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4606.DZ13_5F00_427CDC26.png"><img style="display: inline; background-image: none;" title="DZ13" border="0" alt="DZ13" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4111.DZ13_thumb_0D23A3F4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4111.DZ13_5F00_thumb_5F00_0D23A3F4.png" width="132" height="244" /></a>&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5165.DZ14_04BFCE9D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5165.DZ14_5F00_04BFCE9D.png"><img style="display: inline; background-image: none;" title="DZ14" border="0" alt="DZ14" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4111.DZ14_thumb_00F20400.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4111.DZ14_5F00_thumb_5F00_00F20400.png" width="131" height="244" /></a>&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1452.DZ16_1F5C44E9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1452.DZ16_5F00_1F5C44E9.png"><img style="display: inline; background-image: none;" title="DZ16" border="0" alt="DZ16" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/8880.DZ16_thumb_51DFA25B.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/8880.DZ16_5F00_thumb_5F00_51DFA25B.png" width="131" height="244" /></a></p>  <p>The other secret to success is hosting your Deep Zoom content in <a href="http://www.microsoft.com/windowsazure/features/storage/">Windows Azure Blob Storage</a> – which provides a highly robust, scalable, and inexpensive way to serve-up your visually stunning experiences over the web.&#160; For even greater performance on a world-wide basis, you can also leverage the <a href="http://www.microsoft.com/windowsazure/features/cdn/">Windows Azure Content Delivery Network (CDN)</a> capabilities of Azure Blob storage for your data elements.&#160; </p>  <p>My goal is to take you all the way from a cool hi-resolution photograph to a Windows Phone 7 application that can dynamically “Deep Zoom” in and out of the initial image in a Windows Phone 7 application. So, the steps will be as follows:</p>  <p><strong><font size="3">Cool Photo –&gt; Deep Zoom Composer –&gt; Azure Blob Storage –&gt; Windows Phone 7 App – Deep Zoom Viewer</font>&#160;</strong></p>  <strong></strong>  <p>With this framework and knowledge,, you will be able to host all kinds of valuable Deep Zoom imagery in Windows Azure Blob storage – and create mobile, web, and client applications to consume them.</p>  <h1><strong>Step 1 – download Deep Zoom Composer and Create Deep Zoom Images</strong> </h1>  <p>First, get the Free <a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=24819">Deep Zoom Composer Download</a>. </p>  <p>Working with Deep Zoom composer is very easy and straightforward – there are basically (3) operations you can perform:</p>  <ul>   <li><strong>Import </strong>– your favorite images or pictures.</li>    <li><strong>Compose</strong> – layout the image(s) on the screen in any pattern you wish </li>    <li><strong>Export</strong> – to create a folder containing the Deep Zoom Tile images that are used to render your scene.</li>  </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7725.DZ1_1B8E7A4C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7725.DZ1_5F00_1B8E7A4C.png"><img style="display: inline; background-image: none;" title="DZ1" border="0" alt="DZ1" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5756.DZ1_thumb_398C8840.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5756.DZ1_5F00_thumb_5F00_398C8840.png" width="654" height="440" /></a></p>  <p>Here you can see that I have imported an image and centered it on the canvas:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7206.DZ2_5143BFA6.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7206.DZ2_5F00_5143BFA6.png"><img style="display: inline; background-image: none;" title="DZ2" border="0" alt="DZ2" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4667.DZ2_thumb_3C059431.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4667.DZ2_5F00_thumb_5F00_3C059431.png" width="654" height="440" /></a></p>  <p>The next step is to EXPORT your Deep Zoom project images:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/8053.DZ3_72FF726A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/8053.DZ3_5F00_72FF726A.png"><img style="display: inline; background-image: none;" title="DZ3" border="0" alt="DZ3" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/2260.DZ3_thumb_2EEB6886.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/2260.DZ3_5F00_thumb_5F00_2EEB6886.png" width="654" height="437" /></a></p>  <p>Select the “Custom” tab:</p>  <ul>   <li>Output Type: Silverlight Deep Zoom</li>    <li>Export as a collection (multiple images)</li>    <li>Set your folder location for the exported images</li>  </ul>  <p>Now you can view the image folder and you should have the following files and folder structure:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/2654.DZ4_503AE855.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/2654.DZ4_5F00_503AE855.png"><img style="display: inline;" title="DZ4" alt="DZ4" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/2654.DZ4_thumb_685E52B0.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/2654.DZ4_5F00_thumb_5F00_685E52B0.png" width="650" height="176" /></a></p>  <p>&#160;</p>  <h1>Step 2 – Upload&#160; Deep Zoom Content into Windows Azure Blob Storage</h1>  <p>If you don’t already have a Windows Azure Account, you can sign-up for a <a href="http://www.microsoft.com/windowsazure/free-trial/">Free 90-day Windows Azure Trial</a> to get started. </p>  <p>Once you are in the <a href="https://windows.azure.com/default.aspx">Windows Azure Portal</a> – you will want to select the option for “Hosted Services, Storage Accounts &amp; CDN.&#160; From there, select “Storage Accounts” and then you can right-click on your subscription and select “New Storage Account”: </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/8424.DZ19_19115A5C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/8424.DZ19_5F00_19115A5C.png"><img style="display: inline; background-image: none;" title="DZ19" border="0" alt="DZ19" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5707.DZ19_thumb_5F22176F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5707.DZ19_5F00_thumb_5F00_5F22176F.png" width="654" height="370" /></a></p>  <p>Once you have created a new Storage Account, you will want to select the option to view the primary or secondary account key:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6355.DZ20_0B5E9E54.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6355.DZ20_5F00_0B5E9E54.png"><img style="display: inline; background-image: none;" title="DZ20" border="0" alt="DZ20" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/8103.DZ20_thumb_6CE4379D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/8103.DZ20_5F00_thumb_5F00_6CE4379D.png" width="654" height="451" /></a></p>  <p>This keys will valuable for the next step where we will upload the Deep Zoom Images to Windows Azure – so please copy them to to your clipboard for later use.&#160; You will also want to protect these keys – as they are the security mechanism to allow programs to&#160;&#160;&#160; </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0167.DZ21_3B954D3D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0167.DZ21_5F00_3B954D3D.png"><img style="display: inline; background-image: none;" title="DZ21" border="0" alt="DZ21" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/2727.DZ21_thumb_0F78504C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/2727.DZ21_5F00_thumb_5F00_0F78504C.png" width="654" height="234" /></a></p>  <p>Once you have provisioned Windows Azure Blob Storage, we will use a C# .NET console application to upload the Deep Zoom images files into Windows Azure.</p>  <p>I affectionately call this application “BlobBlasterParallel” - the program basically will move a folder and all subdirectories underneath and upload all the files into Windows Azure using the .NET Parallel libraries to maximize the efficiency of the application across all available CPU’s.&#160; </p>  <p>All that is required is to modify the variables in the Program.cs file for the following information:</p>  <ul>   <li>Folder location for your Deep Zoom images (generated in Step 1).</li>    <li>Your Windows Azure Blob Storage Account Name.</li>    <li>Your Windows Azure Blob Account Name.</li>    <li>Your Windows Azure Blob Account Key.</li>  </ul>  <p>Here is the code snippet to modify:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/8816.DZ23_5FDA31BF.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/8816.DZ23_5F00_5FDA31BF.png"><img style="display: inline;" title="DZ23" alt="DZ23" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/8883.DZ23_thumb_174042EE.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/8883.DZ23_5F00_thumb_5F00_174042EE.png" width="650" height="127" /></a></p>  <p>&#160;</p>  <p>Note the use of the <a href="http://msdn.microsoft.com/en-us/library/system.threading.tasks.parallel.foreach.aspx">Parallel.ForEach</a> construct in the In the code snippet below that iterates over the files in a folder:&#160; </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1541.DZ22_3616B6CC.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1541.DZ22_5F00_3616B6CC.png"><img style="display: inline;" title="DZ22" alt="DZ22" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6431.DZ22_thumb_29A893A3.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6431.DZ22_5F00_thumb_5F00_29A893A3.png" width="650" height="523" /></a>&#160; </p>  <p>Now compile and run the application from a command prompt. Note that this program will maximize your CPU’s and network connection to upload all of your Deep Zoom images and folders into Windows Azure as fast as possible – so be aware of network saturation issues you may cause for your home or work environment.</p>  <p>*Any on-line gamers in the household are particularly at risk for total p0wnage during this time. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0564.DZ24_4087651F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0564.DZ24_5F00_4087651F.png"><img style="display: inline; background-image: none;" title="DZ24" border="0" alt="DZ24" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6428.DZ24_thumb_18E0E8F5.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6428.DZ24_5F00_thumb_5F00_18E0E8F5.png" width="654" height="123" /></a></p>  <p>You can download the all the code for the BlobBlasterParallel application at the bottom of this post.</p>  <p>We can use a tool such as the <a href="http://azurestorageexplorer.codeplex.com/">Azure Storage Explorer</a> to view the content that has been uploaded to our Azure Blob Container.&#160; </p>  <p>Here’s a view of our Blog container after we have uploaded all the Deep Zoom content that was generated in step 1:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5824.DZ26_3ED6994B.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5824.DZ26_5F00_3ED6994B.png"><img style="display: inline; background-image: none;" title="DZ26" border="0" alt="DZ26" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7484.DZ26_thumb_4EF23B77.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7484.DZ26_5F00_thumb_5F00_4EF23B77.png" width="654" height="467" /></a></p>  <p>&#160;</p>  <h1>Step 3 – Create a Windows Phone 7 Application to display Deep Zoom Images</h1>  <p>Everything you need to get started building Windows Phone 7 applications (including the free tools) can be found at: <span style="line-height: 115%; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-ansi-language: en-us; mso-fareast-language: en-us; mso-bidi-language: ar-sa;"><a href="http://create.msdn.com/en-US/"><u><font color="#0000ff">http://create.msdn.com/en-US/</font></u></a></span></p>  <p>Once you have the Visual Studio tools for Windows Phone 7 installed, create a new Windows phone Application by selecting </p>  <p>File / New / Windows Phone Application - and then allowing Visual Studio to populate your solution.</p>  <strong></strong>  <p><strong>Enable the Multi-Scale Image Control in the Toolbox</strong></p>  <p>The multi-scale image control not visible by default in your toolbox - so all you have to do I right click on the toolbox and select “Add Items”:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/8551.DZ6_1BF28543.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/8551.DZ6_5F00_1BF28543.png"><img style="display: inline; background-image: none;" title="DZ6" border="0" alt="DZ6" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3757.DZ6_thumb_2880325F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3757.DZ6_5F00_thumb_5F00_2880325F.png" width="263" height="314" /></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6404.DZ5_46EA7348.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6404.DZ5_5F00_46EA7348.png"><img style="display: inline; background-image: none;" title="DZ5" border="0" alt="DZ5" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4010.DZ5_thumb_4C58E3EC.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4010.DZ5_5F00_thumb_5F00_4C58E3EC.png" width="431" height="312" /></a></p>  <p>&#160;</p>  <p>Now you can drag and drop a Multi-Scale Image control from the toolbox and size it on the page like below (I named my Multi-Scale Image control “msi” for the next step :</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3757.DZ7_236DCEE3.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3757.DZ7_5F00_236DCEE3.png"><img style="display: inline; background-image: none;" title="DZ7" border="0" alt="DZ7" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3757.DZ7_thumb_28700C92.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3757.DZ7_5F00_thumb_5F00_28700C92.png" width="219" height="410" />&#160;</a></p>  <p>&#160;</p>  <p>Now, we can modify the page load event to set the Multi-Scale Image control source property to our Windows Azure Blob container: </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1780.DZ25_402743F8.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1780.DZ25_5F00_402743F8.png"><img style="display: inline;" title="DZ25" alt="DZ25" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/2275.DZ25_thumb_3E767824.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/2275.DZ25_5F00_thumb_5F00_3E767824.png" width="650" height="260" /></a></p>  <p>Now, if we run our WP7 Deep Zoom project in debug, we will get the Deep Zoom Image displayed on our WP7 Emulator – directly from Windows Azure! </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3821.DZ27_522361B8.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3821.DZ27_5F00_522361B8.png"><img style="display: inline; background-image: none;" title="DZ27" border="0" alt="DZ27" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6076.DZ27_thumb_1A216DD5.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6076.DZ27_5F00_thumb_5F00_1A216DD5.png" width="254" height="476" /></a>&#160;</p>  <p>Of course, this is great – but our application still lacks the ability to respond to mouse events in order to zoom in or out.&#160; To remedy this situation, I have taken the initial code base from Alex Yakhnin's blog post <a href="http://blogs.msdn.com/b/priozersk/archive/2010/03/28/deep-zoom-on-wp7.aspx">Deep Zoom on WP7</a> and modified it to work on Windows Phone 7 Mango.</p>  <p>And with that, we get a full-fidelity Deep Zoom experience on Windows Phone 7 – using Windows Azure Blob Storage to host our content!</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4478.DZ28_10E53294.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4478.DZ28_5F00_10E53294.png"><img style="display: inline; background-image: none;" title="DZ28" border="0" alt="DZ28" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3005.DZ28_thumb_62AB36D9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3005.DZ28_5F00_thumb_5F00_62AB36D9.png" width="254" height="476" /></a>&#160;</p>  <p>So there you have it; Windows Azure hosting Deep Zoom image content in Blob Storage and a Windows Phone 7 application to display your super cool visual experiences! </p>  <p>All the source code for the above examples can be found <a href="https://skydrive.live.com/redir.aspx?cid=e80ea9288abd4452&amp;resid=E80EA9288ABD4452!1373&amp;parid=root">here</a></p>  <p>Enjoy!</p>]]></content:encoded>
    </item>
    <item>
      <title>Build Your Own SKYNET with the Windows Azure Auto-Scaling Application Block (WASABi)–Part 2</title>
      <link>https://docs.microsoft.com/archive/blogs/jbarnes/build-your-own-skynet-with-the-windows-azure-auto-scaling-application-block-wasabipart-2</link>
      <pubDate>Wed, 19 Oct 2011 15:48:30 GMT</pubDate>
      <dc:creator><![CDATA[jbarnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jbarnes/2011/10/19/build-your-own-skynet-with-the-windows-azure-auto-scaling-application-block-wasabipart-2/</guid>
      <description><![CDATA[Welcome back – this blog post is Part 2 to my previous post to help provide a functional walk-thru...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0435.Entlib_AutoScaling_69AF91E4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0435.Entlib_5F00_AutoScaling_5F00_69AF91E4.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="Entlib_AutoScaling" border="0" alt="Entlib_AutoScaling" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3175.Entlib_AutoScaling_thumb_2F541C03.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3175.Entlib_5F00_AutoScaling_5F00_thumb_5F00_2F541C03.png" width="240" height="99" /></a></p>  <p>Welcome back – this blog post is Part 2 to my <a href="http://blogs.msdn.com/b/jbarnes/archive/2011/10/18/build-your-own-skynet-with-the-windows-azure-auto-scaling-application-block-wasabi-part-1.aspx">previous post</a> to help provide a functional walk-thru of how to install and get up-and-running quickly with the <a href="http://entlib.codeplex.com/">Windows Azure Auto-Scaling Block</a> – also known as “WASABI”. </p>  <p>This walk-through will demonstrate how much time, effort, headaches, and money you can save with this fantastic new (and *free) application framework for running a highly dynamic Windows Azure infrastructure that can easily scale up or down (automatically) with both predictive and reactive rule capabilities to handle almost any business scenario (seen or unforeseen).</p>  <p><strong>Rule Types in the Windows Azure Auto-Scaling Block:</strong></p>  <p>There are (2) basic rule types to consider: </p>  <blockquote>   <p><em><strong>Constraint rules: </strong></em></p>    <ul>     <li>Use timetables (with recurrences) to proactively set limits on the number of instances for handling peaks &amp; valleys.</li>      <li>Have a rank to determine precedence if there are multiple overlapping rules.</li>   </ul>    <p><strong><em>Reactive rules:</em></strong></p>    <ul>     <li>Use conditions to reactively adjust the number of running instances or perform some other action like notify an operator to take some action.</li>      <li>Reactive rules would be typically based on performance counters and other potential system metrics (like Azure Queue length).</li>      <li>You also have the ability to define custom business metrics – which in turn, can be used to trigger reactive actions.</li>      <li>These capabilities help you to respond to unexpected bursts or collapses in your application’s workload.</li>      <li>Guard your SLA and Save Money.</li>   </ul> </blockquote>  <p><strong>Scenario:</strong></p>  <p>I chose the simplest of scenarios to help illustrate the capabilities of the WASABI block, so the scenario we will cover will be an Azure Worker Role that monitors an Azure Queue to determine whether to scale the number of Worker Role instances Up or Down with a minimum of (1) instance and a maximum of (4) instances.</p>  <p><strong>Before you begin:</strong></p>  <p>You will need to have the following items to make it all work:</p>  <ul>   <li>A Windows Azure account and access to the <a href="https://windows.azure.com/default.aspx">Azure Management Portal</a>- you can also try Azure for free for 30 days at: <a href="http://windowsazurepass.com/">http://windowsazurepass.com</a></li>    <li>Visual Studio 2010 with the Azure Tools for Visual Studio 2010 downloaded and installed from: <a href="http://www.microsoft.com/windowsazure/sdk">http://www.microsoft.com/windowsazure/sdk</a></li>    <li>An X.509 Certificate for the Windows Management API <a href="http://www.davidaiken.com/2009/12/21/how-to-create-a-x509-certificate-for-the-windows-azure-management-api">http://www.davidaiken.com/2009/12/21/how-to-create-a-x509-certificate-for-the-windows-azure-management-api</a></li>    <li>The Windows Azure Storage Explorer from: <a href="http://azurestorageexplorer.codeplex.com/">http://azurestorageexplorer.codeplex.com</a></li>  </ul>  <p><strong>Getting Started:</strong></p>  <p>Now, from Visual Studio 2010 – File / New Windows Azure Project:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1031.WASABI_3_203D3D29.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1031.WASABI_5F00_3_5F00_203D3D29.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_3" border="0" alt="WASABI_3" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3678.WASABI_3_thumb_0CAFDD88.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3678.WASABI_5F00_3_5F00_thumb_5F00_0CAFDD88.png" width="784" height="546" /></a></p>  <p>Select a Worker Role and let Visual Studio create your project and Solution.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4744.WASABI_4_15BC6909.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4744.WASABI_5F00_4_5F00_15BC6909.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_4" border="0" alt="WASABI_4" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5635.WASABI_4_thumb_503768DD.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5635.WASABI_5F00_4_5F00_thumb_5F00_503768DD.png" width="781" height="488" /></a></p>  <p>If you have <a href="http://www.nuget.org/">NuGet</a> installed, its as simple as right-clicking on your solution and selecting “Manage NuGet Packages”</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5722.WASABI_5_3F6FBE2F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5722.WASABI_5F00_5_5F00_3F6FBE2F.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_5" border="0" alt="WASABI_5" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7206.WASABI_5_thumb_7E613ECA.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7206.WASABI_5F00_5_5F00_thumb_5F00_7E613ECA.png" width="380" height="443" /></a></p>  <p>Once we have a base initial project, the first step is to find and install the NuGet packages – simply search on “<strong>WASABI</strong>” and you should get the two packages listed below. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/2514.WASABI_1_4AB8D26C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/2514.WASABI_5F00_1_5F00_4AB8D26C.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_1" border="0" alt="WASABI_1" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/8867.WASABI_1_thumb_79BB0E43.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/8867.WASABI_5F00_1_5F00_thumb_5F00_79BB0E43.png" width="843" height="457" /></a></p>  <p>The first selection is for the Windows Integration Pack (beta) Source code – I would suggest downloading and exploring this package if you want to see all the underpinnings of the Auto-scaling Application block. For purposes of this demo – select the second option to install the WASABi Block (Beta).</p>  <p>Once the NuGet package has been installed, you will notice that all of the prerequisites and dependencies have been also been installed for you.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6403.WASABI_8_0C235EF9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6403.WASABI_5F00_8_5F00_0C235EF9.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_8" border="0" alt="WASABI_8" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7701.WASABI_8_thumb_4F1F2D66.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7701.WASABI_5F00_8_5F00_thumb_5F00_4F1F2D66.png" width="291" height="451" /></a></p>  <p>The next step is to open the <strong>Worker.cs</strong> file in your project and add the following references for the Enterprise Library blocks: </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0458.WASABI_12_548D9E0A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0458.WASABI_5F00_12_5F00_548D9E0A.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_12" border="0" alt="WASABI_12" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7317.WASABI_12_thumb_2CE721E0.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7317.WASABI_5F00_12_5F00_thumb_5F00_2CE721E0.png" width="698" height="67" /></a></p>  <p>The next step is to modify the Worker Role to declare an initialize an Autoscaler object and set it to the current instance – along with a few handy trace statements:</p>  <p>&#160;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3000.WASABI_10_32C1C579.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3000.WASABI_5F00_10_5F00_32C1C579.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_10" border="0" alt="WASABI_10" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/2526.WASABI_10_thumb_71B34614.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/2526.WASABI_5F00_10_5F00_thumb_5F00_71B34614.png" width="732" height="372" /></a></p>  <p>After that, we override the OnStart() method to set-up the default connection limit and diagnostic monitor configuration.&#160; The diagnostic monitor set-up is super important because this allows the Auto-Scaling block to capture and monitor system usage metrics.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1033.WASABI_11_101D86FE.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1033.WASABI_5F00_11_5F00_101D86FE.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_11" border="0" alt="WASABI_11" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1031.WASABI_11_thumb_4F0F0799.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1031.WASABI_5F00_11_5F00_thumb_5F00_4F0F0799.png" width="891" height="297" /></a>The next step is to configure the Azure Auto-Scaling block with the Enterprise Library Configuration Console by right-clicking on the “<strong>app.config</strong>” file in the solution and selecting the option to “Edit Configuration File”:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0451.WASABI_13_4D5E3BC5.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0451.WASABI_5F00_13_5F00_4D5E3BC5.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_13" border="0" alt="WASABI_13" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0451.WASABI_13_thumb_610B2559.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0451.WASABI_5F00_13_5F00_thumb_5F00_610B2559.png" width="313" height="201" /></a>&#160;&#160; </p>  <p>From there, you can select the option to “Add Autoscaling Settings”:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4670.WASABI_14_3FAB7FBD.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4670.WASABI_5F00_14_5F00_3FAB7FBD.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_14" border="0" alt="WASABI_14" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4670.WASABI_14_thumb_3E66E6DE.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4670.WASABI_5F00_14_5F00_thumb_5F00_3E66E6DE.png" width="554" height="217" /></a></p>  <p>Now you should have the following screen displayed to allow you to configure the Auto-Scaling Block:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4657.WASABI_15_0815BECF.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4657.WASABI_5F00_15_5F00_0815BECF.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_15" border="0" alt="WASABI_15" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3678.WASABI_15_thumb_26EC32AD.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3678.WASABI_5F00_15_5F00_thumb_5F00_26EC32AD.png" width="577" height="315" /></a></p>  <p>Note in the settings below, I configured the Application Block to use my Azure Storage account credentials to allow the block to retrieve the rules and service information files from my Azure Blob storage account that I had previously set-up for easy rule modifications on the fly:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5635.WASABI_28_2B823D67.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5635.WASABI_5F00_28_5F00_2B823D67.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_28" border="0" alt="WASABI_28" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1512.WASABI_28_thumb_0F91086F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1512.WASABI_5F00_28_5F00_thumb_5F00_0F91086F.png" width="867" height="459" /></a></p>  <p>Next, we use the <a href="http://azurestorageexplorer.codeplex.com/">Azure Storage Explorer</a> application to create an Azure container named “<strong>autoscaling-container</strong>” and (2) Blobs:</p>  <ul>   <li><strong>Rules-store</strong> – this blob will hold the contents of the rules.xml file for runtime evaluation.</li>    <li><strong>Service-information-store</strong> – this blob contains the contents of the services.xml file.</li> </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0042.WASABI_29_461EB3B3.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0042.WASABI_5F00_29_5F00_461EB3B3.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_29" border="0" alt="WASABI_29" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7875.WASABI_29_thumb_5F769120.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7875.WASABI_5F00_29_5F00_thumb_5F00_5F769120.png" width="869" height="600" /></a></p>  <p><strong>*Super Important*</strong> – note the content type above – you must manually change the content type for these (2) blobs to “<strong>text/xml</strong>” after you create the blobs – the default content type is “<strong>application/octet-stream</strong>” – which will not work for our demo.&#160; Make sure you get this right.</p>  <p>Another key component of our demo is to create an Azure Queue that we can use to have our Auto-Scaling block monitor in order to decide whether to spin-up (or down) new Worker Role instances.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5228.WASABI_30_7A13076C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5228.WASABI_5F00_30_5F00_7A13076C.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_30" border="0" alt="WASABI_30" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1680.WASABI_30_thumb_6D09018E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1680.WASABI_5F00_30_5F00_thumb_5F00_6D09018E.png" width="872" height="538" /></a>&#160;&#160;&#160; </p>  <p>Note that we can use the Azure Storage Explorer to manually create and add new messages to our Queue – which will be very handy for experimenting with the Windows Azure Auto-Scaling block and testing our rule behaviors in response to the Queue length.</p>  <p><strong>Setting the Rules:</strong></p>  <p>Below is our sample rules.xml file that defines the rules for our scenario.&#160; Note that I have uploaded the contents of this file to my azure Blob named “<strong>rules-store</strong>” – this allows me to easily change the rules “on-the-fly” by simply editing the contents of the Azure Blob.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3582.WASABI_31_76351702.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3582.WASABI_5F00_31_5F00_76351702.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_31" border="0" alt="WASABI_31" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5807.WASABI_31_thumb_12EE8C18.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5807.WASABI_5F00_31_5F00_thumb_5F00_12EE8C18.png" width="630" height="615" /></a></p>  <p>As you can see from the above rule definition, we have defined the following criteria:</p>  <ul>   <li>A rule ranking of “10” to establish evaluation order and precedence for any overlapping rules.</li>    <li>A Minimum Worker Role instance count of (1) and a Maximum of (4).</li>    <li>Rule to increase the number of instances by (1) whenever the Azure Queue is greater or equal to (5).</li>    <li>Rule to decrease the number of instances by (1) whenever the Azure Queue is greater or equal to (5).</li>    <li>Information about the Azure Queue to monitor “<strong>autoscaletestqueue</strong>”, what statistics to monitor (Max number of entries), and time period (within a 5 minute period).</li> </ul>  <p><strong>Auto-Scaling Services Definition:</strong></p>  <p>Below is a snapshot of the services.xml file that defines our Azure service and storage account information:</p>  <p>&#160;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6283.WASABI_32_30806717.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6283.WASABI_5F00_32_5F00_30806717.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_32" border="0" alt="WASABI_32" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0028.WASABI_32_thumb_281C91C0.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0028.WASABI_5F00_32_5F00_thumb_5F00_281C91C0.png" width="804" height="593" /></a></p>  <p>Note that I have uploaded the contents of this file to my Azure Blob named “service-information—store” – this allows me to easily change the service information by simply editing the contents of the Azure blob.</p>  <p>*Important* – pay close attention to this configuration – the settings in tis file must exactly match your specific Windows Azure environemnt settings in order to work correctly.&#160; Pay careful attention to the “dnsPrefix” setting and the “slot” (Production or Staging) setting.</p>  <p><strong>Ready for Testing:</strong></p>  <p>At this point, after configuring everything and uploading to Windows Azure, we are ready to begin testing the azure Auto-Scaling block.</p>  <p>To see the WASABI block in action, we will start our Azure application and note the default behavior in the Azure Management portal – which is to have only (1) instance running due to the fact that we have &lt; 5 messages in our Azure Queue.&#160; Remember that our rule is to increase the number of instances of the azure Queue length equals 5 or greater.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5635.WASABI_33_05E4863A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5635.WASABI_5F00_33_5F00_05E4863A.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_33" border="0" alt="WASABI_33" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5807.WASABI_33_thumb_5BB4D851.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5807.WASABI_5F00_33_5F00_thumb_5F00_5BB4D851.png" width="866" height="422" /></a></p>  <p>Now, if we manually add a few messages to our Azure Queue using the Azure Storage Explorer tool, we can quickly make sure that there are (5) or more messages in the Queue – which will trigger the auto-Scaling block to spin-up more instances to handle the load:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7382.WASABI_34_391099D6.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7382.WASABI_5F00_34_5F00_391099D6.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_34" border="0" alt="WASABI_34" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3644.WASABI_34_thumb_5475503F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3644.WASABI_5F00_34_5F00_thumb_5F00_5475503F.png" width="858" height="529" /></a></p>  <p>A few minutes after adding (5) or messages to our Azure Queue – we can see that the Auto-Scaling block has <strong>automatically started additional Worker Role instances – up to the “max” of (4) running instances!</strong>&#160; </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4237.WASABI_37_6F7DF980.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4237.WASABI_5F00_37_5F00_6F7DF980.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_37" border="0" alt="WASABI_37" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7853.WASABI_37_thumb_017A1741.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7853.WASABI_5F00_37_5F00_thumb_5F00_017A1741.png" width="859" height="408" /></a></p>  <p>Ok, so the rule for detecting increased load worked great – and we have automatically spun-up the maximum desired instances.</p>  <p>Now let’s see what happens when we delete all but one entry form the Azure Queue:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5314.WASABI_36_5822CF42.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5314.WASABI_5F00_36_5F00_5822CF42.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_36" border="0" alt="WASABI_36" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1106.WASABI_36_thumb_23DE802F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1106.WASABI_5F00_36_5F00_thumb_5F00_23DE802F.png" width="848" height="530" /></a></p>  <p>Now, after a few minutes, when we look at the Windows Azure Management Portal, we see that our “Low Usage” rule has been activated and the Auto-Scaling block is now decreasing the number of running instances – and will quickly get back down to (1) running instance – our desired minimum.&#160; </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1172.WASABI_37_13A29269.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1172.WASABI_5F00_37_5F00_13A29269.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_37" border="0" alt="WASABI_37" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6864.WASABI_37_thumb_1BD6B800.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6864.WASABI_5F00_37_5F00_thumb_5F00_1BD6B800.png" width="857" height="407" /></a></p>  <p>Below, we see the results of the first decrease of the number of running instances by (1).&#160; This will continue to automatically decrease as Azure Queue length is evaluated every 5 minutes.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3225.WASABI_38_4E5A1572.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3225.WASABI_5F00_38_5F00_4E5A1572.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_38" border="0" alt="WASABI_38" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7851.WASABI_38_thumb_047B8DC2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7851.WASABI_5F00_38_5F00_thumb_5F00_047B8DC2.png" width="856" height="410" /></a></p>  <p>And after a few more minutes, we get right back down to only (1) running instance: </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/5707.WASABI_40_0911987C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/5707.WASABI_5F00_40_5F00_0911987C.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_40" border="0" alt="WASABI_40" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/2086.WASABI_40_thumb_7849EDCD.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/2086.WASABI_5F00_40_5F00_thumb_5F00_7849EDCD.png" width="866" height="368" /></a></p>  <p><strong>And there you have it! All these instances were scaled up and down automatically without any human intervention!</strong></p>  <p>This was just a simple walk-thru and demo of the new capabilities in the Windows Azure Auto-Scaling Application Block – this is only a small sample of the automation capabilities exposed by the block.</p>  <p>I would encourage you to try it for yourself and see how easily you can create a truly dynamic, elastic, and “self-aware” Azure cloud infrastructure.</p>  <p>You can download the <a href="https://skydrive.live.com/?cid=E80EA9288ABD4452&amp;id=E80EA9288ABD4452%211367#">sample demo code here</a>.&#160; Please remember to modify the project for your own Azure credentials for storage and host environment settings.</p>  <p>Happy Auto-Scaling!</p>]]></content:encoded>
    </item>
    <item>
      <title>Build Your Own SKYNET with the Windows Azure Auto-Scaling Application Block (WASABi)–Part 1</title>
      <link>https://docs.microsoft.com/archive/blogs/jbarnes/build-your-own-skynet-with-the-windows-azure-auto-scaling-application-block-wasabipart-1</link>
      <pubDate>Tue, 18 Oct 2011 11:09:27 GMT</pubDate>
      <dc:creator><![CDATA[jbarnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jbarnes/2011/10/18/build-your-own-skynet-with-the-windows-azure-auto-scaling-application-block-wasabipart-1/</guid>
      <description><![CDATA[&#160; &#160;   The Windows Azure Auto- Scaling Application Block (WASABi) is now available as a...]]></description>
      <content:encoded><![CDATA[<p>&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7851.Entlib_AutoScaling_4A8B869F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7851.Entlib_5F00_AutoScaling_5F00_4A8B869F.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="Entlib_AutoScaling" border="0" alt="Entlib_AutoScaling" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6864.Entlib_AutoScaling_thumb_3DB13081.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6864.Entlib_5F00_AutoScaling_5F00_thumb_5F00_3DB13081.png" width="354" height="146" /></a>&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6215.Wasabi_15324E6D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6215.Wasabi_5F00_15324E6D.png"><img style="display: inline; background-image: none;" title="Wasabi" border="0" alt="Wasabi" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6470.Wasabi_thumb_303AF7AE.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6470.Wasabi_5F00_thumb_5F00_303AF7AE.png" width="240" height="147" /></a></p>  <p>The Windows Azure Auto- Scaling Application Block (WASABi) is now available as a <a href="http://blogs.msdn.com/b/avkashchauhan/archive/2011/10/14/windows-azure-autoscaling-application-block-wasabi-beta-is-ready-for-you-to-try.aspx">beta release</a> and it allows developers and IT professionals to add and manage <strong>*Automatic* Auto-Scaling capabilities</strong> for Windows Azure hosted services and applications.&#160; The block is a part of the <a href="http://nuget.org/List/Packages/EnterpriseLibrary.Source.WindowsAzure.Preview">Windows Azure Integration Pack</a> which is still in beta – but should be coming soon.&#160; </p>  <p>One of the key benefits that Windows Azure delivers is the ability to rapidly scale your application in    <br />the cloud in direct response to sudden changes in demand and/or for scheduled time periods to handle known peak and non-peak time periods.&#160; These are key characteristics of an elastic cloud infrastructure.</p>  <p>When you deploy an application to Windows Azure, you deploy roles as either Web roles for the externally facing portions of your application and Worker roles to handle backend processing.</p>  <p>When you run your application in Windows Azure, your roles run as role instances (i.e. virtual machines). You can specify how many role instances you want for each of your roles: the more instances you have, the more computing power you have available for that role, and consequently the more it will cost you. </p>  <p>In Windows Azure, you can specify the number of instances you require for each your roles when you first deploy an application to Windows Azure.&#160; You can also add or remove role instances &quot;on the fly&quot; while the    <br />application is running, either manually through the Windows Azure portal, or programmatically by using the Windows Azure Management API.</p>  <p>By adding and removing role instances to your Windows Azure application while it is running, you can balance the performance of the application against its running costs. You can add new instances when demand is high, and remove instances when you no longer need them in order to reduce running costs.&#160; </p>  <p>If you rely on manual interventions to scale your application, you may not always achieve the optimal balance between costs and performance: an operator may respond late, or underestimate the number of role instances that you need to maintain throughput.</p>  <p>The Windows Azure Auto- Scaling Application Block (WASABI) will now allow you to create logical rules to (almost) completely manage your cloud infrastructure to handle both peak loads and be as stingy as possible when it comes to deploying required infrastructure to manage web workloads and ultimately costs.</p>  <p>Below are a few code snippets and screenshots to give you an idea of the flexibility and power that the WASABI block&#160; provides. </p>  <p><strong>Basic Set-up – Constraint Rules:</strong></p>  <blockquote>   <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3107.Wasabbi_20_28CB34C1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3107.Wasabbi_5F00_20_5F00_28CB34C1.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="Wasabbi_20" border="0" alt="Wasabbi_20" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1537.Wasabbi_20_thumb_32B0262C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1537.Wasabbi_5F00_20_5F00_thumb_5F00_32B0262C.png" width="729" height="219" /></a></p>    <p><strong>Rank</strong> = order of precedence for Rule Evaluations – *Remember this to prevent a full transition to <a href="http://en.wikipedia.org/wiki/Skynet_(Terminator)">SKYNET</a>.</p>    <p><strong>Range</strong> = You can set this by Role along with the minimum and maximum number of instances.</p>    <p>*Note: The “max” range setting can potentially have negative financial consequences.&#160; Please don’t ask me how I know this.&#160; </p>  </blockquote>  <p>An automatic auto-scaling solution reduces the amount of manual work involved in dynamically scaling an application. </p>  <p>It can do this in two different ways: </p>  <ul>   <li><strong>Preemptively</strong> by adjusting the number of role instances based on a timetable rule. </li>    <li><strong>Reactively</strong> by adjusting the number of role instances in response to some performance counter or measurement that you can collect from your application (business KPI) or from the Windows Azure environment. </li>  </ul>  <p><strong>Preemptive Rule Example:</strong></p>  <blockquote>   <p><strong>Auto-Scale UP on the second Friday of the month at 3:25 pm for 5 minutes starting on 10/14/2011:</strong></p>    <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6646.WASABI_25_5EECAD10.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/6646.WASABI_5F00_25_5F00_5EECAD10.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABI_25" border="0" alt="WASABI_25" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1537.WASABI_25_thumb_0EC74ED2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1537.WASABI_5F00_25_5F00_thumb_5F00_0EC74ED2.png" width="869" height="131" /></a></p>    <p>&#160;</p>  </blockquote>  <strong></strong>  <p><strong>Reactive Rules Example:</strong></p>  <blockquote>   <p><strong>Spin Worker Role Instances Up or Down in Response to the Length of an Azure Queue:</strong></p>    <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/8306.Wasabbi_22_4CE06983.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/8306.Wasabbi_5F00_22_5F00_4CE06983.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="Wasabbi_22" border="0" alt="Wasabbi_22" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1537.Wasabbi_22_thumb_52BB0D1C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/1537.Wasabbi_5F00_22_5F00_thumb_5F00_52BB0D1C.png" width="610" height="427" /></a></p>  </blockquote>  <p><strong>Resources:</strong></p>  <blockquote>   <p><strong>Autoscaling Application Block - BETA&#160; <br /></strong><a href="http://entlib.codeplex.com/releases/view/74618">http://entlib.codeplex.com/releases/view/74618</a></p>    <p><strong>Windows Azure Autoscaling Block BETA is out        <br /></strong><a href="http://blogs.msdn.com/b/agile/archive/2011/10/13/windows-azure-autoscaling-block-beta-is-out.aspx">http://blogs.msdn.com/b/agile/archive/2011/10/13/windows-azure-autoscaling-block-beta-is-out.aspx</a></p>  </blockquote>  <p><strong>Summary:</strong></p>  <p>The Windows Azure Auto-Scaling Block WASABI provides a huge leap forward in terms of allowing IT pros and developers to create a fully automatic, ,elastic, and scalable cloud infrastructure. The block includes a very flexible way to implement simple or complex rules to either react or plan computational resources.</p>  <p><strong>Caveat:</strong> You will still need to have a “carbon-based-browsers” evaluate the results of your auto-scaling solution on a regular basis to ensure that it is delivering the optimal balance between costs and performance.&#160;&#160; </p>  <p>Other than that bit of advice – enjoy your newly found work-life balance as a result of implementing a reactive and self-managed cloud infrastructure!</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/7318.WASABISKYNET_23_1F12A0BE.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/7318.WASABISKYNET_5F00_23_5F00_1F12A0BE.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="WASABISKYNET_23" border="0" alt="WASABISKYNET_23" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0871.WASABISKYNET_23_thumb_637291FD.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0871.WASABISKYNET_5F00_23_5F00_thumb_5F00_637291FD.png" width="390" height="276" /></a></p>  <p>Have fun!</p>  <p>*In my next blog post I will walk you through the WASABI installation process and how to create and host a simple example in Azure so you can see how powerful this capability can be for automatically scaling your cloud infrastructure.</p>]]></content:encoded>
    </item>
    <item>
      <title>Academy of Information Technology Presentation - "Current Trends in Software Development"</title>
      <link>https://docs.microsoft.com/archive/blogs/jbarnes/academy-of-information-technology-presentation-current-trends-in-software-development</link>
      <pubDate>Wed, 04 May 2011 15:02:41 GMT</pubDate>
      <dc:creator><![CDATA[jbarnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jbarnes/2011/05/04/academy-of-information-technology-presentation-current-trends-in-software-development/</guid>
      <description><![CDATA[A big thanks to all the local AOIT High School students who came to my presentation today at the...]]></description>
      <content:encoded><![CDATA[<p><a href="http://naf.org/naf-academies"><img style="display: inline" title="AOIT" alt="AOIT" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/8461.AOIT_6E144D1B.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/8461.AOIT_5F00_6E144D1B.png" width="209" height="87" /></a></p>  <p>A big thanks to all the local AOIT High School students who came to my presentation today at the 5th Annual Student Industry Conference presented by the Academy of Information Technology and Miami-Dade County Public Schools.&#160; I’d also like to thank our hosts for the event, Miami-Dade College, for the use of the Wolfson Campus facilities.&#160; </p>  <p>The topic of my talk today centered around a discussion of &quot;what are the current software application development trends&quot; that are impacting the industry today and what should students consider in order to be relevant when they hit the job market.&#160; Here’s a brief summary of the topics we covered today:</p>  <p><a href="http://cid-e80ea9288abd4452.office.live.com/view.aspx/AOIT/AOIT%5E_05%5E_04%5E_2011%5E_v9.pptx"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="topics" border="0" alt="topics" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0044.topics_0C7E8E05.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/0044.topics_5F00_0C7E8E05.png" width="363" height="234" /></a></p> <span style="mso-no-proof: yes"><font face="Calibri">     <p>You can download a copy of the presentation at: <a href="http://cid-e80ea9288abd4452.office.live.com/view.aspx/AOIT/AOIT%5E_05%5E_04%5E_2011%5E_v9.pptx">http://cid-e80ea9288abd4452.office.live.com/view.aspx/AOIT/AOIT%5E_05%5E_04%5E_2011%5E_v9.pptx</a>.&#160; </p>   </font><span style="mso-no-proof: yes"><font face="Calibri">We also talked about the Kinnect Sensor SDK that was announced at MIX and explored what the possibilities with a short 3 minute video clip from the MIX keynote</font></span><span style="mso-no-proof: yes"><font face="Calibri">: </font><a href="http://cid-e80ea9288abd4452.office.live.com/self.aspx/Kinnect%20SDK/KinnectLoungeChair.wmv"><font color="#0000ff" face="Calibri">http://cid-e80ea9288abd4452.office.live.com/self.aspx/Kinnect%20SDK/KinnectLoungeChair.wmv</font></a></span><span style="mso-no-proof: yes">     <p><font face="Calibri">&#160;</font></p>   </span></span>  <p style="margin: 0in 0in 0pt" class="MsoNormal"><span style="color: #1f497d; mso-themecolor: dark2; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: &#39;Times New Roman&#39;; mso-bidi-theme-font: minor-bidi"><font face="Calibri">‘</font></span><a href="http://cid-e80ea9288abd4452.office.live.com/self.aspx/Kinnect%20SDK/KinnectLoungeChair.wmv"><span style="color: #1f497d; text-decoration: none; mso-no-proof: yes; text-underline: none; mso-themecolor: dark2; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: &#39;Times New Roman&#39;; mso-bidi-theme-font: minor-bidi"><span style="mso-ignore: vglayout"><a href="http://cid-e80ea9288abd4452.office.live.com/self.aspx/Kinnect%20SDK/KinnectLoungeChair.wmv"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/3286.clip_image002_2491D293.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/3286.clip_5F00_image002_5F00_2491D293.jpg" width="367" height="208" v:shapes="Picture_x0020_3" /></a></span></span></a><span style="color: #1f497d; mso-themecolor: dark2; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: &#39;Times New Roman&#39;; mso-bidi-theme-font: minor-bidi">        </span></p>  <p>   <p>(I now know what the perfect gift is for Fathers Day…)</p>    <p>And for all of those who I may have inspired to start creating the next generation of mobile applications and games on Windows Phone 7 – be sure to check–out <a href="http://www.robmiles.com/">Rob Mile’s</a> new <a href="http://oreilly.com/catalog/0790145310187/">XNA Game Studio 4.0 programming book</a> to help get ramped-up quickly with tons of examples and sample code.&#160; </p>    <p><a href="http://oreilly.com/catalog/0790145310187/"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="651579cvr.indd" border="0" alt="651579cvr.indd" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4276.XNA_lrg_34BD9A8C.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-71-22-metablogapi/4276.XNA_5F00_lrg_5F00_34BD9A8C.jpg" width="254" height="310" /></a></p>    <p>I hope to see you all again next year!</p> </p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d84ef7fc-1485-452c-a2c5-e980333638ae" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Architecture" rel="tag">Architecture</a></div>]]></content:encoded>
    </item>
    <item>
      <title>Patterns &amp; Practices "Windows Phone 7 Developer Guide" Released!</title>
      <link>https://docs.microsoft.com/archive/blogs/jbarnes/patterns-practices-windows-phone-7-developer-guide-released</link>
      <pubDate>Mon, 13 Dec 2010 12:21:19 GMT</pubDate>
      <dc:creator><![CDATA[jbarnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jbarnes/2010/12/13/patterns-practices-windows-phone-7-developer-guide-released/</guid>
      <description><![CDATA[Windows Phone 7 provides an exciting new opportunity for companies and developers to build...]]></description>
      <content:encoded><![CDATA[<p><a href="http://msdn.microsoft.com/en-US/library/gg490765"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="WP7_Guidance" border="0" alt="WP7_Guidance" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0511.WP7_Guidance_40CB453F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-71-22-metablogapi/0511.WP7_5F00_Guidance_5F00_40CB453F.png" width="328" height="371" /></a></p>  <p>Windows Phone 7 provides an exciting new opportunity for companies and developers to build applications that travel with users, are interactive and attractive, and are available whenever and wherever users want to work with them.    <br /></p>  <p>By combining Windows Phone 7 applications with on-premises services and applications, or remote services and applications that run in the cloud (such as those using the Windows Azure™ technology platform), developers can create highly scalable, reliable, and powerful applications that extend the functionality beyond the traditional desktop or laptop; and into a truly portable and much more accessible environment.    <br /></p>  <p>This guide describes a scenario around a fictitious company named Tailspin that has decided to include Windows Phone 7 as a client device for their existing cloud-based application. Their Windows Azure-based application, Surveys, is described in detail in a previous book in this series, Developing Applications for the Cloud on the Microsoft Windows Azure Platform. For more information about that book, see the MSDN® page at (<a href="http://msdn.microsoft.com/en-us/library/ff966499.aspx">http://msdn.microsoft.com/en-us/library/ff966499.aspx</a>).    <br /></p>  <p><strong>Common Scenarios:</strong></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/1184.WP7_Guidance3_0BCE1A35.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-71-22-metablogapi/1184.WP7_5F00_Guidance3_5F00_0BCE1A35.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="WP7_Guidance3" border="0" alt="WP7_Guidance3" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4237.WP7_Guidance3_thumb_146E72C1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-71-22-metablogapi/4237.WP7_5F00_Guidance3_5F00_thumb_5F00_146E72C1.png" width="384" height="366" /></a></p>    <p><a href="http://msdn.microsoft.com/en-US/library/gg490768"><strong>&quot;Introducing Windows Phone 7&quot;</strong></a> provides an overview of the platform to help you understand the requirements and advantages of creating applications for Windows Phone 7. It provides a high-level description of the possibilities, features, and requirements for building applications for Windows Phone, and it includes references to useful information about designing and developing these types of applications. It also includes a glossary of terms commonly used in mobile application development. It's probably a good idea to read this chapter before moving on to the scenarios.</p>  <p><strong><a href="http://msdn.microsoft.com/en-US/library/gg490770">&quot;Designing Windows Phone 7 Applications&quot;</a></strong> discusses planning and designing applications for Windows Phone 7. It covers the run-time environment and life cycle events for your application, how to maximize performance on the phone, and considerations for the user interface, resource management, storage, connectivity, and more.</p>  <p><strong><a href="http://msdn.microsoft.com/en-US/library/gg507825">&quot;The Tailspin Scenario&quot;</a></strong> introduces you to the Tailspin company and the Surveys application. It describes the decisions that the developers at Tailspin made when designing their application, and it discusses how the Windows Phone 7 client interacts with their existing Windows Azure-based services.</p>  <p><strong><a href="http://msdn.microsoft.com/en-US/library/gg490771">&quot;Building the Mobile Client&quot;</a></strong> describes the steps that Tailspin took when building the mobile client application for Windows Phone 7 that enables users to register for and download surveys, complete the surveys, and upload the results to the cloud-based service. It includes details of the overall structure of the application, the way that the Model-View-ViewModel (MVVM) pattern is implemented, and the way that the application displays data and manages commands and navigation between the pages. The following chapters describe the individual features of the application development in more detail.</p>  <p><strong><a href="http://msdn.microsoft.com/en-US/library/gg490772">&quot;Using Services on the Phone&quot;</a></strong> discusses the way that the Windows Phone 7 client application stores and manipulates data, manages activation and deactivation, synchronizes data with the server application, and captures picture and sound data.</p>  <p><strong><a href="http://msdn.microsoft.com/en-US/library/gg490769">&quot;Connecting with Services&quot;</a></strong> describes how the client application running on Windows Phone 7 uses the services exposed by the Windows Azure platform. This includes user authentication, how the client application accesses services and downloads data, the data formats that the application uses, filtering data on the server, and the push notification capabilities.</p>  <p><strong><a href="http://msdn.microsoft.com/en-US/library/gg490776">&quot;Interacting with Windows Marketplace&quot;</a></strong> describes how you can distribute and sell your applications through Windows Marketplace, and the restrictions and conditions Windows Marketplace places on your applications and content.</p>  <p>Check it out here: <a href="http://msdn.microsoft.com/en-US/library/gg490765">http://msdn.microsoft.com/en-US/library/gg490765</a></p>  <p>And here: <a href="http://wp7guide.codeplex.com/">http://wp7guide.codeplex.com/</a></p>  <p>Enjoy!</p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Phone Developer Tools RTW!</title>
      <link>https://docs.microsoft.com/archive/blogs/jbarnes/windows-phone-developer-tools-rtw</link>
      <pubDate>Fri, 17 Sep 2010 08:18:44 GMT</pubDate>
      <dc:creator><![CDATA[jbarnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jbarnes/2010/09/17/windows-phone-developer-tools-rtw/</guid>
      <description><![CDATA[That’s right – with yesterday’s announcement, the tools are now final – now is the time to “Lock...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0552.WP7wide_154422E3.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-71-22-metablogapi/0552.WP7wide_5F00_154422E3.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WP7wide" border="0" alt="WP7wide" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/2605.WP7wide_thumb_19DA2D9D.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-71-22-metablogapi/2605.WP7wide_5F00_thumb_5F00_19DA2D9D.jpg" width="400" height="158" /></a></p>  <p>That’s right – with yesterday’s <a href="http://windowsteamblog.com/windows_phone/b/wpdev/">announcement</a>, the tools are now final – now is the time to “Lock &amp; Load” on building the next generation of amazing mobile applications – Powered by Windows Phone 7.&#160; Whether you are newcomer to the platform or already have been developing with Silverlight or XNA you’ll find the transition is painless, quick, and easy.&#160; Your first stop is the <a href="http://go.microsoft.com/fwlink/?LinkId=196651">Windows Phone Developer Portal</a> for all the resources to get started building your applications today.&#160; </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/8156.WP7marketplace_6AA84205.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-71-22-metablogapi/8156.WP7marketplace_5F00_6AA84205.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="WP7marketplace" border="0" alt="WP7marketplace" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/6825.WP7marketplace_thumb_7016B2A9.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-71-22-metablogapi/6825.WP7marketplace_5F00_thumb_5F00_7016B2A9.jpg" width="150" height="214" /></a> </p>  <p>Next, get a head start and be ready for the upcoming Windows Marketplace for Mobile launch by <a href="http://developer.windowsphone.com/Signup-Create-Account.aspx">signing-up</a> (it costs just $99) and get ready to register your applications in the marketplace.&#160; Savvy marketers will tell you that “first in wins” –&#160; there’s nothing like being found on the shelves of a brand new store. </p>  <p>Here are some additional guides &amp; resources to help get you started quickly:</p>  <ul>   <li>Application Platform Overview for Windows Phone: <a href="http://go.microsoft.com/?linkid=9713249">http://go.microsoft.com/?linkid=9713249</a> </li>    <li>Windows Phone UI Design and Interaction Guide: <a href="http://go.microsoft.com/?linkid=9713252">http://go.microsoft.com/?linkid=9713252</a> </li>    <li>Designing Web Sites for Phone Browsers: <a href="http://go.microsoft.com/?linkid=9713253">http://go.microsoft.com/?linkid=9713253</a> </li>    <li>Code Samples: <a href="http://go.microsoft.com/?linkid=9713254">http://go.microsoft.com/?linkid=9713254</a> </li>    <li>WP Blog Announcement: <a href="http://windowsteamblog.com/windows_phone/b/wpdev/">http://windowsteamblog.com/windows_phone/b/wpdev/</a> </li>    <li>Tools Download Center Landing Page - <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=04704acf-a63a-4f97-952c-8b51b34b00ce">http://www.microsoft.com/downloads/details.aspx?FamilyID=04704acf-a63a-4f97-952c-8b51b34b00ce</a>; </li>    <li>Headless Download (direct to .exe) - <a href="http://go.microsoft.com/fwlink/?LinkId=185584">http://go.microsoft.com/fwlink/?LinkId=185584</a>; </li>    <li>Release Notes - <a href="http://go.microsoft.com/fwlink/?LinkId=185269">http://go.microsoft.com/fwlink/?LinkId=185269</a>&#160; </li>    <li>WP7 Jump Start registration training link (live class 9/21) - <a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032462274&amp;Culture=en-US">https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032462274&amp;Culture=en-US</a>       <br /></li> </ul>  <p>Get ready to see some amazing new experiences on the Windows Phone 7 platform!</p>  <p></p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:72255de5-4f0b-43b8-9919-8ec14cbb33d0" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Windows+Phone+7" rel="tag">Windows Phone 7</a></div>]]></content:encoded>
    </item>
    <item>
      <title>Free Windows Phone 7 On-line Jump Start Training</title>
      <link>https://docs.microsoft.com/archive/blogs/jbarnes/free-windows-phone-7-on-line-jump-start-training</link>
      <pubDate>Thu, 15 Jul 2010 14:20:54 GMT</pubDate>
      <dc:creator><![CDATA[jbarnes]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jbarnes/2010/07/15/free-windows-phone-7-on-line-jump-start-training/</guid>
      <description><![CDATA[Looking to get a jump-start on some building some great Windows Phone 7 applications? And even...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/0068.WP7Bl_3BBBD8E0.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-71-22-metablogapi/0068.WP7Bl_5F00_3BBBD8E0.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="WP7Bl" border="0" alt="WP7Bl" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/71/22/metablogapi/4857.WP7Bl_thumb_7311C441.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-71-22-metablogapi/4857.WP7Bl_5F00_thumb_5F00_7311C441.jpg" width="440" height="94" /></a> </p>  <p><strong>Looking to get a jump-start on some building some great Windows Phone 7 applications? And even better - without leaving your desk?</strong></p>  <p style="margin: 0in 0in 0pt" class="x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_MsoNormal"><font style="font-size: 14px"><font style="font-size: 9pt"><font style="font-size: 14px">Windows Phone 7 promises to be an amazing mobile phone operating system given its innovative user interface and functionality, as well as its great development platform upon which you can quickly and easily build games and applications.          <br />          <br />This course is organized into four virtual instructor-led sessions that are of 3-hour duration. They will be presented by forthcoming MS Press authors and MVP's, Andy Wigley and Rob Miles. It will provide developers a jump start for developing Windows Phone 7 applications. Labs will be completed offline with office hour access to the instructors.           <br />          <br />This session is the first of 4 sessions.&#160; Please register for all 4 in order to complete this training.          <br /></font><font style="font-size: 10.5pt">         <p style="margin: 0in 0in 0pt">           <br /><strong>July 20th</strong>            <br />Session One:&#160;&#160; <a href="https://msevents.microsoft.com/CUI/webCastEventDetails.aspx?EventID=1032455932&amp;EventCategory=2&amp;culture=en-US&amp;CountryCode=US">Windows Phone 7 Jump Start</a></p>          <p style="margin: 0in 0in 0pt">Session Two:&#160; <a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032455936&amp;Culture=en-US">Game Building on the Windows Phone Platform</a>            <br />            <br /><strong>July 22nd&#160; <br /></strong></p>       </font></font></font><span style="font-size: 10.5pt">Session Three:&#160; <a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032455937&amp;Culture=en-US">Advanced Windows Phone Development       <br /></a>Session Four:&#160; <a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032455938&amp;Culture=en-US">Selling Your Windows Phone Solutions &amp; Wrap Up</a></span></p>  <p>What are you waiting for? This IS your invitation….</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3e12cb23-8719-4a14-9f2c-d39ce169b1e7" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Windows+Phone+7" rel="tag">Windows Phone 7</a></div>]]></content:encoded>
    </item>
  </channel>
</rss>