<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>AfricaApps</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/africaapps/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/africaapps/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 24 Feb 2016 09:17:32 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Bugs. Make them caught, reported and fixed – in just a few clicks</title>
      <link>https://docs.microsoft.com/archive/blogs/africaapps/bugs-make-them-caught-reported-and-fixed-in-just-a-few-clicks</link>
      <pubDate>Thu, 15 May 2014 08:05:00 GMT</pubDate>
      <dc:creator><![CDATA[Mostafa Nageeb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/africaapps/2014/05/15/bugs-make-them-caught-reported-and-fixed-in-just-a-few-clicks/</guid>
      <description><![CDATA[Learn how developers saving time and turning users&rsquo; complains into valuable info without...]]></description>
      <content:encoded><![CDATA[<p>Learn how developers saving time and turning users&rsquo; complains into valuable info without endless phone calls or expensive focus groups. Get a free trial and learn tips and tricks in this article.</p>
<p>You write great code. Seriously, you do! Well, sometimes there are occasional bugs (just a handful). Let&rsquo;s start with a quiz: How a user can report a bug he found to you?</p>
<ul>
<li>Through a call directly to your cell phone in a middle of the night?</li>
<li>Through a bulky email with tons of screenshots and a long text, that looks like Sharknado 2 screenplay?</li>
<li>By simply going online and publishing a nasty review on app store, blog or Facebook?</li>
</ul>
<p>When success of your app heavily depends on both speed of development and initial users&rsquo; feedback &ndash; catching info about issues with an app is ultimately important. But who has time to spend on the phone, when a user desperately tries to describe what happens on the screen, or even worse &ndash; trying to explain a regular user how to install special screen sharing software, establish connection etc. You know it&rsquo;s hard for an average consumer. So in the article below we would like to introduce a Middle Eastern start-up that can help you turn your users&rsquo; feedback into something helpful and actionable to you.</p>
<p><a href="https://www.bugrius.com/">Bugrius</a> is cloud based bug report generator that unlike other services allows users to create clear and easy to understand video reports with audio commentary. Here we brought Roman Konovalov, Managing Director and the owner of Greenrain - Dubai based company that works in health care market. Greenrain was one of the first customers of this new bug reporting solution, so we thought it would be great to let them talk about the real life experience and tips &amp; tricks.</p>
<p><strong>What software you develop and who is your target audience?</strong></p>
<p>We work with more than 1500 customers across UAE, Qatar and KSA. We build a few types of line of business applications for them. And a few consumer apps to support it. So end users of our software are office workers and consumers in general. What is common among all of them is the level of expectations &ndash; everything should just work and be really intuitive. And another common thing is level of frustration when something goes wrong. We learned that we can&rsquo;t expect from a regular user to write us an email with bug report, and even when they do write it &ndash; it&rsquo;s so tough for our devs to really figure out what exactly the issue was. So providing our users with the simplest possible bug report solution (no calls, no emails etc.) was our key priority. Thanks to Bugrius we got exactly this experience.</p>
<p><strong>What exact experience your customers get with Bugrius?</strong></p>
<p>Basically, with our apps we ship a simple link that being clicked installs or launched small Bugrius client connected to our portal. All a user needs to do when facing an issue is just hit the link, press record button, do exactly what he or she did to repro the bug and hit send. A compressed video report will be securely published on our portal whenever user is online next time (some of our apps are used in the offline mode, but we still want this guys to share the feedback). The most important thing for the user was no complicated controls or forms to fill in and with this client one-button-type of reporting was highly appreciated.</p>
<p><strong>Any feedback from your development team so far?</strong></p>
<p>First of all we need to say that we in our development process already have bug tracker in use. Our testers and dev teams have established process on prioritizing bugs and workflow to fix them. So we were really pleased to see seamless integration of Bugrius with our current bug tracker infrastructure. So the feedback from a user arrives not in just somebody&rsquo;s email, but goes directly into the bug tracker, where responsible team members can evaluate, prioritize and assign the fix to a particular developer or a team. The rest of the process is just as it always been, but now with bug description not in a long text format only, but with a link to easy to view video report with audio commentary right from the user. Nice side effect of this is that we have less bug reports dismissed with classic &ldquo;no repro&rdquo; reason (as you know every dev sometimes overuses this one J)</p>
<p><strong>What would you recommend to your fellow developers on collecting users&rsquo; feedback in general?</strong></p>
<p>Well, the obvious thing &ndash; users&rsquo; feedback is make it or break it thing nowadays. There is no way people stuck with software they don&rsquo;t like. That is correct for consumers, but also for LOB apps users too. And how you deal with negative feedback (there is always some even in the best apps) is crucial. If you don&rsquo;t it will go in a snowball type of thing somewhere on the Internet, social media or straight forward on the store. Losing a star of rating just because a user got frustrated is painful. Thanks to services like Bugrius user&rsquo;s voice now can be heard loud and clear. And what&rsquo;s more important &ndash; heard directly by your team, without any public mess. And as developers who sell software ourselves we see Bugrius pricing, just few cents per report, as very reasonable. When someone says &ldquo;we heavily invest in reacting to our customers&rsquo; feedback&rdquo; - it rarely can be estimated as precisely and usually not that effective like with this solution. Put your users first, take their feedback and complains seriously &ndash; and the best news is with services like <a href="https://www.bugrius.com/">Bugrius</a> it&rsquo;s easy to see how your few cents investment pays off.</p>
<p>Get <strong>free</strong> (no strings attached) <a href="https://www.bugrius.com/">Bugrius trial</a> to put your users first!</p>]]></content:encoded>
    </item>
    <item>
      <title>UX/UI Guidelines for Windows Phone 8</title>
      <link>https://docs.microsoft.com/archive/blogs/africaapps/uxui-guidelines-for-windows-phone-8</link>
      <pubDate>Sat, 08 Mar 2014 07:55:00 GMT</pubDate>
      <dc:creator><![CDATA[Dina Helmy]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/africaapps/2014/03/08/uxui-guidelines-for-windows-phone-8/</guid>
      <description><![CDATA[I have been envying the Windows 8 team for their exclusive UX index, that helps you to build great...]]></description>
      <content:encoded><![CDATA[<p>I have been envying the Windows 8 team for their exclusive UX index, that helps you to build great Windows Store apps. Therefore, I have decided to be a pioneer and build a similar thing for Windows Phone 8. Here is a recommended checklist of things that you should consider when you are building your windows phone app. This list is not exhaustive. It should be used as a guide only. This blog has been consolidated from multiple resources, among them was the windows phone depth partner support <a href="https://blogs.msdn.com/b/wpukcoe/">(WPDPS)</a> such a great resource that is done based on apps reviews and case studies. What make me thought about it, is that I didn’t find this source of information publicly available, so I thought of sharing and adding some tips and tricks in between. It is not new, it is just not well seen or acknowledge. Big thanks to the WPDPS and waiting for more and more of these to be directly incorporate in the windows phone dev center soon.</p>  <h4><span style="color: #800080">1- Elements Alignment and Margins</span></h4>  <blockquote>   <p>- All pages should respect the 12px or 24px margin on the left.</p>    <p>- Content, titles, headers, and header logos should be left aligned to 12px or 24px margin.</p>    <p>- If right alignment is required, the right edge margin will be also 12px or 24px.</p> </blockquote>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/1732.dpsuxbar_2E3636E1.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/1732.dpsuxbar_5F00_2E3636E1.jpg"><img title="dps-ux-bar" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="dps-ux-bar" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/0285.dpsuxbar_thumb_0DB187E0.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/0285.dpsuxbar_5F00_thumb_5F00_0DB187E0.jpg" width="145" height="244" /></a>&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7607.dpsuxbar_1_63D113AA.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7607.dpsuxbar_5F00_1_5F00_63D113AA.jpg"><img title="dps-ux-bar_1" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="dps-ux-bar_1" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/3288.dpsuxbar_1_thumb_434C64A9.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/3288.dpsuxbar_5F00_1_5F00_thumb_5F00_434C64A9.jpg" width="142" height="244" /></a></p>  <blockquote>   <p>- <strong>Tip:</strong>&#160; Check the semi-transparent grid of 25 × 25-pixel red squares on your application when running in debug mode. These squares are contained within a padding of 24 pixels around the page and are offset by 12 pixels between one another — the magic combo for Windows Phone design. The grid enables you to quickly and easily identify any alignment issues on the page.</p>    <p>&#160; <img alt="MetroGridHelper" src="https://media.smashingmagazine.com/wp-content/uploads/2012/06/metrogridhelper-180x300.png" /></p> </blockquote>  <blockquote>   <p>- Field and value pairs should either be presented in two left aligned columns, or with the tile above the content as in the contact detail page in the people hub.</p>    <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/5775.image_00067DEB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/5775.image_5F00_00067DEB.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4667.image_thumb_01D6D3B2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4667.image_5F00_thumb_5F00_01D6D3B2.png" width="141" height="219" /></a>&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/5153.image_5F159BF4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/5153.image_5F00_5F159BF4.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2465.image_thumb_6F246AAB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2465.image_5F00_thumb_5F00_6F246AAB.png" width="141" height="219" /></a>&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7380.image_70888D7D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7380.image_5F00_70888D7D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/5078.image_thumb_074A65B8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/5078.image_5F00_thumb_5F00_074A65B8.png" width="141" height="219" /></a></p> </blockquote>  <h4><span style="color: #800080">2- Element Spacing</span></h4>  <blockquote>   <p>Spacing between elements should be consistent both horizontally and vertically. It is recommended that elements are spaced a multiple or subdivision of 12px apart in order to follow the design grid.</p>    <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7658.image_127680B3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7658.image_5F00_127680B3.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/8508.image_thumb_268F9D3C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/8508.image_5F00_thumb_5F00_268F9D3C.png" width="136" height="219" /></a>&#160;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/1373.image_3F21CB3D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/1373.image_5F00_3F21CB3D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6472.image_thumb_682C6A39.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6472.image_5F00_thumb_5F00_682C6A39.png" width="138" height="219" /></a>&#160;<img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6431.image_thumb_3079B009.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6431.image_5F00_thumb_5F00_3079B009.png" width="142" height="218" /><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/5314.image_thumb_6D9D6B8E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/5314.image_5F00_thumb_5F00_6D9D6B8E.png" width="142" height="218" /></p> </blockquote>  <h4><span style="color: #800080">3- Control Feedback on Tap</span></h4>  <blockquote>   <p>- When using standard controls such as Buttons, List Items .. etc, should use the standard Windows Phone tilt effect.</p>    <p>- No background, foreground, or border color changes</p>    <p>- Other controls, no animation or color changes are permitted</p>    <p>- Color change of any description is not permitted for touch feedback</p> </blockquote>  <h4><span style="color: #800080">4- Lists</span></h4>  <blockquote>   <p>- Tilt animations must be used to indicate a list item has been pressed.</p>    <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7356.image_48A23BC6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7356.image_5F00_48A23BC6.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2465.image_thumb_15D23552.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2465.image_5F00_thumb_5F00_15D23552.png" width="140" height="219" /></a>&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/3173.image_10EF8196.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/3173.image_5F00_10EF8196.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7624.image_thumb_20FE504D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7624.image_5F00_thumb_5F00_20FE504D.png" width="139" height="219" /></a></p> </blockquote>  <blockquote>   <p>- List items should not have a <strong>selected state</strong>, unless in a picker.</p>    <p>- Use strong consistent typefaces across the app, make <strong>list item text</strong> at least 12 pixels in height and make it ease for touch, and make sure that the text is legible from all angles and sizes.</p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Backgrounds</span></strong></h5>    <p>- Backgrounds are discouraged. They are allowed for brand reasons and to support contrast. Instead, use any accent colors on the text foreground</p>    <h5><strong><span style="text-decoration: underline">Layouts</span></strong></h5>    <p>- Use text size and color to establish list item hierarchy. <a href="https://go.microsoft.com/fwlink/?LinkId=196225">See the Photoshop templates for a full range of list templates.</a></p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Enhancements</span></strong></h5>    <p>- List enhancements should not be used unless they are distinct from one another, such as in a menu. A rule of thumb is that Icons in a circle represent actions and those without are for indication.</p>    <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/1881.image_1C1B9C91.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/1881.image_5F00_1C1B9C91.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/0763.image_thumb_0DDFB452.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/0763.image_5F00_thumb_5F00_0DDFB452.png" width="465" height="219" /></a></p>    <h5><strong><span style="text-decoration: underline">Scrollable Content</span></strong></h5>    <p>-If you have scrollable content on your page, you should put 95px bottom padding at the end of your content. This way the content doesn’t reach all the way to the very bottom of the page.</p>    <p>For example, here is a simple page that is slightly higher than the visible area:</p>    <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2844.image_74F51EE3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2844.image_5F00_74F51EE3.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/8640.image_thumb_18B0D72F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/8640.image_5F00_thumb_5F00_18B0D72F.png" width="232" height="240" /></a></p>    <p>- if the user scrolls to the end of the page, the rubber band effect will come into view and the content will be pulled slightly above the bottom. But once the scroll is released, the content bounces back down to the edge of the screen once again.</p>    <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/3733.image_4AAB086A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/3733.image_5F00_4AAB086A.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4353.image_thumb_40796DFD.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4353.image_5F00_thumb_5F00_40796DFD.png" width="207" height="240" /></a></p>    <p>- While it doesn’t poke your eyes and it generally works OK, having content stretched all the way to the bottom is not ideal. The quick fix for this is adding 95px margin to the bottom to move your content away from the bottom – regardless if it is bottom of the phone chrome or the application bar. The final result is more pleasing to the eye.</p>    <p><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7848.image_thumb_395CC236.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7848.image_5F00_thumb_5F00_395CC236.png" width="237" height="240" /></p>    <p>- You can see the same padding in effect if you check the <em>profile</em> and <em>history</em> pages on any of your contact. It is also present on the <em>new appointment</em> page in the Calendar app and in the Internet Explorer’s <em>settings</em> page. Speaking of settings, scroll down to the bottom in the Settings application.</p> </blockquote>  <h4><span style="color: #800080">5- Pivot Controls</span></h4>  <blockquote>   <h5><strong><span style="text-decoration: underline">Pivot Pages</span></strong></h5>    <h5><strong>- </strong>All pivot controls should have at least two pages in them</h5>    <h5><strong><span style="text-decoration: underline">Controls not permitted in Pivot</span></strong></h5>    <p>- Toggle switches</p>    <p>- Sliders</p>    <p>- Maps controls – unless they are static <em>(pinch/zoom/pan are disable etc.)</em></p>    <p>- Browser controls - unless they are static <em>(pinch/zoom/pan are disable etc.)</em></p>    <h5><strong><span style="text-decoration: underline">Gesture Competition</span></strong></h5>    <p>- Controls that provide a horizontally scrollable area or take a horizontal swipe gesture are not permitted in the pivot control as the horizontal swipe gesture is reserved for changing pivot pages.</p> </blockquote>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/0537.image_32079F92.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/0537.image_5F00_32079F92.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7411.image_thumb_562F8AD2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7411.image_5F00_thumb_5F00_562F8AD2.png" width="427" height="219" /></a></p>  <blockquote>   <h5><strong><span style="text-decoration: underline">Empty Pivot Pages</span></strong></h5>    <p>- If a pivot page relies upon user interaction in order to populate it with content, then placeholder text/image should be included that indicates to the user that content is outstanding. For example, if there are no items displayed on an ‘Unread email’ pivot page, then the page should not be removed, it should simply state that no content is available at 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/01/57/37/metablogapi/4237.image_4C6A235A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4237.image_5F00_4C6A235A.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4670.image_thumb_14B7692A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4670.image_5F00_thumb_5F00_14B7692A.png" width="145" height="240" /></a>&#160;</p>    <p><em>for more information check: </em><a href="https://msdn.microsoft.com/en-us/library/windowsphone/design/hh202919(v=vs.105).aspx">Pivot control design guidelines for Windows Phone</a></p> </blockquote>  <h4><span style="color: #800080">6- Panorama Controls</span></h4>  <blockquote>   <h5><strong><span style="text-decoration: underline">Controls not permitted in Panorama</span></strong></h5>    <p>- Toggle switches</p>    <p>- Sliders</p>    <p>- Maps controls – unless they are static <em>(pinch/zoom/pan are disable etc.)</em></p>    <p>- Browser controls - unless they are static <em>(pinch/zoom/pan are disable etc.)</em></p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Application Bar</span></strong></h5>    <p>- Common actions such as refresh, search and settings should be placed in an application bar.</p>    <p>- The options available in the application bar can change contextually with the panorama pane.</p>    <p>- Floating buttons on the panorama should be avoided or be kept to minimum</p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Gesture Competition</span></strong></h5>    <p>- Controls that provide a horizontally scrollable area or take a horizontal swipe gesture are not permitted in the panorama control as the horizontal swipe gesture is reserved for changing panorama pages.</p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Scrollable Panes</span></strong></h5>    <p>- Panorama panes should either scroll vertically or horizontally. Not both.</p>    <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2480.image_524757A4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2480.image_5F00_524757A4.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7230.image_thumb_718C8F28.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7230.image_5F00_thumb_5F00_718C8F28.png" width="640" height="194" /></a></p> </blockquote>  <blockquote>   <p>- All panorama panes should not scroll vertically. If this is the case a pivot control is probably more suitable.</p>    <p>- Using a variety of panorama panes (vertical and horizontal) will improve the overall user experience and make the panorama easier to navigate.</p>    <h5><strong><span style="text-decoration: underline">Navigation</span></strong></h5>    <p>- Floating buttons should be avoided. If necessary provide a navigation section to allow users to dig deeper into the content.</p>    <p>- The native Pictures and Music &amp; Videos panorama have good examples of this. Generic tasks should be placed in the panorama app bar.</p> </blockquote>  <blockquote>   <p>&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/5224.image_17F10325.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/5224.image_5F00_17F10325.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6076.image_thumb_320E8FFE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6076.image_5F00_thumb_5F00_320E8FFE.png" width="315" height="251" /></a></p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Interactive Content</span></strong></h5>    <p>- Minimize the use interactive content on the panorama (forms, search boxes etc.).</p>    <p>- Panorama controls should be used to entice the user to explore (i.e. overview about the app).</p>    <p>- Use only a small set of tasks at this level that are fresh, dynamic and compelling.</p>    <p>- The panorama control should not be your entire application.</p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Number of Panes</span></strong></h5>    <p>- A maximum of five panes are recommended. Any more than five and they will be difficult to navigate and performance will take a hit.</p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Background</span></strong></h5>    <p>- Panorama controls should have a background. These can be textures brand elements, graphics, photos.</p>    <p>- Ideally they should be engaging and where possible contextual.</p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Title</span></strong></h5>    <p>- The panorama title should be animated.</p>    <p>- The rate of motion for the panorama title is that it should be slow relative to the topmost content layer, and slower than the background art (if applicable).</p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Section Titles</span></strong></h5>    <p>- The font size should be larger than the corresponding content.<a href="https://go.microsoft.com/fwlink/?LinkId=196225">Photoshop templates are available to</a><a href="https://go.microsoft.com/fwlink/?LinkId=196225">facilitate panorama design</a><a href="https://go.microsoft.com/fwlink/?LinkId=196225">.</a></p>    <p><em>for more information check: </em><a href="https://msdn.microsoft.com/library/windowsphone/design/hh202912(v=vs.105).aspx">Panorama design guidelines for Windows Phone</a></p> </blockquote>  <h4><span style="color: #800080">7- Headings</span></h4>  <blockquote>   <p>- Headings should be left aligned, and should not have backgrounds, borders, underline, or any other kind of decoration.</p>    <p>- The exception to this is panorama pane titles, which may use corporate branding.</p>    <p>- Also see text guidance section of this blog.</p> </blockquote>  <h4><span style="color: #800080">8- Buttons</span></h4>  <blockquote>   <h5><strong><span style="text-decoration: underline">Placement</span></strong></h5>    <p>- Wherever possible, buttons should be placed in the application bar.</p>    <p>Exceptions to this include:</p>    <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/3618.image_6DF2D406.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/3618.image_5F00_6DF2D406.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7888.image_thumb_1B0A5186.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7888.image_5F00_thumb_5F00_1B0A5186.png" width="306" height="219" /></a></p> </blockquote>  <blockquote>   <p>- Panoramas - where guidance <strong>Error! Reference source not found </strong>may apply.</p>    <p>- Dialogs and settings where more verbose actions may be needed.</p>    <p>- Quick actions (for example call history on a Windows Phone)</p>    <p>&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7183.image_05AF2CCF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7183.image_5F00_05AF2CCF.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4011.image_thumb_390D80DC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4011.image_5F00_thumb_5F00_390D80DC.png" width="144" height="240" /></a></p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Close Buttons</span></strong></h5>    <p>- Windows Phone applications do not need close buttons, as closing actions are handled by the hardware back button.</p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Back Buttons</span></strong></h5>    <p>- Back buttons are not permitted anywhere in Windows Phone. The user will make use of the hardware back button on the device.</p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Home Buttons</span></strong></h5>    <p>- Home buttons should be avoided as they can prove problematic to the Windows Phone navigation model. This becomes most evident if a user actions both the home button and the hardware ‘back’ button to navigate which may result in a loop effect.</p> </blockquote>  <h4><span style="color: #800080">9- Pickers</span></h4>  <blockquote>   <p>- The standard pickers should be used for picking the date and/or time, or for choosing a letter of the alphabet.</p>    <p>- Should a nonstandard picker be required, these should follow the look and feel of the ringtone picker in the Settings app on the device.</p> </blockquote>  <h4><span style="color: #800080">10- Start Tiles</span></h4>  <blockquote>   <h5><strong><span style="text-decoration: underline">Primary Tiles</span></strong></h5> </blockquote>  <blockquote>   <p>- Start tiles should not have rounded corners or three dimensional elements to them. They should fit in with the look and feel of other items in the Start menu.</p> </blockquote>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2112.image_1CFF52A2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2112.image_5F00_1CFF52A2.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/5314.image_thumb_17495A5E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/5314.image_5F00_thumb_5F00_17495A5E.png" width="284" height="219" /></a></p>  <blockquote>   <p>- Ensure standard tile templates are used</p>    <p>- The app logo should appear in the space dedicated to it in the template</p>    <p>- Logos should not be duplicated on the tile</p>    <p>- If the name of the app is included as part of the tile image, then the app name should be removed from the manifest to avoid it appearing twice</p>    <p>- Avoid including localized text in image files for tiles</p>    <p>- Start tiles should avoid having a full black (#000000) or full white (#FFFFFF) background, as these will not render properly in the dark or light themes.</p> </blockquote>  <blockquote>   <p><em>Avoid using relative time stamps or dates (eg. ‘two hours ago’). This is a static statement and will become inaccurate as time progresses. Instead, use an absolute date or time (eg. ’14:00’)</em></p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Secondary Tiles</span></strong></h5>    <p>- Secondary tiles should not link to static content</p>    <p>- Secondary tiles should not interact with the app (eg. ‘skip to next track’)</p>    <p>- Good examples include pinning a news category that updates regularly or a specific stock with an updating share price</p>    <p>- Avoid pinning to content that may not be available to users when they access the app at a later date (eg. a specific news article that is no longer current and has been replaced)</p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Wide Tiles</span></strong></h5>    <p>- The wide tile should only be used to display new, interesting content and notifications which are updated frequently (at least weekly).</p>    <p>- Wide tiles must be live.</p>    <p>&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2273.image_0FC07BA2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2273.image_5F00_0FC07BA2.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/8233.image_thumb_36DA793D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/8233.image_5F00_thumb_5F00_36DA793D.png" width="386" height="219" /></a></p>    <p><em>for more information check: </em><a href="https://msdn.microsoft.com/library/windowsphone/design/jj662929(v=vs.105).aspx">Tile design guidelines for Windows Phone</a></p> </blockquote>  <h4><span style="color: #800080">11- Browser Controls</span></h4>  <blockquote>   <p>- Browser controls should not be embedded in any pages in an app. The user should always be taken off to Internet Explorer on the device.</p>    <p>- Links that navigate a user away from the app should clearly state that this will happen.</p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Exceptions</span></strong></h5>    <p>- Where the user is being taken to a single page for authentication (such as with Facebook or Twitter), and no Xauth or similar API is available for the authentication controls to be implemented in Silverlight controls, the authentication can be performed in an embedded web browser control in the application.</p> </blockquote>  <h4><span style="color: #800080">12- Dialog Boxes</span></h4>  <blockquote>   <p>- Use the standard Windows Phone Dialog box. Single buttons should be left aligned and multiple buttons centre aligned.</p>    <p>- Avoid creating custom dialog boxes – If this is unavoidable ensure the behavior of the custom control mimics that of the native dialog box.</p> </blockquote>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6114.image_4947EB54.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6114.image_5F00_4947EB54.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/5415.image_thumb_68F955CD.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/5415.image_5F00_thumb_5F00_68F955CD.png" width="640" height="99" /></a></p>  <blockquote>   <p>- The Windows Phone toolkit also has a dialog control that allows for a greater degree of customization.</p>    <p><em>for more information check: <a title="https://msdn.microsoft.com/en-US/enus/library/microsoft.xna.framework.gamerservices.guide.beginshowmessagebox.aspx" href="https://msdn.microsoft.com/en-US/enus/library/microsoft.xna.framework.gamerservices.guide.beginshowmessagebox.aspx">https://msdn.microsoft.com/en-US/enus/library/microsoft.xna.framework.gamerservices.guide.beginshowmessagebox.aspx</a></em></p> </blockquote>  <h4><span style="color: #800080">13- Contrast</span></h4>  <blockquote>   <p>- There must be sufficient contrast between the background and foreground of controls on the page.</p>    <p>- This is particularly important for panoramas, where the background image can often interfere with the legibility of text. If this happens, either replace the image, or apply a semi-transparent black (or grey) layer over the image.</p> </blockquote>  <h4><span style="color: #800080">14- Text</span></h4>  <blockquote>   <h5><strong><span style="text-decoration: underline">Text Case</span></strong></h5>    <p>- Titles in Windows Phone should always be lowercase with the exception of section titles which should be all uppercase. If brand guidelines insist on a different case, then ensure that the use of the case is consistent across the app.</p>    <h5><strong><span style="text-decoration: underline">Custom/Brand Typefaces</span></strong></h5>    <p>- Custom or brand typefaces can be used in moderation in the application, though care should be taken. Custom typefaces can be used for page titles or panorama section titles. Segoe WP should be used everywhere else.</p>    <p>- Be careful if the typeface closely resembles Segoe WP, such as Arial or Helvetica, as mixing these with Segoe can look odd.</p> </blockquote>  <h4><span style="color: #800080">15- Images</span></h4>  <blockquote>   <p>- Images used within the application on backgrounds or UI elements should properly fit the application.</p>    <p>- Aspect ratios should be respected, images should not be pixilated or smudged as a result of scaling, and images with transparency should have proper anti-aliasing to ensure they display properly on different colored backgrounds.</p>    <p>- For most apps, we recommend that you include only WXGA assets. WXGA assets have the highest quality, and they automatically scale to work well for other resolutions. <a href="https://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206974(v=vs.105).aspx">Multi</a><a href="https://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206974(v=vs.105).aspx">-</a><a href="https://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206974(v=vs.105).aspx">resolution apps for Windows Phone 8</a></p> </blockquote>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6371.image_261D1153.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6371.image_5F00_261D1153.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7624.image_thumb_2064885E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7624.image_5F00_thumb_5F00_2064885E.png" width="595" height="640" /></a></p>  <h4><span style="color: #800080">16- Icons</span></h4>  <blockquote>   <h5><strong><span style="text-decoration: underline">Metaphors</span></strong></h5>    <p>- Don’t mix metaphors. Users recognize certain icons to mean certain things, either because they are used elsewhere in the device or because they are commonly associated with something else. For example:</p>    <p>&#160;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7144.image_2814A320.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7144.image_5F00_2814A320.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4466.image_thumb_29E4F8E7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4466.image_5F00_thumb_5F00_29E4F8E7.png" width="315" height="70" /></a></p>    <p>- If no icon exists for the metaphor you are trying to convey, create one. Do not repurpose existing icons.</p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Look and Feel</span></strong></h5>    <p>- Icons should respect the Windows Phone design style look and feel – simple, one color, and two dimensional.</p> </blockquote>  <h4><span style="color: #800080">17- Touch Targets</span></h4>  <blockquote>   <p>- Ensure your application is optimized for touch.</p>    <p>- Minimum font size is 15pt</p>    <p>- Recommended touch target size is 9mm</p>    <p>&#160;&#160; <img alt="UX_Interactions_SmallAssets_03" src="https://i.msdn.microsoft.com/dynimg/IC619096.png" /></p>    <p>- Minimum touch target size is 7mm</p>    <p>&#160;&#160; <img alt="UX_Interactions_MinHitTarget" src="https://i.msdn.microsoft.com/dynimg/IC619093.png" /></p>    <p>- Minimum spacing between elements is 2mm</p>    <p>&#160; <img alt="UX_Interactions_SmallAssets_02" src="https://i.msdn.microsoft.com/dynimg/IC619095.png" /></p>    <p>- Visual size is 60-100% of the touch target size </p>    <p>- Provide feedback when an item is touched</p> </blockquote>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/8015.image_403A9E2C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/8015.image_5F00_403A9E2C.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/1325.image_thumb_5A9FB2A5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/1325.image_5F00_thumb_5F00_5A9FB2A5.png" width="640" height="321" /></a></p>  <h4><span style="color: #800080">18- Typos</span></h4>  <blockquote>   <p>- The app should not have any spelling mistakes.</p>    <p>- Copy that is spelt incorrectly looks bad and could negatively impact the brand perception.</p> </blockquote>  <h4><span style="color: #800080">19- Theme</span></h4>  <blockquote>   <p>- The application should either respect the theme and accent color changes of the device, or should have a fixed theme that is not affected by such changes.</p>    <p>- All elements should be visible and have appropriate levels of contrast regardless of theme.</p> </blockquote>  <h4><span style="color: #800080">20-&#160; Splash Screen</span></h4>  <blockquote>   <p>- Provide different splash screens for the different resolutions</p> </blockquote>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/5531.image_3225F1F3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/5531.image_5F00_3225F1F3.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2678.image_thumb_33207281.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2678.image_5F00_thumb_5F00_33207281.png" width="292" height="219" /></a></p>  <h4><span style="color: #800080">21- The Hardware Back Button</span></h4>  <blockquote>   <p>- The hardware back button should always allow a user to complete one of the following tasks:</p> </blockquote>  <blockquote>   <p>&#160;&#160;&#160;&#160;&#160; 1. Dismiss temporary UI elements such as dialogs, keyboards (SIP) or pick lists.</p> </blockquote>  <blockquote>   <p>&#160;&#160;&#160;&#160;&#160; 2. Move backwards through the back stack.</p> </blockquote>  <blockquote>   <p>- The back button must not be altered under any circumstances. This includes its behavior when implementing secondary tiles (please refer to section 4.1.22)</p> </blockquote>  <h4><span style="color: #800080">22- Secondary Tiles <em>(deep linking)</em></span></h4>  <blockquote>   <p>- Secondary tiles are designed to launch the user into specific areas of the application. They are designed to allow quick and easy access to content and are generally not used as an entry point for exploration.</p>    <p>- Good examples of secondary tiles can be found on the device itself. For example, a pinned album from music and video will play the album when tapped. The tile serves as a specific purpose – go to the album and play it.</p>    <p>- Users can also pin people to the Start screen. Tapping on one of these tiles takes the user into the contact card pivot where they can see all the information and tasks related to that specific contact.</p>    <p>- Pressing the hardware back button returns the user to the Start screen.</p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Pinning</span></strong></h5>    <p>- The Pin icon should be used in the application bar to indicate that an item/section of the app can be pinned to the start screen. Please do not repurpose existing icons.</p>    <p>- Pinning can also be activated by using the touch and hold context menu – this is available in the Windows Phone toolkit.</p>    <p>- The pinning action should always be initiated by the user, or permission from the user should be sought. Do not pin items to a user’s Start screen without requesting their permission first.</p> </blockquote>  <blockquote><strong><span style="text-decoration: underline">Hardware Back Button</span></strong></blockquote>  <blockquote>   <p>When a user launches an application by tapping on a secondary tile, pressing the hardware back button should exit the application (i.e. return to the Start screen). The behavior of the hardware back button should not be altered in any way.</p> </blockquote>  <h4><span style="color: #800080">23- Lock Screen</span></h4>  <blockquote>   <p>- Background images should contain minimal text to avoid conflict with on-screen messages</p>    <p>- Background images should be simple – ‘busy’ images affects the legibility of on-screen messages and notifications</p>    <p>- Logos should be kept small to avoid competition with date, time and notifications</p>    <p>- If text is included, it should related directly with the image</p>    <p>- The visual focus of the lock screen should be the image, not the logo or text</p> </blockquote>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4555.image_76F73789.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4555.image_5F00_76F73789.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6840.image_thumb_000E05CF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6840.image_5F00_thumb_5F00_000E05CF.png" width="263" height="249" /></a>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2821.image_413E9FD7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2821.image_5F00_413E9FD7.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/0412.image_thumb_7E1D646D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/0412.image_5F00_thumb_5F00_7E1D646D.png" width="474" height="249" /></a></p>  <h4><span style="color: #800080">24- Lens Design</span>&#160;</h4>  <blockquote>   <p>- Apps should support a left-pointing arrow icon to indicate that additional photos are available</p>    <p>- The animation for ‘Save’ and ‘Capture’ should be consistent</p>    <p>- Tap-to-tap capture and the camera hardware button should be supported</p>    <p>- Half-press to focus should be supported</p>    <p>- Focus brackets should function as they do for the basic camera where relevant</p>    <p>- Capture and confirm apps should use a consistent set of icons (‘save’ and ‘delete’) along with animation for confirming and cancelling the storage of the item.</p>    <p>- ‘Cancel’ and ‘save’ should return the user to the viewfinder. These icons are included with the Windows Phone SDK.</p> </blockquote>  <blockquote>   <h5><strong><span style="text-decoration: underline">Rich Media Open Link</span></strong></h5>    <p>- The open link should launch an experience tailored to viewing or editing a selected item and not action a generic app launch point</p>    <p>- Displaying branding elements on items stored in the camera roll should be avoided – users should be able to share and edit these items without visual distractions</p>    <p><em>for more information check: <a href="https://msdn.microsoft.com/library/windowsphone/design/jj662922(v=vs.105).aspx">Lens design guidelines for Windows Phone</a></em></p> </blockquote>  <h4><span style="color: #800080">25- Page Transitions</span></h4>  <blockquote>   <p>- Animations should be implemented when moving between pages. This effect is available from the <a href="https://silverlight.codeplex.com/releases/view/94435r">Silverlight for Windows Phone Toolkit</a><a href="https://silverlight.codeplex.com/releases/view/94435r">.</a></p> </blockquote>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4478.image_7DD86D7E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4478.image_5F00_7DD86D7E.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4846.image_thumb_4D6C2BCC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4846.image_5F00_thumb_5F00_4D6C2BCC.png" width="584" height="480" /></a></p>  <blockquote>   <p>- couple of page transitions are included in the Silverlight for Windows Phone Toolkit:</p>    <ul>     <li>Turnstile - To transition between contextually different areas </li>      <li>Swivel - Partial and transient UI </li>      <li>Slide - Staying in context while showing a set of options, and No forward navigation </li>      <li>Tilt – Natural feedback a control is pressed </li>   </ul>    <p>- Use a bar to indicate progress</p>    <ul>     <li>Just as you use tilt animation to indicate to the user that their tap has taken effect, progress bars enable you to communicate that a process is being executed. This removes doubt for the user about whether the application is functioning properly. Two types of progress bars can be used: determinate and indeterminate.        <br /><a href="https://media.smashingmagazine.com/wp-content/uploads/2012/06/determinate.png"><img title="Determinate Progress Bar" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-top-width: 0px" border="0" alt="Determinate Progress Bar" src="https://media.smashingmagazine.com/wp-content/uploads/2012/06/determinate.png" /></a>         <br /><em>Determinate progress bar.</em> </li>   </ul>    <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://media.smashingmagazine.com/wp-content/uploads/2012/06/indeterminate.png"><img title="Indeterminate Progress Bar" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-top-width: 0px" border="0" alt="Indeterminate Progress Bar" src="https://media.smashingmagazine.com/wp-content/uploads/2012/06/indeterminate.png" /></a>       <br /><em>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Indeterminate progress bar.</em></p>    <ul>     <li>A determinate progress bar is used to communicate the percentage of completion, such as the percentage of bytes copied out of the total number of bytes. An indeterminate progress bar is much more common and is particularly useful when you don’t know the length of the process, such as when calling a Web service and waiting for a response. </li>   </ul> </blockquote>  <p>&#160;</p>  <h4><span style="color: #800080">26- Language and Tone</span></h4>  <blockquote>   <p>- Do not use computer jargon, hexadecimal error codes, or text that assumes computer knowledge.</p>    <p>- Use an authentic and clear tone and reflect the language that is used by the audience.</p>    <p>- Use friendly, light hearted and empathic tones. Never use angry or mechanical tones in the application.</p>    <p>&#160;</p> </blockquote>  <h3>In Conclusion</h3>  <p>These are just recommendations from different cases studies that are usually application specific. So, feel free to do what is right for your application taking into consideration some success factions like:</p>  <blockquote>   <p>- Deliver the best experience on any mobile platform is to design the app for the platform and its accompanying usage patterns.</p>    <p>- The first step in building a compelling Windows Phone UI-compliant application is to spend time using the apps that ship with the OS. This will familiarize you with Windows Phone’s unique set of controls and design paradigms.</p>    <p>- Get inspired by checking well designed third-party apps that are available on the Windows Phone Marketplace. one of my favorites apps that have innovated on the Windows Phone design principles to deliver a truly compelling experience, is <a href="https://cocktailflow.com/">Cocktail Flow</a> app.</p> </blockquote>  <p>Once you have the basics down and have begun to piece together the visuals for your application, refer to the guidelines in this article. They will help you avoid some of the most common mistakes that I have seen when reviewing designs or during building my own apps.</p>]]></content:encoded>
    </item>
    <item>
      <title>Part 2: Creating a Composer enabled PHP website on Windows Azure with Git deployment</title>
      <link>https://docs.microsoft.com/archive/blogs/africaapps/part-2-creating-a-composer-enabled-php-website-on-windows-azure-with-git-deployment</link>
      <pubDate>Tue, 28 Jan 2014 07:57:00 GMT</pubDate>
      <dc:creator><![CDATA[Ahmed Sabbour]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/africaapps/2014/01/28/part-2-creating-a-composer-enabled-php-website-on-windows-azure-with-git-deployment/</guid>
      <description><![CDATA[Introduction
This is part 2 of a 2 part blog post. Read part 1 here.
So in part 1, we&rsquo;ve...]]></description>
      <content:encoded><![CDATA[<h1>Introduction</h1>
<p>This is part 2 of a 2 part blog post. <a href="https://blogs.msdn.com/b/africaapps/archive/2014/01/28/part-1-creating-a-composer-enabled-php-website-on-windows-azure-with-git-deployment.aspx" target="_blank">Read part 1 here</a>.</p>
<p>So in part 1, we&rsquo;ve created a local Symfony2 PHP website that uses Composer to manage its packages. In this part, we are going to create a Windows Azure Website, setup deployment from source control, and modify the Git post deployment script to automatically run run <strong>php composer.phar install</strong> after each commit.</p>
<p>Why would you want to do that you ask? Well, the vendors directory, where all the downloaded packages reside, can get quite large, and storing it in source control, and uploading it with your website is a waste of bandwidth.</p>
<h1>Creating the website</h1>
<p>I&rsquo;m not going to go through the details here, as it is a well covered topic, I&rsquo;ll create the website on the portal, and choose to <strong>&ldquo;Publish from source control&rdquo;</strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4885.image_24942707.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4885.image_5F00_24942707.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/0552.image_thumb_61BA733D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/0552.image_5F00_thumb_5F00_61BA733D.png" alt="image" width="644" height="429" border="0" /></a></p>
<p>And then choose <strong>&ldquo;Local Git repository&rdquo;</strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2577.image_0509F894.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2577.image_5F00_0509F894.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/3005.image_thumb_2F11A8CF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/3005.image_5F00_thumb_5F00_2F11A8CF.png" alt="image" width="644" height="429" border="0" /></a></p>
<p>Fire it up! Bam, 5 seconds, I have a website created.</p>
<h1>Create the local Git repo</h1>
<p>Go to the Deployments tab for the website, then follow the steps there to create a local repository on my machine and commit my files. I&rsquo;ll run the commands on Git Bash. <strong>Only commit the files locally, don&rsquo;t add the remote Windows Azure repository and push just yet!</strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4274.image_401AF814.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4274.image_5F00_401AF814.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2055.image_thumb_7B930927.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2055.image_5F00_thumb_5F00_7B930927.png" alt="image" width="644" height="445" border="0" /></a></p>
<p>What we need to do now is to modify what happens whenever I commit files. Fortunatley, the great guys at the Windows Azure team have a tool called <a href="https://github.com/projectkudu/kudu" target="_blank">Kudu</a> which is basically responsible for deploying your code once you push it to a Git source control.</p>
<h1>Create the custom Kudo deployment script</h1>
<p>For this part, you will need to have the <a href="https://www.windowsazure.com/en-us/documentation/articles/xplat-cli/#install" target="_blank">Windows Azure Command Line Tools (CLI) installed</a>.</p>
<p>Once you have it installed, you can launch the <strong>Windows Azure Command Prompt</strong> that got installed (which you will find under C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.2 or whichever version the SDK is current at the time you read this)</p>
<p>If you type <strong>azure</strong> in that prompt, you will get all the commands that you can use. The command we are interested in is <strong>azure site</strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6114.image_65CE422C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6114.image_5F00_65CE422C.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7532.image_thumb_4BFC9CAE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7532.image_5F00_thumb_5F00_4BFC9CAE.png" alt="image" width="644" height="422" border="0" /></a></p>
<p>So <strong>change directory into our project location</strong> then run the following</p>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">azure site deploymentscript --php -t bash </pre>
<!--CRLF--></div>
</div>
<p>Which will generate a <strong>.deployment</strong> file and a <strong>deploy.sh</strong> file. This deploy.sh file is what is executed after each push we do on the Windows Azure Git repo.</p>
<h1>Customize the deploy.sh script to run composer</h1>
<p>Open <strong>deploy.sh</strong> in your favorite editor</p>
<h3>Add the below before the <strong>Deployment</strong> section</h3>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"><!--CRLF--><!--CRLF--><!--CRLF--><!--CRLF--><!--CRLF--><!--CRLF--><!--CRLF--><!--CRLF--><!--CRLF--><!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"><span style="color: #008000;">##################################################################################################################################</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"><span style="color: #008000;"># Download Composer</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"><span style="color: #008000;"># ----------</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">echo Downloading Composer</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">curl -sS https://getcomposer.org/installer | php</pre>
<!--CRLF--></div>
</div>
<h3><strong>Add the below after the Deployment section</strong></h3>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"><span style="color: #008000;">##################################################################################################################################</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;"><span style="color: #008000;"># Dependency install</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"><span style="color: #008000;"># ----------</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">&nbsp;</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"><span style="color: #008000;"># Invoke Composer in the deployment directory</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">echo Invoking composer install <span style="color: #0000ff;">in</span> deployment directory $DEPLOYMENT_TARGET</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">php -d extension<span class="o">=</span>php_intl.dll $DEPLOYMENT_TARGET/composer.phar install -v --prefer-dist --no-dev --optimize-autoloader --no-interaction</pre>
<!--CRLF--></div>
</div>
<p><strong></strong>&nbsp;</p>
<h1>Commit the newly added files to your local repository</h1>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">git add &ndash;-all</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">git commit -m <span style="color: #006080;">"added deployment scripts"</span></pre>
<!--CRLF--></div>
</div>
<h1>Add the remote Windows Azure repository and push to it</h1>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">git remote add azure https://sabbour@symfonycomposer.scm.azurewebsites.net:443/symfonycomposer.git</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">git push azure master</pre>
<!--CRLF--></div>
</div>
<h1>You&rsquo;re done</h1>
<p>You&rsquo;ll see that I&rsquo;ve only pushed 270KB and on the server, the composer script kicked in and started downloading all the dependencies without using my bandwidth. Talk about efficiency!</p>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">Counting objects: 168, done.</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">Delta compression using up to 8 threads.</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">Compressing objects: 100% (153/153), done.</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">Writing objects: 100% (168/168), 269.25 KiB | 0 bytes/s, done.</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">Total 168 (delta 48), reused 0 (delta 0)</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">&nbsp;</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: Updating branch <span style="color: #006080;">'master'</span>.</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Updating submodules.</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: Preparing deployment <span style="color: #0000ff;">for</span> commit id <span style="color: #006080;">'623af14f72'</span>.</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Running custom deployment command...</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: Running deployment command...</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Using php.ini from: C:/DWASFiles/Sites/symfonycomposer/Config/PHP-5.4.9/php.ini</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: Downloading Composer</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: <span style="color: #008000;">#!/usr/bin/env php</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: All settings correct <span style="color: #0000ff;">for</span> using Composer</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Downloading...</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote:</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Composer successfully installed to: D:\home\site\repository\composer.phar</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: Use it: php composer.phar</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Handling Basic Web Site deployment.</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: KuduSync.NET from: <span style="color: #006080;">'D:\home\site\repository'</span> to: <span style="color: #006080;">'D:\home\site\wwwroot'</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Copying file: <span style="color: #006080;">'.gitignore'</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">&nbsp;</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">----- [ REMOVED FOR BREVITY ] -----</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">&nbsp;</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Copying file: <span style="color: #006080;">'src\Acme\DemoBundle\Resources\public\images\welcome-demo.gif'</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: Omitting next output lines...</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Invoking composer install <span style="color: #0000ff;">in</span> D:\home\site\wwwroot</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: Loading composer repositories with package information</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Installing dependencies from lock file</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: Warning: The lock file is not up to date with the latest changes <span style="color: #0000ff;">in</span> comp</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">oser.json. You may be getting outdated dependencies. Run update to update them.</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote:   - Installing doctrine/lexer (v1.0)</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote:     Downloading: 100%</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote:     Extracting archive</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">&nbsp;</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">----- [ REMOVED FOR BREVITY ] -----</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">&nbsp;</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote:   - Installing twig/extensions (v1.0.1)</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote:     Downloading: 100%</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote:     Extracting archive</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">&nbsp;</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">----- [ REMOVED FOR BREVITY ] -----</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">&nbsp;</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: Generating optimized autoload files</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: ........................................................................</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">..........................................</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Creating the <span style="color: #006080;">"app/config/parameters.yml"</span> file</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: ..........</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Clearing the cache <span style="color: #0000ff;">for</span> the dev environment with debug true</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: ..........</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Installing assets using the hard copy option</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: Installing assets <span style="color: #0000ff;">for</span> Symfony\Bundle\FrameworkBundle into web/bundles/fr</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">amework</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: Installing assets <span style="color: #0000ff;">for</span> Acme\DemoBundle into web/bundles/acmedemo</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Installing assets <span style="color: #0000ff;">for</span> Sensio\Bundle\DistributionBundle into web/bundles/</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">sensiodistribution</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">&nbsp;</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">remote: Finished successfully.</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">remote: Deployment successful.</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">To https://sabbour@symfonycomposer.scm.azurewebsites.net:443/symfonycomposer.git</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">&nbsp;</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"> * [new branch]      master -&gt; master</pre>
<!--CRLF--></div>
</div>
<h1>Next steps</h1>
<p>You need to take care of some things when migrating from an Apache based installation to an IIS based installation (like Windows Azure Websites). For example, IIS uses Web.config (in contrast to Apache's .htaccess) to configure stuff, like URL Rewriting.</p>
<p>You may use these excellent posts to understand how to <a href="https://www.iis.net/learn/application-frameworks/install-and-configure-php-applications-on-iis/translate-htaccess-content-to-iis-webconfig">translate .htaccess content to Web.config</a> and if you are running Windows, you can even use a<a href="https://www.iis.net/learn/extensions/url-rewrite-module/importing-apache-modrewrite-rules"> tool provided inside IIS Manager to do the conversion for you</a>.</p>
<p><a href="https://sabbour.me">Note: This post is cross posted to my new blog at https://sabbour.me/</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Part 1: Creating a Composer enabled PHP website on Windows Azure with Git deployment</title>
      <link>https://docs.microsoft.com/archive/blogs/africaapps/part-1-creating-a-composer-enabled-php-website-on-windows-azure-with-git-deployment</link>
      <pubDate>Tue, 28 Jan 2014 07:51:00 GMT</pubDate>
      <dc:creator><![CDATA[Ahmed Sabbour]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/africaapps/2014/01/28/part-1-creating-a-composer-enabled-php-website-on-windows-azure-with-git-deployment/</guid>
      <description><![CDATA[Introduction

There is no doubt that Composer is a really cool dependency manager for PHP, sort of...]]></description>
      <content:encoded><![CDATA[<h1>Introduction</h1>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6371.wa_git_comp_62C5980C.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6371.wa_5F00_git_5F00_comp_5F00_62C5980C.jpg"><img style="border: 0px currentcolor; margin-right: 0px; margin-left: 0px; float: right; display: inline; background-image: none;" title="wa_git_comp" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4152.wa_git_comp_thumb_3CF2025A.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4152.wa_5F00_git_5F00_comp_5F00_thumb_5F00_3CF2025A.jpg" alt="wa_git_comp" width="601" height="186" align="right" border="0" /></a></p>
<p>There is no doubt that <a href="https://getcomposer.org/" target="_blank">Composer</a> is a really cool dependency manager for PHP, sort of like <a href="https://www.nuget.org/" target="_blank">NuGet</a> for ASP.net, <a href="https://npmjs.org/" target="_blank">npm</a> for Node.js and <a href="https://rubygems.org/" target="_blank">gems</a> for Ruby.&nbsp; It makes the deployment process of libraries that much easier.</p>
<p>Composer is basically a PHP script that you provide with a json file with the your dependencies, and run with</p>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">php composer.phar install</pre>
<!--CRLF--></div>
</div>
<p>In this post, I&rsquo;ll take you quickly on what you need to do in order to deploy your PHP website using Git, and setup the deployment process to execute the above command upon each commit. And we will do this on a Windows Azure Website.</p>
<h1>Installing Composer locally</h1>
<p>I&rsquo;m going to assume you already have <a href="https://msysgit.github.io/" target="_blank">Git tools installed</a>, so I&rsquo;ll use Git Bash in order to perform the next commands</p>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">cd ProjectsRoot</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">curl -s https://getcomposer.org/installer | php</pre>
<!--CRLF--></div>
</div>
<p>Just doing the above will install composer into the &ldquo;Projects&rdquo; directory</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7245.image_7BE613A6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7245.image_5F00_7BE613A6.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/5164.image_thumb_5271D266.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/5164.image_5F00_thumb_5F00_5271D266.png" alt="image" width="644" height="380" border="0" /></a></p>
<p>Confirm Composer in installed by running the below</p>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">php composer.phar</pre>
<!--CRLF--></div>
</div>
<p>You should get an output like this</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/0333.image_4435EA27.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/0333.image_5F00_4435EA27.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/8130.image_thumb_4F620522.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/8130.image_5F00_thumb_5F00_4F620522.png" alt="image" width="644" height="380" border="0" /></a></p>
<h1>Using Composer for something useful. Installing Symfony2</h1>
<p>Now to demonstrate the power and versatility of Composer, let&rsquo;s install the <a href="https://symfony.com" target="_blank">Symfony2 PHP framework</a> using Composer by executing this command in our Projects (usually this is our webserver&rsquo;s htdocs, wwwroot or similar) which will create a new Symfony project in the &ldquo;MySymfonyProject&rdquo; folder using Symfony version 2.4.1</p>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">php composer.phar create-project symfony/framework-standard-edition MySymfonyProject 2.4.1</pre>
<!--CRLF--></div>
</div>
<p>Composer will crunch away for a while downloading Symfony and its dependencies</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6825.image_32E7A3F3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6825.image_5F00_32E7A3F3.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4336.image_thumb_26E84470.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4336.image_5F00_thumb_5F00_26E84470.png" alt="image" width="644" height="380" border="0" /></a></p>
<p>Once it is done you will be left with the below directory structure for your project</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/8484.image_0663956F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/8484.image_5F00_0663956F.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6278.image_thumb_0114AEBE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6278.image_5F00_thumb_5F00_0114AEBE.png" alt="image" width="166" height="429" border="0" /></a></p>
<p>Let&rsquo;s take a look at the <strong>composer.json</strong> file</p>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">{</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">    <span style="color: #006080;">"name"</span>: <span style="color: #006080;">"symfony/framework-standard-edition"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">    <span style="color: #006080;">"license"</span>: <span style="color: #006080;">"MIT"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">    <span style="color: #006080;">"type"</span>: <span style="color: #006080;">"project"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">    <span style="color: #006080;">"description"</span>: <span style="color: #006080;">"The \"Symfony Standard Edition\" distribution"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">    <span style="color: #006080;">"autoload"</span>: {</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: #006080;">"psr-0"</span>: { <span style="color: #006080;">""</span>: <span style="color: #006080;">"src/"</span> }</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">    },</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">    <span style="color: #006080;">"require"</span>: {</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">        <span style="color: #006080;">"php"</span>: <span style="color: #006080;">"&gt;=5.3.3"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: #006080;">"symfony/symfony"</span>: <span style="color: #006080;">"~2.4"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">        <span style="color: #006080;">"doctrine/orm"</span>: <span style="color: #006080;">"~2.2,&gt;=2.2.3"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: #006080;">"doctrine/doctrine-bundle"</span>: <span style="color: #006080;">"~1.2"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">        <span style="color: #006080;">"twig/extensions"</span>: <span style="color: #006080;">"~1.0"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: #006080;">"symfony/assetic-bundle"</span>: <span style="color: #006080;">"~2.3"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">        <span style="color: #006080;">"symfony/swiftmailer-bundle"</span>: <span style="color: #006080;">"~2.3"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: #006080;">"symfony/monolog-bundle"</span>: <span style="color: #006080;">"~2.4"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">        <span style="color: #006080;">"sensio/distribution-bundle"</span>: <span style="color: #006080;">"~2.3"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: #006080;">"sensio/framework-extra-bundle"</span>: <span style="color: #006080;">"~3.0"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">        <span style="color: #006080;">"sensio/generator-bundle"</span>: <span style="color: #006080;">"~2.3"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: #006080;">"incenteev/composer-parameter-handler"</span>: <span style="color: #006080;">"~2.0"</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">    },</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">    <span style="color: #006080;">"scripts"</span>: {</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">        <span style="color: #006080;">"post-install-cmd"</span>: [</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">            <span style="color: #006080;">"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">            <span style="color: #006080;">"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">            <span style="color: #006080;">"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">            <span style="color: #006080;">"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">            <span style="color: #006080;">"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">        ],</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: #006080;">"post-update-cmd"</span>: [</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">            <span style="color: #006080;">"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">            <span style="color: #006080;">"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">            <span style="color: #006080;">"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">            <span style="color: #006080;">"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">            <span style="color: #006080;">"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        ]</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">    },</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">    <span style="color: #006080;">"config"</span>: {</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">        <span style="color: #006080;">"bin-dir"</span>: <span style="color: #006080;">"bin"</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">    },</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">    <span style="color: #006080;">"extra"</span>: {</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: #006080;">"symfony-app-dir"</span>: <span style="color: #006080;">"app"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">        <span style="color: #006080;">"symfony-web-dir"</span>: <span style="color: #006080;">"web"</span>,</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: #006080;">"incenteev-parameters"</span>: {</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">            <span style="color: #006080;">"file"</span>: <span style="color: #006080;">"app/config/parameters.yml"</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        },</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">        <span style="color: #006080;">"branch-alias"</span>: {</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">            <span style="color: #006080;">"dev-master"</span>: <span style="color: #006080;">"2.4-dev"</span></pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">        }</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">    }</pre>
<!--CRLF-->
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">}</pre>
<!--CRLF--></div>
</div>
<p>Note the "require&rdquo; part, this is where Symfony specified which packages it needs and hence Composer downloaded them into the &ldquo;vendor&rdquo; directory:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/1016.image_57A06D7D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/1016.image_5F00_57A06D7D.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6646.image_thumb_2302A1F3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6646.image_5F00_thumb_5F00_2302A1F3.png" alt="image" width="134" height="334" border="0" /></a></p>
<p><strong>Now copy the composer.phar file into your project directory for easier access</strong>. At any point if we want to add more packages and update old ones, you add them to the composer.json file and then run</p>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">php composer.phar install</pre>
<!--CRLF--></div>
</div>
<h1>To be continued..</h1>
<p>In this part we covered how to create a Composer enabled PHP web application. In part 2 of this post, I&rsquo;ll cover how to create a Windows Azure Website, set-up Git deployment and modify the post deployment actions to <strong>run the composer install command after each commit</strong>. What benefit would that give us? You&rsquo;d have to <a href="https://blogs.msdn.com/b/africaapps/archive/2014/01/28/part-2-creating-a-composer-enabled-php-website-on-windows-azure-with-git-deployment.aspx">read part 2</a> in order to find out!</p>
<p><a href="https://sabbour.me">Note: This post is cross posted to my new blog at https://sabbour.me/</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Installing PHP and Zend Extensions on Windows Azure Websites</title>
      <link>https://docs.microsoft.com/archive/blogs/africaapps/installing-php-and-zend-extensions-on-windows-azure-websites</link>
      <pubDate>Mon, 23 Dec 2013 09:46:00 GMT</pubDate>
      <dc:creator><![CDATA[Ahmed Sabbour]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/africaapps/2013/12/23/installing-php-and-zend-extensions-on-windows-azure-websites/</guid>
      <description><![CDATA[Introduction
You are creating a PHP website on Windows Azure and need to install additional PHP...]]></description>
      <content:encoded><![CDATA[<h1>Introduction</h1>
<p>You are creating a PHP website on Windows Azure and need to install additional PHP extensions not provided by default (like MongoDB or IonCube), you&rsquo;ve come to the right post. It is quite easy.</p>
<h1>Downloading and uploading the extensions</h1>
<p>I&rsquo;m going to demo this with 2 extensions; MongoDB and IonCube. The first is a regular PHP extension, and the second one is a Zend extension.</p>
<p>It is important that you download the <strong>32-bit version</strong> of the DLLs (unless you are using a Standard website instance and specified that it runs on 64-bit), and also download the <strong>Non Thread Safe versions</strong> (if provided).</p>
<ol>
<li>Once you have the DLLs in hand, create a folder called <strong>bin</strong> under <strong>/site/wwwroot</strong> using your favorite FTP client (or Web Matrix)</li>
<li>Upload the DLLs to the bin folder.</li>
</ol>
<h1>Configuring the website on the portal to load the extensions</h1>
<ol>
<li>Go to the Windows Azure portal</li>
<li>Select your website and go to the Configure tab, scroll down till you reach the App Settings section</li>
<li>For PHP extensions, create a <strong>PHP_EXTENSIONS</strong> key, for Zend extensions, create a <strong>PHP_ZENDEXTENSIONS</strong> key</li>
<li>For values, type in the locations of the DLLs as shown in the picture <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/0045.image_437E555A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/0045.image_5F00_437E555A.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4214.image_thumb_27DC5A15.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4214.image_5F00_thumb_5F00_27DC5A15.png" alt="image" width="644" height="191" border="0" /></a></li>
<li>Save the configuration, and load up your phpinfo test page, behold: <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4645.image_33087510.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4645.image_5F00_33087510.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6747.image_thumb_7B55BADF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6747.image_5F00_thumb_5F00_7B55BADF.png" alt="image" width="644" height="96" border="0" /></a> <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/1016.image_0681D5DB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/1016.image_5F00_0681D5DB.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2364.image_thumb_11ADF0D6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2364.image_5F00_thumb_5F00_11ADF0D6.png" alt="image" width="644" height="373" border="0" /></a></li>
<li>If you want to load multiple extensions, just comma separate them in the App Settings <strong>but make sure not to leave any spaces between the comma separated paths</strong>, otherwise the platform won&rsquo;t be able to find the file and load it.</li>
</ol>
<p><a href="https://sabbour.me">Note: This post is cross posted to my new blog at https://sabbour.me/</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Beta Version Apps doesn’t expire any more, new release of Dev Center app</title>
      <link>https://docs.microsoft.com/archive/blogs/africaapps/beta-version-apps-doesnt-expire-any-more-new-release-of-dev-center-app</link>
      <pubDate>Sun, 22 Dec 2013 05:17:00 GMT</pubDate>
      <dc:creator><![CDATA[Dina Helmy]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/africaapps/2013/12/22/beta-version-apps-doesnt-expire-any-more-new-release-of-dev-center-app/</guid>
      <description><![CDATA[According to Rushmi Malaviarachchi recent posts, there is some updates that I&rsquo;d like to share...]]></description>
      <content:encoded><![CDATA[<p>According to <a href="https://blogs.windows.com/members/rushmi-malaviarachchi/">Rushmi Malaviarachchi</a> recent posts, there is some updates that I&rsquo;d like to share with you: beta apps no longer have an expiration date, and the Windows Phone <a href="https://www.windowsphone.com/s?appid=2d3063c2-4b29-4e69-9c03-50b67b0e6aec">Dev Center app</a> has a new &ldquo;markets&rdquo; view.</p>
<p>&nbsp;</p>
<h3><span style="color: #800080;"><strong>Beta apps no longer have an expiration date</strong></span></h3>
<p>As many of you know, you can submit a beta app to <a href="https://dev.windowsphone.com/">Windows Phone Dev Center</a> to help you test before you submit your app to the public catalog in the Windows Phone Store. Beta apps have a few special properties:</p>
<ul>
<li>Access is limited to a set of users (between 1 and 10,000) selected by the developer</li>
<li>Access is available only via a link; the beta app doesn&rsquo;t appear when users search or browse the Store</li>
<li>Certification is not required; developers can rapidly iterate on the app</li>
<li>Before today&rsquo;s announcement, expiration for beta apps was 90 days after their creation date</li>
</ul>
<p>Many developers indicate that they want to maintain multiple &ldquo;update trains&rdquo; for their apps: one for the public app that&rsquo;s available to everyone in the Store, and another for the beta app that&rsquo;s frequently updated and tested by a community of specific users. Developers use the beta app (or in some cases multiple beta apps) to test out their latest and greatest version, discover bugs, and determine when an updated app is ready for the general public. When they have a version that&rsquo;s ready, they release it by submitting it as an update to their public app.</p>
<p>With this usage pattern, 90-day expiration for beta app is a great hassle. Every 90 days developers would need to submit a new beta app and send the new link out to all of their beta testers. But, no longer. Here&rsquo;s what you&rsquo;ll see on the app info page when you create a new beta app:</p>
<p>&nbsp;</p>
<p><img src="https://blogs.windows.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-53-84-metablogapi/clip_5F00_image002_5F00_thumb_5F00_185B5DA4.png" alt="clip_image002" /></p>
<p>&nbsp;</p>
<p>Existing beta apps that have already been created in Dev Center will still expire after 90 days, even if they are updated. However, from this point forward, newly created beta apps will not expire and developers can keep updating them as frequently as they like. I guess, this change makes the beta app feature more useful for developers. For more thoughts about how to test your apps, please see a very useful blog post by&nbsp; Bernardo Zamora&rsquo;s, that addresses the different <a href="https://blogs.windows.com/windows_phone/b/wpdev/archive/2013/11/27/options-for-publishing-windows-phone-beta-apps-and-testing-in-app-purchase.aspx">Options for testing and publishing Windows Phone apps</a>.</p>
<h4>&nbsp;</h4>
<h3><strong><span style="color: #800080;">The &ldquo;markets&rdquo; page in the Dev Center app</span></strong></h3>
<p>The Dev Center app makes it easier than ever to see how your app is doing in each of the markets where it&rsquo;s offered. Now, when you tap one of your apps to see how it&rsquo;s doing, you&rsquo;ll find a new &ldquo;markets&rdquo; page that provides a per-market breakdown of downloads, ratings, and reviews. You can sort by any of these statistics to learn more about how your app is doing around the world.</p>
<p>&nbsp;</p>
<p><img src="https://blogs.windows.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-53-84-metablogapi/clip_5F00_image004_5F00_thumb_5F00_6E7AE96E.jpg" alt="clip_image004" /></p>
<p>&nbsp;</p>
<p>If you didn&rsquo;t yet have the Dev Center app, you could download it <a href="https://www.windowsphone.com/en-us/store/app/dev-center/2d3063c2-4b29-4e69-9c03-50b67b0e6aec">here</a>. The Dev Center is continuing to evolve and add valuable changes. As always, please keep sharing your feedback to help improve the Dev Center; the <a href="https://wpdev.uservoice.com/forums/110711-dev-center-store">Windows Phone Dev Center UserVoice forum</a> is the best way to do that.</p>]]></content:encoded>
    </item>
    <item>
      <title>Migrate your old website to Windows Azure Websites using the Visual Studio Online “Monaco” console, cURL and unzip</title>
      <link>https://docs.microsoft.com/archive/blogs/africaapps/migrate-your-old-website-to-windows-azure-websites-using-the-visual-studio-online-monaco-console-curl-and-unzip</link>
      <pubDate>Tue, 10 Dec 2013 06:53:00 GMT</pubDate>
      <dc:creator><![CDATA[Ahmed Sabbour]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/africaapps/2013/12/10/migrate-your-old-website-to-windows-azure-websites-using-the-visual-studio-online-monaco-console-curl-and-unzip/</guid>
      <description><![CDATA[Introduction
Have you considered migration to a Windows Azure website? The thought of downloading...]]></description>
      <content:encoded><![CDATA[<h1>Introduction</h1>
<p>Have you considered migration to a Windows Azure website? The thought of downloading the files and content from your old website, then uploading them again to Windows Azure is not appealing? I agree with you!</p>
<p>The title might be a bit misleading. What we actually want to do is, zip the content of your website (I&rsquo;m assuming you are using cPanel or something similar and know how to do this), then fetch it directly on the Windows Azure website, and unzip it there.</p>
<p>If you were to deploy that on a Windows Azure Virtual Machine, the above would be very easy, since you either have Remote Desktop access or SSH access to your machine and you can click a few buttons (or punch a few commands) and you will be able to do just that.</p>
<p>The question is, how can you do that without Remote Desktop or SSH access? Since Windows Azure Websites is purely a Platform as a Service, by definition, you have give up access to the underlying machine, in return for higher abstraction. In this post, I&rsquo;ll show you how to access a &ldquo;pseudo shell&rdquo; using the <a href="https://www.visualstudio.com/products/visual-studio-online-overview-vs" target="_blank">cool new Visual Studio Online</a> which is now part of Windows Azure.</p>
<h1>Let&rsquo;s start</h1>
<p>I assume you have already managed to zip/backup the content of your old website in one way or the other. I will not go through the details of that.</p>
<p>Instead, let&rsquo;s fire up a new Windows Azure Website from our management portal</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6038.image_12FBA700.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6038.image_5F00_12FBA700.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/3678.image_thumb_37483D95.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/3678.image_5F00_thumb_5F00_37483D95.png" alt="image" width="644" height="456" border="0" /></a></p>
<p>Once the website is ready, go to the Configure tab, scroll down a bit and enable &ldquo;<strong>Edit in Visual Studio Online&rdquo; </strong>then save your settings.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/1374.image_109ED2AA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/1374.image_5F00_109ED2AA.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/0677.image_thumb_43FFB768.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/0677.image_5F00_thumb_5F00_43FFB768.png" alt="image" width="571" height="431" border="0" /></a></p>
<p>Once your settings are saved, if you go back to the Dashboard of the website, there should be a new link that comes up on the right under &ldquo;quick glance&rdquo; saying &rdquo;Edit in Visual Studio Online&rdquo;. Go ahead an click that link.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/8081.image_5D480680.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/8081.image_5F00_5D480680.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/0486.image_thumb_54137D52.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/0486.image_5F00_thumb_5F00_54137D52.png" alt="image" width="313" height="343" border="0" /></a></p>
<p>You will be asked to login, use the same username and password you set for the deployment credentials.</p>
<p>Once you are logged in, you will be presented with a beautiful online &ldquo;IDE&rdquo; that you can already use to start developing ASP.net, PHP and node.js apps right away!</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/1565.image_534038CA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/1565.image_5F00_534038CA.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2068.image_thumb_00102EAA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2068.image_5F00_thumb_5F00_00102EAA.png" alt="image" width="644" height="324" border="0" /></a></p>
<h1>The console</h1>
<p>The console is the interesting part today, open it by clicking on the second button from the bottom of the left bar, or by pressing <strong>Shift + Ctrl + C</strong> on your keyboard.</p>
<p>If you type <strong>help</strong> in the console, you shall be presented with the list of available commands.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/1643.image_13C239A0.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/1643.image_5F00_13C239A0.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4762.image_thumb_38E4A56E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4762.image_5F00_thumb_5F00_38E4A56E.png" alt="image" width="637" height="484" border="0" /></a></p>
<p>There are a lot of interesting commands in there, but the one we are going to be using out of those is <strong>unzip</strong>, in order to unzip our backup file once we have it. But how are we going to download the file in the first place? At the time of writing this, there isn&rsquo;t a command available to download stuff. There are no <strong>wget</strong> or <strong>curl</strong> commands built in.</p>
<p>Fortunately, there is a very easy work around!</p>
<h1>&ldquo;Installing&rdquo; cURL</h1>
<p>Turns out you can create .bat files and even run .exe files from this console, so we are in luck. Go ahead and download <a href="https://www.paehl.com/open_source/?CURL_7.33.0" target="_blank">the small cURL zip</a> (I downloaded the <a href="https://www.paehl.com/open_source/?download=curl_733_0_ssl.zip" target="_blank">one with SSL</a> after dismissing that annoying pop-up ad), unzip it on your computer and then simply drag curl.exe from your computer and drop it into the Visual Studio Online app running in your browser <strong>onto the left &ldquo;Explore&rdquo; pane</strong>. This will upload it.</p>
<p>Going back to the console and running cURL will work now.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2134.image_58099158.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2134.image_5F00_58099158.png"><img style="display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2437.image_thumb_2466465C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2437.image_5F00_thumb_5F00_2466465C.png" alt="image" width="644" height="135" border="0" /></a></p>
<h1>Migration</h1>
<p>Use cURL to download the zip file from the remote server</p>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">curl -o backup.zip https://your.old.website.com/backup.zip</pre>
<!--CRLF--></div>
</div>
<p>Then unzip this</p>
<div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: 'Courier New', courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: #f4f4f4;">
<div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;">
<pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">unzip backup.zip </pre>
<!--CRLF--></div>
</div>
<p>You&rsquo;re done.</p>
<p><a href="https://sabbour.me">Note: This post is cross posted to my new blog at https://sabbour.me/</a></p>]]></content:encoded>
    </item>
    <item>
      <title>What’s new in Visual Studio 2013 for Windows 8.1 developers?</title>
      <link>https://docs.microsoft.com/archive/blogs/africaapps/whats-new-in-visual-studio-2013-for-windows-8-1-developers</link>
      <pubDate>Mon, 02 Dec 2013 07:20:00 GMT</pubDate>
      <dc:creator><![CDATA[shehab fawzy]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/africaapps/2013/12/02/whats-new-in-visual-studio-2013-for-windows-8-1-developers/</guid>
      <description><![CDATA[Visual studio 2013 came with amazing changes to developers. Some could be counted for Windows 8.1...]]></description>
      <content:encoded><![CDATA[<p>Visual studio 2013 came with amazing changes to developers. Some could be counted for <a href="https://msdn.microsoft.com/en-US/windows/apps/" target="_blank">Windows 8.1</a> and others could be counted for visual studio 2013. These improvements were mainly focused around how to help our developers build better apps and have a better development experience. I&rsquo;ll be trying to go through some of these changes and additions in this post in this post.</p>
<h1>XAML Editor in Visual Studio</h1>
<p>So from the feedback that the Visual studio team got they made the following changes:</p>
<h2>IntelliSense for Data Binding</h2>
<p>This is my favorite feature, now while building you windows 8.1 app you&rsquo;ll to take advantage of Data binding auto complete but in order to have this functionality you will need to sign your DataContext from the XAML or set the design-time DataContext in the View.</p>
<h4>IntelliSense with resolved DataContext</h4>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/2311.clip_image002_thumb_107512DD.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/2311.clip_5F00_image002_5F00_thumb_5F00_107512DD.jpg" alt="IntelliSense with resolved DataContext" width="500" height="196" /></p>
<h4>IntelliSense with design time DataContext</h4>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/7115.clip_image004_thumb_08E9A370.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/7115.clip_5F00_image004_5F00_thumb_5F00_08E9A370.jpg" alt="IntelliSense with design time DataContext" width="500" height="185" /></p>
<p>As you can see both ways of setting the DataContext result in the exact same intelliSense.</p>
<h2>Go To Definition</h2>
<p>Go To Definition which you can get by either pressing F12 or right click and press go to definition are now available in XAML now you can use them against Local resources, System Resources and Extension SDK resources.</p>
<p>For example lets if you pressed F12 while you were standing over the system resource <strong>ApplicationPageBackgroundThemeBrush</strong>.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/1261.clip_image006_thumb_56199CFB.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/1261.clip_5F00_image006_5F00_thumb_5F00_56199CFB.jpg" alt="Go to Definition on ApplicationPageBackgroundThemeBrush" width="500" height="188" /></p>
<p>Notice that you are taken to the exact location where that resource was defined.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/8032.clip_image008_thumb_0E581414.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/8032.clip_5F00_image008_5F00_thumb_5F00_0E581414.jpg" alt="exact location where that resource was defined" width="500" height="92" /></p>
<p>another example if pressed go to definition on the GridView object, it will open the Object Browser and take you to that object.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/3771.clip_image010_thumb_3FE381A9.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/3771.clip_5F00_image010_5F00_thumb_5F00_3FE381A9.jpg" alt="Object Browser" width="500" height="129" /></p>
<h2>IntelliSense for Resources</h2>
<p>So in the older days if I was interested in binding to a Resource I would have needed to search what is the Resource Name and go back and forth between your app and that document, now visual studio auto completes that for you automatically.</p>
<h4>Setting Grid.Background to a System brush</h4>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/0181.clip_image016_thumb_1A0D5B46.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/0181.clip_5F00_image016_5F00_thumb_5F00_1A0D5B46.jpg" alt="Setting Grid.Background to a System brush" width="500" height="147" /></p>
<h4>Setting TextBlockStyle to a System style</h4>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/8424.clip_image018_thumb_406F3E91.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/8424.clip_5F00_image018_5F00_thumb_5F00_406F3E91.jpg" alt="Setting TextBlockStyle to a System style" /></p>
<h4>Setting GridView.Style to a Local resource</h4>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/5707.clip_image020_thumb_2B118929.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/5707.clip_5F00_image020_5F00_thumb_5F00_2B118929.jpg" alt="Support for &quot;insert snippet&quot; and &quot;surround with&quot; commands in XAML editor" /></p>
<h2>Code Snippets</h2>
<p>Code snippets has always been on of the greatest features in visual studio but it was missing form XAML, now in 2013 you can easily Insert a snippet or surround some of your XAML with other Snippets.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/5228.clip_image022_thumb_113D52FA.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/5228.clip_5F00_image022_5F00_thumb_5F00_113D52FA.jpg" alt="clip_image022" /></p>
<p>Snippets can be imported using the <a href="https://msdn.microsoft.com/en-us/library/9ybhaktf(v=vs.80).aspx">Code Snippets Manager</a>:</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/4276.clip_image024_thumb_509B068A.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/4276.clip_5F00_image024_5F00_thumb_5F00_509B068A.jpg" alt="Snippets can be imported using the Code Snippets Manager" width="500" height="373" /></p>
<h2>Better commenting support</h2>
<p>There was always a problem when you tried to comment commented XAML because XML doesn&rsquo;t support nested comments. In Visual studio 2013 that problem was solved.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/6013.clip_image025_6A80CFED.gif" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/6013.clip_5F00_image025_5F00_6A80CFED.gif" alt="Better commenting support" width="500" height="260" /></p>
<h2>IntelliSense matching</h2>
<p>The IntelliSense was updated to make it easier to find what you were looking for with additions like Camel case, Substring and fuzzy matching.</p>
<p>In the example below you can notice that I misspelled StackPanel but the IntelliSense was able to detect what I wanted.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/7840.clip_image027_thumb_4EEA3AB6.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/7840.clip_5F00_image027_5F00_thumb_5F00_4EEA3AB6.jpg" alt="Fuzzy matching intellisense" /></p>
<p>In the example below you can see you didn&rsquo;t have to type the whole word you just wrote the first letter of each word and the IntelliSense was able to detect what you meant.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/8764.clip_image029_thumb_5C504DBC.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/8764.clip_5F00_image029_5F00_thumb_5F00_5C504DBC.jpg" alt="CamelCase matching intellisense" /></p>
<p>this last example is around matching with a substring.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/2084.clip_image031_thumb_5FEE6899.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/2084.clip_5F00_image031_5F00_thumb_5F00_5FEE6899.jpg" alt="Substring matching intellisense" /></p>
<h2>Start Tag / End Tag refactoring</h2>
<p>This is one of the most helpful features simply the ending tag gets edited automatically after editing the starting tag.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/0640.clip_image001_62F56080.gif" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/0640.clip_5F00_image001_5F00_62F56080.gif" alt="Tag Refactoring" /></p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/6428.clip_image033_5BD62408.gif" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/6428.clip_5F00_image033_5F00_5BD62408.gif" alt="Removing the end tag" /></p>
<h1>Rulers and Dynamic Guides</h1>
<p>precision and attention to details is what makes the difference between a good app and a great one. so in order to help you achieve that extra mile Rulers and dynamic Guides where introduced.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/1643.image_6FA763A4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/1643.image_5F00_6FA763A4.png" alt="Rules &amp; Dynamic guides" /></p>
<h1>Style and template editing</h1>
<p>Its now much easier to edit styles and templates while staying in context of the edited item unlike the older versions of blend.</p>
<p>So this was changed in 2013 due to the received feedback around productivity. so now you can edit a style or a template that&rsquo;s available in the App.XAML without the need to go there.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/7041.image_1D288368.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/7041.image_5F00_1D288368.png" alt="Style and template editing" /></p>
<h1>Smarter visual snapping engine</h1>
<p>Snapping has been improved a lot to allow a more precise alignment of controls which aligns to the visual bounds instead of the layout bounds.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/4807.image_7D0D76AA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/4807.image_5F00_7D0D76AA.png" alt="Smarter visual snapping engine" /></p>
<h1>New controls</h1>
<p>This is my favorite change in Windows 8.1 it brings a lot of really needed controls and they really make a huge difference your development time and development experience some of these controls are:</p>
<ul>
<li>AppBar controls</li>
<li>CommandBar</li>
<li>DatePicker</li>
<li>Flyout</li>
<li>Hub</li>
<li>Hyperlink</li>
<li>MenuFlyout</li>
<li>SettingsFlyout</li>
<li>TimePicker</li>
</ul>
<p>The example below is from the properties of the new control CommandBar and from there you can see how easy it is to add commandBar Buttons.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/6038.image_55D32D75.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/6038.image_5F00_55D32D75.png" alt="New controls: Modify the properties in the Properties Inspector" /></p>
<p>I&rsquo;ll try to talk into details around new controls in the upcoming posts.</p>
<h1>Device panel updates</h1>
<p>New devices were added to the device panel to enable mimicking more devices with more resolutions. it also allows you resize your app to different sizes to mimic the different snap view sizes.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/7127.image_2A8E966E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/7127.image_5F00_2A8E966E.png" alt="Device panel updates" width="500" height="299" /></p>
<h1>Updated project templates</h1>
<p>When It comes to the visual studio templates the old ones improved to match the updated guide lines and new templates were introduced like the Hub template in the example below.</p>
<p><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/29/92/metablogapi/8688.image_7582073D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-92-metablogapi/8688.image_5F00_7582073D.png" alt="Updated Project Templates" /></p>
<h1>Performance and reliability of the designer</h1>
<p>This is one of the greatest Improvement in Visual studio 2013. This was very important to give our developers a frustration free development experience. so the table below contains some of the stuff done to achieve that.</p>
<table style="width: 500px;" border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td valign="top" width="125"><strong>Scenario</strong></td>
<td valign="top" width="125"><strong>Visual Studio 2012 Update 3</strong></td>
<td valign="top" width="125"><strong>Visual Studio 2013 Preview</strong></td>
<td valign="top" width="125"><strong>Percentage Improvement</strong></td>
</tr>
<tr>
<td valign="top" width="125">Designer load time - Large Windows Store project</td>
<td valign="top" width="125">15.92 seconds</td>
<td valign="top" width="125">6.11 seconds</td>
<td valign="top" width="125">61.6%</td>
</tr>
<tr>
<td valign="top" width="125">XAML Intellisense Availability &ndash; Large Windows Store project</td>
<td valign="top" width="125">13.5 seconds</td>
<td valign="top" width="125">2.55 seconds</td>
<td valign="top" width="125">81.1%</td>
</tr>
<tr>
<td valign="top" width="125">Create Data Binding&rsquo; dialog for a 120 element XAML file</td>
<td valign="top" width="125">6.7 seconds</td>
<td valign="top" width="125">Instantaneous</td>
<td valign="top" width="125">N/A</td>
</tr>
</tbody>
</table>
<h1>Finally</h1>
<p>So you can see that a lot of improvements were done in Visual Studio 2013 in order for our developer to have a frustration free experience and to be armed with the right tools that will help them in achieving that extra mile which will enable them to convert the good to great. The Visual Studio team is always interested to hear your feedback and suggestions you can do that through <a href="https://visualstudio.uservoice.com/">UserVoice</a> or <a href="https://connect.microsoft.com/VisualStudio">Connect</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Windows 8.1 small changes huge difference</title>
      <link>https://docs.microsoft.com/archive/blogs/africaapps/windows-8-1-small-changes-huge-difference</link>
      <pubDate>Sun, 01 Dec 2013 13:14:41 GMT</pubDate>
      <dc:creator><![CDATA[shehab fawzy]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/africaapps/2013/12/01/windows-8-1-small-changes-huge-difference/</guid>
      <description><![CDATA[I borrowed the title from this Gizmodo article that was written before the windows 8.1 lunch and...]]></description>
      <content:encoded><![CDATA[<p><img src="https://www.wired.com/images_blogs/gadgetlab/2013/05/Windows-8.1-Pre-release-Start-screen-Your-Start-screen-gets-more-personalized-with-Windows-8.1.png" width="500" height="281" /></p>  <p>I borrowed the title from this Gizmodo <a href="https://gizmodo.com/windows-8-1-review-little-changes-make-a-big-differenc-1446625571" target="_blank">article</a> that was written before the windows 8.1 lunch and was talking about the changes for the normal user. But in this post I’m going to be targeting<strong> developers</strong> and I'll make a series of posts featuring each category of changes by its own. I'll be mainly focusing on XAML and c# and maybe I could talk a little bit about HTML and JS. But before we start I’d to say that <a href="https://msdn.microsoft.com/library/windows/apps/bg182410" target="_blank">Windows 8.1 for developers</a> is introducing amazing changes with huge difference.</p>  <h1>What's new in Windows 8.1</h1>  <p>The below points are the main categories of the changes</p>  <ul>   <li>     <div align="left"><a href="https://msdn.microsoft.com/en-us/library/windows/apps/bg182885.aspx">App packaging</a></div>   </li>    <li>     <div align="left"><a href="https://msdn.microsoft.com/en-us/library/windows/apps/bg182877.aspx">Asynchronous programming</a></div>   </li>    <li>     <div align="left"><a href="https://msdn.microsoft.com/en-us/library/windows/apps/bg182879.aspx">Controls (HTML with JavaScript)</a></div>   </li>    <li>     <div align="left"><a href="https://msdn.microsoft.com/en-us/library/windows/apps/bg182878.aspx">Controls (XAML with C# or C++)</a></div>   </li>    <li>     <div align="left"><a href="https://msdn.microsoft.com/en-us/library/windows/apps/bg182882.aspx">Devices</a></div>   </li>    <li>     <div align="left"><a href="https://msdn.microsoft.com/en-us/library/windows/apps/bg182880.aspx">DirectX programming</a></div>   </li>    <li>     <div align="left"><a href="https://msdn.microsoft.com/en-us/library/windows/apps/bg182881.aspx">Files</a></div>   </li>    <li>     <div align="left"><a href="https://msdn.microsoft.com/en-us/library/windows/apps/bg182883.aspx">Multimedia</a></div>   </li>    <li>     <div align="left"><a href="https://msdn.microsoft.com/en-us/library/windows/apps/bg182884.aspx">Networking</a></div>   </li>    <li>     <div align="left"><a href="https://msdn.microsoft.com/en-us/library/windows/apps/bg182886.aspx">Security</a></div>   </li>    <li>     <div align="left"><a href="https://msdn.microsoft.com/en-us/library/windows/apps/bg182889.aspx">Tools</a></div>   </li>    <li>     <div align="left"><a href="https://msdn.microsoft.com/en-us/library/windows/apps/bg182890.aspx">UX/UI</a></div>   </li>    <li>     <div align="left"><a href="https://msdn.microsoft.com/en-us/library/windows/apps/bg182887.aspx">Windows Store</a></div>   </li> </ul>  <p>As you can see there has been a lot of changes for developers, some of them are small some are huge, but in the end all of them makes a huge difference even the small tweaks, my favorite topics are the XAML controls, security and the visual studio enhancements.</p>  <h2>App packaging</h2>  <p>App packaging is now more advanced and gives you more options for packaging your apps with better localization and handling of assets with different resolutions which means better disk space &amp; bandwidth utilization.</p>  <h2>Asynchronous programming</h2>  <p>Windows 8.1 is now using windows library for JavaScript 2.0 which introduces the object/namespace <a href="https://msdn.microsoft.com/en-us/library/windows/apps/dn301978.aspx" target="_blank">Scheduler</a>, which supports fast and fluid apps and provides a more unified developer experience.</p>  <h2>Controls (HTML with JavaScript)</h2>  <p>Amazing changes were done in this prespective, new important controls were added like AppBarCommand and Reapeter with some updates to the old controls set like the Listview and dispose API.</p>  <h2>Controls (XAML with C# or C++)</h2>  <p>Huge additions and a lot of updates were done to the C# and XAML set of controls starting from adding AppBar, DatePicker and Flyout until updating of the FlipView, Headers and Placeholders.</p>  <h2>Devices</h2>  <p>Build apps that can easily connect with a wide ranges of devices either wired or wireless like PoS, HID, USB devices, Blutooth, 3D printers and scanning devices.</p>  <h2>DirectX programming</h2>  <p>Windows 8.1 introduces DirectX 11.2, which brings a host of new features to improve performance in your games and graphics apps.</p>  <h2>Files</h2>  <p>A lot of changes were done in this area easing the process of files access and enhancing the process of making your app data more discoverable by introducing new APIs and updating some of the old ones like the File Picker and Microsoft SkyDrive.</p>  <h2>Multimedia</h2>  <p>Windows 8.1 made it easier for you to build apps the consume and produce media data by enhancing and updating the current media APIs like the video and Audio processing and updating the XAML MediaElement.</p>  <h2>Networking</h2>  <p>A set of Cool Features were introduced to Networking like Geofence support and Wi-Fi Direct, with improvments to old controls like the Background Transfer and Connected Standby.</p>  <h2>Security</h2>  <p>A set of astonishing changes were introduced in the security category giving you the ability to secure your apps with latest authentication techniques like Fingerprint authentication, Smart cards, Trust management and certificates.</p>  <h2>Tools</h2>  <p>In order to enhance the developers experience a new set of tools were introduced for windows 8.1 (visual studio 2013) with enhancements in XAML design tools, Diagnostics, C++ development and HTML and JavaScript editors.</p>  <h2>UX/UI</h2>  <p>UX/UI is a great deal for Windows 8.1, so some changes where introduced to enhance the user experience in that area and better improve the usability of the apps like resizable windows, Tile Sizes, Search, Alarm and Speech synthesis.</p>  <h2>Windows Store</h2>  <p>The Windows had a lot of improvements in windows 8.1 with new tools for managing app offers and a number of enhancements to make it easier to sell and maintain your app.</p>]]></content:encoded>
    </item>
    <item>
      <title>Activate your free store account using DreamSpark</title>
      <link>https://docs.microsoft.com/archive/blogs/africaapps/activate-your-free-store-account-using-dreamspark</link>
      <pubDate>Wed, 27 Nov 2013 06:50:40 GMT</pubDate>
      <dc:creator><![CDATA[shehab fawzy]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/africaapps/2013/11/27/activate-your-free-store-account-using-dreamspark/</guid>
      <description><![CDATA[So I always get asked on the steps you need to follow in order to activate your store account from...]]></description>
      <content:encoded><![CDATA[<p>So I always get asked on the steps you need to follow in order to activate your store account from <a href="https://www.dreamspark.com/" target="_blank">DreamSpark</a>.</p>  <h2>but first what is:</h2>  <h3>DreamSpark</h3>  <p><a href="https://www.dreamspark.com/" target="_blank">DreamSpark</a> is a program targeting mainly students, with the aim of providing them with software that will help them in converting their ideas and dreams into reality through <a href="https://www.dreamspark.com/Student/Software-Catalog.aspx#" target="_blank">Visual Studio and the Resources</a> provided. it also grants these developers a free store account that they can use to publish their developed <a href="https://msdn.microsoft.com/en-US/windows/apps/" target="_blank">Windows 8</a> and <a href="https://dev.windowsphone.com/en-us?logged_in=1" target="_blank">Windows phone 8</a> apps.</p>  <h3>Store account</h3>  <p>A store account simply is an account that you will need to publish your apps either on Windows 8 or Windows Phone 8. For getting that account you’ll need to pay $19, but if you have either a <a href="https://www.microsoft.com/bizspark/default.aspx" target="_blank">BizSpark</a> account or a <a href="https://www.dreamspark.com/" target="_blank">DreamSpark</a> account Microsoft will cover this for you. In this post I’ll be covering how to activate your store account from DreamSpark, If you’re interested in how to do that from BizSpark <a href="https://twitter.com/bougyz" target="_blank">Dina Helmy</a> wrote a good <a href="https://blogs.msdn.com/b/africaapps/archive/2013/11/25/activate-your-store-account-using-bizspark.aspx" target="_blank">blog post</a> around that.</p>  <h2>Activating DreamSpark</h2>  <p>First this is the landing page of the <a href="https://www.dreamspark.com/" target="_blank">DreamSpark</a> Website.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/5140.image_22B35188.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/5140.image_5F00_22B35188.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/0181.image_thumb_6067EB57.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/0181.image_5F00_thumb_5F00_6067EB57.png" width="554" height="426" /></a></p>  <p>You will click on the learn more button under the DreamSpark for students area.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6761.image_41475F28.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6761.image_5F00_41475F28.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/0361.image_thumb_0BD3BE65.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/0361.image_5F00_thumb_5F00_0BD3BE65.png" width="554" height="433" /></a></p>  <p>It will open the students page, from the bottom right part of the page you will choose <a href="https://www.dreamspark.com/Account/CreateAccount.aspx" target="_blank">create Account</a>.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/5826.image_4414C62E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/5826.image_5F00_4414C62E.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/0677.image_thumb_75A2C474.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/0677.image_5F00_thumb_5F00_75A2C474.png" width="554" height="412" /></a></p>  <p>simply fill in your information and press continue and verify.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/5430.image_356F3BAB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/5430.image_5F00_356F3BAB.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/3323.image_thumb_325CDDB6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/3323.image_5F00_thumb_5F00_325CDDB6.png" width="554" height="373" /></a></p>  <p>Now you have 4 methods to verify that you’re a student choose the on that best fits your case.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/8311.image_1D6DEBF4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/8311.image_5F00_1D6DEBF4.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2084.image_thumb_3C46F083.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2084.image_5F00_thumb_5F00_3C46F083.png" width="554" height="455" /></a></p>  <p>click the map your account button to link your live account to your DreamSpark account. now you’re ready and you have a DreamSpark account. the second step now is activating your store account.</p>  <h2>Activating the store account</h2>  <p>First you’ll go to the students tab in the DreamSpark website, then you’ll choose the app development tab.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/5584.image_02C6713D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/5584.image_5F00_02C6713D.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/6457.image_thumb_3B077906.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/6457.image_5F00_thumb_5F00_3B077906.png" width="554" height="497" /></a></p>  <p>now press the learn more button under the windows 8 section.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7180.image_13638D8D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7180.image_5F00_13638D8D.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/8053.image_thumb_07642E0A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/8053.image_5F00_thumb_5F00_07642E0A.png" width="554" height="499" /></a></p>  <p>The windows 8 getting started page will appear from there you can press the get code button and the verification code will appear there.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/3157.image_46C4724B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/3157.image_5F00_46C4724B.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/8228.image_thumb_014202D1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/8228.image_5F00_thumb_5F00_014202D1.png" width="554" height="536" /></a></p>  <p>Now You’ll navigate to the <a href="https://dev.windowsphone.com/en-us?logged_in=1" target="_blank">Windows phone 8</a> page or the <a href="https://msdn.microsoft.com/en-US/windows/apps/" target="_blank">Windows 8</a> page. in this post I’m demoing the <a href="https://dev.windowsphone.com/en-us?logged_in=1" target="_blank">Windows phone 8</a> page.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/3683.image_5BDAA013.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/3683.image_5F00_5BDAA013.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7382.image_thumb_57F26CE5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7382.image_5F00_thumb_5F00_57F26CE5.png" width="554" height="506" /></a></p>  <p>from there you’ll choose the publish tab. you’ll be asked to login with your live account.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/0410.image_7254F0AD.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/0410.image_5F00_7254F0AD.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/1768.image_thumb_2D3EB428.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/1768.image_5F00_thumb_5F00_2D3EB428.png" width="554" height="504" /></a></p>  <p>Read the terms and press the accept and continue button.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2783.image_77C882B3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2783.image_5F00_77C882B3.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/0272.image_thumb_22A37777.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/0272.image_5F00_thumb_5F00_22A37777.png" width="554" height="506" /></a></p>  <p>fill in your data and choose your store name and then press next and accept the store terms.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7485.image_5B50B235.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7485.image_5F00_5B50B235.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/1588.image_thumb_4D14C9F6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/1588.image_5F00_thumb_5F00_4D14C9F6.png" width="554" height="412" /></a></p>  <p>Since the demo user is based in Cairo the store is displaying the required amount in Egyptian pounds. what you will need to do now is paste the code we got from our DreamSpark here and then press update total after that press next.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/8054.image_15620FC6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/8054.image_5F00_15620FC6.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/7245.image_thumb_552E86FC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/7245.image_5F00_thumb_5F00_552E86FC.png" width="554" height="488" /></a></p>  <p>Enter your credit card information which is only for verification, your account wont be charged anything and press next.</p>  <p>Voila <img class="wlEmoticon wlEmoticon-smile" style="style" alt="Smile" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/3554.wlEmoticon-smile_392058C2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/3554.wlEmoticon_2D00_smile_5F00_392058C2.png" /> now you’re done. now you have a Windows 8 account and a Windows Phone 8 account.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/4812.image_3B5CE17E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/4812.image_5F00_3B5CE17E.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/8664.image_thumb_384A8389.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/8664.image_5F00_thumb_5F00_384A8389.png" width="554" height="469" /></a></p>  <p>The Windows 8 Store Account.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/5074.image_4A29A807.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/5074.image_5F00_4A29A807.png"><img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/57/37/metablogapi/2781.image_thumb_47174A12.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-57-37-metablogapi/2781.image_5F00_thumb_5F00_47174A12.png" width="554" height="396" /></a></p>  <p>Now you’re ready to publish your Windows 8 and Windows Phone 8 apps. it’s a good idea to reserve you’re app name once you&#160; create the account to make sure it wont be taken by another user. for more information around the store and the signup process go this <a href="https://msdn.microsoft.com/en-us/library/windows/apps/jj863494.aspx" target="_blank">page</a>. I hope the steps were clear if you have any questions I’ll be glad to answer them in the comments. I’d like to thank Mona Thoria for letting me use her information in the demo above.</p>]]></content:encoded>
    </item>
  </channel>
</rss>