<?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>goutham</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/goutham/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/goutham/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:20:50 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Azure Web Apps Best Practices</title>
      <link>https://docs.microsoft.com/archive/blogs/goutham/azure-web-apps-best-practices</link>
      <pubDate>Sun, 06 Sep 2015 07:16:00 GMT</pubDate>
      <dc:creator><![CDATA[gouthamu]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/goutham/2015/09/06/azure-web-apps-best-practices/</guid>
      <description><![CDATA[&nbsp;
&nbsp;
I want to start off with a disclaimer on this topic that not all practices are the...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: x-small;">I want to start off with a disclaimer on this topic that not all practices are the best practice for all scenarios. I have come up with a list, but it&rsquo;s up to you to pick whichever is the best for you. </span></p>
<p><span style="font-size: x-small;">Here are some practices that I have gathered working in field:</span></p>
<p><strong><span style="font-size: x-small;">Choose the closest data center:</span></strong></p>
<p><span style="font-size: x-small;">Test network latency to Azure Storage in worldwide data centers, determine the best region for your application and users. A closer data center will provide less latency and fast throughput. So if I had to recommend for a customer in my region I would ask them to test the latency using </span><a href="http://www.azurespeed.com/"><span style="font-size: x-small;">http://www.azurespeed.com/</span></a><span style="font-size: x-small;"> and decide the right fastest which is nearby.</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/4617.clip_image002_44404145.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/4617.clip_5F00_image002_5F00_44404145.jpg"><span style="font-size: x-small;"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/3755.clip_image002_thumb_3CB76289.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/3755.clip_5F00_image002_5F00_thumb_5F00_3CB76289.jpg" alt="clip_image002" width="551" height="110" border="0" /></span></a></p>
<p><span style="font-size: x-small;">This tool also give you an option to check on other latency related Media services, CDN, Traffic manager and others as shown below.</span></p>
<p><strong><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/5280.clip_image003_21156744.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/5280.clip_5F00_image003_5F00_21156744.png"><span style="font-size: x-small;"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image003" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/3618.clip_image003_thumb_37D73F7E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/3618.clip_5F00_image003_5F00_thumb_5F00_37D73F7E.png" alt="clip_image003" width="150" height="244" border="0" /></span></a></strong><strong></strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><span style="font-size: x-small;">Choose the right size that fits:</span></strong></p>
<p><span style="font-size: x-small;">What is the right size for my scenario? This is something I have seen with most of the customers and it&rsquo;s a question difficult to answer. We just throw higher configuration VM&rsquo;s for any perf related problem. Do not just throw big virtual machines at every problem, Test various configurations under load. Also, don&rsquo;t have more no of small instances which causes more redundancy. Some scenarios will benefit from more cores where moving data &gt;$ parallel overhead. For example, Video processing, Stateful services (Database Management System (DBMS)). Remember that a scale-up architecture means to increase the size of the virtual machine/Cloud service or Web Apps, while scale out means to increase the number of virtual machines/Cloud Services and Web Apps. So carefully select the right configuration or pricing tiers for your Web Apps. If you aren&rsquo;t sure then check Load testing capabilities of VSO to check how your app behaves on a specific load and then choose the right size.</span></p>
<p><a name="OLE_LINK1"></a><strong><span style="color: #333333; font-size: x-small;">Setup your Web apps for auto-scaling to manage unexpected traffic peaks</span></strong><span style="color: #333333;"><span style="font-size: x-small;"><strong>:</strong> </span></span></p>
<p><span style="font-size: x-small;">There many cloud patterns like unpredictable burst or growing exponential kind of business. For increased performance and throughput for your web apps on Microsoft Azure, you can use the Azure Portal to scale your App Service plan from free mode to Shared, Basic, Standard, or Premium mode. Scaling up on Azure web apps involves two related actions: changing your App Service plan mode to a higher level of service, and configuring certain settings after you have switched to the higher level of service. Higher service tiers like Standard and Premium modes offer greater robustness and flexibility in determining how your resources on Azure are used.</span></p>
<p><span style="font-size: x-small;">Changing modes and configuring them is easily done in the Scale tab of the management portal. You can scale up or down as required. These changes take only seconds to apply and affect all web apps in your App Service plan. They do not require your code to be changed or your applications to be redeployed. </span></p>
<p><a title="https://azure.microsoft.com/en-in/documentation/articles/web-sites-scale/" href="https://azure.microsoft.com/en-in/documentation/articles/web-sites-scale/"><span style="font-size: x-small;">https://azure.microsoft.com/en-in/documentation/articles/web-sites-scale/</span></a></p>
<p><strong><span style="font-size: x-small;">App Service Environment:</span></strong></p>
<p><span style="font-size: x-small;">Consider an App Service Environment which provides a fully isolated and dedicated environment for securely running all of your apps including Web Apps, Mobile Apps, API Apps and Logic Apps. An App Service Environment is always created inside of a regional virtual network. This enables apps to securely connect to other endpoints accessible only inside of a virtual network, including endpoints connected via Site-to-Site and ExpressRoute connections. It also enables an App Service Environment to be secured behind upstream appliances, firewalls and network SaaS providers. Apps running in an App Service Environment also have even more scaling options, including the ability to run on up to fifty (50) compute instances and the new P4 compute resource.</span></p>
<p><a href="https://azure.microsoft.com/en-us/documentation/articles/app-service-app-service-environment-intro/"><span style="font-size: x-small;">https://azure.microsoft.com/en-us/documentation/articles/app-service-app-service-environment-intro/</span></a></p>
<p><span style="font-size: x-small;"><strong>Load test your website</strong>: </span></p>
<p><span style="font-size: x-small;">Load test your web apps using different scale configurations (combination of Instance size and number of instances) to understand the right scale configuration under regular load. Various tools like Visual Studio, Apache Jmeter can be used to perform load tests. Learn more </span><a href="https://www.visualstudio.com/en-us/get-started/test/load-test-your-app-vs"><span style="font-size: x-small;">https://www.visualstudio.com/en-us/get-started/test/load-test-your-app-vs</span></a></p>
<p><strong><span style="font-size: x-small;">Run some Web Analytic tools:</span></strong></p>
<p><span style="font-size: x-small;">Consider using Web Analytic tools like App insights, New relic, Google Analytics or WebTrends to identify the traffic patterns and the average requests per second for your website.</span></p>
<p><a href="https://azure.microsoft.com/en-in/documentation/articles/app-insights-get-started/"><span style="font-size: x-small;">https://azure.microsoft.com/en-in/documentation/articles/app-insights-get-started/</span></a></p>
<p><strong><span style="font-size: x-small;">Take advantage of Deployment Slots for testing inproduction using Staged sites:</span></strong></p>
<p><span style="font-size: x-small;">Windows Azure Web Apps supports staged publishing that enables you to deploy updates to your staging version of the website and test it out in a production environment before updating your customer-facing website. See Staged Publishing on Windows Azure Web Apps to learn more </span><a href="https://azure.microsoft.com/en-us/documentation/articles/web-sites-staged-publishing/"><span style="font-size: x-small;">https://azure.microsoft.com/en-us/documentation/articles/web-sites-staged-publishing/</span></a></p>
<p><strong><span style="font-size: x-small;">Take advantage of Traffic Routing:</span></strong></p>
<p><span style="font-size: x-small;">You can redirect minimal traffic for your web apps to the staging and rest to the production web app so that you don&rsquo;t see any surprises when you fully move staging to production.<strong> </strong>Ramp-Up testing (aka Canary Deployment) &ndash; test your prototype by slowly increasing number of visitors seeing new feature. You can start with 5%, monitor performance/errors for a while and add another 5%. Do this until you find some critical errors or until you reach 100% (then you&rsquo;ll have your new base).</span></p>
<p><a href="https://glamcoder.ru/azure-websites-testing-in-production-to-win-en/"><span style="font-size: x-small;">https://glamcoder.ru/azure-websites-testing-in-production-to-win-en/</span></a></p>
<p><strong><span style="font-size: x-small;">Enable diagnostic logging:</span></strong></p>
<p><span style="font-size: x-small;">Azure Web Apps has built-in diagnostics to help you with debugging your application. There are two types of diagnostics:</span></p>
<ul>
<li><span style="font-size: x-small;">Site diagnostics:&nbsp; It allows you to enable detailed error logging, failed request Tracing and web server logging.</span></li>
<li><span style="font-size: x-small;"> Application diagnostics: It allows you to capture information produced by a web application.</span></li>
</ul>
<p><span style="font-size: x-small;">See How to enable diagnostic logging for Windows Azure websites to learn more </span><a href="https://azure.microsoft.com/en-us/documentation/articles/web-sites-enable-diagnostic-log/"><span style="font-size: x-small;">https://azure.microsoft.com/en-us/documentation/articles/web-sites-enable-diagnostic-log/</span></a></p>
<p><span style="font-size: x-small;"><strong>Remote Debugging:</strong> We can now do remote debugging in Visual studio of the Web Apps to find issues in the application.</span></p>
<p><a href="https://azure.microsoft.com/en-us/blog/introduction-to-remote-debugging-on-azure-web-sites/"><span style="font-size: x-small;">https://azure.microsoft.com/en-us/blog/introduction-to-remote-debugging-on-azure-web-sites/</span></a></p>
<p><strong><span style="font-size: x-small;">Enable monitoring:</span></strong></p>
<p><span style="font-size: x-small;">Azure Web apps supports monitoring functionality via the Monitor management page. You can setup alerts for various metrics like CPU Time, HTTP Client Errors, HTTP Server errors etc. to continuously monitor your website. See How to monitor your Windows Azure website to learn more </span><a href="https://azure.microsoft.com/en-us/documentation/articles/web-sites-monitor/"><span style="font-size: x-small;">https://azure.microsoft.com/en-us/documentation/articles/web-sites-monitor/</span></a></p>
<p>&nbsp;</p>
<p><strong><span style="font-size: x-small;">Write Secure Web Applications:</span></strong></p>
<p><span style="font-size: x-small;">Finding security issues and fixing it in production can be costly. So plan for security best practices for your application early in your development cycle. Azure Web apps complies with the key industry standards for security and reliability to provide our customers a secure platform but if your application has security vulnerabilities then it can make your architecture susceptible to an attack.</span></p>
<p><span style="font-size: x-small;">Azure Key Vault helps safeguard cryptographic keys and secrets used by cloud applications and services. By using Key Vault, you can encrypt keys and secrets (such as authentication keys, storage account keys, data encryption keys, .PFX files, and passwords) by using keys that are protected by hardware security modules (HSMs). Key Vault streamlines the key management process and enables you to maintain control of keys that access and encrypt your data. Developers can create keys for development and testing in minutes, and then seamlessly migrate them to production keys. Security administrators can grant (and revoke) permission to keys, as needed.</span></p>
<p><a href="https://azure.microsoft.com/en-in/documentation/articles/key-vault-get-started/"><span style="font-size: x-small;">https://azure.microsoft.com/en-in/documentation/articles/key-vault-get-started/</span></a></p>
<p><span style="font-size: x-small;">To build a secure solution on Azure Apps, you must follow secure coding practices when building your application to withstand an attack. See How to write secure code to learn more </span><a href="https://msdn.microsoft.com/en-us/security/aa570401.aspx"><span style="font-size: x-small;">https://msdn.microsoft.com/en-us/security/aa570401.aspx</span></a></p>
<p><span style="font-size: x-small;">You can use Azure&rsquo;s native network security features to help protect information assets, check the white paper</span></p>
<p><a href="http://download.microsoft.com/download/C/A/3/CA3FC5C0-ECE0-4F87-BF4B-D74064A00846/AzureNetworkSecurity_v3_Feb2015.pdf"><span style="font-size: x-small;">http://download.microsoft.com/download/C/A/3/CA3FC5C0-ECE0-4F87-BF4B-D74064A00846/AzureNetworkSecurity_v3_Feb2015.pdf</span></a></p>
<p>&nbsp;</p>
<p><span style="font-size: x-small;"><strong>Decouple your application logic: </strong></span> Decouple the application logic between web apps and web jobs in your application. You can run programs or scripts in WebJobs in your <a href="http://go.microsoft.com/fwlink/?LinkId=529714">App Service</a> web app in three ways: on demand, continuously, or on a schedule. There is no additional cost to use WebJobs.</p>
<p><a title="https://azure.microsoft.com/en-in/documentation/articles/web-sites-create-web-jobs/" href="https://azure.microsoft.com/en-in/documentation/articles/web-sites-create-web-jobs/">https://azure.microsoft.com/en-in/documentation/articles/web-sites-create-web-jobs/</a></p>
<p><strong><span style="font-size: x-small;">Automate Infrastructure:</span></strong></p>
<p><span style="font-size: x-small;">There are a lot of operations involved outside the cloud solution which includes development, deployment and various other operations to successfully maintain your Web apps. Automating these operations can make it easier to manage the shipping cycle for your application. All Azure Web apps features can be accessed using WAWS REST API making it easier to automate. You can also use ARM to have template based deployment and Role based Access for resources.</span></p>
<p><span style="font-size: x-small;">Some of the key operations for managing your website:</span></p>
<p><span style="font-size: x-small;">Deployments to the Web apps:</span></p>
<ul>
<li><span style="font-size: x-small;">You can use various deployment strategies like </span><a href="http://www.iis.net/downloads/microsoft/web-deploy"><span style="font-size: x-small;">Web deploy</span></a><span style="font-size: x-small;">, </span><a href="http://git-scm.com/"><span style="font-size: x-small;">GIT</span></a><span style="font-size: x-small;">, FTP etc. that can be easily automated to push out the content to your website(s) by building tools using </span><a href="http://www.windowsazure.com/en-us/downloads/"><span style="font-size: x-small;">Windows Azure SDK</span></a><span style="font-size: x-small;"> for the deployment tool of your preference.</span></li>
<li><span style="font-size: x-small;">ARM (Azure Resource Manager): Applications are typically made up of many components &ndash; maybe a web app, database, database server, storage, and 3rd party services. You do not see these components as separate entities, instead you see them as related and interdependent parts of a single entity. You want to deploy, manage, and monitor them as a group. Azure Resource Manager enables you to work with the resources in your application as a group. You can deploy, update or delete all of the resources for your application in a single, coordinated operation. You use a template for deployment and that template can work for different environments such as testing, staging and production. You can clarify billing for your organization by viewing the rolled-up costs for the entire group. Azure Resource Manager natively integrates access control into the management platform so you can specify which actions a user in your organization can take for a resource group.</span></li>
</ul>
<p><a href="https://azure.microsoft.com/en-in/documentation/articles/resource-group-overview/"><span style="font-size: x-small;">https://azure.microsoft.com/en-in/documentation/articles/resource-group-overview/</span></a></p>
<p><a href="https://azure.microsoft.com/en-in/documentation/articles/resource-group-authoring-templates/"><span style="font-size: x-small;">https://azure.microsoft.com/en-in/documentation/articles/resource-group-authoring-templates/</span></a></p>
<p><span style="font-size: x-small;"><strong>Stateless web <span style="color: #000000;">servers beh</span></strong></span><a name="OLE_LINK25"></a><a name="OLE_LINK24"></a><span style="color: #000000; font-size: x-small;"><strong>ind</strong></span><span style="font-size: x-small;"><span style="color: #000000;"><strong> a smart</strong> <strong>load</strong></span><strong> balancer</strong></span><span style="font-size: x-small;">:</span></p>
<p><span style="font-size: x-small;"><em>Stateless web tier</em> means you don't store any application data in the web server memory or file system. Keeping your web tier stateless enables you to both provide a better customer experience and save money:</span></p>
<ul>
<li><span style="font-size: x-small;">If the web tier is stateless and it sits behind a load balancer, you can quickly respond to changes in application traffic by dynamically adding or removing servers. In the cloud environment where you only pay for server resources for as long as you actually use them, that ability to respond to changes in demand can translate into huge savings.</span></li>
<li><span style="font-size: x-small;">A stateless web tier is architecturally much simpler to scale out the application. That too enables you to respond to scaling needs more quickly, and spend less money on development and testing in the process.</span></li>
</ul>
<p><strong><span style="font-size: x-small;">Caching:</span></strong></p>
<p><span style="font-size: x-small;">Use Caching and but try to avoid session state (or if you can&rsquo;t avoid it, use distributed cache rather than a database). It's often not practical in a real-world cloud app to avoid storing some form of state for a user session, but some approaches impact performance and scalability more than others. If you have to store state, the best solution is to keep the amount of state small and store it in cookies. If that isn't feasible, the next best solution is to use ASP.NET session state with a provider for distributed, in-memory cache. Azure offers the following caching services: Azure Redis Cache and Azure Managed Cache. Azure Redis cache is based on the popular open source Redis Cache and is the first choice for most caching scenarios. It gives you access to a secure, dedicated Redis cache, managed by Microsoft. A cache created using Azure Redis Cache is accessible from any application within Microsoft Azure.</span></p>
<p><a href="https://azure.microsoft.com/en-in/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/"><span style="font-size: x-small;">https://azure.microsoft.com/en-in/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/</span></a></p>
<p><a name="OLE_LINK26"></a><span style="font-size: x-small;"><strong>Use a CDN</strong><strong> t</strong><strong>o edge-cache static file assets (images, scripts)</strong></span></p>
<p><span style="font-size: x-small;">The Azure Content Delivery Network (CDN) caches Azure blobs and static content used by cloud services at strategically placed locations to provide maximum bandwidth for delivering content to users</span></p>
<p><span style="font-size: x-small;">The CDN offers developers a global solution for delivering high-bandwidth content by caching the content at physical nodes across the world. For a current list of CDN node locations, see Azure Content Delivery Network (CDN) POP Locations.</span></p>
<p><span style="font-size: x-small;">The benefits of using the CDN to cache Azure data include:</span></p>
<ul>
<li><span style="font-size: x-small;"> Better performance and user experience for end users who are far from a content source, and are using applications where many "internet trips" are required to load content.</span></li>
<li><span style="font-size: x-small;">Large distributed scale to better handle instantaneous high load, like at the start of a product launch event.</span></li>
</ul>
<p><span style="font-size: x-small;">Learn more </span><a href="https://azure.microsoft.com/en-in/documentation/articles/cdn-serve-content-from-cdn-in-your-web-application/"><span style="font-size: x-small;">https://azure.microsoft.com/en-in/documentation/articles/cdn-serve-content-from-cdn-in-your-web-application/</span></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: x-small;"><strong>Use Blobs for large frequently changing static content</strong> </span></p>
<p><span style="font-size: x-small;">Identify static assets in your application (e.g. images, CSS, and JavaScript files) and use blob storage for that instead of including them with your application package file. </span><span style="font-size: x-small;">To reduce load on the application, use blob storage to serve larger static content (&gt; 100 kB). Consider using loading such static content when you are updating these resources frequently in the application.</span></p>
<p>&nbsp;</p>
<p><span style="font-size: x-small;"><strong>Use .NET 4.5&rsquo;s async support to</strong><strong> avoid blocking calls:</strong></span></p>
<p><span style="font-size: x-small;">.NET 4.5 enhanced the C# and VB programming languages in order to make it much simpler to handle tasks asynchronously. The benefit of asynchronous programming is not just for parallel processing situations such as when you want to kick off multiple web service calls simultaneously. It also enables your web server to perform more efficiently and reliable under high load conditions. A web server only has a limited number of threads available, and under high load conditions when all of the threads are in use, incoming requests have to wait until threads are freed up. If your application code doesn't handle tasks like database queries and web service calls asynchronously, many threads are unnecessarily tied up while the server is waiting for an I/O response. This limits the amount of traffic the server can handle under high load conditions. With asynchronous programming, threads that are waiting for a web service or database to return data are freed up to service new requests until the data the is received. In a busy web server, hundreds or thousands of requests can then be processed promptly which would otherwise be waiting for threads to be freed up.</span></p>
<ul>
<li><span style="font-size: x-small;"> Async support in ASP.NET 4.5</span></li>
</ul>
<blockquote>
<p><span style="font-size: x-small;">In ASP.NET 4.5, support for asynchronous programming has been added not just to the language but also to the MVC, Web Forms, and Web API frameworks. For example, an ASP.NET MVC controller action method receives data from a web request and passes the data to a view which then creates the HTML to be sent to the browser. Frequently the action method needs to get data from a database or web service in order to display it in a web page or to save data entered in a web page.</span></p>
</blockquote>
<ul>
<li><span style="font-size: x-small;"> Async support in Entity Framework 6</span></li>
</ul>
<blockquote>
<p><span style="font-size: x-small;">As part of async support in 4.5 we shipped async support for web service calls, sockets, and file system I/O, but the most common pattern for web applications is to hit a database, and our data libraries didn&rsquo;t support async. Now Entity Framework 6 adds async support for database access.</span></p>
</blockquote>
<p><strong><span style="font-size: x-small;">Use Bundling and minification: </span></strong></p>
<p><span style="font-size: x-small;">Consider feature like bundling that makes it easy to &ldquo;bundle&rdquo; or &ldquo;combine&rdquo; multiple CSS and JavaScript files into fewer HTTP requests. This causes the browser to request a lot fewer files and in turn reduces the time it takes to fetch them.</span></p>
<p><span style="font-size: x-small;">ASP.NET has also a feature that makes it easy to reduce or &ldquo;minify&rdquo; the download size of the content as well.&nbsp; This is a process that removes whitespace, comments and other unneeded characters from both CSS and JavaScript. The result is smaller files, which will download and load in a browser faster. </span></p>
<p><span style="font-size: x-small;">So, these strategies will kind of reduce the amount of data going out of the Azure Web Server for which you will be billed. Any ways incoming data to Azure is free.</span></p>
<p><strong><span style="font-size: x-small;">Design the architecture to be resilient to failures:</span></strong></p>
<p><span style="font-size: x-small;">Although, Azure Web Apps offers a high </span><a href="http://go.microsoft.com/fwlink/?linkid=301329&amp;clcid=0x409"><span style="font-size: x-small;">SLA</span></a><span style="font-size: x-small;"> . For business continuity, it is important to understand the risk of service failures when using a cloud solution and identifying ways to reduce the impact during such an event.</span></p>
<p><span style="font-size: x-small;">Here are some must-do solutions to mitigate in such situations:</span></p>
<ul>
<li><span style="font-size: x-small;">Have an automated backup-and-restore strategy for your content by building your own tools with Windows Azure SDK or in Azure Portal or using third-party services like Cloud Cellar</span></li>
<li><span style="font-size: x-small;">Avoid single-instance roles; this configuration does not meet the requirements for the Azure SLA. During a node failure or upgrade event, a single-instance role is taken offline. Limit their use to low-priority &ldquo;maintenance&rdquo; tasks. Setup redundant copies of your website on at least 2 datacenters and Load balance incoming traffic between these datacenters.</span></li>
<li><span style="font-size: x-small;">Setup automatic failover capabilities when a service goes down in a datacenter using a Global traffic manager </span></li>
<li><span style="font-size: x-small;"> Setup Content delivery network (CDN) service along with your Web Apps to boost performance by caching content and provide a high availability of your Web Apps.</span></li>
<li><span style="font-size: x-small;">Remove dependency of any tightly coupled components/services you use with your Web Apps if possible.</span></li>
</ul>
<p><span style="font-size: x-small;">If you must have a dependent component, replication strategy can help make your architecture more robust.</span></p>
<ul>
<li><span style="font-size: x-small;">Design a&nbsp; risk-mitigation strategy before moving to the cloud to mitigate unexpected outages</span></li>
<li><span style="font-size: x-small;"> Create a staged environment and simulate failure scenarios by stopping your sites to evaluate how your website performs under failure</span></li>
</ul>
<p><strong><span style="font-size: x-small;">Implement appropriate SQL retry policies: </span></strong></p>
<p><span style="font-size: x-small;">Plan for all service calls (SQL Database, storage, and so on) to handle transient failure conditions and connectivity loss. Data access code should leverage a policy-driven retry mechanism to compensate for transient connection faults. The retry mechanism should detect temporary connection faults, reconnect to the target SQL Database, and reissue the command.</span></p>
<p><a href="https://msdn.microsoft.com/en-us/library/hh675232.aspx"><span style="font-size: x-small;">https://msdn.microsoft.com/en-us/library/hh675232.aspx</span></a></p>
<p><span style="font-size: x-small;"><strong>Optimize data transfer objects (DTOs):</strong> DTO&rsquo;s for <strong>serialization</strong> and <strong>network transmission</strong>. Given the highly distributed nature of Azure applications, scalability is bounded by how efficiently individual components of the system can communicate over the network. Any data passed over the network for communication or storage should implement <strong>JSON text serialization or a more efficient binary format</strong> with appropriate hints to minimize the amount of metadata transferred over the network (such as shorter field names &ldquo;on the wire&rdquo;).</span></p>
<p><strong><span style="font-size: x-small;">Use Cloud Patterns effectively</span></strong></p>
<p><span style="font-size: x-small;">There are around twenty-four design patterns focusing on Performance, Security and Transactions and so on. Check out the complete list here: </span><a href="https://msdn.microsoft.com/en-us/library/dn568099.aspx"><span style="font-size: x-small;">https://msdn.microsoft.com/en-us/library/dn568099.aspx</span></a></p>
<p><strong><span style="font-size: x-small;">Set Billing Alerts: </span></strong></p>
<p><span style="font-size: x-small;">This is a common concern from most of my customers, they are not sure of what is consumed when and how billing shoots up. You can use the Azure Billing Alert Service to create customized billing alerts that help you monitor and manage billing activity for your Azure accounts. So better you set billing alert for the specific needs and Microsoft Azure will notify you when that alert rule executes. Also you can check the new pricing calculator which is pretty good, which helps you to get an estimate of the overall services that you are using. You can also drill down to the Resource group level to find the cost that is associated with Azure.</span></p>
<p><a href="https://azure.microsoft.com/en-in/documentation/articles/azure-billing-set-up-alerts/"><span style="font-size: x-small;">https://azure.microsoft.com/en-in/documentation/articles/azure-billing-set-up-alerts/</span></a></p>
<p><span style="font-size: x-small;">Hope you get some good pointers to improve your current practices.&nbsp; </span></p>
<p><span style="font-size: x-small;">Thanks for stopping by.</span></p>
<p><span style="font-size: x-small;">Cheers,</span></p>
<p><span style="font-size: x-small;">Goutham</span></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>RDBMS Vs Hadoop</title>
      <link>https://docs.microsoft.com/archive/blogs/goutham/rdbms-vs-hadoop</link>
      <pubDate>Sat, 29 Aug 2015 23:25:03 GMT</pubDate>
      <dc:creator><![CDATA[gouthamu]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/goutham/2015/08/29/rdbms-vs-hadoop/</guid>
      <description><![CDATA[&#160;  Hi,  Thanks for stopping by here, let me shamelessly accept the fact, I was not sure of what...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>Hi,</p>  <p>Thanks for stopping by here, let me shamelessly accept the fact, I was not sure of what HDInsight is, what Hadoop is or what BigData is and why someone should use it instead of traditional RDBMS as I have spent most of my time in Web Development space like MVC, WPF and other .Net client side dev technologies with RDBMS like SQL. I had heard about Hadoop in bits and pieces from many of my industry friends. BigData or Hadoop is not an answer to any problem that you have. You need to know when to use it and when not to use it before you finalize on it. So thought will write a small blog for those developers like me who want to know it quickly may be precisely in a page.</p>  <p>Now that I’m trying things on Azure Big data, according to me Big data means really a big data, it is a collection of large datasets that cannot be processed using traditional computing techniques. Big data is not merely a data, rather it has become a complete subject, which involves various tools, techniques and frameworks.</p>  <p>Why Big Data?</p>  <ul>   <li>New Data Sources</li>    <li>Non Traditional Data Sources</li>    <li>Large Data Volumes </li> </ul>  <p>So, the other question is when to use RDBMS as supposed to Hadoop. Below table kind of summarizes well as when to go with Hadoop Vs RDBMS.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/4606.clip_image001_76FD213E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/4606.clip_5F00_image001_5F00_76FD213E.png"><img title="clip_image001" 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="clip_image001" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/8623.clip_image001_thumb_3AD3E647.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/8623.clip_5F00_image001_5F00_thumb_5F00_3AD3E647.png" width="525" height="355" /></a></p>  <p>Apache Hadoop is an open source software project that enables distributed processing of large data sets across clusters of commodity servers. It is designed to scale up from a single server to thousands of machines, with very high degree of fault tolerance.</p>  <p>Microsoft Azure HDInsight is a 100% Apache Hadoop-based service in the Azure cloud. It offers all the advantages of Hadoop, plus the ability to integrate with Excel, your on-premises Hadoop clusters, and the Microsoft ecosystem of business software and services. HDInsight-Our 100% Apache Hadoop-based service in the cloud which can scale to petabytes on demand to process unstructured and semi-structured data and you can use any of your development platform like Java, .NET, and more. You can actually spin up a Hadoop cluster in minutes and you can also easily integrate on-premises Hadoop clusters.</p>  <p>Find out more <a href="http://azure.microsoft.com/en-in/services/hdinsight/">http://azure.microsoft.com/en-in/services/hdinsight/</a></p>  <p><a title="https://azure.microsoft.com/en-in/documentation/articles/hdinsight-hadoop-tutorial-get-started-windows/" href="https://azure.microsoft.com/en-in/documentation/articles/hdinsight-hadoop-tutorial-get-started-windows/">https://azure.microsoft.com/en-in/documentation/articles/hdinsight-hadoop-tutorial-get-started-windows/</a></p>  <p>Hope that helps to get started.</p>  <p>Cheers,</p>  <p>Goutham</p>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft Azure DevOps Story</title>
      <link>https://docs.microsoft.com/archive/blogs/goutham/microsoft-azure-devops-story</link>
      <pubDate>Sat, 29 Aug 2015 22:40:00 GMT</pubDate>
      <dc:creator><![CDATA[gouthamu]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/goutham/2015/08/29/microsoft-azure-devops-story/</guid>
      <description><![CDATA[&nbsp;
Hi There,
I want to start off with this common support conversation between an Ops...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>Hi There,</p>
<p>I want to start off with this common support conversation between an Ops professional and Dev professional. Often it&rsquo;s an easy game to put the fault on other guy right. End of the day we are working for a common objective that is to make enterprises and customer successful.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/4578.clip_image002_180D5D48.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/4578.clip_5F00_image002_5F00_180D5D48.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/3441.clip_image002_thumb_3BC91593.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/3441.clip_5F00_image002_5F00_thumb_5F00_3BC91593.png" alt="clip_image002" width="244" height="124" border="0" /></a></p>
<p>Now the big question is what is <strong><span style="font-size: small;">DevOps?</span></strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1832.clip_image004_326FE110.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1832.clip_5F00_image004_5F00_326FE110.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image004" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1184.clip_image004_thumb_53EF109F.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1184.clip_5F00_image004_5F00_thumb_5F00_53EF109F.png" alt="clip_image004" width="244" height="114" border="0" /></a></p>
<p>This is the buzz word that you hear from lot of big players in the industry as of today. And it means lot of different things to different people. So what is Dev ops, according to me it&rsquo;s all about 3P&rsquo;s <strong><span style="text-decoration: underline;">P</span></strong>eople, <strong><span style="text-decoration: underline;">P</span></strong>rocess and <strong><span style="text-decoration: underline;">P</span></strong>roducts. So according to me Dev Ops is the entire process of taking an product idea from inception phase till deployment to production and continue to improve the application by monitoring and in terms of maintenance and updates till the entire life cycle of the product. The set of processes, methods and systems for communication, collaboration and integration between departments for Development, Operations and QA is often referred as DevOps.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/4645.clip_image006_78832ED4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/4645.clip_5F00_image006_5F00_78832ED4.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image006" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/8463.clip_image006_thumb_53193B66.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/8463.clip_5F00_image006_5F00_thumb_5F00_53193B66.png" alt="clip_image006" width="244" height="132" border="0" /></a></p>
<p>Microsoft is a key player in the DevOps space Our tools enable teams regardless of the technology they use or the platform they target. This is not something new in Microsoft world we have been doing this from ages, but to show you what is our Dev Ops story see the picture below</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/0724.clip_image007_2E1E0B9E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/0724.clip_5F00_image007_5F00_2E1E0B9E.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image007" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/0160.clip_image007_thumb_38DDF3A4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/0160.clip_5F00_image007_5F00_thumb_5F00_38DDF3A4.png" alt="clip_image007" width="244" height="139" border="0" /></a></p>
<p>I have only put some of the Processes, People involved and the Products(Tools) used in the DevOps story. Again this is pretty much same story for other Platforms as well. We have end to end story for heterogeneous ecosystem 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/01/52/03/metablogapi/3122.clip_image008_0367C230.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/3122.clip_5F00_image008_5F00_0367C230.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image008" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/6170.clip_image008_thumb_0E27AA36.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6170.clip_5F00_image008_5F00_thumb_5F00_0E27AA36.png" alt="clip_image008" width="244" height="139" border="0" /></a></p>
<p>&nbsp;</p>
<p>These are some of the List of Azure DevOps Practices that I personally love in this Microsoft Cloud space which makes enterprises and teams productive and efficient.&nbsp;</p>
<ul>
<li>Infrastructure as Code (IaC): Infrastructure as Code is a set of techniques and practices which help IT Pros remove the burden associated with the day to day build and management of modular infrastructure. It allows IT Pros to build and maintain their modern server environment in a way that is similar to how software developers build and maintain application code. For Azure we have Azure Resource Manager allows you to provision your applications using a declarative template. In a single template, you can deploy multiple services along with their dependencies. You use the same template to repeatedly deploy your application during every stage of the application lifecycle. Find out more here <a href="https://azure.microsoft.com/en-in/documentation/articles/resource-group-authoring-templates/">https://azure.microsoft.com/en-in/documentation/articles/resource-group-authoring-templates/</a></li>
<li>Continuous Integration and Deployment: You can configure your Visual Studio Online team projects to automatically build and deploy to Azure web apps or cloud services. VSO automatically deploys the binaries after doing a build to Azure after every code check-in. The package build process described in this article is equivalent to the Package command in Visual Studio, and the publishing steps are equivalent to the Publish command in Visual Studio. Find out more here <a href="https://azure.microsoft.com/en-in/documentation/articles/cloud-services-continuous-delivery-use-vso/">https://azure.microsoft.com/en-in/documentation/articles/cloud-services-continuous-delivery-use-vso/</a></li>
<li>Release Management: Visual Studio Release Management is a great solution for automating multi-stage deployment and managing the release process. Create managed continuous deployment pipelines to release quickly, easily, and often. With Release Management we can pretty much automate our release process and we can have predefined approval workflows. Deploy on-premises and to the cloud, Extend and customize as required. Find out more&nbsp; <a href="https://msdn.microsoft.com/en-us/library/dn217874(v=vs.140).aspx">https://msdn.microsoft.com/en-us/library/dn217874(v=vs.140).aspx</a></li>
<li>App Performance Monitoring: Detect issues, solve problems and continuously improve your applications. Quickly diagnose any problems in your live application. Understand what your users do with it. Configuration is very easy matter of adding JS code and a webconfig entry, and you'll see results within minutes in the portal with all the details. App insights helps enterprises for faster Detection of issues &amp; Remediation. Find out more at <a href="https://azure.microsoft.com/en-in/documentation/articles/app-insights-start-monitoring-app-health-usage/">https://azure.microsoft.com/en-in/documentation/articles/app-insights-start-monitoring-app-health-usage/</a></li>
<li>Load Testing &amp; Auto-Scale: We can find performance problems in our app to improve deployment quality and to make sure our app is always up or available to cater to the business needs. Make sure your app can handle traffic for your next launch or marketing campaign. Start running cloud-based load tests in almost no time with Visual Studio Online. For more information on Load test check this link <a href="https://www.visualstudio.com/get-started/test/load-test-your-app-vs#LoadTestVSIDE">https://www.visualstudio.com/get-started/test/load-test-your-app-vs#LoadTestVSIDE</a></li>
<li>This list can grow more and more but I want to highlight top 5, let me know your top DevOps practices&nbsp; <img class="wlEmoticon wlEmoticon-smile" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/6518.wlEmoticon-smile_14DD446A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6518.wlEmoticon_2D00_smile_5F00_14DD446A.png" alt="Smile" /></li>
</ul>
<p>Cheers,</p>
<p>Goutham</p>]]></content:encoded>
    </item>
    <item>
      <title>Architecting Modern Web Apps using Microsoft Azure</title>
      <link>https://docs.microsoft.com/archive/blogs/goutham/architecting-modern-web-apps-using-microsoft-azure</link>
      <pubDate>Fri, 28 Aug 2015 09:09:00 GMT</pubDate>
      <dc:creator><![CDATA[gouthamu]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/goutham/2015/08/28/architecting-modern-web-apps-using-microsoft-azure/</guid>
      <description><![CDATA[&nbsp;
I have always been asked this question when I go to customers site. What is the best...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>I have always been asked this question when I go to customers site. What is the best architecture? How to design an application which is best in maintainability, performance, scale, security, and the list goes on and on. Off late, I&rsquo;m preparing for my Azure Architecture certification so thought this will be a good thing blog about.</p>
<p>Well there is no best architecture or bad architecture it really depends on what you are doing and how you are architecting your application. Like how you travel or go to a specific destination, there could be multiple paths to reach your target and there could also be multiple modes to reach a destination. Now the question is, if I select a specific mode what is the optimal way to reach a destination. Again optimal is relative terminology for instance I might want to focus on Performance but I really don&rsquo;t care about security or scale. So there is always a tradeoff between the parameters that you choose. I think I&rsquo;m talking lot of Gyan here.</p>
<p>Okay let&rsquo;s focus on some Azure architectural stuff; my intent is to keep an application architecture really simple meanwhile a solid one. So I&rsquo;m writing my first blog on architecting an application which is an end to end ecommerce application which currently is the new trend in industry which can be developed using various Microsoft Dev technologies in Azure.</p>
<p>Let&rsquo;s start Vroom Vroom.</p>
<p>Sample E-Commerce Case Study High level Requirements</p>
<p>1. I should be able to view and place an order in my ecommerce application. Let&rsquo;s take for example the application is built using Asp.Net MVC.</p>
<p>2. My application should send a purchase copy in form of pdf and a text message to customer when he is done purchasing an item.</p>
<p>3. In addition to public facing website, the company also need have a backend web application again built in Asp.Net MVC to view the orders by the technicians and take new orders.</p>
<p>4. I also want an app for my companies delivery guys to keep track of the orders and other details with respect to order.</p>
<p>5. I want to test how my application in terms of how it behaves on peak load. Let&rsquo;s say on a &ldquo;Big Super Sale day for my E-Commerce site&rdquo; or how do I scale the application to cater to the peak load.</p>
<p>6. Find out the performance issues, exceptions and want analytics in the application.</p>
<p>For the moment I want to restrict to this in terms of business requirements. Also, since the company is new we don&rsquo;t want to focus on the infrastructure but want to put efforts on the core business value.</p>
<p>Okay, so now how would you architect this application?</p>
<p>Like, I said before any functionality can be achieved by multiple paths and modes even this can be architected in many ways. Microsoft Azure makes such tasks of companies life easier by giving the right set of PAAS offerings where you focus on App and Data and nothing else. In Azure we have something called as App services which we will take advantage of to solve this E-Commerce scenario.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/8787.clip_image001_77D96970.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/8787.clip_5F00_image001_5F00_77D96970.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image001" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/0714.clip_image001_thumb_0371B761.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/0714.clip_5F00_image001_5F00_thumb_5F00_0371B761.png" alt="clip_image001" width="390" height="170" border="0" /></a></p>
<p><strong>Azure App Service</strong> lets developers rapidly build, deploy and manage powerful websites and web apps. Build standards-based web apps and APIs using .NET, NodeJS, PHP, Python and Java. Deliver both web and mobile apps for employees or customers using a single back-end. Securely deliver APIs enabling additional apps and devices.</p>
<ul>
<li><strong>Web Apps:</strong> Create and deploy mission critical Web Applications that scale with your business previously known as Azure Website. Azure App Service Web Apps is a fully managed platform that enables you to build, deploy and scale enterprise-grade web apps in seconds. Focus on your application code, and let Azure take care of the infrastructure to scale and securely run it for you. Web Apps Gallery, Auto Scaling, Continuous Integration, Webjobs are some of top features in Web apps. We can use Web Apps for creating a customer site and Admin site for our operation team using any of the technologies that you love. I prefer Asp.net MVC but its again your choice.</li>
<li><strong>Mobile Apps</strong>: It&rsquo;s easy to rapidly build engaging cross-platform and native apps for iOS, Android, Windows or Mac, store app data in the cloud or on-premises, authenticate users, send push notifications, as well as add your custom backend logic in C# or Node.js. This was previously known as Azure Mobile Service. So we can create a backend for our case study using Mobile Apps.</li>
<li><strong>API Apps</strong>: It&rsquo;s a new app type in App Service that lets you easily build and consume Restful APIs in the cloud. With API Apps, teams can easily share APIs with other teams in your organization with your own private organizational gallery of APIs. APIs can also be shared publicly and monetized for third-party developers. API Apps makes it easy to secure your APIs. Secure your API Apps with support for Azure Active Directory, including single sign-on support for many third-party services. Rich support for social authentication to Google, Microsoft, Facebook, and Twitter is also available. We can create some API&rsquo;s and expose it to be consumed by our logic apps or even by our Web Apps.&nbsp;</li>
<li><strong>Logic Apps:</strong> It&rsquo;s a new app type in App Service that lets you easily automate business process. Logic apps enable you to develop and deliver powerful integration solutions with ease. With Logic apps now you can visually create business processes and workflows. Deliver integration capabilities in Web, Mobile and API apps. We can write the custom workflows in the applications right from placing an order to delivering an order to customers of my ecommerce engine.</li>
</ul>
<p>Let&rsquo;s continue to fit the customer scenario in line with the Azure App Services offerings. This is how I think you should architect your application.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/4784.clip_image002_106B9772.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/4784.clip_5F00_image002_5F00_106B9772.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/4454.clip_image002_thumb_1B97B26D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/4454.clip_5F00_image002_5F00_thumb_5F00_1B97B26D.png" alt="clip_image002" width="389" height="178" border="0" /></a></p>
<p><strong>Sample E-Commerce Architecture </strong></p>
<p><strong>App Insights: </strong>Visual Studio Application Insights monitors your live application to help you detect and diagnose performance issues and exceptions, and discover how your app is used. It can be used with a wide variety of application types including Asp.net Web Apps, Windows Phone or any other .Net Apps. It also works for apps that are hosted on your own on-premises IIS servers.</p>
<p><strong>VSO Load Test:</strong> We can find performance problems in your app before customers do. We want to make that our app can handle traffic for your next launch or marketing campaign. We can run cloud-based load tests in almost no time with Visual Studio Online.</p>
<p><strong>Cloud Service: </strong>Deploy highly-available, infinitely-scalable applications and APIs. You can use Web Roles and Worker roles of Cloud Service to implement PDF receipts generations. Remember you can also do this in the same Web App instance using Webjobs like I said it&rsquo;s a choice that I would prefer to keep decouple the application for better performance.</p>
<p><strong>Blob Storage: </strong>Azure Blob storage is a service for storing large amounts of unstructured data, such as text or binary data, that can be accessed from anywhere in the world via HTTP or HTTPS. You can use Blob storage to expose data publicly to the world, or to store application data privately. I&rsquo;m proposing Blob for this scenario to store the files which has got the capability for Performing secure backup and disaster recovery of our files.</p>
<p>Hope this is a good read if you are planning to design or architect your modern applications for cloud. You can still add more business requirements and add features to this but I wanted to get started. Hope it&rsquo;s a good start <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/6102.wlEmoticon-smile_0B1F4172.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6102.wlEmoticon_2D00_smile_5F00_0B1F4172.png" alt="Smile" /></p>
<p>Eager to know your thoughts and opinion on this, feel free to drop a comment if you have any questions or opinions below.</p>
<p>Cheers,</p>
<p>Goutham</p>]]></content:encoded>
    </item>
    <item>
      <title>Azure PowerShell ForbiddenError: The server failed to authenticate the request. Verify the certificate is valid and is associated with this subscription.</title>
      <link>https://docs.microsoft.com/archive/blogs/goutham/azure-powershell-forbiddenerror-the-server-failed-to-authenticate-the-request-verify-the-certificate-is-valid-and-is-associated-with-this-subscription</link>
      <pubDate>Tue, 16 Jun 2015 20:57:00 GMT</pubDate>
      <dc:creator><![CDATA[gouthamu]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/goutham/2015/06/16/azure-powershell-forbiddenerror-the-server-failed-to-authenticate-the-request-verify-the-certificate-is-valid-and-is-associated-with-this-subscription/</guid>
      <description><![CDATA[&nbsp;Hi There,
&nbsp;You might be here reading this blog because of the below...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;Hi There,</p>
<p>&nbsp;You might be here reading this blog because of the below error!</p>
<p>ForbiddenError: The server failed to authenticate the request. Verify the certificate is valid and is associated with this subscription. You might get this error when you are working on Azure PowerShell and this being most common error when working with PowerShell.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/7041.clip_image002_14B84740.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/7041.clip_5F00_image002_5F00_14B84740.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/4760.clip_image002_thumb_0F6BF140.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/4760.clip_5F00_image002_5F00_thumb_5F00_0F6BF140.jpg" alt="clip_image002" width="244" height="42" border="0" /></a></p>
<p>How to fix this?</p>
<p>Turns out to be simple pretty straight forward, but I spent almost 3 hours in mid night figuring out what&rsquo;s wrong in command&nbsp;or what's wrong with certificate &nbsp;and the below command does the magic of clearing your azure profile which is existing.</p>
<p>Clear-AzureProfile</p>
<p>&nbsp;</p>
<p>You can also consider deleting the content of the folder <strong>C:\Users\AppData\Roaming\Windows Azure Powershell&nbsp; </strong>manually<strong>. </strong>After which again run Add-AzureAccount to get the fresh/new one by entering your subscription details and&nbsp; then execute any Azure PowerShell commands that you wish to run <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/7776.wlEmoticon-smile_0C59934B.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/7776.wlEmoticon_2D00_smile_5F00_0C59934B.png" alt="Smile" /></p>
<p>Hope it helps!</p>
<p>PS: Thanks to Wriju for sharing this tip.</p>]]></content:encoded>
    </item>
    <item>
      <title>Visual State Manager and Adaptive Triggers for Universal Windows App</title>
      <link>https://docs.microsoft.com/archive/blogs/goutham/visual-state-manager-and-adaptive-triggers-for-universal-windows-app</link>
      <pubDate>Sun, 17 May 2015 02:45:07 GMT</pubDate>
      <dc:creator><![CDATA[gouthamu]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/goutham/2015/05/17/visual-state-manager-and-adaptive-triggers-for-universal-windows-app/</guid>
      <description><![CDATA[&#160;  Excited to write this blog post as this is one of the much awaited topic that I wanted blog...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>Excited to write this blog post as this is one of the much awaited topic that I wanted blog about. Yes Universal Windows App <img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Smile" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/8712.wlEmoticon-smile_133AD867.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/8712.wlEmoticon_2D00_smile_5F00_133AD867.png" /> One App targeting for one Billion Devices, that’s just incredible reach for developers and enterprises!</p>  <p>With Universal App platform now we can target all devices essentially running same app running from IOT devices, Phones, Tablets, Laptops, Big Desktops and Huge Displays, No matter what device is used to view them. It’s the same app package! With the introduction of the Windows 10 core and the Universal Windows Platform (UWP), one app package can run across all platforms.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/8664.clip_image002_3E15CD2A.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/8664.clip_5F00_image002_5F00_3E15CD2A.jpg"><img title="clip_image002" 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="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/2744.clip_image002_thumb_5F94FCB9.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/2744.clip_5F00_image002_5F00_thumb_5F00_5F94FCB9.jpg" width="200" height="195" /></a></p>  <p>Alright let’s try to understand the idea behind designing these kind of application from developer perspective that too from XAML and C# side of things. As a HTML Developer or Web developer would have done this in the past in CSS meaning designing the Web application to scale to different resolutions or form factors also have different look and feel for their site based on<strong> Media Queries</strong>.</p>  <p>Okay first let’s see what we get with Windows 10 App templates. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/0636.clip_image004_640E0E31.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/0636.clip_5F00_image004_5F00_640E0E31.jpg"><img title="clip_image004" 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="clip_image004" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1663.clip_image004_thumb_47FFDFF7.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1663.clip_5F00_image004_5F00_thumb_5F00_47FFDFF7.jpg" width="244" height="174" /></a></p>  <p>You need to download Windows 10 SDK and tools to get this option while you install VS 2015.</p>  <p>1. Select Blank App template (Windows Universal) you should see something like below. This nothing new if you have developed WPF, Windows Store App or Windows Phone app before. So I won’t bore you with Hello World app J</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/6811.clip_image006_2C5DE4B2.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6811.clip_5F00_image006_5F00_2C5DE4B2.jpg"><img title="clip_image006" 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="clip_image006" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/4760.clip_image006_thumb_2DC20784.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/4760.clip_5F00_image006_5F00_thumb_5F00_2DC20784.jpg" width="240" height="244" /></a></p>  <p>2. Open the App from Blend to design a page targeting different form factors like Phone, Tablet and Desktop. To do that Right click on the app and select Design with blend option. This should open the app in Blend.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/7762.clip_image008_525625B9.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/7762.clip_5F00_image008_5F00_525625B9.jpg"><img title="clip_image008" 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="clip_image008" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/8371.clip_image008_thumb_2F94EDFC.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/8371.clip_5F00_image008_5F00_thumb_5F00_2F94EDFC.jpg" width="219" height="244" /></a></p>  <p>3. You should see something like below, Expression blend was scary initially when I started WPF/Silverlight development and I always thought it’s a tool for Designers only. But the way expression blend as a tool has evolved over years I must say it’s Awesome. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/4431.clip_image010_2A46074B.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/4431.clip_5F00_image010_5F00_2A46074B.jpg"><img title="clip_image010" 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="clip_image010" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/5556.clip_image010_thumb_409E3D41.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/5556.clip_5F00_image010_5F00_thumb_5F00_409E3D41.jpg" width="244" height="139" /></a></p>  <p>4. To Experience its awesomeness lets design an app with few basic elements on the screen and let’s render the UI on different devices. First click on the MainPage.xaml and click on the drop down as shown in the 1<sup>st</sup> Arrow. Basically you get to see your page in different device in design time. Next if you want to check your page as how it looks click on the Portrait or Landscape button as shown in 2<sup>nd</sup> and 3<sup>rd</sup> arrow. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/3660.clip_image012_544B26D5.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/3660.clip_5F00_image012_5F00_544B26D5.jpg"><img title="clip_image012" 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="clip_image012" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/2046.clip_image012_thumb_3189EF18.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/2046.clip_5F00_image012_5F00_thumb_5F00_3189EF18.jpg" width="244" height="122" /></a></p>  <p>5. We have base Grid added for you with in the Page, now let’s divide the Grid into 2 portions in 1:5 ratio as shown below using star sizing. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/6708.clip_image014_561E0D4D.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6708.clip_5F00_image014_5F00_561E0D4D.jpg"><img title="clip_image014" 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="clip_image014" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/8880.clip_image014_thumb_6C077F9D.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/8880.clip_5F00_image014_5F00_thumb_5F00_6C077F9D.jpg" width="244" height="158" /></a></p>  <p>6. Created Image folder and added 3 images Laptop.jpg, Tablet.jpg and Mobile.jpg. Add couple of controls like TextBlock and Image controls inside the grid that we added in the previous step and set few properties as highlighted below position these controls on the UI as below.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/3443.clip_image016_49B27AD5.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/3443.clip_5F00_image016_5F00_49B27AD5.jpg"><img title="clip_image016" 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="clip_image016" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/2500.clip_image016_thumb_2B67C3DF.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/2500.clip_5F00_image016_5F00_thumb_5F00_2B67C3DF.jpg" width="244" height="128" /></a></p>  <p>7. Now time to test how it looks on phone. Click on the Emulator option as shown below to see how the UI looks on 4inch Phone emulator.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/5657.clip_image018_68F7B259.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/5657.clip_5F00_image018_5F00_68F7B259.jpg"><img title="clip_image018" 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="clip_image018" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/3823.clip_image018_thumb_4AACFB63.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/3823.clip_5F00_image018_5F00_thumb_5F00_4AACFB63.jpg" width="244" height="192" /></a></p>  <p>8. You should see the text block and the image as shown in the screen shot below.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/6521.clip_image020_45CA47A7.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6521.clip_5F00_image020_5F00_45CA47A7.jpg"><img title="clip_image020" 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="clip_image020" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/6445.clip_image020_thumb_1EFEC218.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6445.clip_5F00_image020_5F00_thumb_5F00_1EFEC218.jpg" width="150" height="244" /></a></p>  <p>9. If you notice as of now the image control source is set to the Mobile.jpg so the Nokia phones image is shown on a mobile emulator. Okay so now if we run the application again on a Laptop or any other tablet emulator it’s going to show the same image. But that isn’t the behavior we want. We want the app automatically adjust the UI based on the devices it runs like “Media Queries in CSS”. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1106.clip_image022_00B40B22.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1106.clip_5F00_image022_5F00_00B40B22.jpg"><img title="clip_image022" 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="clip_image022" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/8463.clip_image022_thumb_56D396EC.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/8463.clip_5F00_image022_5F00_thumb_5F00_56D396EC.jpg" width="244" height="139" /></a></p>  <p>10. Now it’s time to implement cool stuff, Go to the states tab in expression blend and click on the Add state group tab</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/3125.clip_image024_26AC4C29.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/3125.clip_5F00_image024_5F00_26AC4C29.jpg"><img title="clip_image024" 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="clip_image024" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/6283.clip_image024_thumb_7D380AE8.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6283.clip_5F00_image024_5F00_thumb_5F00_7D380AE8.jpg" width="169" height="244" /></a></p>  <p>11. Now click on the Add state button and add 3 new states and rename it as 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/01/52/03/metablogapi/1524.clip_image026_180430F5.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1524.clip_5F00_image026_5F00_180430F5.jpg"><img title="clip_image026" 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="clip_image026" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/0474.clip_image026_thumb_47C1D974.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/0474.clip_5F00_image026_5F00_thumb_5F00_47C1D974.jpg" width="159" height="244" /></a></p>  <p>12. Click on the XAML view of the View page and add Adaptive triggers to the Visual States that we created for Phone, Tablet and Desktop. Set <b>MinWindowWidth</b> property for each one of the <b>Adaptive Triggers</b> for Visual state for VisualStatePhone, VisualStateTablet and VisualStateDesktop as 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/01/52/03/metablogapi/6786.clip_image028_3E68A4F1.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6786.clip_5F00_image028_5F00_3E68A4F1.jpg"><img title="clip_image028" 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="clip_image028" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/0383.clip_image028_thumb_69AFCCA9.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/0383.clip_5F00_image028_5F00_thumb_5F00_69AFCCA9.jpg" width="244" height="134" /></a></p>  <p>13. Now what happens is when the Universal App that we have written is viewed in width 0-600 screen width Visual State for Phone will be triggered and for 600-800 width Visual State for tablet will be triggered and anything beyond 800 Visual state for desktop will be triggered. Now it’s time to set some of the properties that affect the look and feel for different views. We do that with the help of VisualState.Setters as shown below. We are setting the Image controls source property to the desired value that we want in our case when the screen is in 600-800 range we are changing the image source from Mobile.jpg to Tablet.jpg. Similarly need to do for Desktop Visual State and Mobile Visual State as 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/01/52/03/metablogapi/5516.clip_image030_7952686B.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/5516.clip_5F00_image030_5F00_7952686B.jpg"><img title="clip_image030" 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="clip_image030" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/2705.clip_image030_thumb_48BEEAB3.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/2705.clip_5F00_image030_5F00_thumb_5F00_48BEEAB3.jpg" width="244" height="187" /></a></p>  <p>14. And that is it we are ready to test our application on different devices width. Select local Machine and Click on the play button to rock n roll. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/2251.clip_image032_18979FF0.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/2251.clip_5F00_image032_5F00_18979FF0.jpg"><img title="clip_image032" 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="clip_image032" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/4331.clip_image032_thumb_3A16CF7F.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/4331.clip_5F00_image032_5F00_thumb_5F00_3A16CF7F.jpg" width="244" height="139" /></a></p>  <p>App View in Desktop with width greater than 800.</p>  <p>15. Reduce the width with the help of mouse from the right side edges of the app you should see something like below. App adjusting the UI itself to change the look and feel in our case we are changing the image from Desktop.jpg to Mobile.jpg when the screen width is changed. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1541.clip_image034_02D04844.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1541.clip_5F00_image034_5F00_02D04844.jpg"><img title="clip_image034" 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="clip_image034" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/7024.clip_image034_thumb_672E4CFE.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/7024.clip_5F00_image034_5F00_thumb_5F00_672E4CFE.jpg" width="244" height="139" /></a></p>  <p>App View in Phone with width in range of 0-600.</p>  <p>16. Similarly if you now slightly increase the width in Range of 600-800 you should see again our universal app adjusting its screen UI elements for Tablets.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/5314.clip_image036_3707023B.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/5314.clip_5F00_image036_5F00_3707023B.jpg"><img title="clip_image036" 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="clip_image036" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/8461.clip_image036_thumb_0D92C0FB.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/8461.clip_5F00_image036_5F00_thumb_5F00_0D92C0FB.jpg" width="244" height="139" /></a></p>  <p>App View in Tablet with width greater than 600 and less than 800</p>  <p>So, similar to what we have for Media queries in CSS, in XAML we have Visual State Manager feature in Blend which is very effective for designing UI’s that changes the look and feel automatically to adapts/adjusts itself for the devices that it runs on. </p>  <p>Waiting to see some great apps on Universal Windows Platform (UWP) from you.</p>  <p>Thanks for reading! </p>]]></content:encoded>
    </item>
    <item>
      <title>Authenticate Users with Azure Active Directory via FedUtil.exe without Identity and Access tool/Add STS Reference in VS2013</title>
      <link>https://docs.microsoft.com/archive/blogs/goutham/authenticate-users-with-azure-active-directory-via-fedutil-exe-without-identity-and-access-tooladd-sts-reference-in-vs2013</link>
      <pubDate>Sat, 09 May 2015 03:25:00 GMT</pubDate>
      <dc:creator><![CDATA[gouthamu]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/goutham/2015/05/09/authenticate-users-with-azure-active-directory-via-fedutil-exe-without-identity-and-access-tooladd-sts-reference-in-vs2013/</guid>
      <description><![CDATA[&nbsp;

Authentication is the most common and important feature for any LOB applications. We are...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p><a name="OLE_LINK13"></a><a name="OLE_LINK12"></a><a name="OLE_LINK11"></a><a name="OLE_LINK10"></a><a name="OLE_LINK9"></a><a name="OLE_LINK8"></a></p>
<p>Authentication is the most common and important feature for any LOB applications. We are looking at moving Authentication logic outside the application so that it can be used for any number of application that you have in your organization aka &ldquo;Identity as a Service&rdquo;.</p>
<p>In this blog post I&rsquo;ll walk you through how to configure Windows Azure Active Directory Authentication for existing MVC applications that you have.</p>
<p>First let&rsquo;s create a New Directory Tenant<a name="OLE_LINK1"></a>, we will provision a new Microsoft Azure Active Directory Tenant from the Management Portal.</p>
<p>1. Navigate to <a href="https://manage.windowsazure.com">https://manage.windowsazure.com</a> using a web browser and sign in using the Microsoft Account associated with your Microsoft Azure account.</p>
<p>2. Select <strong>Active Directory</strong> from the left pane.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/7571.clip_image001_32AB31A6.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/7571.clip_5F00_image001_5F00_32AB31A6.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image001" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/2625.clip_image001_thumb_7E0D661B.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/2625.clip_5F00_image001_5F00_thumb_5F00_7E0D661B.png" alt="clip_image001" width="220" height="209" border="0" /></a></p>
<p><em>Accessing Microsoft Azure Active Directory</em></p>
<p>3. Click New-&gt;Active Directory-&gt;Directory-&gt;Custom Create.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/4212.clip_image003_7FDDBBE2.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/4212.clip_5F00_image003_5F00_7FDDBBE2.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image003" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/5633.clip_image003_thumb_2F9B6462.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/5633.clip_5F00_image003_5F00_thumb_5F00_2F9B6462.jpg" alt="clip_image003" width="244" height="107" border="0" /></a></p>
<p><em>Adding a new Active Directory Tenant</em></p>
<p>4. Enter a name to describe the new domain name, the domain name and country. Click the check button to continue.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/6254.clip_image005_5F590CE1.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6254.clip_5F00_image005_5F00_5F590CE1.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image005" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/6170.clip_image005_thumb_2EC58F29.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6170.clip_5F00_image005_5F00_thumb_5F00_2EC58F29.jpg" alt="clip_image005" width="244" height="160" border="0" /></a></p>
<p><em>Filling Active Directory Information</em></p>
<p>5. Click on the newly created directory entry to display the User management UI (click on the Users menu). The directory tenant is initially empty, except for the Microsoft Account administering the Microsoft Azure subscription in which the new tenant was created.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1004.clip_image007_777F07ED.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1004.clip_5F00_image007_5F00_777F07ED.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image007" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/0876.clip_image007_thumb_0E40E028.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/0876.clip_5F00_image007_5F00_thumb_5F00_0E40E028.jpg" alt="clip_image007" width="244" height="58" border="0" /></a></p>
<p><em>Active Directory User List</em></p>
<p>6. Now you will add a new user to the directory. Click on the <strong>User</strong> menu item at the top of the dashboard then then select the <strong>Add User</strong> button in the bottom bar.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1212.clip_image008_290D0634.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1212.clip_5F00_image008_5F00_290D0634.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image008" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/7674.clip_image008_thumb_420B672A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/7674.clip_5F00_image008_5F00_thumb_5F00_420B672A.png" alt="clip_image008" width="105" height="84" border="0" /></a></p>
<p><em>Adding a new user to Active Directory</em></p>
<p>7. In the dialog box, keep the default option of <strong>New user in your organization</strong> and type a username (e.g.: <em>newusername</em>). Click <strong>Next</strong> to continue.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1754.clip_image010_15EE6A39.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1754.clip_5F00_image010_5F00_15EE6A39.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image010" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/5808.clip_image010_thumb_655AEC80.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/5808.clip_5F00_image010_5F00_thumb_5F00_655AEC80.jpg" alt="clip_image010" width="244" height="194" border="0" /></a></p>
<p><em>Filling new user details</em></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>8. Enter the user profile data. Keep the <strong>Role</strong> option of <strong>User</strong>.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/6320.clip_image012_2A0A1773.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6320.clip_5F00_image012_5F00_2A0A1773.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image012" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/5282.clip_image012_thumb_59C7BFF2.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/5282.clip_5F00_image012_5F00_thumb_5F00_59C7BFF2.jpg" alt="clip_image012" width="244" height="209" border="0" /></a></p>
<p><em>Filling user profile information</em></p>
<p>9. The Management Portal generates a temporary password, which will have to be used at the time of the first login. At that time, the user will be forced to change password. Click the <strong>Create</strong> check button. Take note of the temporary password, as you will need it in the following tasks. Click the check button to create the user.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/2664.clip_image014_5B9815B9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/2664.clip_5F00_image014_5F00_5B9815B9.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image014" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/8461.clip_image014_thumb_2F7B18C8.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/8461.clip_5F00_image014_5F00_thumb_5F00_2F7B18C8.png" alt="clip_image014" width="244" height="193" border="0" /></a></p>
<p><em>Creating a temporary password</em></p>
<p>At this point, we have everything we need for providing an authentication authority in our web SSO scenario: a directory tenant and a valid user in it.</p>
<p>&nbsp;</p>
<p><a name="Ex1Task2"></a><strong></strong></p>
<p>If you have done Claim based authentication this in the past, probably you would have used VS 2012 Identity and Access tool via 'Add STS Reference' window. But, Identity and Access tool or Add STS Reference is missing in VS 2013. Good news is either you can configure your application for Authentication Single Sign on using Windows Azure Active directory when you are creating a New project as shown in the below picture which will take care everything or you can use Federation Utility tool aka FedUtil.exe.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/6675.clip_image016_463CF102.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6675.clip_5F00_image016_5F00_463CF102.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image016" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/7380.clip_image016_thumb_50FCD908.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/7380.clip_5F00_image016_5F00_thumb_5F00_50FCD908.jpg" alt="clip_image016" width="244" height="172" border="0" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/8132.clip_image018_2EA7D440.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/8132.clip_5F00_image018_5F00_2EA7D440.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image018" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/5826.clip_image018_thumb_7E145687.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/5826.clip_5F00_image018_5F00_thumb_5F00_7E145687.jpg" alt="clip_image018" width="244" height="134" border="0" /></a></p>
<p>Let&rsquo;s see the 2<sup>nd</sup> approach using FedUtil.exe for authenticating users on Microsoft Azure Active Directory in this blog post.</p>
<p>First of all, FedUtil.exe is provided with Windows&reg; Identity Foundation (WIF). It helps you to establish trust from a relying party (RP) application to security token services (STSes).</p>
<p>Where can I find it?</p>
<p>This is am exe which sits in the installation folder of WIF SDK. So if you haven&rsquo;t installed it then you have to install the SDK. Typically the path for this exe is C:\Program Files (x86)\Windows Identity Foundation SDK\v4.0</p>
<p>FedUtil.exe provides the following capabilities:</p>
<ul>
<li>Register an existing production STS as a trusted issuer of the RP application.</li>
<li>Help develop a claims-aware application by offering a local STS.</li>
<li>Make an existing application claims-aware.</li>
<li>Update federation metadata for an RP application.</li>
<li>Schedule automatic updates of the federation metadata for an RP application</li>
</ul>
<p>Okay now we know what FedUtil does, let&rsquo;s now start using it to add authentication for our existing application which uses users who are in Azure Active Directory.</p>
<p>Now let&rsquo;s open and existing MVC application in VS 2013 that we have.</p>
<p>1. Run the application by pressing F5 and get the URL of the application.</p>
<p>2. Launch FedUtil.exe</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/7181.clip_image019_7B6E2B87.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/7181.clip_5F00_image019_5F00_7B6E2B87.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image019" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/8512.clip_image019_thumb_5D8FA786.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/8512.clip_5F00_image019_5F00_thumb_5F00_5D8FA786.png" alt="clip_image019" width="244" height="185" border="0" /></a></p>
<p>3. For Application Configuration Location point it to the WebConfig file in the project that you&rsquo;re currently in.</p>
<p>4. Next Add the application URI that you have copied in this case since we are testing locally we can give localhost path for your MVC app. But you can give the exact URL of your Website or WebApps.</p>
<p>5. Now click on Next you should see the below screen. Select existing STS and paste the federationMetadata.xml. If you are wondering where is federationmetadata.xml then follow next few steps to get it.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/7484.clip_image020_3172AA95.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/7484.clip_5F00_image020_5F00_3172AA95.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image020" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/2112.clip_image020_thumb_61305314.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/2112.clip_5F00_image020_5F00_thumb_5F00_61305314.png" alt="clip_image020" width="244" height="177" border="0" /></a></p>
<p>6. Go back to management portal select the Active Directory that you have created and click on Application tab and click on add an application.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/3323.clip_image022_17A10517.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/3323.clip_5F00_image022_5F00_17A10517.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image022" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1184.clip_image022_thumb_475EAD96.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1184.clip_5F00_image022_5F00_thumb_5F00_475EAD96.jpg" alt="clip_image022" width="244" height="82" border="0" /></a></p>
<p>7. Click on Add application my organization is developing</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/5807.clip_image023_10845950.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/5807.clip_5F00_image023_5F00_10845950.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image023" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/6330.clip_image023_thumb_44B88296.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6330.clip_5F00_image023_5F00_thumb_5F00_44B88296.png" alt="clip_image023" width="244" height="111" border="0" /></a></p>
<p>8. Enter a Name for the application and click on Next</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/2553.clip_image024_1FBAC21D.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/2553.clip_5F00_image024_5F00_1FBAC21D.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image024" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/4617.clip_image024_thumb_4F786A9C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/4617.clip_5F00_image024_5F00_thumb_5F00_4F786A9C.png" alt="clip_image024" width="244" height="175" border="0" /></a></p>
<p>9. Enter the URL of your application in my case I&rsquo;m using localhost but you can replace it with your actual application URL.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/5125.clip_image025_23C7A0A0.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/5125.clip_5F00_image025_5F00_23C7A0A0.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image025" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1016.clip_image025_thumb_57FBC9E6.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1016.clip_5F00_image025_5F00_thumb_5F00_57FBC9E6.png" alt="clip_image025" width="244" height="176" border="0" /></a></p>
<p>10. Click on the check mark then you should see the following page</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/5141.clip_image027_01729BD8.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/5141.clip_5F00_image027_5F00_01729BD8.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image027" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/6562.clip_image027_thumb_0342F19F.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6562.clip_5F00_image027_5F00_thumb_5F00_0342F19F.jpg" alt="clip_image027" width="244" height="167" border="0" /></a></p>
<p>11. Click on Enable Users to Sign on or View Endpoints and copy the federation metadata document URL</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/0652.clip_image029_05134766.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/0652.clip_5F00_image029_5F00_05134766.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image029" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/2728.clip_image029_thumb_547FC9AD.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/2728.clip_5F00_image029_5F00_thumb_5F00_547FC9AD.jpg" alt="clip_image029" width="244" height="82" border="0" /></a></p>
<p>12. Paste the URL for Use an existing STS option and 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/01/52/03/metablogapi/6064.clip_image030_500948E6.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/6064.clip_5F00_image030_5F00_500948E6.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image030" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/4846.clip_image030_thumb_18C2C1AB.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/4846.clip_5F00_image030_5F00_thumb_5F00_18C2C1AB.png" alt="clip_image030" width="244" height="185" border="0" /></a></p>
<p>13. Click on Next-&gt;Next-&gt;and Finish J (just check the options when you click Next you can basically can enable Certificate for STS, encrypt STS token, check the claims that is getting generated by STS and the summary)</p>
<p>14. Click the Web.Config file and just check what magic this FedUtil.exe did for you. It would have added all the assembly that is required for Claim based Authentication. You will also see identity information such as the screenshot below, that represents the information that Visual Studio added on your behalf, based on you authentication settings.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/3617.clip_image032_0EFD5A33.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/3617.clip_5F00_image032_5F00_0EFD5A33.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image032" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1157.clip_image032_thumb_061058A5.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1157.clip_5F00_image032_5F00_thumb_5F00_061058A5.jpg" alt="clip_image032" width="244" height="33" border="0" /></a></p>
<p><em>Web.Config changes</em></p>
<p>15. Add set entries like pages validationrequest set to false and set request validation mode to 2.0 in Web.config files for this to work</p>
<p>&lt;system.web&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;pages validateRequest="false" /&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; &lt;httpRuntime targetFramework="4.5" requestValidationMode="2.0"&nbsp; /&gt;</p>
<p>16. Now Run your application by pressing F5 If you are prompted if you want to trust the https certificate, select Yes, otherwise, step 16 will require you to select Continue.</p>
<p>17. A security certificate warning will appear in your browser. This is expected behavior, click <strong>Continue to this website (not recommended)</strong>.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/3666.clip_image034_6CA8556A.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/3666.clip_5F00_image034_5F00_6CA8556A.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image034" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/7701.clip_image034_thumb_2E4291B7.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/7701.clip_5F00_image034_5F00_thumb_5F00_2E4291B7.png" alt="clip_image034" width="244" height="124" border="0" /></a></p>
<p><em>Browser displaying Security Certificate Warning</em></p>
<p>18. The URL address bar is replaced by the one of the authority, and the user is prompted to authenticate via the Microsoft Azure AD UI. Use the credentials from the user you created in earlier.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/0871.clip_image036_450469F1.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/0871.clip_5F00_image036_5F00_450469F1.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image036" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/5706.clip_image036_thumb_1470EC39.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/5706.clip_5F00_image036_5F00_thumb_5F00_1470EC39.png" alt="clip_image036" width="244" height="143" border="0" /></a></p>
<p><em>Logging in to the Application</em></p>
<p>18. You might recall that when you created the user in your Microsoft Azure AD tenant the Management Portal assigned to it a temporary password. You have to authenticate using that password. However, given that the password was meant to be temporary, during this very first sign-in operation you will be asked to choose a proper user password before being able to move forward with the authentication flow. Once you've completed the new password addition, the normal sign-in flow to the app will be restored.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/8875.clip_image038_5920172B.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/8875.clip_5F00_image038_5F00_5920172B.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="clip_image038" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1385.clip_image038_thumb_418869B8.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1385.clip_5F00_image038_5F00_thumb_5F00_418869B8.png" alt="clip_image038" width="237" height="244" border="0" /></a></p>
<p><em>Typing New User Password</em></p>
<p>19. Whola! Finally we have successfully authenticated for the application using Azure Active Directory.</p>
<p>20. You can find all the claim information in C# code using ClaimsPrincipal.Current property</p>
<p><strong>ClaimsPrincipal cp = ClaimsPrincipal.Current;</strong></p>
<p><strong>Var Name= cp.FindFirst(ClaimTypes.Name).Value;</strong><code></code></p>
<p>&nbsp;</p>
<p>By default only Name is enabled by the tool, you can update the application config file to add/update the claim requirements.</p>
<p>Thanks for reading!&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Few guidelines for developing Quality Windows 8 Applications!</title>
      <link>https://docs.microsoft.com/archive/blogs/goutham/few-guidelines-for-developing-quality-windows-8-applications</link>
      <pubDate>Wed, 07 Nov 2012 13:42:46 GMT</pubDate>
      <dc:creator><![CDATA[gouthamu]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/goutham/2012/11/07/few-guidelines-for-developing-quality-windows-8-applications/</guid>
      <description><![CDATA[&#160;  A big part of the Windows 8 experience will be using all the great apps that developers...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>A big part of the Windows 8 experience will be using all the great apps that developers create on Windows 8. There are certain functionalities to consider when you are developing a Windows 8 Application. I have seen many applications which will tend miss basic functionality that every Windows 8 Application should have. In a series of post I will try to highlight those individual features that every windows 8 application should have. Since the focus is on Quality applications that end customers would love to see on Windows 8 devices. Before we get started, we need to define what we mean by &quot;quality.&quot; After all, there are many facets to determining quality—like usability, readability, reliability, security, and so on.</p>  <p>Here’s a quick list of features that I would love to see in great applications that you guys will develop:</p>  <p>· Design User Interface: </p>  <blockquote>   <p>o As a developer in Microsoft technologies you might be familiar with Silverlight, WPF or Win forms of Application development style of designing your UI like having treeviews, ribbon controls for navigations</p>    <p>o Start Using AppBar may be Top App bar or Bottom AppBar based on your requirements.</p>    <p>o Use Text and Typography</p>    <p>o Content before Chrome is a core principle to Windows 8-styled design so let your content do the talking for the application.</p> </blockquote>  <p>· Implement Snap View: Most Developer miss to develop Snap View. You need not implement if you are using standard inbuilt templates but if you are writing your own then you should think of implementing it. </p>  <p>· Test your Application with respect to different Orientations that it can support like Vertical or Horizontal.</p>  <p>· <b>Implement 3S</b> Charms functionality (Search, Settings and Share) wherever possible. You might have scenarios of having a Search option for your application or Setting options for your application or may be your application might be sharing some details with other application try considering these functionality to implement. Seen many application having textboxes for search option in the application or having setting ‘s button in the page or in the AppBar</p>  <p>· Keep in mind while developing your applications that it might not be connected to internet. So handle those internet connectivity scenarios in your application. Your application should behave well in Offline mode and on limited internet connected scenarios.</p>  <p>· Handle Exceptions and Display Errors </p>  <blockquote>   <p>o Use error and warning bar or text in the App</p>    <p>o Do not use flyouts, toasts, or custom UI surfaces to display errors.</p> </blockquote>  <p>· Understand what is PLM (Process Lifecycle Management) in Windows 8 and follow the guidelines to maintain the states for the application.</p>  <p>· Implement or Leverage semantic zoom functionality appropriately so that whenever user zooms in or zooms out in your application he gets proper view of your application.</p>  <p>· Consider implementing tiles and notifications for your application</p>  <p>· Try considering implementing background tasks as some functionality that you implement in Apps That Run While they are not in the foreground.</p>  <p>· Make sure your load time is less than 5 seconds both suspend and resume.</p>  <p>· Try considering implementing Localization. Strange to believe but, the fact is number of English speaking users in Internet users is less than 30%</p>  <p>· Try considering using Webview to display HTML content with in your application.</p>  <p>In subsequent posts will write in detail how to get each feature implemented in Windows 8 Store App.</p>  <p>I hope you’ve enjoyed reading about some of the learning and thinking that might go in the design and development of the Windows Store app. I look forward to continuing this conversation, and to seeing your Quality apps in the Windows Store.</p>]]></content:encoded>
    </item>
    <item>
      <title>My first MSDN blog!</title>
      <link>https://docs.microsoft.com/archive/blogs/goutham/my-first-msdn-blog</link>
      <pubDate>Tue, 16 Oct 2012 15:35:00 GMT</pubDate>
      <dc:creator><![CDATA[gouthamu]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/goutham/2012/10/16/my-first-msdn-blog/</guid>
      <description><![CDATA[I always want to have a blog on MSDN and finally the day has come, when I created Blog on...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;" size="2"><span style="font-family: trebuchet ms,geneva;">I always want to have a blog on MSDN and finally the day has come, when I created Blog on MSDN</span>.</span></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;" size="2">This is my attempt to write something, after close to two and half years at Microsoft. If in some way this might help other developers like me who want to get things done quickly just by reading or following few steps instead of going through the huge documentations</span> <img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1781.wlEmoticon-smile_243DB429.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1781.wlEmoticon_2D00_smile_5F00_243DB429.png" /></p>
<hr />
<h4>Little bit About Me:</h4>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">My name is Goutham Upadhyaya and I work as a Partner Technical Consultant here at Microsoft. I have 6+ years of IT experience and been with Satyam and Wipro Technologies before joining Microsoft. My role involves guiding partners in adopting and implementing latest Microsoft technologies. I'm passionate about Microsoft technologies and work on .NET Framework including Silverlight and ASP.Net. I also work on emerging technologies like Windows Phone Platform, Web Matrix, WPF, RIA Services, Entity Framework and LINQ and needless to say, Windows 8 application development <img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1781.wlEmoticon-smile_243DB429.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1781.wlEmoticon_2D00_smile_5F00_243DB429.png" /></span></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">On a personal front I like traveling and spending time with friends and family. I love going on long drives and also off late, started with new hobby of&nbsp; photography</span> <img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/52/03/metablogapi/1781.wlEmoticon-smile_243DB429.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-03-metablogapi/1781.wlEmoticon_2D00_smile_5F00_243DB429.png" /></p>
<hr />
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">This blog will be all about My Experience, Exertion and Efforts in Microsoft Technologies. Primarily I will be writing on WPF, Silverlight, Windows Phone and Windows 8 related stuff.</span></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">To start with <a href="http://www.buildwindows.com/">http://www.buildwindows.com/</a> is something whole developer community is waiting for in terms of all latest and greatest technologies that are in pipelines like Windows 8, Windows Azure, Windows Phone 8, Windows Server 2012, Visual Studio 2012 and Xbox. If you can&rsquo;t make it then Keep calm and watch online via <a href="https://channel9.msdn.com/Events/Build">Channel 9</a>. So, all excited and waiting for the big day!</span>&nbsp;</p>
<p><span style="font-family: trebuchet ms,geneva; font-size: small;">Finally want to thank my all colleagues and friends who always inspired, motivated me to write. I don&rsquo;t want to take names as I might end up writing a page of names. Thanks for stopping by!</span></p>
<p><span style="font-family: trebuchet ms,geneva; font-size: x-small;"></span>&nbsp;</p>
<p><strong><span style="font-family: trebuchet ms,geneva;">Cheers</span></strong></p>
<p><strong><span style="font-family: trebuchet ms,geneva;"></span></strong><strong><span style="font-family: trebuchet ms,geneva;">Goutham</span></strong></p>
<hr />]]></content:encoded>
    </item>
  </channel>
</rss>