<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Steve Fox's OBA Ramblings</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/steve_fox/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/steve_fox/feed.xml</link>
    <description>All Things SharePoint, Office and Azure Development</description>
    <lastBuildDate>Tue, 16 Apr 2019 05:31:20 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>BUILD 2014 Round-Up – Part 1</title>
      <link>https://docs.microsoft.com/archive/blogs/steve_fox/build-2014-round-up-part-1</link>
      <pubDate>Fri, 04 Apr 2014 21:48:31 GMT</pubDate>
      <dc:creator><![CDATA[Steve - Azure]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/steve_fox/2014/04/04/build-2014-round-up-part-1/</guid>
      <description><![CDATA[Reflecting on the Week  Well, it’s Friday night and BUILD is now officially over, yet I can’t help...]]></description>
      <content:encoded><![CDATA[<p><strong>Reflecting on the Week</strong></p>  <p>Well, it’s Friday night and BUILD is now officially over, yet I can’t help but feel most, if not all, attendees walked away with a deep sense of excitement over Microsoft’s vision, direction and announcements from this week. This week was not just about further extending the “Cloud and Mobile” vision, but it was also about further embracing the broader developer ecosystem and technology landscape—and then some. </p>  <p>Across the <a href="http://blogs.msdn.com/b/steve_fox/archive/2014/04/02/build-day-1-keynote-summary.aspx">Day 1 Keynote</a> and <a href="http://blogs.msdn.com/b/steve_fox/archive/2014/04/03/build-day-2-keynote-summary.aspx">Day 2 Keynote</a>, there were roughly 55 new announcements, some more surprising than others but all contributing to this enthusiasm. You can also view the keynotes online here:</p>  <ul>   <li><a href="https://channel9.msdn.com/Events/Build/2014/KEY01">Day 1</a></li>    <li><a href="https://channel9.msdn.com/Events/Build/2014/KEY02">Day 2</a></li> </ul>  <p>For me personally, I can only say that this week was <em>hugely</em> impactful; it provoked a number of very positive emotions and optimism on where we’re heading as a company and as a technical community. There is a significant evolution underway, and it’s amazing to not have just been here to experience a piece of it this week, but also to be thinking about the open road ahead.&#160; </p>  <p><strong>How about the sessions?</strong></p>  <p>So, what about the sessions, you ask? Well, there was a ton of great sessions, most of which are now on <a href="https://channel9.msdn.com/events/build/2014?wt.mc_id=build_hp">C9</a>. In an <a href="http://blogs.msdn.com/b/steve_fox/archive/2014/04/01/looking-at-build-sessions.aspx">earlier post</a>, I mentioned a few areas of interest I was targeting this week. Between meetings with customers, colleagues and vendors, I managed to take in a few sessions. In this post, I’ve included a few of my favorites. I will, however, follow up with a few more favorites as I work through the offline videos. </p>  <p><em><strong>Session Videos already posted…</strong></em></p>  <p><u><em>What’s New for ASP.NET and Web in Visual Studio 2013 Update 2 and Beyond</em></u> – Scott Hanselman and Scott Hunter</p>  <p>You may have heard the saying: “I went to a fight and a hockey game broke out” If not, when the “lesser Scotts,” as they self-referenced, get on stage together you always feel something dangerous or angry could bust out. Nice. The Scotts covered off on a few areas, such as:</p>  <ul>   <li>One ASP.NET – e.g. one web template with the options built into the template, as opposed to multiple project templates within VS 2013 </li>    <li>Web Essentials: <a href="http://www.vswebessentials.com">http://www.vswebessentials.com</a> </li>    <li>New features such as Bootstrap, which comes default within the MVC 5 templates (awesome), improved Web API and Azure support, evolved EF, attribute routing, tracing and logging, and so much more. </li> </ul>  <p>You can catch a recap of “the match” here:</p>  <p><a title="https://channel9.msdn.com/Events/Build/2014/3-602" href="https://channel9.msdn.com/Events/Build/2014/3-602">https://channel9.msdn.com/Events/Build/2014/3-602</a>&#160;</p>  <p><u><em>Windows and the Internet of Things</em></u> – Steve Teixeira</p>  <p>Steve is the Director of PM in the “Internet of Things” team at Microsoft. A solid session with some really interesting scenarios highlighted—which will make you think about Windows in quite a different way. </p>  <p>You can catch the session online here:</p>  <p><a title="https://channel9.msdn.com/Events/Build/2014/2-511" href="https://channel9.msdn.com/Events/Build/2014/2-511">https://channel9.msdn.com/Events/Build/2014/2-511</a>&#160;</p>  <p><u><em>Azure Media Services: An Around-the-World Tour of Customer Case Studies</em></u> – Martin Wahl</p>  <p>Martin works in the Media Services team at Microsoft and outlined a number of great customer stories that are using Media. This is a big and growing area, so it was very cool to see the different applications taking shape from both a customer and partner perspective. </p>  <p>You can catch his online here:</p>  <p><a title="https://channel9.msdn.com/Events/Build/2014/2-611" href="https://channel9.msdn.com/Events/Build/2014/2-611">https://channel9.msdn.com/Events/Build/2014/2-611</a>&#160;</p>  <p><u><em>Take Your Solution Worldwide from the Start with Bing Translator</em></u> – Chris Wendt and Jan Nelson</p>  <p>Bing often feels like the “sleeper cell” of services—it’s incredibly powerful and is showing up in a number of places (such as the newly announced “Cortana”). What appealed to me about this session is the fact that we live in an increasingly global-from-the-start development philosophy, and multi-language support is key. Having spent some time in natural language years ago, this proposition is tough—language is nuanced with colloquialisms, dialectical utterances, and the like that make disambiguation challenging. Things have come a long way. Wendt and Nelson covered off on how to build rich client and web translators—through client libraries or rich services using the <a href="http://www.microsoft.com/en-us/translator/">Microsoft Translator</a> libraries and the <a href="http://www.bing.com/translator/">Bing Translator</a>, which you can try out live.</p>  <p>You can check out this session online here:</p>  <p><a title="https://channel9.msdn.com/Events/Build/2014/2-656" href="https://channel9.msdn.com/Events/Build/2014/2-656">https://channel9.msdn.com/Events/Build/2014/2-656</a></p>  <p><em><strong>Session Videos not yet posted…</strong></em></p>  <p><u><em>What’s New in IAAS for Developers</em></u> – Corey Sanders</p>  <p>If you were following the news and keynotes this week, there is <u>a ton of new Dev/Test</u> features built into the Azure Infrastructure Services. And Corey is a great and fun speaker. His session is not yet posted, but you can check the link below to get it.</p>  <p><a title="https://channel9.msdn.com/Events/Build/2014/3-614" href="https://channel9.msdn.com/Events/Build/2014/3-614">https://channel9.msdn.com/Events/Build/2014/3-614</a></p>  <p><u><em>Building End-to-End Video Experiences with Azure Media Services</em></u> - Mingfei Yan</p>  <p>Mingfei is a PM in the Media Services team at Microsoft and a rock-star speaker—always informative and entertaining. As of today, her session was not yet posted, but here is a link to where you can go and check to download it. </p>  <p><a title="https://channel9.msdn.com/Events/Build/2014/3-610" href="https://channel9.msdn.com/Events/Build/2014/3-610">https://channel9.msdn.com/Events/Build/2014/3-610</a></p>  <p><u><em>What’s New for Azure Developers in Visual Studio and Azure SDK</em></u> – Dan Fernandez and Paul Yuknewicz</p>  <p>Dan and Paul focused their attention on the 2.3 version of the SDK talking about a number of the new features such as tracing, logging, in-template subscription integration, deeper views/property setting in the Server Explorer view, and much, much more. You can download the SDK 2.3 from <a href="http://azure.microsoft.com/en-us/downloads/">http://azure.microsoft.com/en-us/downloads/</a>. Dan and Paul are always fun and entertaining to watch, and while at the time of writing their session was not posted, you can find it here:</p>  <p><a title="https://channel9.msdn.com/Events/Build/2014/2-585" href="https://channel9.msdn.com/Events/Build/2014/2-585">https://channel9.msdn.com/Events/Build/2014/2-585</a></p>  <p>Well, I have a few more that I’m working through so will post on those in Part 2 of this post.</p>  <p>In the mean-time, for those that attended this year’s BUILD, I hope you enjoyed it as much as I did. I also hope you walked away as invigorated as much as those I had the opportunity to talk with throughout the week. </p>  <p>Cheers,</p>  <p>Steve</p>]]></content:encoded>
    </item>
    <item>
      <title>BUILD Day 2: Keynote Summary</title>
      <link>https://docs.microsoft.com/archive/blogs/steve_fox/build-day-2-keynote-summary</link>
      <pubDate>Thu, 03 Apr 2014 11:42:35 GMT</pubDate>
      <dc:creator><![CDATA[Steve - Azure]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/steve_fox/2014/04/03/build-day-2-keynote-summary/</guid>
      <description><![CDATA[Day 1 was great. Lots of amazing sessions (many of them filled up very quickly so you had to be...]]></description>
      <content:encoded><![CDATA[<p>Day 1 was great. Lots of amazing sessions (many of them filled up very quickly so you had to be quick to get into them). I took a few in (ranging from Azure services to Bing Translator services in your modern Apps) and will create a separate blog entry to call out a few details that I found interesting this week as a general session “round-up.”</p>  <p>Now that we’re here in Day 2, I’m eagerly awaiting the beginning of the Day 2 Keynote. If yesterday was any indication of what’s to come, today should be another great keynote. Alright, here we go!!!</p>  <p>Scott Guthrie opened the platform emphasizing the “Cloud and Mobile” first approach. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/4478.image_37F69F11.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4478.image_5F00_37F69F11.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0513.image_thumb_532EF812.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0513.image_5F00_thumb_5F00_532EF812.png" width="597" height="304" /></a> </p>  <p>He also mentioned that there 44 new announcements with Services that are being announced for Azure today! (I’ve tried to capture most of them here.) He also mentioned that we’ve opened up major data centers in Shanghai and Beijing, which are now GA. Some key stats from Microsoft Azure that Scott walked through are represented in the following slide:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7065.image_0E825DD1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7065.image_5F00_0E825DD1.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3362.image_thumb_30D9F34A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3362.image_5F00_thumb_5F00_30D9F34A.png" width="598" height="334" /></a> </p>  <p>Impressive!</p>  <p>Scott showed a video of TitanFall that outlined how it uses Azure and how the server-powered gaming experience heavily leverages Azure. They had more than <em>100,000</em> virtual machines that were deployed on launch day. He also mentioned the Sochi Olympics, and how Azure delivered content and media throughout the major games. And my favorite sport, hockey, marked a Cloud-streaming record where there were record-number people watching the US vs. Canada hockey match. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3771.image_0C4865C6.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3771.image_5F00_0C4865C6.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3113.image_thumb_2B8B0C99.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3113.image_5F00_thumb_5F00_2B8B0C99.png" width="597" height="331" /></a> </p>  <p>Scott then brought Rick Cordella from NBC on-stage to talk about the experience of using Azure. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5488.image_46C3659A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5488.image_5F00_46C3659A.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7360.image_thumb_1D4F245A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7360.image_5F00_thumb_5F00_1D4F245A.png" width="598" height="334" /></a> </p>  <p>Rick mentioned that NBC took a $1B bet on Azure with the Olympics. “Azure played a critical role in this happening.” </p>  <p>Scott then dived into the specifics of what works with Azure. Some enhancements Scott walked through:</p>  <ul>   <li>Azure enables Windows and Linux, and now you can create, manage and debug VMs from within VS 2013.</li>    <li>Azure now has support for capturing images, such that you can replicate the images fast and easy.</li>    <li>Easily configure Azure through Puppet, Chef and PowerShell. </li> </ul>  <p>Mark Russinovich then came on to do a few demos, including creating VMs from within Visual Studio, debugging the VM (very cool because this means you can debug remotely into the app running on the VM using an Azure agent running on the remote machine), PowerShell management of VMs, and Puppet integrator (Puppet Labs now has an image inside the gallery). </p>  <p>Mark also invited Luke Kanies on stage from Puppet Labs to talk through and show how Puppet Enterprise works. He showed dynamically updating the Task Manager in a remote machine through the Puppet Enterprise console—a very easy update. </p>  <p>Mark then invited Daniel Spurling from Getty Images on stage to discuss how they’re using Azure, emphasizing the fact that they want their images/videos to be available to the world in real-time using Azure. Daniel emphasize the need for massive scale and storage required for Getty and Azure. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0363.image_6674D013.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0363.image_5F00_6674D013.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7318.image_thumb_7A8DEC9C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7318.image_5F00_thumb_5F00_7A8DEC9C.png" width="600" height="338" /></a> </p>  <p>Scott then came back on stage to summarize the IAAS Services and make some new announcements. See the slide below.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2548.image_75AB38E0.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2548.image_5F00_75AB38E0.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2860.image_thumb_381DDB17.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2860.image_5F00_thumb_5F00_381DDB17.png" width="599" height="306" /></a> </p>  <p>He then segued into a discussion on PAAS, reinforcing the efficiencies and productivity of the platform. He then discussed the Azure Web Sites functionality. He talked about some of the efficiency gains through “swaps” when balancing staging versus production, as well as covering off on a number of other cool new features in Web Sites such as cross-language and platform support—shown in the slide below. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5618.image_1EB5D7DD.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5618.image_5F00_1EB5D7DD.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0250.image_thumb_28119D11.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0250.image_5F00_thumb_5F00_28119D11.png" width="597" height="336" /></a> </p>  <p>An aside: Azure Web Sites is awesome. I’ve used it in a number of ways, from new to migrated web sites to integration with SharePoint apps. The direct integration with the developer story is second-to-none, scalability, App insights, and many of the other built-in features, this PAAS choice from the within the Azure platform makes it one of many significant competitive differentiators for Azure. </p>  <p>Scott then invited Mads Kristensen on stage to walk through a few of the features that Scott discussed at a higher level. Specifically, he walked through the new ASP.NET templates emphasizing the creation of the DB layer and then showing PowerShell integration to manage your web site. He then showed Angular integration with Azure Web sites, emphasizing easy and dynamic ways to update your site showing&#160; deep browser and Visual Studio integration (Browser Link), showing updates that are made in the browser show up in the code in Visual Studio. Very cool!! </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7215.image_0E3D66E2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7215.image_5F00_0E3D66E2.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6131.image_thumb_65355896.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6131.image_5F00_thumb_5F00_65355896.png" width="600" height="335" /></a> </p>  <p>He also showed how you can manage staging and production sites by using the “swap” functionality built into the Azure Web sites service. He also showed Web Jobs to show how you can also run background jobs and Traffic Manager functionality to ensure your customers have the best performing web site in their regions.</p>  <p>Scott then came back out and made some announcements, as per the slide below:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8713.image_64C925A1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8713.image_5F00_64C925A1.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0724.image_thumb_4037981D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0724.image_5F00_thumb_5F00_4037981D.png" width="598" height="306" /></a> </p>  <p>He also talked about a new cert/SSL offer (that provides 1 free cert) within Web site and then segued into talking about the mobile space, specifically talking to Azure Mobile Services, emphasizing the Active Directory integration with Mobile Services—which is great because this allows you to build enterprise-grade mobile applications that target multiple platforms in a very easy way!</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8233.image_3BC11756.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8233.image_5F00_3BC11756.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1715.image_thumb_4207EDE4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1715.image_5F00_thumb_5F00_4207EDE4.png" width="605" height="333" /></a> </p>  <p>Yavor Georgiev then came on stage to walk through a Mobile Services demo. He showed off a new Mobile Services Visual Studio template, test pages with API docs, local and remote debugging capabilities, and a LOB app that enables Facilities departments to manage service requests—this showed off a lot of the core ASP.NET/MVC features along with a quick publish service to your Mobile Services service in Azure. Through this app, he showed how to use Active Directory to build the app—which prompts you to log into the app with your corp/AD credentials to use the app. He then showed how the app integrates with SharePoint/O365 such that the request leverages the SharePoint REST APIs to publish a doc to a Facilities doc repository. He also showed how you can re-use the core code through Xamarin to repurpose the code for iOS.</p>  <p>The app is shown here native in Visual Studio.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3487.image_4B63B318.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3487.image_5F00_4B63B318.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/4466.image_thumb_63F35068.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4466.image_5F00_thumb_5F00_63F35068.png" width="605" height="338" /></a> </p>  <p>This app view is the cross-platform build using Xamarin. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1754.image_5F109CAC.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1754.image_5F00_5F109CAC.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1682.image_thumb_08876E9E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1682.image_5F00_thumb_5F00_08876E9E.png" width="604" height="342" /></a> </p>  <p><u>Kudos to Yavor!</u> This was an awesome demo that showcases how far Mobile Services has come in a short period of time—love the extensibility and the cross-platform capabilities. Very nice!</p>  <p>Scott came back on after Yavor emphasizing the importance of Active Directory, walking through some of the key features of Active Directory such as Sync and broader app integration.</p>  <p>He then invited Grant Peterson from DocuSign on stage to discuss how they are using Azure, who demoed AD integration with DocuSign’s iOS app. Nice!</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0624.image_4A8DDDDF.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0624.image_5F00_4A8DDDDF.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6320.image_thumb_70EFC12A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6320.image_5F00_thumb_5F00_70EFC12A.png" width="603" height="339" /></a> </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8562.image_3A156CE4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8562.image_5F00_3A156CE4.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7433.image_thumb_7568D2A2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7433.image_5F00_thumb_5F00_7568D2A2.png" width="602" height="336" /></a> </p>  <p>This is really huge for those of you building apps that are cross-platform but have big investments in AD and also provides you as developers a way to reach enterprise audiences. </p>  <p>Scott then came back to discuss some of the new announcements for Mobile, as per the slide below.&#160; </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/4718.image_4298CC2E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4718.image_5F00_4298CC2E.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0842.image_thumb_44D554EA.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0842.image_5F00_thumb_5F00_44D554EA.png" width="603" height="308" /></a> </p>  <p>Scott then turned to discussing data, noting that there are 1M+ SQL Databases being used and a 500GB increase for SQL Database and that you now have automatic back-ups built into the SQL Database service (this is a built-in feature). He also discussed Active Geo-Replication, such that the DBs can be set up to asynchronously replicate across regions. He also made a number of announcements, which are listed as follows:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8054.image_4711DDA6.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8054.image_5F00_4711DDA6.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0385.image_thumb_2D3DA777.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0385.image_5F00_thumb_5F00_2D3DA777.png" width="615" height="314" /></a> </p>  <p>Scott then moved into discussing the tools, emphasizing language, and invited Anders Hejlsberg to discuss project “Roslyn.” Anders announced an end-user preview for Roslyn and demoed some efficiencies gained through this preview at the programming language level. He also announced that they are open-sourcing the entire Roslyn project (which you’ll find on <a href="http://roslynrefactor.codeplex.com/">Codeplex</a>). Anders published the Roslyn project live to Codeplex! </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3515.image_28C726B0.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3515.image_5F00_28C726B0.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1563.image_thumb_6F4416B8.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1563.image_5F00_thumb_5F00_6F4416B8.png" width="617" height="347" /></a> </p>  <p>Anders walked through using the new “Roslyn” preview to build a new version of VS that accepted new language features (support for French quotes). Very, very cool!</p>  <p>Miguel de Icaza then came on stage to demo building an iOS app using Anders new language model. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2860.image_03C96637.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2860.image_5F00_03C96637.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7367.image_thumb_540E4E68.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7367.image_5F00_thumb_5F00_540E4E68.png" width="618" height="350" /></a> </p>  <p>Scott then came back on stage and then talked about tooling and support for Open Source, specifically talking about the .NET Founding contributions. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/4062.image_1614BDAA.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4062.image_5F00_1614BDAA.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6644.image_thumb_1C5B9438.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6644.image_5F00_thumb_5F00_1C5B9438.png" width="616" height="344" /></a> </p>  <p>Bill Staples then came on stage to show off the new Azure portal design and features. Bill walked through a number of the new innovations in the portal, such as improved UX, app insights, “blade” views, etc. A screen shot of the new portal is shown below.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7536.image_25B7596C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7536.image_5F00_25B7596C.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5008.image_thumb_1A219C2D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5008.image_5F00_thumb_5F00_1A219C2D.png" width="618" height="348" /></a> </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7242.image_609E8C35.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7242.image_5F00_609E8C35.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6507.image_thumb_07006F81.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6507.image_5F00_thumb_5F00_07006F81.png" width="620" height="346" /></a> </p>  <p>Bill also walked through the comprehensive analytics (such as compute and billing) that are now available on the portal. He also walked through “Application Insights,” which is a great way to instrument your code in both the portal and in your code with easy-to-use, pre-defined code snippets. He completed his demo walkthrough by showing the Azure portal as a “NOC” view on a big-screen TV.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3718.image_093CF83D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3718.image_5F00_093CF83D.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6567.image_thumb_14691338.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6567.image_5F00_thumb_5F00_14691338.png" width="617" height="342" /></a> </p>  <p>Scott then came back on stage to reinforce the “transformative” nature of Azure and then introduced Steve (“Guggs”) Guggenheimer. He discussed partner and developer ecosystems and conversations, emphasizing three key conversations:</p>  <ol>   <li>Support existing technology investments</li>    <li>Cloud and mobile development</li>    <li>Maximize business opportunities across platforms</li> </ol>  <p>He then invited John Shewchuk on stage to walk through a demo, which illustrates a transformation from a WPF app into a more modern app—moving the WPF app into a data-layer that sits in the Cloud and an identity layer that leverages Cloud-based Active Directory. John also showed an older WinForm app into a more modern MVVM app, with C# running on the server and the UI living as HTML5. Guggs also showed the same app on a device as well. </p>  <p>Steve then discussed the area of “Internet of things” where he addressed devices without UI—specifically talking about Windows Embedded and carrying this forward. </p>  <p>Steve and John then also talked about Surface devices in the cockpit, where 700 pilots are now using Surface Pros. They walked through Jeppesen Flight Deck Pro on the device to show how pilots would use the Surface Pro. They then discussed AutoDesk and FlipBoard as other examples of apps that either are using services that may be deployed to the Cloud or have been modernized for the Windows and mobile experience—showing the performance of FlipBoard on a Nokia 520 device. John also walked through migration of a FourSquare app to evolve the tile display using a geofence configuration in the code. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3757.image_3ACAF683.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3757.image_5F00_3ACAF683.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7571.image_thumb_0F1A2C87.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7571.image_5F00_thumb_5F00_0F1A2C87.png" width="631" height="355" /></a> </p>  <p>Guggs also walked through a SenSoria demo to showcase how fitness integrates with Cloud. A couple of screen-shots from Guggs walking around stage—where the app prompted to move more quickly to hit a more optimal fitness/calorie-burn rate.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1538.image_713BA885.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1538.image_5F00_713BA885.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6443.image_thumb_65A5EB46.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6443.image_5F00_thumb_5F00_65A5EB46.png" width="635" height="360" /></a> </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7838.image_35EAD378.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7838.image_5F00_35EAD378.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0523.image_thumb_31081FBC.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0523.image_5F00_thumb_5F00_31081FBC.png" width="634" height="359" /></a> </p>  <p>Guggs also showed a video from Vespor, who leverage Azure as a back-end service for their note-taking iOS app, and another video showcasing Gobbler, a tool (or communications layer) for artists that helps manage project files and storage. </p>  <p>Guggs then showed how the Cloud optimizes gaming with enhanced performance. They also showed how you can use JavaScript (through Babylon) to very easily extend and show enhanced Virtual Reality. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1018.image_374EF64A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1018.image_5F00_374EF64A.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6327.image_thumb_6778D1BE.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6327.image_5F00_thumb_5F00_6778D1BE.png" width="631" height="355" /></a> </p>  <p>The last area Guggs focused on was cross-platform for maximum mobile reach. The showed off a partner called GoPro and Java integration and support on Azure (through some minimal configuration)—see below.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3124.image_26D6854F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3124.image_5F00_26D6854F.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1586.image_thumb_04818087.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1586.image_5F00_thumb_5F00_04818087.png" width="635" height="352" /></a> </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8741.image_4AFE708F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8741.image_5F00_4AFE708F.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1401.image_thumb_2D8C1F83.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1401.image_5F00_thumb_5F00_2D8C1F83.png" width="633" height="153" /></a> </p>  <p>They also discussed Accela, where they showed integrated services that bring different information sources into one view with a common identity layer across the app. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8666.image_1F4DA693.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8666.image_5F00_1F4DA693.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3007.image_thumb_76459847.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3007.image_5F00_thumb_5F00_76459847.png" width="629" height="354" /></a> </p>  <p>They also showed how you can use tooling to take a web site and create a Mobile app, using a URL to migrate a web site and then using “offline” mode that caches the site for offline use in the Mobile app. Very cool. </p>  <p>Guggs then took the sports app from the Day 1 keynote using Xamarin, which they showed on a Surface, Android and iPAD. They reinforced all of the different non-MSFT SDKs that are available to developers. </p>  <p>All-in-all, there was a lot that was shown in the Day 2 keynote; lots of Cloud advancements, app migration/modernization, and cross-mobile discussions with a good bunch of partner call-outs. </p>  <p>I have to say these two keynotes have been really significant. The charge was “Cloud and Mobile,” and all of the demos/areas discussed leaved up to the playbill. From these two days, you can see the importance of Windows (and all of the permutations where we’ll find it) and the dedicated tooling and language support that enable cross-platform, -language and –device support. </p>  <p>Overall, really exciting stuff!</p>  <p><strong>Summary of Key Announcements</strong></p>  <p>A round-up of some of the key announcements I heard today were as follows:</p>  <ul>   <li>GA of Azure in Beijing and Shanghai</li>    <li>Capture/deploy of VM</li>    <li>Puppet and Chef Support</li>    <li>GA of Auto-scale service</li>    <li>Create/Manage VMs from within VS</li>    <li>Integrated remote debugging</li>    <li>Virtual Network Point-to-Site VPN, Dynamics routing, subnet migration and static internal IP</li>    <li>New Azure Management portal preview (live today)</li>    <li>Integration of Visual Studio Online into Azure for seamless experience</li>    <li>Azure Web sites Autoscale, Traffic Manager support, Webjobs, Backup, and Java support</li>    <li>.NET Updates that include MVC 5.1, Web API 2.1, Identity 2.0, and Webpages 3.1</li>    <li>Visual Studio Tooling such as New Project integration, PowerShell automation, Node.js Project support</li>    <li>GA for CDN</li>    <li>Mobile Services, including .NET back-end support, SSO and AD support, Offline Data sync, Visual Studio tooling, and Remote Debugging</li>    <li>Azure AD, including iOS and Android SDK, Office 365 API integration and Azure AD Premium</li>    <li>Notification Hub, including Mobile Services integration, Kindle support, and VS tooling</li>    <li>SQL Database, including SQL DBs up to 500GB, 99.9% SLA, Self-service recovery, Active geo-replication</li>    <li>HDInsight, including Hadoop 2.2, .NET 4.5 support, Audit and Operation history, Hive query enhancements, and VARN support</li>    <li>Storage, icnluding read-access geo-redundance storage </li>    <li>GA of Visual Studio Online (in the preview and existing portal)</li>    <li>Azure Resource Manager preview</li>    <li>AppStudio tool for packaging apps for store</li> </ul>  <p>Lots here, so enjoy!</p>  <p>Steve</p>]]></content:encoded>
    </item>
    <item>
      <title>BUILD: Day 1 Keynote Summary</title>
      <link>https://docs.microsoft.com/archive/blogs/steve_fox/build-day-1-keynote-summary</link>
      <pubDate>Wed, 02 Apr 2014 11:35:04 GMT</pubDate>
      <dc:creator><![CDATA[Steve - Azure]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/steve_fox/2014/04/02/build-day-1-keynote-summary/</guid>
      <description><![CDATA[Coffee in hand, cool air and a zeal in my step, I made my way to BUILD this morning, and now here...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1134.image_07CC6887.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1134.image_5F00_07CC6887.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6761.image_thumb_6BF3EEA2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6761.image_5F00_thumb_5F00_6BF3EEA2.png" width="1289" height="354" /></a> </p>  <p>Coffee in hand, cool air and a zeal in my step, I made my way to BUILD this morning, and now here we are. In San Francisco, at the <a href="http://www.moscone.com/site/do/index">Moscone Center</a>, at BUILD. It’s Day 1, and the energy is palpable. I’m even a bit nostalgic seeing old friends and colleagues in the Convention Center hallways and thinking about the new friends I’ll make this week. But now it’s time for the keynote to begin…so let’s sit back and let the show begin!</p>  <p>Terry Myerson opened the keynote with emphasizing that Microsoft is about developers and all about “making your creativity come to life.” He emphasized that using public translation APIs, all that will be presented across the world to a multitude of audiences and in a number of languages. Through a great opening video, it noted that “1.5 Billion people use Windows every day!”</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0576.image_3EA7EBBD.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0576.image_5F00_3EA7EBBD.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8468.image_thumb_1EAB3161.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8468.image_5F00_thumb_5F00_1EAB3161.png" width="567" height="319" /></a> </p>  <p>Joe Belfiore then took the stage and stated that there are two key announcements that will happen today: Windows Phone 8.1 and Update for Windows 8.1. He also showed a couple of new phones: MicroMax and Prestigio. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7343.image_08CF9FE9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7343.image_5F00_08CF9FE9.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5483.image_thumb_46AB75BE.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5483.image_5F00_thumb_5F00_46AB75BE.png" width="568" height="317" /></a> </p>  <p>Joe stated that Windows Phone 8.1 is about “better expressing your personality and making you more efficient and productive.” He also showed a few demos including the new “Action Center”</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3426.image_1CCB0189.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3426.image_5F00_1CCB0189.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2376.image_thumb_50FF2ACF.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2376.image_5F00_thumb_5F00_50FF2ACF.png" width="565" height="318" /></a> </p>  <p>He also showed some new features around the “Lock screen” that come with a set of APIs developers can use to exert deeper levels of control over the lock screen. He showed a number of interesting ways to change the lock screen such as vertically positioned images, specific themes, and so on. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6012.image_01290644.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6012.image_5F00_01290644.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2476.image_thumb_39D3B051.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2476.image_5F00_thumb_5F00_39D3B051.png" width="186" height="338" /></a> <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8267.image_1C615F45.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8267.image_5F00_1C615F45.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8508.image_thumb_1BF52C50.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8508.image_5F00_thumb_5F00_1BF52C50.png" width="186" height="338" /></a> </p>  <p>He also discussed how to customize the Start Screen, to more fully customize your own phone experience. Below you can see the Start Screen customized with your own image.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2335.image_699158D0.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2335.image_5F00_699158D0.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3326.image_thumb_44939857.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3326.image_5F00_thumb_5F00_44939857.png" width="210" height="395" /></a> </p>  <p>He also introduced “Cortana,” which is the personal digital assistant for Windows Phone 8.1. Cortana is powered by Bing, thus “absorbs” the Internet and is able to personalize the phone experience specifically for you. Cortana augments the search function on your phone. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1106.image_20020AD3.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1106.image_5F00_20020AD3.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7065.image_thumb_3BA696C9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7065.image_5F00_thumb_5F00_3BA696C9.png" width="520" height="290" /></a> </p>  <p>Joe walked through a number of things that Cortana can do such as scheduling appointments, learning, do searches, understand the places you frequent, tracks your interests, setting alarms, understanding personal and business calendars, etc. Cortana can also be extended through 3rd party apps. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6406.image_146C4D94.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6406.image_5F00_146C4D94.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5367.image_thumb_5D25C658.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5367.image_5F00_thumb_5F00_5D25C658.png" width="523" height="296" /></a> </p>  <p>The interesting thing about Cortana is that “she” learns about you the more you use your phone—the ultimate in personalization. One core feature of Cortana is a notebook that the assistant uses to manage information, suggestions, and other data about you. Joe walked through a number of demo scenarios from booking restaurant reservations, checking out sports scores, making personal appointments (and resolving conflicts across personal and business appointments), helping with dietary choices, etc. All of these demos were enabled through speech technology—i.e. Joe asking Cortana questions and interacting with the personal assistant in a speech-enabled way. He also showed textual interaction as well. Very cool stuff! </p>  <p>Joe also brought Nick Heddermen on stage to discuss Windows Phone in the context of business. Nick walked through a number of business scenarios using the phone. For example, he demoed “enterprise VPN” connectivity on the phone—so you’re able to connect to “behind-the-firewall” resources directly from your phone in a secure way! He also showed SMIME on the phone to digitally sign mail. He also showed how you can disable specific apps and information from being saved to the phone to optimize use and security on the phone. </p>  <p>Joe then walked through a range of features on Windows Phone 8.1, which are listed as following:</p>  <ul>   <li>Enhancements to the App Store experience; that is, making it easier for you to find the app that you need and providing personalized suggestions for users that include quick links.</li>    <li>New Calendar, which makes swiping/navigating views easier, quick-view on weather, “at-a-glance” views of your week, all using a public API so all 3rd party developers can easily implement and update in similar ways.</li>    <li>New Sense app for Wi-Fi (called Wi-Fi Sense), which helps you take advantage of Wi-Fi resources and automatically sign you into Wi-Fi without the need for user intervention. This is both for public networks and for home networks—where you can share your home network securely without giving access to all of your home network through giving out you password.</li>    <li>Elevated Communications, where you can move from a normal phone call to a Skype call.</li>    <li>Enhancements to Word-Flow Keyboard,&#160; which makes typing much easier and quicker. </li> </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6874.image_1AB5B4D3.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6874.image_5F00_1AB5B4D3.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0435.image_thumb_43C053CF.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0435.image_5F00_thumb_5F00_43C053CF.png" width="230" height="421" /></a> </p>  <p>The enhancements to Word-Flow keyboard are record-breaking…literally!</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1033.image_10F04D5B.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1033.image_5F00_10F04D5B.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2133.image_thumb_19DFDF9A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2133.image_5F00_thumb_5F00_19DFDF9A.png" width="567" height="317" /></a> </p>  <p>Joe then switched to discuss Windows 8.1,and he demoed a few things:</p>  <ul>   <li>Boot to resume straight to desktop.</li>    <li>Shared “interests” across Bing and Cortana on Windows 8.1.</li>    <li>Enteprise-mode in IE 11, to show legacy compatibility and right-rendering with older web sites and apps.</li>    <li>Windows taskbar enhancements to work with Windows Store apps along with some UI enhancements for Windows Store apps (e.g. minimize functionality).</li>    <li>Number of other tiles and features added to the Start Screen to enable quick launch of Control Panel/Settings, Off, etc., and also the ability to manage your Start Screen view and move/resize tiles. </li>    <li>Store will also become more mouse and keyboard friendly.</li>    <li>Finding an app easier through search from the Start Screen, and new apps are now highlighted upon installation.</li> </ul>  <p>David Treadwell then came out to discuss the developer story. He focused on three areas:</p>  <ul>   <li>Accessing across PC, Phone and Browser.</li>    <li>Investments in your apps and code</li>    <li>Cross-platform capabilities</li> </ul>  <p>David introduced Universal Windows Apps, which brings the Windows run-time to the phone. This is huge because it enables you to design and build apps that projects across all form factors. As a developer, you do this in a common and predictable way—through the framework that you’ve come to understand, the tools you use on top of the Windows Runtime. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5125.image_3518389B.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5125.image_5F00_3518389B.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2072.image_thumb_2BBF0418.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2072.image_5F00_thumb_5F00_2BBF0418.png" width="606" height="318" /></a> </p>  <p>Kevin Gallo then showed an update to Visual Studio 2013 that enables you to build Windows Universal Apps, which introduces a number of templates and a “shared project” artifact that enables you, for example, to move Windows 8.1 apps to Windows Universal Apps. Kevin migrated a Sports-themed Windows 8.1 app to the Universal App and then opened this in the Windows Phone emulator. Below you can see the original app and then the “migrated” app in the emulator.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7776.image_723BF420.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7776.image_5F00_723BF420.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0842.image_thumb_26701D67.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0842.image_5F00_thumb_5F00_26701D67.png" width="611" height="339" /></a> </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2330.image_08919966.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2330.image_5F00_08919966.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6560.image_thumb_1D16E8E4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6560.image_5F00_thumb_5F00_1D16E8E4.png" width="607" height="335" /></a> </p>  <p>Kevin also showed a number of enhancements through Visual Studio such as logging, auditing the performance of the app, etc. Real nice debugging and diagnosing capabilities! He also showed how you can swap the views to see how XAML looks different on different form factors—as shown in the screenshots below.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/4540.image_4A9808A7.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4540.image_5F00_4A9808A7.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5025.image_thumb_1ADCF0D9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5025.image_5F00_thumb_5F00_1ADCF0D9.png" width="600" height="320" /></a> </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8267.image_0108BAAA.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8267.image_5F00_0108BAAA.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5468.image_thumb_6A497320.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5468.image_5F00_thumb_5F00_6A497320.png" width="599" height="297" /></a> </p>  <p>David then discussed how you can leverage the Universal apps once across multiple devices from the Store, so you have a more consistent app experience through submission, purchase and identity. </p>  <p>Kirk Koenigsbauer then came out to demo some of the advancements in Office within the context of “Universal Windows.” He discussed a number of areas including:</p>  <ul>   <li>Connecting the services experiences of O365 with native Office. </li>    <li>Maintaining and supporting the productivity experience when moving from Win32 to the Windows 8.1 platform.</li>    <li>Highlighted performance, fidelity of graphics and editing, and showcased the touch experience using galleries for formatting. </li>    <li>Unlimited “Un-do” and direct save to OneDrive.</li>    <li>Presentation mode in Windows, inclusive of “pinch and zoon” and editing and mark-up during presentation mode.</li> </ul>  <p>David then came back and discussed the “continuum” to ensure developers have maximum choice across the Windows platform and device ecosystem. A nice demo here was showing how you could then leverage older, legacy code and with some UI updates and wrapper code could re-purpose legacy database access layers from older Win32 to Windows 8.1. The screenshot of the app is below. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5383.image_10AB566C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5383.image_5F00_10AB566C.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0574.image_thumb_075221E9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0574.image_5F00_thumb_5F00_075221E9.png" width="631" height="347" /></a>&#160;</p>  <p>David then discussed the power of the web on all devices through HTML5 and IE 11. He mentioned a number of areas of support, including 3 key call-outs:</p>  <ul>   <li>Web GL</li>    <li>Cutting Edge Video Playback</li>    <li>Great Developer Tooling</li> </ul>  <p>The following slide shows a number of IE11 web platform enhancements (in bold):</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5775.image_52482369.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5775.image_5F00_52482369.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0458.image_thumb_0205CBE9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0458.image_5F00_thumb_5F00_0205CBE9.png" width="619" height="338" /></a> </p>  <p>Terry then came back out to discuss “roadmap areas” to close out the last hour of the keynote, and discussed a few things that are coming:</p>  <ul>   <li>Windows Universal Apps will work on XBox. Here you can see the Universal Windows App running on Windows 8.1, Xbox and Windows Phone 8.1.</li> </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5287.image_6D16DA26.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5287.image_5F00_6D16DA26.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8741.image_thumb_7123B8A9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8741.image_5F00_thumb_5F00_7123B8A9.png" width="618" height="350" /></a> </p>  <ul>   <li>Bringing Kinect to Windows, where he showed a few examples of how Kinect is being used on Windows. </li>    <li>Graphics on XBox, and then integrating DirectX graphics capability across platform through DirectX 12. This brings the high-quality graphics native to XBox to the PC/Tablet/Phone experience.</li> </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1488.image_1EA4D86D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1488.image_5F00_1EA4D86D.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2313.image_thumb_39DD316E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2313.image_5F00_thumb_5F00_39DD316E.png" width="619" height="348" /></a> </p>  <ul>   <li>Internet of Things, where he discussed small-scale chips that run “full” versions of Windows and showed a “device” that was connected to the cloud that collected and displayed data. </li>    <li>Start menu will be enriched in a forthcoming Windows 8.1 update.</li> </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7217.image_793AE4FE.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7217.image_5F00_793AE4FE.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6746.image_thumb_1B927A78.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6746.image_5F00_thumb_5F00_1B927A78.png" width="598" height="294" /></a> </p>  <ul>   <li>When the new Windows Internet of Things is available, it will be free. With Phones and Tablets, this new version of Windows will be free now. </li> </ul>  <p>Everybody at BUILD gets a new XBox One and a $500 gift-card to buy a new device at the MSFT store. Nice!!!</p>  <p>Terry then handed the stage over to Stephen Elop, who discussed the integration of the Nokia family with Microsoft. Here’s a line-up. (I have a 1520 and love it.)</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5584.image_56E5E036.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5584.image_5F00_56E5E036.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8737.image_thumb_2B35163A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8737.image_5F00_thumb_5F00_2B35163A.png" width="600" height="315" /></a> </p>  <p>Stephen walked through a couple of things:</p>  <ul>   <li>Nokia devices (and 1520 in particular) will come in more colors. </li>    <li>Release of the Nokia 930, with wireless charging, high “megapixelation” images/videos, 4 high-performance digital microphones for incredible cinematic experiences, improved filters, living images through the Storyteller app, etc.</li> </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8171.image_1475CEB1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8171.image_5F00_1475CEB1.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5025.image_thumb_2D056C01.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5025.image_5F00_thumb_5F00_2D056C01.png" width="593" height="326" /></a>&#160;</p>  <ul>   <li>Introduced the Lumia 630 and 635 (as a lower-priced option), including dual-sim and 3G. Note the image below shows the tiles at the top shown in two different colors, representing the different sims. Designed for hyper-social and gaming enthusiasts even at the more affordable price. First devices that will sell Windows 8.1, with hundreds of operators supporting this device.</li> </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/4314.image_4F5D017A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4314.image_5F00_4F5D017A.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6052.image_thumb_1C8CFB06.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6052.image_5F00_thumb_5F00_1C8CFB06.png" width="590" height="332" /></a> </p>  <ul>   <li>Discussed “SensorCore” where your device can act in much the same way other fitness devices act, so you get the data feed (e.g. your steps) along with the apps that you can use to analyze the data. This works hand-in-glove with the Bing Health app.</li>    <li>New imaging SDK 1.2 and SensorCore SDK</li> </ul>  <p>Satya Nadella closed the Day 1 keynote out by doing a wrap of the keynote topics and then taking some pre-recorded questions. He provided some great answers across a number of areas, in some cases reflecting on what the keynote speakers had discussed and in others introducing areas such as compete, natural user interface, natural language, Microsoft’s focus on tooling and Cloud evolution, improved consistency across APIs, cross-platform support, and of course the improvements in Windows across the board. Overall, a great close-out with the inclusion of various, and different, voices from the developer community. </p>  <p>All in all, a great Day 1 Keynote!</p>  <p><strong>Summary of Key Announcements</strong></p>  <p>A round-up of some of the key announcements I heard today were as follows:</p>  <ul>   <li>Windows Phone 8.1 (will start to ship late April)</li>    <li>Update for Windows 8.1 (coming April 8th or today on MSDN)</li>    <li>“Cortana” Personal Assistant (Beta)</li>    <li>Windows Universal Apps</li>    <li>WinJS as an Open Source project (available today)</li>    <li>VS 2013 Update 2RC (available today)</li>    <li>Windows Universal Apps running on XBox</li>    <li>Kinect V2 for Windows</li>    <li>“Internet of Things” version of Windows</li>    <li>Nokia 930 (selling globally starting in June)</li>    <li>Imaging SDK 1.2 and SensorCore SDK</li> </ul>  <p>Well, that’s it for the Day 1 keynote. And wow, there was a lot of stuff happening and some great giveaways today at BUILD! </p>  <p>I’ll continue to blog on the sessions tomorrow’s keynote and throughout the week as interesting information and learnings arise throughout the week.</p>  <p>Cheers,</p>  <p>Steve</p>]]></content:encoded>
    </item>
    <item>
      <title>Looking at BUILD Sessions</title>
      <link>https://docs.microsoft.com/archive/blogs/steve_fox/looking-at-build-sessions</link>
      <pubDate>Tue, 01 Apr 2014 08:07:30 GMT</pubDate>
      <dc:creator><![CDATA[Steve - Azure]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/steve_fox/2014/04/01/looking-at-build-sessions/</guid>
      <description><![CDATA[Well, it’s BUILD pre-day and getting ready for this week’s BUILD conference. For those of you...]]></description>
      <content:encoded><![CDATA[<p>Well, it’s BUILD pre-day and getting ready for this week’s BUILD conference. For those of you attending (or even for those of you who are looking to track what’s happening), there’s a cool app that you can get on your Windows phone (Ch9 Events), which you can download and then use to “heart” the sessions you want to attend. This creates a personalized agenda for the week for you. You can then have your personalized agenda with you anywhere you go. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2656.image_008B9CF4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2656.image_5F00_008B9CF4.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5383.image_thumb_60045D41.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5383.image_5F00_thumb_5F00_60045D41.png" width="156" height="295" /></a> </p>  <p>If you want to check out the week’s agenda, you can also go direct to the <a href="https://channel9.msdn.com/events/build/2014?wt.mc_id=build_hp">C9 site</a>, where you can sign in and add your sessions there as well. If you click the List tab, you can then see all of the sessions listed; you can then click the +My Schedule link to add the sessions to your schedule. You can also filter the view with tags, speakers, level, and so on along the right-hand side of the page. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3755.image_1BC3F5F5.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3755.image_5F00_1BC3F5F5.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3348.image_thumb_57175BB3.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3348.image_5F00_thumb_5F00_57175BB3.png" width="612" height="355" /></a> </p>  <p></p>  <p>At first glance of the agenda, there are some really interesting sessions at BUILD. I’m seeing a ton of Mobile and Cloud sessions, and particularly interesting are ones that cover the following areas:</p>  <ol>   <li>Azure Media Services</li>    <li>HDInsight</li>    <li>Cross-Platform Mobile Development with C#</li>    <li>XAML Futures</li>    <li>ASP.NET Futures</li>    <li>VS 2013 and VS Online</li>    <li>Internet of Things</li>    <li>Building apps with Bing</li> </ol>  <p>What’ll be interesting to see is how the above come together. With the increased focus on Mobile and Cloud (and more broadly Devices and Services), each of the above can be integrated in a number of ways to create Modern Apps.</p>  <p>And since C9 props most of the recordings post-conference, you’ll be able to catch a lot of the above at your own leisure—so nothing will be missed!</p>  <p>More to come!</p>  <p>Cheers,</p>  <p>Steve</p>]]></content:encoded>
    </item>
    <item>
      <title>Off to BUILD tomorrow…</title>
      <link>https://docs.microsoft.com/archive/blogs/steve_fox/off-to-build-tomorrow</link>
      <pubDate>Mon, 31 Mar 2014 18:50:52 GMT</pubDate>
      <dc:creator><![CDATA[Steve - Azure]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/steve_fox/2014/03/31/off-to-build-tomorrow/</guid>
      <description><![CDATA[Wow, it’s been a while since I posted anything, and with deep self-examination I’m now hell-bent on...]]></description>
      <content:encoded><![CDATA[<p>Wow, it’s been a while since I posted anything, and with deep self-examination I’m now hell-bent on blog reformation. It’s time to mend my incommunicado! Question is, what am I going to write about??</p>  <p>Well, since I’m heading down to <a href="http://www.buildwindows.com/">BUILD</a> tomorrow, I’m going to give you guys all of the juicy gossip, the news as it hits the keynote, and all of the exciting session details as I hear them. I’m going to take pictures, live-blog from sessions, and generally document the cool stuff that is happening at BUILD. </p>  <p>So, why should you care, you ask? This BUILD’s going to be great. And it’s <a href="http://visualstudiomagazine.com/articles/2014/01/16/build-2014-sold-out.aspx">SOLD OUT</a>!!! I couldn’t believe it; the conference sold out in a matter of a couple of days. While it’s unfortunate some of you won’t be there in person, the awesome thing is you’ll be able to catch many of the sessions online either during or after the conference. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7178.image_5D450623.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7178.image_5F00_5D450623.png"><img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5047.image_thumb_1D0EECA9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5047.image_5F00_thumb_5F00_1D0EECA9.png" width="728" height="328" /></a> </p>  <p>To check out the sessions, be sure to go <a href="https://channel9.msdn.com/events/build/2014?wt.mc_id=build_hp">here</a>. To watch sessions and the event activities live, go <a href="https://channel9.msdn.com/?wt.mc_id=build_hp">here</a>—or just go to the BUILD home page: <a title="http://www.buildwindows.com/" href="http://www.buildwindows.com/">http://www.buildwindows.com/</a>. </p>  <p>For those attending, I hope to see you there. For those watching from home, enjoy the show…it’s going to be great!</p>  <p>Steve</p>]]></content:encoded>
    </item>
    <item>
      <title>Building your First Provider-Hosted App for SharePoint – Part 2</title>
      <link>https://docs.microsoft.com/archive/blogs/steve_fox/building-your-first-provider-hosted-app-for-sharepoint-part-2</link>
      <pubDate>Fri, 22 Feb 2013 01:07:03 GMT</pubDate>
      <dc:creator><![CDATA[Steve - Azure]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/steve_fox/2013/02/22/building-your-first-provider-hosted-app-for-sharepoint-part-2/</guid>
      <description><![CDATA[If Part 1 of this blog series, I created a simple Provider-hosted app to SharePoint. The “Provider”...]]></description>
      <content:encoded><![CDATA[<p>If Part 1 of this blog series, I created a simple Provider-hosted app to SharePoint. The “Provider” part of the SharePoint app was Windows Azure. If you’d like to read more on this, check out Part 1 here: <a title="http://blogs.msdn.com/b/steve_fox/archive/2013/02/18/building-your-first-provider-hosted-app-for-sharepoint-using-windows-azure-part-1.aspx" href="http://blogs.msdn.com/b/steve_fox/archive/2013/02/18/building-your-first-provider-hosted-app-for-sharepoint-using-windows-azure-part-1.aspx">http://blogs.msdn.com/b/steve_fox/archive/2013/02/18/building-your-first-provider-hosted-app-for-sharepoint-using-windows-azure-part-1.aspx</a>. </p>  <p>In the second part, I wanted to add some code to flesh out the app to interact with SharePoint. In this blog, we’ll create a read event that uses a context and access token to interact with a SharePoint list. In essence, you’ll deploy a Provider-hosted app to Windows Azure, and then you’ll deploy the .APP to SharePoint.</p>  <p>So, let’s get started.</p>  <p>If you take the principles you learned in Part 1, you’ll do the same thing in this blog. So, let’s go ahead and create a new Provider-hosted app. To do this:</p>  <ul>   <li>Open Visual Studio 2012 </li>    <li>Click File, New Project </li>    <li>Select Office/SharePoint, Apps, and App for SharePoint 2013 </li>    <li>Provide a name for the project, and click OK. </li>    <li>Double-check the name of the project, the URL to your SharePoint site, and select Provider-hosted in the drop down list </li>    <li>Click Finish </li> </ul>  <p>All of the above should be review for you at this point—assuming you followed along with Part 1. The project comprises two parts: the APP, which contains the AppManifest.xml file (config file for SharePoint), and the Web file, which you’ll deploy to Windows Azure. You can see in the image below the different elements of each part of the project.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2678.image_77E9353A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2678.image_5F00_77E9353A.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/4426.image_thumb_5E813200.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4426.image_5F00_thumb_5F00_5E813200.png" width="446" height="381" /></a></p>  <p>I mentioned this in the first post, but will review in a little more detail here. When you create a new Provider-hosted app, you’ll see some code-spit by default. Without doing anything, you could hit F5 and your app would run and you’d see the title of your site appear at the top of the web page. The code below is the default code that is created when you create a new project. The two bolded lines use the new <em>TokenHelper</em> class, which contains a set of methods that enable you to manage requests for auth tokens in your app. The first bolded line retrieves a context token from the page request, and the second wraps the CSOM API with an auth token. It’s important to note that you can’t interact with SharePoint unless you have a context token, and you can’t access resources within SharePoint without an access token—and of course you need to set permissions within the AppManifest.xml file. Point being, you really need to be thinking more about the permissions and authorization within your app. </p>  <p>Note: There’s a great MSDN article on app authorization here: <a title="http://msdn.microsoft.com/en-us/library/office/apps/fp142384" href="http://msdn.microsoft.com/en-us/library/office/apps/fp142384">http://msdn.microsoft.com/en-us/library/office/apps/fp142384</a>. </p>  <p><font size="1" face="Courier New">&#160;&#160;&#160; …</font></p> <font size="1" face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160; protected void Page_Load(object sender, EventArgs e)    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <strong>var contextToken = TokenHelper.GetContextTokenFromRequest(Page.Request);      <br /></strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var hostWeb = Page.Request[&quot;SPHostUrl&quot;];</font>   <p><font size="1" face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <strong>using (var clientContext = TokenHelper.GetClientContextWithContextToken(hostWeb, contextToken, Request.Url.Authority))        <br /></strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; clientContext.Load(clientContext.Web, web =&gt; web.Title);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; clientContext.ExecuteQuery();       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Response.Write(clientContext.Web.Title);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</font></p>  <p><font size="1" face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</font></p>  <p><font size="1" face="Courier New">&#160;&#160;&#160; …</font></p>  <p>Let’s go ahead and make some changes to the default code-spit to make this app a tiny bit more interesting.</p>  <p>In the spirit of keeping things simple for illustration, right-click Default.aspx and select View Designer. Drag a GridView object onto the Designer surface. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1777.image_08ED631E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1777.image_5F00_08ED631E.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6866.image_thumb_01CE26A6.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6866.image_5F00_thumb_5F00_01CE26A6.png" width="368" height="257" /></a></p>  <p>If you click the Source tab, you should see something similar to the bolded code below:</p>  <p><font size="1" face="Courier New">…</font></p>  <p><font size="1" face="Courier New">&lt;html xmlns=&quot;</font><a href="http://www.w3.org/1999/xhtml&quot;"><font size="1" face="Courier New">http://www.w3.org/1999/xhtml&quot;</font></a><font size="1" face="Courier New">&gt;      <br />&lt;head runat=&quot;server&quot;&gt;       <br />&#160;&#160;&#160; &lt;title&gt;&lt;/title&gt;       <br />&lt;/head&gt;       <br />&lt;body&gt;       <br />&#160;&#160;&#160; &lt;form id=&quot;form1&quot; runat=&quot;server&quot;&gt;       <br />&#160;&#160;&#160; &lt;div&gt;       <br /><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;asp:GridView ID=&quot;grdviewSPData&quot; runat=&quot;server&quot;&gt;&lt;/asp:GridView&gt;</strong>       <br />&#160;&#160;&#160; &lt;/div&gt;       <br />&#160;&#160;&#160; &lt;/form&gt;       <br />&lt;/body&gt;       <br />&lt;/html&gt;</font></p>  <p>Double-click the Default.aspx.cs file and then replace the default code discussed above with the code below. You can again see the TokenHelper class here being leveraged to set the context for the app and then getting an access token to interact with SharePoint resources. Key to the use of the access token is the fact that it is passed in the <em>ReadListItem</em> method and then used to set auth properties on the <em>request</em> object. You may recognize the code inside the <em>ReadListItem</em> method, which I ‘borrowed’ from one of the SDK samples. </p>  <p>What’s important to note here is that any time you have an event or object that triggers an event, you must have an access token attached to it so it can interact with the SharePoint resources—e.g. read or write to a list. Also, you should note that there are different ways in which you can manage the context token—e.g. through the page request, page or session cache, accessing the headers, or through a response.redirect call: </p>  <p><font size="1" face="Courier New">Response.Redirect(TokenHelper.GetAppContextTokenRequestUrl(sharePointUrl, Server.UrlEncode(Request.Url.ToString()))); </font></p>  <p>There are a good set of tips and tricks for developers around auth, which you can find here: <a title="http://msdn.microsoft.com/en-us/library/office/apps/fp179932" href="http://msdn.microsoft.com/en-us/library/office/apps/fp179932">http://msdn.microsoft.com/en-us/library/office/apps/fp179932</a>. </p>  <p>Getting back to the code, the below in essence gets the appropriate context tokens with SharePoint, gets the access tokens, and then uses the access tokens to read a default list within SharePoint. </p>  <p><font size="1" face="Courier New">using Microsoft.SharePoint.Client;      <br />using System;       <br />using System.Collections.Generic;       <br />using System.Linq;       <br />using System.Net;       <br />using System.Web;       <br />using System.Web.UI;       <br /><strong>using System.Web.UI.WebControls;        <br />using System.Xml.Linq;</strong></font></p>  <p><font size="1" face="Courier New">namespace Test_Provider_Hosted_App_2_20_2013Web.Pages      <br />{       <br />&#160;&#160;&#160; public partial class Default : System.Web.UI.Page       <br />&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; protected void Page_Load(object sender, EventArgs e)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <strong>var contextToken = TokenHelper.GetContextTokenFromRequest(Page.Request);</strong></font></p>  <p><font size="1" face="Courier New"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SharePointContextToken spContextToken = TokenHelper.ReadAndValidateContextToken(contextToken, Request.Url.Authority);</strong></font></p>  <p><font size="1" face="Courier New"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var appWeb = new Uri(Page.Request[&quot;SPAppWebUrl&quot;]);</strong></font></p>  <p><font size="1" face="Courier New"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; string myAccessToken = TokenHelper.GetAccessToken(spContextToken, appWeb.Authority).AccessToken;</strong></font></p>  <p><font size="1" face="Courier New"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ReadListItems(appWeb.ToString(), myAccessToken);&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</strong></font></p>  <p><font size="1" face="Courier New"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160; private void ReadListItems(string webUrl, string myAccessToken)        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; string oDataUrl = &quot;/_api/Web/lists/getbytitle('Composed Looks')/items?$select=Title,AuthorId,Name&quot;;</strong></font></p>  <p><font size="1" face="Courier New"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(webUrl.ToString() + oDataUrl);        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; request.Method = &quot;GET&quot;;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; request.Accept = &quot;application/atom+xml&quot;;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; request.ContentType = &quot;application/atom+xml;type=entry&quot;;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; request.Headers.Add(&quot;Authorization&quot;, &quot;Bearer &quot; + myAccessToken);         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; HttpWebResponse response = (HttpWebResponse)request.GetResponse();</strong></font></p>  <p><font size="1" face="Courier New"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; XDocument oDataXML = XDocument.Load(response.GetResponseStream(), LoadOptions.None);        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; XNamespace atom = &quot;</strong></font><a href="http://www.w3.org/2005/Atom&quot;;"><font size="1" face="Courier New"><strong>http://www.w3.org/2005/Atom&quot;;</strong></font></a>     <br /><font size="1" face="Courier New"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; XNamespace d = &quot;</strong></font><a href="http://schemas.microsoft.com/ado/2007/08/dataservices&quot;;"><font size="1" face="Courier New"><strong>http://schemas.microsoft.com/ado/2007/08/dataservices&quot;;</strong></font></a>     <br /><font size="1" face="Courier New"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; XNamespace m = &quot;</strong></font><a href="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata&quot;;"><font size="1" face="Courier New"><strong>http://schemas.microsoft.com/ado/2007/08/dataservices/metadata&quot;;</strong></font></a></p>  <p><font size="1" face="Courier New"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; List&lt;XElement&gt; entries = oDataXML.Descendants(atom + &quot;entry&quot;)        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .Elements(atom + &quot;content&quot;)         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .Elements(m + &quot;properties&quot;)         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .ToList();</strong></font></p>  <p><font size="1" face="Courier New"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var entryFieldValues = from entry in entries        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; select new         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Title = entry.Element(d + &quot;Title&quot;).Value,         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; AuthorId = entry.Element(d + &quot;AuthorId&quot;).Value,         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Name = entry.Element(d + &quot;Name&quot;).Value         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; };</strong></font></p>  <p><font size="1" face="Courier New"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; grdviewSPData.DataSource = entryFieldValues;        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; grdviewSPData.DataBind();         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</strong></font></p>  <p><font size="1" face="Courier New">&#160;&#160;&#160; }      <br />}</font></p>  <p>At this point, you can hit F5 and debug, and your code should execute just fine. As you can see from the below, you’re running the SharePoint app in localhost, so you should have no trust issues with your app. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8117.image_08813029.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8117.image_5F00_08813029.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6557.image_thumb_6146E6F3.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6557.image_5F00_thumb_5F00_6146E6F3.png" width="471" height="543" /></a></p>  <p>If you copy and paste the URL of your app into Notepad, you’ll see something similar to the below:</p>  <p><a title="https://localhost:44303/Pages/Default.aspx?SPHostUrl=https%3A%2F%2Fspcdemo2013%2Esharepoint%2Ecom%2Fsites%2Fspc&amp;SPLanguage=en%2DUS&amp;SPClientTag=0&amp;SPProductNumber=15%2E0%2E4454%2E1011&amp;SPAppWebUrl=https%3A%2F%2Fspcdemo2013%2Db802311f297b7f%2Esharepoint%2Ecom%2Fsites%2Fspc%2FTest%5FProvider%5FHosted%5FApp%5F2%5F20%5F2013" href="https://localhost:44303/Pages/Default.aspx?SPHostUrl=https%3A%2F%2Fmydemosite2013%2Esharepoint%2Ecom%2Fsites%2Fspc&amp;SPLanguage=en%2DUS&amp;SPClientTag=0&amp;SPProductNumber=15%2E0%2E4454%2E1011&amp;SPAppWebUrl=https%3A%2F%2Fspcdemo2013%2Db802311f297b7f%2Esharepoint%2Ecom%2Fsites%2Fspc%2FTest%5FProvider%5FHosted%5FApp%5F2%5F20%5F2013">https://localhost:44303/Pages/Default.aspx?SPHostUrl=https%3A%2F%2Fmydemosite2013%2Esharepoint%2Ecom%2Fsites%2Fspc&amp;SPLanguage=en%2DUS&amp;SPClientTag=0&amp;SPProductNumber=15%2E0%2E4454%2E1011&amp;SPAppWebUrl=https%3A%2F%2Fspcdemo2013%2Db802311f297b7f%2Esharepoint%2Ecom%2Fsites%2Fspc%2FTest%5FProvider%5FHosted%5FApp%5F2%5F20%5F2013</a></p>  <p>It’s not just about making sure the auth is managed in your code; remember that you also need to create a ClientID and ClientSecret and add to your project files. Specifically, as you did in Part 1, make sure you create a new ClientID and ClientSecret and then add those to the AppManifest.xml and Web.Config files.</p>  <p>Now, you can go ahead and follow the same pattern as in Part 1 and create a new Azure Web site, to which you will deploy the Web project. To do this:</p>  <ul>   <li>Navigate to your Windows Azure portal </li>    <li>Click Web Sites </li>    <li>Click New </li>    <li>Select Compute, Web Site, Quick Create, provide a URL, and then select the region in which you want to deploy the site </li>    <li>Click Create Web Site </li> </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2843.image_47DEE3B9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2843.image_5F00_47DEE3B9.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2350.image_thumb_5544F6BF.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2350.image_5F00_thumb_5F00_5544F6BF.png" width="953" height="410" /></a></p>  <p>Make sure you click the Download publish profile link to save your publish profile locally, so you can configure the publish process to Azure in Visual Studio.</p>  <p>If you click Configure, you’ll see that you can also add your ClientID and ClientSecret on the Azure site. Go ahead and add the settings here as well. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6545.image_7B3AA715.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6545.image_5F00_7B3AA715.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1667.image_thumb_741B6A9D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1667.image_5F00_thumb_5F00_741B6A9D.png" width="748" height="396" /></a></p>  <p>Back in Visual Studio, right-click the Web project and select Publish. This will prompt you to import your publish profile and provide a wizard for you to publish your Windows Azure app. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8117.image_4CE12168.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8117.image_5F00_4CE12168.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/4401.image_thumb_33791E2E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4401.image_5F00_thumb_5F00_33791E2E.png" width="485" height="541" /></a></p>  <p>Once you’ve deployed your Windows Azure app, you can right-click the APP project and select Publish. This does not deploy your files to SharePoint; it only creates the package of files for you to either deploy into an on-premises environment or to upload the APP file to SharePoint. You can do this by navigating to your SharePoint site, clicking new app to deploy, and then browsing, uploading, and trusting the app. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1680.image_7D942913.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1680.image_5F00_7D942913.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7450.image_thumb_0B666F0F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7450.image_5F00_thumb_5F00_0B666F0F.png" width="456" height="230" /></a></p>  <p>Once you’ve deployed the app to SharePoint, you can then click the newly deployed app and you can see that now it is deployed to Azure, integrated with SharePoint and using the appropriate tokens to read a list from the SharePoint site. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2335.image_5CA0B66C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2335.image_5F00_5CA0B66C.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/4807.image_thumb_4A57EFAA.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4807.image_5F00_thumb_5F00_4A57EFAA.png" width="820" height="640" /></a></p>  <p>Again, take note of the long URL that contains the cross-domain reference along with the SharePoint tokens. </p>  <p><a title="https://spappinazure.azurewebsites.net/Pages/Default.aspx?SPHostUrl=https%3A%2F%2Fspcdemo2013%2Esharepoint%2Ecom%2Fsites%2Fspc&amp;SPLanguage=en%2DUS&amp;SPClientTag=0&amp;SPProductNumber=15%2E0%2E4454%2E3006&amp;SPAppWebUrl=https%3A%2F%2Fspcdemo2013%2Db802311f297b82%2Esharepoint%2Ecom%2Fsites%2Fspc%2FTest%5FProvider%5FHosted%5FApp%5F2%5F20%5F2013" href="https://spappinazure.azurewebsites.net/Pages/Default.aspx?SPHostUrl=https%3A%2F%2Fmyspsite2013%2Esharepoint%2Ecom%2Fsites%2Fspc&amp;SPLanguage=en%2DUS&amp;SPClientTag=0&amp;SPProductNumber=15%2E0%2E4454%2E3006&amp;SPAppWebUrl=https%3A%2F%2Fspcdemo2013%2Db802311f297b82%2Esharepoint%2Ecom%2Fsites%2Fspc%2FTest%5FProvider%5FHosted%5FApp%5F2%5F20%5F2013">https://spappinazure.azurewebsites.net/Pages/Default.aspx?SPHostUrl=https%3A%2F%2Fmyspsite2013%2Esharepoint%2Ecom%2Fsites%2Fspc&amp;SPLanguage=en%2DUS&amp;SPClientTag=0&amp;SPProductNumber=15%2E0%2E4454%2E3006&amp;SPAppWebUrl=https%3A%2F%2Fspcdemo2013%2Db802311f297b82%2Esharepoint%2Ecom%2Fsites%2Fspc%2FTest%5FProvider%5FHosted%5FApp%5F2%5F20%5F2013</a></p>  <p>A tip for you…</p>  <p>One thing I kept coming across was the “null context token” error. Drove me crazy to say the least. However, I discovered that there are a couple of things that could cause this to happen:</p>  <ul>   <li>The ClientID in your AppManifest.xml and in your Web.Config do not match. </li>    <li>Your domain reference to Azure is HTTP instead of HTTPS in the AppManifest.xml file. </li> </ul>  <p>The second one tripped me up for quite some time—makes sense right since we need an auth handshake. The code worked fine, but then when deployed it kept spitting up the null token error. I’ve bolded the culprit line below</p>  <p><font size="1" face="Courier New">…      <br />&lt;App xmlns=&quot;</font><a href="http://schemas.microsoft.com/sharepoint/2012/app/manifest&quot;"><font size="1" face="Courier New">http://schemas.microsoft.com/sharepoint/2012/app/manifest&quot;</font></a>     <br /><font size="1" face="Courier New">&#160;&#160;&#160;&#160; Name=&quot;Test_Provider_Hosted_App_2_20_2013&quot;      <br />&#160;&#160;&#160;&#160; ProductID=&quot;{d8eda873-90b8-4d34-b75b-0bb56a0718ea}&quot;       <br />&#160;&#160;&#160;&#160; Version=&quot;1.0.0.0&quot;       <br />&#160;&#160;&#160;&#160; SharePointMinVersion=&quot;15.0.0.0&quot;       <br />&gt;       <br />&#160; &lt;Properties&gt;       <br />&#160;&#160;&#160; &lt;Title&gt;Test_Provider_Hosted_App_2_20_2013&lt;/Title&gt;       <br /><strong>&#160;&#160;&#160; &lt;StartPage&gt;</strong></font><a href="https://spappinazure.azurewebsites.net/Pages/Default.aspx?{StandardTokens}"><font size="1" face="Courier New"><strong>https://spappinazure.azurewebsites.net/Pages/Default.aspx?{StandardTokens}</strong></font></a><font size="1" face="Courier New"><strong>&lt;/StartPage&gt;</strong>       <br />&#160; &lt;/Properties&gt;</font></p>  <p><font size="1" face="Courier New">&#160; &lt;AppPrincipal&gt;      <br />&#160;&#160;&#160; &lt;RemoteWebApplication ClientId=&quot;e432a156-56c9-46a4-a296-13ca4618fd86&quot; /&gt;       <br />&#160; &lt;/AppPrincipal&gt;       <br />&#160; &lt;AppPermissionRequests&gt;       <br />&#160;&#160;&#160; &lt;AppPermissionRequest Scope=&quot;</font><a href="http://sharepoint/content/sitecollection/web&quot;"><font size="1" face="Courier New">http://sharepoint/content/sitecollection/web&quot;</font></a><font size="1" face="Courier New"> Right=&quot;FullControl&quot; /&gt;      <br />&#160;&#160;&#160; &lt;AppPermissionRequest Scope=&quot;</font><a href="http://sharepoint/content/sitecollection/web/list&quot;"><font size="1" face="Courier New">http://sharepoint/content/sitecollection/web/list&quot;</font></a><font size="1" face="Courier New"> Right=&quot;FullControl&quot; /&gt;      <br />&#160;&#160;&#160; &lt;AppPermissionRequest Scope=&quot;</font><a href="http://sharepoint/content/sitecollection&quot;"><font size="1" face="Courier New">http://sharepoint/content/sitecollection&quot;</font></a><font size="1" face="Courier New"> Right=&quot;FullControl&quot; /&gt;      <br />&#160; &lt;/AppPermissionRequests&gt;       <br />&lt;/App&gt;</font></p>  <p>The OAuth pattern for SharePoint 2013 is new, and it takes some getting used to. My advice to you would be to build out small apps and get them working in a simple way, and then use a common approach to managing your token requests across your app. It is tricky, and it does take some prep and reading time. Invest some time to practice this, and you’ll find it a pretty powerful tool to begin to connect your Windows Azure apps with your SharePoint Apps. </p>  <p>Enjoy!</p>  <p>Steve</p>]]></content:encoded>
    </item>
    <item>
      <title>Building your first Provider-Hosted App for SharePoint using Windows Azure – Part 1</title>
      <link>https://docs.microsoft.com/archive/blogs/steve_fox/building-your-first-provider-hosted-app-for-sharepoint-using-windows-azure-part-1</link>
      <pubDate>Sun, 17 Feb 2013 21:48:55 GMT</pubDate>
      <dc:creator><![CDATA[Steve - Azure]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/steve_fox/2013/02/17/building-your-first-provider-hosted-app-for-sharepoint-using-windows-azure-part-1/</guid>
      <description><![CDATA[If you’ve been tracking on this blog, you’ve seen me write a few posts about SharePoint and Windows...]]></description>
      <content:encoded><![CDATA[<p>If you’ve been tracking on this blog, you’ve seen me write a few posts about SharePoint and Windows Azure. For those of you that have explored SharePoint 2013, you’ll also know that Windows Azure is natively supported with this new release. There are two primary ways in which Windows Azure is natively supported within the new concept of “Apps” in SharePoint 2013: Autohosted Apps and Provider-Hosted Apps. These are two variants of what are called Cloud-Hosted Apps.</p>  <p>Within Autohosted Apps, SharePoint has its “own” Azure environment where you can build and deploy your Cloud-Hosted App, and using this model is quick, agile and enables you to natively tap into the ability to deploy Cloud-Hosted Apps to SharePoint without too much fuss. Provider-Hosted Apps are a slightly different beast. As the name implies, the Cloud services are not automatically hosted for you. You are the “provider” so you need to build, deploy and host your Cloud app in your own domain; though, SharePoint provides plumbing (e.g. APIs, Authentication services, etc.) to enable the connection between a Cloud-hosted App that is deployed to your own domain. Also, it’s worth noting that just because a Provider-hosted app is a type of Cloud-hosted app, it doesn’t mean that the domain to which you deploy could not be an on-premises Web server. So, think of the “hosted domain” part as flexible; you can deploy on-premises, or you can deploy to the Cloud. </p>  <p>For more information on Provider-Hosted Apps, see the following MSDN article: <a title="http://msdn.microsoft.com/en-us/library/fp179887.aspx" href="http://msdn.microsoft.com/en-us/library/fp179887.aspx">http://msdn.microsoft.com/en-us/library/fp179887.aspx</a>.</p>  <p>In this blog, I wanted to walk you through how to create a deploy a <em>simple</em> Provider-Hosted App. This will be Part 1. (In Part 2, we’ll cover more about the glue that binds your Provider-Hosted App to SharePoint.)</p>  <p>So, let’s get started. </p>  <p><em>Setting up your Development Environment</em></p>  <p>If you’re just starting out with building Provider-Hosted Apps in the Cloud, then you’ll first want to check out this blog post: <a title="http://blogs.msdn.com/b/steve_fox/archive/2013/02/03/setting-up-your-development-environment-for-o365-amp-azure-development.aspx" href="http://blogs.msdn.com/b/steve_fox/archive/2013/02/03/setting-up-your-development-environment-for-o365-amp-azure-development.aspx">http://blogs.msdn.com/b/steve_fox/archive/2013/02/03/setting-up-your-development-environment-for-o365-amp-azure-development.aspx</a>. I’ve documented the fundamentals to setting up your own development environment, inclusive of the Windows Azure part.</p>  <p>Key takeaway here is that while you’re getting started, you can use the new Windows Azure Web Sites service to create a simple Web site that’s free and that’s hosted in Windows Azure. This gives you a chance to try before you buy.</p>  <p><em>Creating a New Azure Web Site</em></p>  <p>Assuming you’ve got your development environment set up, you can now go ahead and create a new Azure Web Site. To do this:</p>  <ul>   <li>Navigate to <a href="http://www.microsoft.com/windowsazure">www.microsoft.com/windowsazure</a></li>    <li>Click the PORTAL link in the upper right-hand corner of the page</li>    <li>Sign in using your LiveID</li>    <li>Click the Web Sites link along the left-hand side of the page</li>    <li>Click the New button at the bottom of the page</li>    <li>Click QUICK CREATE, provide a valid URL, select a REGION (which is the data center in which your Azure app will be deployed) – see image below</li>    <li>Click CREATE WEB SITE</li> </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7652.image_2A5340AE.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7652.image_5F00_2A5340AE.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/0486.image_thumb_77EF6D2E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0486.image_5F00_thumb_5F00_77EF6D2E.png" width="980" height="418" /></a></p>  <p>The provision process should take less than a minute to create, and when it does you’ll be able to click the new link in your portal and navigate to your newly created site. Now don’t be surprised when you see a default page with some graphics on it; this is just a starter page that you can customize. The important thing is that you’ve got a live Web site up and running, and it’s hosted in your own Windows Azure domain—see image below. An interesting note is that Windows Azure Web Sites are HTTPS compliant by default, so the site below can be accessed via <a href="http://mycrazycool.azurewebsites.net">http://mycrazycool.azurewebsites.net</a> or <a href="https://mycrazycool.azurewebsites.net">https://mycrazycool.azurewebsites.net</a>. Further, the trusted root certs used in Azure are conversant with Office 365/SharePoint, so you don’t have to go off and create a whole new trusted cert to get HTTPS working for you. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8311.image_297ADAC4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8311.image_5F00_297ADAC4.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/6761.image_thumb_0FA6A495.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6761.image_5F00_thumb_5F00_0FA6A495.png" width="976" height="416" /></a></p>  <p>With your Web site now created, the question is what’s next? Well, let’s assume you want to customize your new Azure Web site a little—maybe even has some limited interaction with SharePoint. You’ve created and deployed a Web site, but how do you customize it? </p>  <p><em>Customizing your Azure Web Site</em></p>  <p>The Azure Web site you created has a Dashboard view, where you can see a number of key metrics. Towards the bottom right, you can see a set of commands under the quick glance category. One of the these commands is the Download publish profile link, which surprisingly downloads the publish profile for your Azure Web site. This publish profile is in essence an XML file that contains information about your subscription, methods of deployment, deployment URL, and so on. You can open the file in Notepad if you’re curious and want to explore it.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2626.image_55B761A8.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2626.image_5F00_55B761A8.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/1055.image_thumb_2E7D1873.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1055.image_5F00_thumb_5F00_2E7D1873.png" width="968" height="719" /></a></p>  <p>Save the publish profile to a convenient folder, because you’ll need it in the next step. </p>  <p>To customize your site, we’re going to open up Visual Studio and create a new Provider-Hosted Application, which contains a simple ASP.NET Web app by default.</p>  <ul>   <li>Open Visual Studio 2012 (as Administrator)</li>    <li>Click New Project</li>    <li>Select Office/SharePoint, Apps, App for SharePoint 2013, and provide a name (e.g. GetSPInfoApp)</li>    <li>Click OK</li> </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/4263.image_143CAF4F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4263.image_5F00_143CAF4F.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/4572.image_thumb_455BE9EF.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4572.image_5F00_thumb_5F00_455BE9EF.png" width="799" height="550" /></a></p>  <p>When prompted by the New app for SharePoint dialog, add the O365 SharePoint site you’re using, and select Provider-hosted in the drop-down list as per the image below.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6305.image_649E90C2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6305.image_5F00_649E90C2.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/5241.image_thumb_7CC1FB1D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5241.image_5F00_thumb_5F00_7CC1FB1D.png" width="802" height="595" /></a></p>  <p>You’re now prompted to either use a client secret or a certificate. Select the “Use a client secret” option and click Finish. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0435.image_5BCE8876.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0435.image_5F00_5BCE8876.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/8358.image_thumb_54AF4BFE.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8358.image_5F00_thumb_5F00_54AF4BFE.png" width="793" height="592" /></a></p>  <p>Visual Studio creates the project structure (with two projects, one for the SharePoint App and the other for the ASP.NET App we’ll deploy to Azure) for you and by default creates an ASP.NET app with some code-spit in place. On first pass, let’s keep things really simple. Add some text on the Default.aspx page as per the snippet below.</p>  <p><font size="1" face="Courier New">…</font></p>  <p><font size="1" face="Courier New">&lt;html xmlns=&quot;</font><a href="http://www.w3.org/1999/xhtml&quot;"><font size="1" face="Courier New">http://www.w3.org/1999/xhtml&quot;</font></a><font size="1" face="Courier New">&gt;     <br />&lt;head runat=&quot;server&quot;&gt;      <br />&#160;&#160;&#160; &lt;title&gt;&lt;/title&gt;      <br />&lt;/head&gt;      <br />&lt;body&gt;      <br />&#160;&#160;&#160; &lt;form id=&quot;form1&quot; runat=&quot;server&quot;&gt;      <br />&#160;&#160;&#160; &lt;div&gt;      <br />&#160;&#160; </font><font face="Courier New"><font size="1"><strong> &lt;h2&gt;Simple Azure Test Page.&lt;/h2&gt;         <br /></strong>&#160;&#160;&#160; &lt;/div&gt;        <br />&#160;&#160;&#160; &lt;/form&gt;        <br />&lt;/body&gt;        <br />&lt;/html&gt;</font></font></p>  <p>If you were to deploy your app now, you’d get an error similar to the below. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7776.image_4FCC9842.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7776.image_5F00_4FCC9842.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/6303.image_thumb_7AA4FC54.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6303.image_5F00_thumb_5F00_7AA4FC54.png" width="933" height="173" /></a></p>  <p>And this is because you have OAuth code specific to SharePoint (see below) that raises an error if loaded only in the context of Azure. This code uses a class called the <em>TokenHelper</em> class, which manages the app and event authentication. So, comment this out for now; you can return to it later. </p>  <p><font size="1" face="Courier New">…</font></p>  <p><font size="1" face="Courier New">protected void Page_Load(object sender, EventArgs e)     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {</font></p>  <p><font size="1" face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var contextToken = TokenHelper.GetContextTokenFromRequest(Page.Request);     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var hostWeb = Page.Request[&quot;SPHostUrl&quot;];</font></p>  <p><font size="1" face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; using (var clientContext = TokenHelper.GetClientContextWithContextToken(hostWeb, contextToken, Request.Url.Authority))     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; clientContext.Load(clientContext.Web, web =&gt; web.Title);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; clientContext.ExecuteQuery();      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Response.Write(clientContext.Web.Title);      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</font></p>  <p><font size="1" face="Courier New">…</font></p>  <p>Now let’s deploy the Web app to Azure by right-clicking the Web project and selecting Publish. Here is where you’ll import your Azure publish profile by clicking the Import button, browsing to your publish profile and then clicking OK. You should see something similar to the below after this point, so click Publish to publish the simple web site to Azure.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5226.image_685C3592.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5226.image_5F00_685C3592.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/0005.image_thumb_0F2A4BD3.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0005.image_5F00_thumb_5F00_0F2A4BD3.png" width="738" height="575" /></a></p>  <p>When your Web app finishes deploying, you should see something similar to the below.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3632.image_67179CB3.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3632.image_5F00_67179CB3.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/3225.image_thumb_5FF8603B.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3225.image_5F00_thumb_5F00_5FF8603B.png" width="828" height="257" /></a></p>  <p>At this point, you have a working app that’s been deployed to Azure, but you need to <em>deploy</em> this as a Provider-hosted app to SharePoint. And you’ve already got the project structure in place, so what’s next?</p>  <p><em>Deploying Provider-Hosted App to SharePoint</em></p>  <p>If you remember, you opted to use the client secret to configure your Provider-hosted app. This is a key that both the SharePoint app and the app deployed to Azure need to be aware of, so we need to first get a client secret and then add it to the appropriate spots in our project to ensure our Provider-hosted app will work properly. To do this:</p>  <ul>   <li>Navigate to your SharePoint Online site (where you’ll be deploying your app)</li>    <li>Navigate to <a href="https://&lt;your site&gt;/_layouts/15/appregnew.aspx">/_layouts/15/appregnew.aspx&quot;&gt;https://&lt;your site&gt;/_layouts/15/appregnew.aspx</a></li>    <li>Click Generate for the ID and for the Secret</li>    <li>Add a Title for your Provider-hosted App</li>    <li>Add the domain (this is the Azure domain)</li>    <li>Add the Redirect URI (again, using the Azure URI)</li>    <li>Click Create</li> </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2642.image_51B9E74B.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2642.image_5F00_51B9E74B.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/0488.image_thumb_1183CDD1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0488.image_5F00_thumb_5F00_1183CDD1.png" width="1065" height="348" /></a></p>  <p>Now copy the App Id into your AppManifest.xml file in your Visual Studio project. To do this, right-click the AppManifest.xml file and select View Code. Add the App Id into the ClientId property as per the bolded snippet below. Also, you can amend the StartPage property to point to your Azure Web site.</p>  <p><font face="Courier New"><font size="1">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;       <br />…        <br />&#160; &lt;Properties&gt;        <br />&#160;&#160;&#160; &lt;Title&gt;GetSPInfoApp&lt;/Title&gt;        <br /><strong>&#160;&#160;&#160; &lt;StartPage&gt;</strong></font></font><a href="http://mycrazycool.azurewebsites.net/Pages/Default.aspx?{StandardTokens}"><strong><font size="1" face="Courier New">http://mycrazycool.azurewebsites.net/Pages/Default.aspx?{StandardTokens}</font></strong></a><font face="Courier New"><font size="1"><strong>&lt;/StartPage&gt;</strong>        <br />&#160; &lt;/Properties&gt;</font></font></p>  <p><font size="1" face="Courier New">&#160; &lt;AppPrincipal&gt;     <br /><strong>&#160;&#160;&#160; &lt;RemoteWebApplication ClientId=&quot;a3bdddd6-85a1-4f89-abd3-754dddddd94a&quot; /&gt;</strong>      <br />&#160; &lt;/AppPrincipal&gt;      <br />&lt;/App&gt;</font></p>  <p>In the Web.config file for your Web app, you’ll also need to add both the App Id and App Secret (also called the ClientID and ClientSecret) as per below.</p>  <p><font size="1" face="Courier New">…</font></p>  <p><font size="1" face="Courier New">&lt;appSettings&gt;     <br /><strong>&#160; &lt;add key=&quot;ClientId&quot; value=&quot;a3bdddd6-85a1-4f89-abd3-754dddddd94a&quot; /&gt;       <br />&#160; &lt;add key=&quot;ClientSecret&quot; value=&quot;Jkme+Svgx3K999999999999999zmmGmI1C7WPiiKbGU=&quot; /&gt;</strong>      <br />&lt;/appSettings&gt;</font></p>  <p><font size="1" face="Courier New">…</font></p>  <p>Before we deploy, we need to ensure we’ve set the permissions on the App so it can interact with SharePoint. Right-click AppManifest.xml and select View Designer. In the Permissions tab, select Web as the Scope and FullControl as the Permission.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6763.image_11179ADC.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6763.image_5F00_11179ADC.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/7433.image_thumb_37E5B11C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7433.image_5F00_thumb_5F00_37E5B11C.png" width="723" height="301" /></a></p>  <p>Hit F6 to build.</p>  <p>At this point, you can either publish (which packages up the files for manual deployment) or you can hit F5 to debug.</p>  <p>To publish the Provider-hosted app, right-click the App project and select Publish. Add a name for your profile. Click Next.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0160.image_766AFEC2.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0160.image_5F00_766AFEC2.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/4377.image_thumb_1D391503.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4377.image_5F00_thumb_5F00_1D391503.png" width="645" height="429" /></a></p>  <p>Add your Azure web site, the Client ID and the Client Secret to your app. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1638.image_3CE7EECB.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1638.image_5F00_3CE7EECB.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/7411.image_thumb_11A357C4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7411.image_5F00_thumb_5F00_11A357C4.png" width="651" height="433" /></a></p>  <p>Click Next, and inspect the summary dialog to ensure all of the information is accurate. Click Finish to complete the process, and you’ll see all of your packaged files.</p>  <p>To debug, simply hit F5. Click Yes if prompted to accept and install a certificate, and then when prompted click Trust It to trust your new Provider-hosted App. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/4762.image_0A17E857.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4762.image_5F00_0A17E857.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/1122.image_thumb_02F8ABDF.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1122.image_5F00_thumb_5F00_02F8ABDF.png" width="688" height="306" /></a></p>  <p>When you trust the app, it will then load for you as per the below image.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/4760.image_42C29264.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4760.image_5F00_42C29264.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/5857.image_thumb_3BA355EC.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5857.image_5F00_thumb_5F00_3BA355EC.png" width="652" height="131" /></a></p>  <p>If you explore the URL, you’ll see that it points off to your Azure web site, but loads that into your SharePoint site as a Provider-hosted App.</p>  <p><a title="http://mycrazycool.azurewebsites.net/Pages/Default.aspx?SPHostUrl=https%3A%2F%2Fspcdemo2013%2Esharepoint%2Ecom%2Fsites%2Fspc&amp;SPLanguage=en%2DUS&amp;SPClientTag=0&amp;SPProductNumber=15%2E0%2E4454%2E1011" href="http://mycrazycool.azurewebsites.net/Pages/Default.aspx?SPHostUrl=https%3A%2F%2Fmydemosite%2Esharepoint%2Ecom%2Fsites%2Fspc&amp;SPLanguage=en%2DUS&amp;SPClientTag=0&amp;SPProductNumber=15%2E0%2E4454%2E1011">http://mycrazycool.azurewebsites.net/Pages/Default.aspx?SPHostUrl=https%3A%2F%2Fmydemosite%2Esharepoint%2Ecom%2Fsites%2Fspc&amp;SPLanguage=en%2DUS&amp;SPClientTag=0&amp;SPProductNumber=15%2E0%2E4454%2E1011</a></p>  <p>This was the first step. In Part 2, I’ll swap out some of the simple code-behind, and we’ll see how we can interact with SharePoint remotely from Azure.</p>  <p>Happy Coding!</p>  <p>Steve</p>]]></content:encoded>
    </item>
    <item>
      <title>Beginning SharePoint 2013 Development: To the Printers We Go!</title>
      <link>https://docs.microsoft.com/archive/blogs/steve_fox/beginning-sharepoint-2013-development-to-the-printers-we-go</link>
      <pubDate>Sun, 03 Feb 2013 12:03:27 GMT</pubDate>
      <dc:creator><![CDATA[Steve - Azure]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/steve_fox/2013/02/03/beginning-sharepoint-2013-development-to-the-printers-we-go/</guid>
      <description><![CDATA[The last time I finished writing a book, I swore up and down never again—yet it appears it’s...]]></description>
      <content:encoded><![CDATA[<p>The last time I finished writing a book, I swore up and down never again—yet it appears it’s happened once again! For those of you who are beginning SharePoint 2013 developers (or are looking to refresh your knowledge around SharePoint 2013), we recently completed “Beginning SharePoint 2013 Development.” When I say we, I mean myself, <a href="http://blogs.msdn.com/b/donovanf/">Donovan Follette</a> and <a href="http://www.looselytyped.net/">Chris Johnson</a>—all SharePoint experts in their own right. Also, we had the pleasure of working with <a href="http://www.andrewconnell.com/index.aspx">Andrew Connell</a> as our Technical Editor.</p>  <p><a title="http://www.amazon.com/Beginning-SharePoint-2013-Development-Steve/dp/1118495845" href="http://www.amazon.com/Beginning-SharePoint-2013-Development-Steve/dp/1118495845">http://www.amazon.com/Beginning-SharePoint-2013-Development-Steve/dp/1118495845</a></p>  <p>The cover page has been designed with a view I know well: looking out over the wing of a plane.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2022.image_5B51881E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2022.image_5F00_5B51881E.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/7801.image_thumb_684B682F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7801.image_5F00_thumb_5F00_684B682F.png" width="181" height="244" /></a></p>  <p>As the title suggests, it’s all about starting development on SharePoint 2013.&#160; As you may have read or heard there is quite a bit of new stuff for developers in 2013 and this book aims to serve as a guide for those looking to grapple with those changes. Topics include the new Cloud-hosted app model, developer tools, Windows Azure, building and packaging apps, publishing in the Office Store, OAuth, OData/REST APIs, Office Apps, event receivers, Business Connectivity Services, Office Services &amp; Workflow, and more.</p>  <p>Well, we hope you enjoy and look out for me to extend the book by writing more Cloud-hosted app blog posts here and at Donovan’s and Chris’s blogs. </p>  <p>Happy Coding!</p>  <p>Steve</p>]]></content:encoded>
    </item>
    <item>
      <title>Setting up your Development Environment for O365 &amp; Azure Development</title>
      <link>https://docs.microsoft.com/archive/blogs/steve_fox/setting-up-your-development-environment-for-o365-azure-development</link>
      <pubDate>Sun, 03 Feb 2013 11:07:49 GMT</pubDate>
      <dc:creator><![CDATA[Steve - Azure]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/steve_fox/2013/02/03/setting-up-your-development-environment-for-o365-azure-development/</guid>
      <description><![CDATA[In one of our SharePoint and Azure workshops the other day, a couple of the students asked me how to...]]></description>
      <content:encoded><![CDATA[<p>In one of our SharePoint and Azure workshops the other day, a couple of the students asked me how to set up one’s development environment if you’d like to start building Cloud-hosted apps for SharePoint or Office 365. Since, we had been mainly teaching the students about Office 365 and Azure, the questions were pointedly about Office 365 and Windows Azure. So, to help you understand how you can set up your development environment, here’s a quick blog-post to get yourself up and running.</p>  <p>As a summary, there are <u>six</u> main things that need to be created for you to get started.</p>  <ol>   <li>Create a new Office 365 Account (<a title="http://msdn.microsoft.com/en-US/office/apps" href="http://msdn.microsoft.com/en-US/office/apps">http://msdn.microsoft.com/en-US/office/apps</a>);</li>    <li>Download and install Visual Studio 2012 Professional or above (<a title="http://www.microsoft.com/visualstudio/eng/downloads#d-professional" href="http://www.microsoft.com/visualstudio/eng/downloads#d-professional">http://www.microsoft.com/visualstudio/eng/downloads#d-professional</a>);</li>    <li>Download and install Office and SharePoint Developer Preview Tools for Visual Studio 2012 (<a title="http://msdn.microsoft.com/en-US/office/apps/fp123627" href="http://msdn.microsoft.com/en-US/office/apps/fp123627">http://msdn.microsoft.com/en-US/office/apps/fp123627</a>);</li>    <li>Create a new Azure account (<a href="http://www.microsoft.com/windowsazure">www.microsoft.com/windowsazure</a>);</li>    <li>Download and install the Windows Azure SDK and Tools for Visual Studio (<a title="http://www.windowsazure.com/en-us/develop/net/" href="http://www.windowsazure.com/en-us/develop/net/">http://www.windowsazure.com/en-us/develop/net/</a>); and</li>    <li>Create a new Developer Site within your Office 365 Account.</li> </ol>  <p>   <br />After you’ve done all of these, you’ll be ready to build either SharePoint <em>Autohosted</em> apps or <em>Provider-hosted</em> apps—the two new types of Cloud-hosted apps for SharePoint 2013 (specifically SharePoint Online as autohosted apps are not supported in SharePoint 2013 on-premises). Of note is that setting up your own Azure account and SDK/Tools for Azure is primarily for Provider-hosted apps. I would recommend installing it, though, even if you think you’ll just be testing out Autohosted apps; there’s lots to explore there. (If you have questions about the Apps for Office and SharePoint, go here: <a title="http://msdn.microsoft.com/en-us/library/office/apps/jj613790.aspx" href="http://msdn.microsoft.com/en-us/library/office/apps/jj613790.aspx">http://msdn.microsoft.com/en-us/library/office/apps/jj613790.aspx</a>.)</p>  <p>To follow are some details on the above six things.</p>  <p><em>1. Sign up for an Office 365 Account</em></p>  <p>Before you can develop for Office 365 (O365), you need to ensure you have an account against which you can build, remotely debug and deploy your apps. To get started, go to dev.office.com (which redirects to <a title="http://msdn.microsoft.com/en-US/office/apps" href="http://msdn.microsoft.com/en-US/office/apps">http://msdn.microsoft.com/en-US/office/apps</a>). You can see by the landing page below that you can click the Start tile to sign up for a trial Office 365 account.</p>  <p>&#160;</p>      <p>After you click the Start tile, you’ll be taken to a page with a number of options. Click the Sign up for an Office 365 Developer Site “Sign Up” button. This invokes a wizard that you can walk through to generate your new Office 365 site. The Developer Site is key for you to build Cloud-hosted apps because this site is equipped with the ability for you to quickly deploy and remotely debug Cloud-hosted apps. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0172.image_44FA8B23.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0172.image_5F00_44FA8B23.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/3731.image_thumb_1DC041EE.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3731.image_5F00_thumb_5F00_1DC041EE.png" width="876" height="358" /></a></p>  <p>After you click the Sign up button and fill in all of the fields, click the “Create my account” button at the bottom of the page. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6038.image_24734B71.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6038.image_5F00_24734B71.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/0160.image_thumb_078A269C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0160.image_5F00_thumb_5F00_078A269C.png" width="555" height="482" /></a></p>  <p>At this point, the provisioning process begins and your Office 365 tenancy is created for you. Some parts of the tenancy (e.g. Identity Service and Portal) are provisioned very quickly, and others take a little time. While this is happening, you can go to Step 2.</p>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1258.image_1C0F761A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1258.image_5F00_1C0F761A.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/7610.image_thumb_42DD8C5A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7610.image_5F00_thumb_5F00_42DD8C5A.png" width="564" height="243" /></a></p>  <p><em>2. Install Visual Studio 2012 Professional or Above</em></p>  <p>You’ll need to install the Visual Studio 2012 Professional or above tools. You can download a trial version (<a title="http://www.microsoft.com/visualstudio/eng/downloads#d-professional" href="http://www.microsoft.com/visualstudio/eng/downloads#d-professional">http://www.microsoft.com/visualstudio/eng/downloads#d-professional</a>) or buy a new version. You can click the Visual Studio Professional 2012 90-day trial – English “Install now” link to get that process started. This is a standard VS set-up, so I won’t go into detail here.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8508.image_54BA2027.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8508.image_5F00_54BA2027.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/4786.image_thumb_53E1BA3D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4786.image_5F00_thumb_5F00_53E1BA3D.png" width="797" height="485" /></a></p>  <p><em>3. Install Office and SharePoint Developer Tools</em></p>  <p>Once you’ve installed VS, you’ll now need to install the SharePoint Developer Tools so you can build Cloud-hosted apps for Office 365. Now it’s not that the Professional SKU doesn’t come with SharePoint tooling; it’s that you need to download the “Apps” templates (i.e. Apps for Office and Apps for SharePoint) templates separately. To do this, go here: <a title="http://msdn.microsoft.com/en-US/office/apps/fp123627" href="http://msdn.microsoft.com/en-US/office/apps/fp123627">http://msdn.microsoft.com/en-US/office/apps/fp123627</a>. And then click the “Download the tools” link. This will invoke an EXE, which you can choose to “Run” or “Save As” for local execution. The application that is invoked is the Web Platform Installer (which enables you to select and install multiple applications), which should prompt you to Install the Office and SharePoint Preview Developer Tools. Click Install and follow the wizard to accept the license and install. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/6518.image_44CADB63.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/6518.image_5F00_44CADB63.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/5554.image_thumb_1FCD1AEA.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5554.image_5F00_thumb_5F00_1FCD1AEA.png" width="792" height="315" /></a></p>  <p><em>4 &amp; 5. Sign up for an Azure Account &amp; Download the Azure SDK/Tools</em></p>  <p>At this point, you’ve installed VS and the Office and SharePoint Developer tools, but you still need to sign up for an Azure account and install the Azure Developer Tools and SDK. You can go to <a href="http://www.microsoft.com/windowsazure">www.microsoft.com/windowsazure</a> for both of these. To sign up for a trial account, click the “try it free” button. Complete the wizard to get an Azure instance up and running. Note that when you’re complete, you can go back to <a href="http://www.microsoft.com/windowsazure">www.microsoft.com/windowsazure</a> and then click PORTAL to take you to your Windows Azure developer portal. To install the SDK, go here: <a title="http://www.windowsazure.com/en-us/develop/net/" href="http://www.windowsazure.com/en-us/develop/net/">http://www.windowsazure.com/en-us/develop/net/</a>. Click the “install the sdk” link. The SDK will install the VS project templates and SDK for your use. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0741.image_118EA1FA.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0741.image_5F00_118EA1FA.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/5432.image_thumb_0277C320.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5432.image_5F00_thumb_5F00_0277C320.png" width="805" height="454" /></a></p>  <p><em>6. Create a Developer Site </em></p>  <p>At this point, you can go back to Step 1 to see if your O365 tenancy is set up yet. If it is, you should see “No Issues” beside each of the parts of your O365 site (see below). </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2783.image_36ABEC66.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2783.image_5F00_36ABEC66.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/4530.image_thumb_48888033.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4530.image_5F00_thumb_5F00_48888033.png" width="443" height="307" /></a></p>    <p>Awesomeness. You can now go to your O365 tenancy and create a new SharePoint developer site. While in your new O365 tenancy, click the Admin drop-down list and then select SharePoint.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/1738.image_085266B9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1738.image_5F00_085266B9.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/1803.image_thumb_683759FB.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/1803.image_5F00_thumb_5F00_683759FB.png" width="318" height="285" /></a></p>  <p>In the SharePoint Admin Center, in the Site Collection tab, click New and then select Private Site Collection. Complete the fields, and be sure to select the Developer Site.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8662.image_28014081.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8662.image_5F00_28014081.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/3060.image_thumb_2DDBE41A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3060.image_5F00_thumb_5F00_2DDBE41A.png" width="563" height="551" /></a></p>      <p>After your Developer Site has been created, it’ll show up in the list of your site collections. Click the link to invoke the Properties dialog for that site, and then click the link to open it in a new browser tab. As you can see from the site below, my new Developer Site (called New Dev Site) is ready to go. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0638.image_348EED9D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0638.image_5F00_348EED9D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 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/00/94/99/metablogapi/2870.image_thumb_1B26EA63.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2870.image_5F00_thumb_5F00_1B26EA63.png" width="603" height="440" /></a></p>  <p>I have and will continue to build out a number of blogs on Autohosted and Provider-hosted apps, so for next steps (e.g. building a simple Autohosted app), go here: <a title="http://blogs.msdn.com/b/steve_fox/" href="http://blogs.msdn.com/b/steve_fox/">http://blogs.msdn.com/b/steve_fox/</a>. Also, if you’re looking for some sample code apps built by the product group, then go here: <a title="http://code.msdn.microsoft.com/officeapps" href="http://code.msdn.microsoft.com/officeapps">http://code.msdn.microsoft.com/officeapps</a>. Filter on SharePoint 2013, and you’ll find a small set of apps that will get you started.</p>  <p>Happy Coding!</p>  <p>Steve</p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint and Windows Azure’s Interlude in Vegas: Building Apps using the Autohosted App Model</title>
      <link>https://docs.microsoft.com/archive/blogs/steve_fox/sharepoint-and-windows-azures-interlude-in-vegas-building-apps-using-the-autohosted-app-model</link>
      <pubDate>Sat, 17 Nov 2012 00:07:12 GMT</pubDate>
      <dc:creator><![CDATA[Steve - Azure]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/steve_fox/2012/11/17/sharepoint-and-windows-azures-interlude-in-vegas-building-apps-using-the-autohosted-app-model/</guid>
      <description><![CDATA[Back in Seattle…  Wow, a whirlwind week in Vegas meeting with customers, colleagues, the community...]]></description>
      <content:encoded><![CDATA[<p><em>Back in Seattle…</em></p>  <p>Wow, a whirlwind week in Vegas meeting with customers, colleagues, the community and of course conference-goers. If you didn’t catch the conference, last week was the <a href="http://www.mssharepointconference.com/Pages/default.aspx">SharePoint Conference 2012</a>. It was a great week full of new areas for the SharePoint community to explore. For me, it was especially interesting as this conference brought together two keen areas of focus for me into focus: SharePoint and Windows Azure. This intersection manifested through the introduction of the new SharePoint <em>cloud-hosted app model</em> to the SharePoint community, and it is here where you really find these two platforms intersecting. </p>  <p>It started with the keynote, which was headlined by Jeff Teper, top brass in Office, who with the help of the SharePoint gang showed off some of the new Social, Mobile and Cloud-centric aspects of SharePoint 2013. To the theme above, it was also good to see Scott Guthrie there as well—introducing the 10,000-ish people to the cloud developer story. The discussion and buzz around this new app model continued throughout the week with many questions focusing on the what and how of these new apps.&#160; </p>  <p><em>Discussing Autohosted and Provider-Hosted…</em></p>  <p>Having spent some time in this area, I had the chance to present a session on the topic as well as deliver a post-con workshop to a group of very enthusiastic developers with tons of questions about the new cloud app model. I’ve posted my deck below here so for those that couldn’t attend, you can peruse the deck and at least get a sense for what we were discussing—which focused on the <em>Autohosted</em> app and the <em>Provider-Hosted</em> app. These are in essence the two new app models introduced in SharePoint 2013 having strong integration with Windows Azure. </p>  <p><iframe style="width: 676px; height: 520px" height="327" src="https://skydrive.live.com/embed?cid=40A717FC7FCD7E40&amp;resid=40A717FC7FCD7E40%216124&amp;authkey=ANsFrAOO6qUxu3s&amp;em=2" frameborder="0" width="402" scrolling="no"></iframe></p>  <p>The Autohosted app model natively leverages Windows Azure when you deploy the app to SharePoint, and the Provider-Hosted app enables you to use Windows Azure or other Web technologies (such as PhP). Now one of the questions that kept coming up this week was as follows: “if they both use Windows Azure, then what is the difference between the two?” And this is where things get interesting.</p>  <p>Both hosting models are intended to move code off of the server; this is part of the reason for the move to a new cloud-hosted model. For you SharePoint admins out there, this should make you happy—this abstraction of code away from the server should mitigate ill-performing or malicious code from running on the server. However, this is only part of the reason. The other part is in the new world of Cloud computing, services are rolled out in a more frequent cadence. And at the same time you’re introducing value to the customer through the ability to leverage services that constantly improve and evolve over time (and in a much shorter cycle), you don’t want those updates to cross-sect with your customizations. Updates should be seamless, and abstracting the code from the server helps support this process. </p>  <p>Okay, so we’ve moved off of the server into these two models. <em>You still haven’t answered how they’re different?</em> And the Autohosted and Provider-hosted models are different in a number of ways:</p>  <ol>   <li>The Autohosted app model leverages Windows Azure natively, so when you create the app and deploy it to Office 365 the Web app components and database are using the Windows Azure Web role and Windows Azure SQL Database under the covers. This is good because it’s automatic and managed for you—although you do need to ensure you programmatically manage the cross-domain OAuth when hooking up events or data queries/calls into SharePoint. So, top-level points of differentiation: 1) the Autohosted app model uses the Web Sites and SQL Database services of Windows Azure, and 2) it is deployed to Windows Azure (and of course to the SharePoint site that is hosting the app). If you’re building departmental apps or light data-driven apps, the Autohosted option is good. And there are patterns to use if you want to replace the default ASP.NET Web project with, say, an ASP.NET MVC4 Web project to take advantage of the MVVM application programming. </li>    <li>The Provider-hosted app model supports programming against a much broader set of Windows Azure features—mainly because you are managing the hosting of this type of app so you can tap into, say, Cloud Services, Web Sites, Media Services, BLOB Storage, and so on. (And if these concepts are new to you, then check out the Windows Azure home page <a href="http://www.microsoft.com/windowsazure">here</a>.) Also, while the Autohosted app model tightly couples Windows Azure and SharePoint within a project and an APP that is built from it, the Provider-hosted app provides for a much more loosely-coupled experience. And as I mentioned earlier, this broader experience of self-hosting means that you can also use other Web technologies within the Provider-hosted app. </li> </ol>  <p>So, let’s spend a little time in this post on the Autohosted app model, and then I’ll return in a follow-up post with the Provider-hosted app model. </p>  <p><em>Building your first Autohosted App…</em></p>  <p>First, open up Visual Studio 2012 and click File, New Project. Select Office/SharePoint, and then select Apps and then App for SharePoint 2013. Provide a name for the app and click OK.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/7457.image_1C1661FB.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/7457.image_5F00_1C1661FB.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8446.image_thumb_02422BCC.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8446.image_5F00_thumb_5F00_02422BCC.png" width="717" height="497" /></a> </p>  <p>When prompted in the New app for SharePoint dialog, leave the default name for the app, select your O365 tenancy and then select Autohosted as the project type. Click Finish when done.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/5807.image_537C7329.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/5807.image_5F00_537C7329.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/0511.image_thumb_00915FF8.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/0511.image_5F00_thumb_5F00_00915FF8.png" width="722" height="528" /></a> </p>  <p>Visual Studio creates two projects for you: a SharePoint app project and a Web project. Right-click the project and select Add, Class. Call the class Sales, and then add the bolded code below. This is a simple class with three properties: an ID, a Quarter (which represents a fiscal quarter), and TotalSales (representing the total sales for that quarter). </p>  <p><font color="#004080">using System;      <br />using System.Collections.Generic;       <br />using System.Linq;       <br />using System.Web; </font></p>  <p><font color="#004080">namespace MyFirstAutohostedAppWeb      <br />{       <br />&#160;&#160;&#160; public class Sales       <br />&#160;&#160;&#160; {       <br /></font><font color="#004080"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160; public int ID { get; set; }        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public string Quarter { get; set; }         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public string TotalSales { get; set; }</strong>       <br />&#160;&#160;&#160; }       <br />}</font></p>  <p>Then double-click the Default.aspx page and replace the &lt;form&gt; element contents with the following bolded code. This provides you with a GridView object, to which you will bind some in-memory data, and a LinkButton, which will trigger the binding.</p>  <p><font color="#004080">&lt;%@ Page Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; CodeBehind=&quot;Default.aspx.cs&quot; Inherits=&quot;MyFirstAutohostedAppWeb.Pages.Default&quot; %&gt; </font></p>  <p><font color="#004080">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;</font><a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;"><font color="#004080">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;</font></a><font color="#004080">&gt; </font></p>  <p><font color="#004080">&lt;html xmlns=&quot;</font><a href="http://www.w3.org/1999/xhtml&quot;"><font color="#004080">http://www.w3.org/1999/xhtml&quot;</font></a><font color="#004080">&gt;      <br />&lt;head runat=&quot;server&quot;&gt;       <br />&#160;&#160;&#160; &lt;title&gt;&lt;/title&gt;       <br />&lt;/head&gt;       <br />&lt;body&gt;       <br />&#160;&#160;&#160; </font><font color="#004080"><strong>&lt;form id=&quot;form1&quot; runat=&quot;server&quot;&gt;        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;div&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;p style=&quot;font-family: calibri&quot;&gt;Simple Autohosted Sales App&lt;/p&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;asp:GridView ID=&quot;salesGridView&quot; runat=&quot;server&quot; CellPadding=&quot;4&quot; Font-Names=&quot;Calibri&quot; Font-Size=&quot;Small&quot; ForeColor=&quot;#333333&quot; GridLines=&quot;None&quot;&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;AlternatingRowStyle BackColor=&quot;White&quot; ForeColor=&quot;#284775&quot; /&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;EditRowStyle BackColor=&quot;#999999&quot; /&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;FooterStyle BackColor=&quot;#5D7B9D&quot; Font-Bold=&quot;True&quot; ForeColor=&quot;White&quot; /&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;HeaderStyle BackColor=&quot;#5D7B9D&quot; Font-Bold=&quot;True&quot; ForeColor=&quot;White&quot; /&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;PagerStyle BackColor=&quot;#284775&quot; ForeColor=&quot;White&quot; HorizontalAlign=&quot;Center&quot; /&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;RowStyle BackColor=&quot;#F7F6F3&quot; ForeColor=&quot;#333333&quot; /&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;SelectedRowStyle BackColor=&quot;#E2DED6&quot; Font-Bold=&quot;True&quot; ForeColor=&quot;#333333&quot; /&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;SortedAscendingCellStyle BackColor=&quot;#E9E7E2&quot; /&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;SortedAscendingHeaderStyle BackColor=&quot;#506C8C&quot; /&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;SortedDescendingCellStyle BackColor=&quot;#FFFDF8&quot; /&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;SortedDescendingHeaderStyle BackColor=&quot;#6F8DAE&quot; /&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/asp:GridView&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;br /&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;asp:LinkButton ID=&quot;lnkGetSalesData&quot; runat=&quot;server&quot; Font-Names=&quot;Calibri&quot; Font-Size=&quot;Small&quot; OnClick=&quot;lnkGetSalesData_Click&quot;&gt;Get Sales&lt;/asp:LinkButton&gt;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/div&gt;         <br />&#160;&#160;&#160; &lt;/form&gt;         <br /></strong>&lt;/body&gt;       <br />&lt;/html&gt;</font></p>  <p>Right-click the Default.aspx page and in the code-behind file (Default.aspx.cs), amend the file as per the bolded code below. You’ll see a List collection here, the object you’ll use for the binding, a number of key objects that are used by OAuth to generate the access token for the app and some simple logic to create an in-memory data object and bind it to the GridView. </p>  <p><font color="#004080">using System;      <br />using System.Collections.Generic;       <br />using System.Linq;       <br />using System.Web;       <br />using System.Web.UI;       <br />using System.Web.UI.WebControls; </font></p>  <p><font color="#004080">namespace MyFirstAutohostedAppWeb.Pages      <br />{       <br />&#160;&#160;&#160; public partial class Default : System.Web.UI.Page       <br />&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160; <strong>List&lt;Sales&gt; mySalesData = new List&lt;Sales&gt;();        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; SharePointContextToken contextToken;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; string accessToken;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Uri sharepointUrl; </strong></font></p>  <p><font color="#004080">&#160;&#160;&#160;&#160;&#160;&#160;&#160; protected void Page_Load(object sender, EventArgs e)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {       <br /><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; TokenHelper.TrustAllCertificates();        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; string contextTokenString = TokenHelper.GetContextTokenFromRequest(Request); </strong></font></p>  <p><font color="#004080"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (contextTokenString != null)        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; contextToken = TokenHelper.ReadAndValidateContextToken(contextTokenString, Request.Url.Authority); </strong></font><font color="#004080">     <br /><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; sharepointUrl = new Uri(Request.QueryString[&quot;SPHostUrl&quot;]);        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; accessToken = TokenHelper.GetAccessToken(contextToken, sharepointUrl.Authority).AccessToken; </strong></font><font color="#004080">     <br /><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; lnkGetSalesData.CommandArgument = accessToken;        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </strong></font></p>  <p><font color="#004080">&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </font></p>  <p><font color="#004080">&#160;&#160;&#160; <strong>&#160;&#160;&#160; protected void lnkGetSalesData_Click(object sender, EventArgs e)        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; string accessToken = ((LinkButton)sender).CommandArgument; </strong></font></p>  <p><font color="#004080"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (IsPostBack)        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; sharepointUrl = new Uri(Request.QueryString[&quot;SPHostUrl&quot;]);         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </strong></font></p>  <p><font color="#004080"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Sales FY11 = new Sales();        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Sales FY12 = new Sales();         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Sales FY13 = new Sales(); </strong></font></p>  <p><font color="#004080"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FY11.ID = 1;        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FY11.Quarter = &quot;FY11&quot;;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FY11.TotalSales = &quot;$2,002,102.00&quot;;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mySalesData.Add(FY11); </strong></font></p>  <p><font color="#004080"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FY12.ID = 2;        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FY12.Quarter = &quot;FY12&quot;;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FY12.TotalSales = &quot;$2,500,201.00&quot;;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mySalesData.Add(FY12); </strong></font></p>  <p><font color="#004080"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FY13.ID = 3;        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FY13.Quarter = &quot;FY13&quot;;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FY13.TotalSales = &quot;$2,902,211.00&quot;;         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mySalesData.Add(FY13); </strong></font></p>  <p><font color="#004080"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; salesGridView.DataSource = mySalesData;        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; salesGridView.DataBind();         <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }         <br /></strong>&#160;&#160;&#160; }       <br />} </font></p>  <p>When you’re done, hit F6 and build the app. Then, double-click the AppManifest.xml file to open the designer, click the Permissions tab and set the Web scope to have Read permissions. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/2642.image_6AC7779A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/2642.image_5F00_6AC7779A.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/4130.image_thumb_717A811D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/4130.image_5F00_thumb_5F00_717A811D.png" width="881" height="249" /></a> </p>  <p>At this point, you can right-click and Deploy (and sign into your tenancy to deploy) or right-click and Publish, navigate to your SharePoint site, click new app to deploy, and then upload, click Deploy and then trust your app. </p>  <p>The result should be a deployed app, and when you click it and hit the Get Sales link button, the result should be something fantabulous like the following:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/8424.image_58127DE3.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/8424.image_5F00_58127DE3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/99/metablogapi/3632.image_thumb_7EE09423.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-99-metablogapi/3632.image_5F00_thumb_5F00_7EE09423.png" width="339" height="286" /></a> </p>  <p> Now if you inspect the URL for this new app, you’ll see something interesting. As per the URL below, you’ll see the GUID for the app, the fact that it’s being hosted in the o365apps.net domain (in Windows Azure), and then you have token(s) and data that are embedded within the URL such as the SPHostUrl, the Language, and so on. </p>  <p>&#160;<a title="https://8d81feb6-7cbc-4fd8-b4ef-ade72cb80958.o365apps.net/Pages/Default.aspx?SPHostUrl=https%3A%2F%2Fspcdemo2013%2Esharepoint%2Ecom%2Fsites%2Fspc&amp;SPLanguage=en%2DUS&amp;SPClientTag=0&amp;SPProductNumber=15%2E0%2E4433%2E1003" href="https://8d81feb6-7cbc-4fd8-b4ef-ade72cb80958.o365apps.net/Pages/Default.aspx?SPHostUrl=https%3A%2F%2Fmyspsite%2Esharepoint%2Ecom%2Fsites%2Fspc&amp;SPLanguage=en%2DUS&amp;SPClientTag=0&amp;SPProductNumber=15%2E0%2E4433%2E1003">https://8d81feb6-7cbc-4fd8-b4ef-ade72cb80958.o365apps.net/Pages/Default.aspx?SPHostUrl=https%3A%2F%2Fmyspsite%2Esharepoint%2Ecom%2Fsites%2Fspc&amp;SPLanguage=en%2DUS&amp;SPClientTag=0&amp;SPProductNumber=15%2E0%2E4433%2E1003</a></p>  <p>So, congrats if this was your first Autohosted app you built. It was a relatively simple one, but in time you’ll build some interesting apps that leverage more complex patterns. You can download the code from <a href="https://skydrive.live.com/redir?resid=40A717FC7FCD7E40!6127">here</a>. (Open the project, click the App project and then change the SharePoint Site URL to point to your SharePoint Online site before you build and deploy.)</p>  <p>For those that want to do more, there’s also a great sample from the SDK that illustrates OAuth and OData, which you can find <a href="http://msdn.microsoft.com/en-us/library/office/apps/fp179886%28v=office.15%29.aspx">here</a>. Nice walkthrough that actually works without any rework save for changing the site property because it uses an existing hidden list. </p>  <p>Well, that’s it for today. More to come on the Provider-hosted app model soon.</p>  <p>Happy coding!</p>  <p>Steve</p>]]></content:encoded>
    </item>
  </channel>
</rss>