<?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>Ranjith</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/ranjith/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/ranjith/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:27:14 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Rollback tasks in Visual Studio Team Services and TFS 2015</title>
      <link>https://docs.microsoft.com/archive/blogs/ranjith/rollback-tasks-in-visual-studio-team-services-and-tfs-2015</link>
      <pubDate>Thu, 10 Mar 2016 08:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Ranjith Pallath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ranjith/2016/03/10/rollback-tasks-in-visual-studio-team-services-and-tfs-2015/</guid>
      <description><![CDATA[&#160;  Looking for a way to have your rollback logic in VSTS or TFS 2015 Release Definitions? Well...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>Looking for a way to have your rollback logic in VSTS or TFS 2015 Release Definitions? Well you are in luck. </p>  <p>The <a title="https://marketplace.visualstudio.com/items?itemName=ms-devlabs.utilitytasks" href="https://marketplace.visualstudio.com/items?itemName=ms-devlabs.utilitytasks">https://marketplace.visualstudio.com/items?itemName=ms-devlabs.utilitytasks</a> extension provides a nice set of features and the best one I like – <strong>Rollback</strong></p>  <p>The issue so far has been that Release Management does not have pre-defined variables that indicate the status of the tasks executed in the job. That makes using an intelligent rollback script difficult. Rollback task facilitates exactly that. You can author a PowerShell script for reverting/ fixing the changes done to your environment by the deployment.</p>  <p>After installing this extension, you would see “PowerShell for rollback” task in the catalog.</p>  <p>You can use this for enabling rollback on failure of a deployment as follows:</p>  <p>1. Configure the environment deployment as you normally would.</p>  <p>2. Author a PowerShell script for rollback. To know which task failed in deployment, you can use an environment variable “<strong>Release_Tasks</strong>” that would be available for the script.</p>  <p>A sample of how to use this environment variable in the script is as follows. You can extend this to build the complete rollback script.</p>  <blockquote>   <p><font color="#c0504d" face="Courier New">try</font></p> </blockquote>  <blockquote>   <p><font color="#c0504d" face="Courier New">{</font></p> </blockquote>  <blockquote>   <p><font color="#c0504d" face="Courier New">$jsonobject = ConvertFrom-Json $env:Release_Tasks</font></p> </blockquote>  <blockquote>   <p><font color="#c0504d" face="Courier New">}</font></p> </blockquote>  <blockquote>   <p><font color="#c0504d" face="Courier New">catch</font></p> </blockquote>  <blockquote>   <p><font color="#c0504d" face="Courier New">{</font></p> </blockquote>  <blockquote>   <p><font color="#c0504d" face="Courier New">Write-Verbose -Verbose &quot;Error converting from json&quot;</font></p>    <p><font color="#c0504d" face="Courier New">Write-Verbose -Verbose $Error</font></p> </blockquote>  <blockquote>   <p><font color="#c0504d" face="Courier New">}</font></p> </blockquote>  <blockquote>   <p><font color="#c0504d" face="Courier New">foreach ($task in $jsonobject | Get-Member -MemberType NoteProperty) {&#160;&#160;&#160; </font></p> </blockquote>  <blockquote>   <p><font color="#c0504d" face="Courier New">$taskproperty = $jsonobject.$($task.Name) | ConvertFrom-Json</font></p>    <p><font color="#c0504d" face="Courier New">Write-Verbose -Verbose &quot;Task $($taskproperty.Name) with rank $($task.Name) has status $($taskproperty.Status)&quot; </font></p> </blockquote>  <blockquote>   <p><font color="#c0504d" face="Courier New">}</font></p> </blockquote>  <p>3. Add a PowerShell for rollback task to the environment for executing the rollback script.</p>  <p>4. Ensure that you enable “<strong>Run Always</strong>” control option for the rollback task, so that it shall be executed after any of the tasks fail. By default, no tasks shall be run after the first task fails unless marked “<strong>Continue on failure</strong>”.</p>  <p>The utility does come with other handy tasks like Tokenizer for managing your configuration, Zip &amp; Unzip for well Zipping and Unzipping <img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-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/43/13/metablogapi/8461.wlEmoticon-smile_4CB42347.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-43-13-metablogapi/8461.wlEmoticon_2D00_smile_5F00_4CB42347.png" /> Its interesting because with these you can now tokenize your Web.Config even if they are inside a web deploy package. But the Rollback is what gets the cherry as per me.    <br /></p>  <p>I have always loved the new Release Management platform and this makes me love it even more.</p>]]></content:encoded>
    </item>
    <item>
      <title>Detecting browser language using JavaScript</title>
      <link>https://docs.microsoft.com/archive/blogs/ranjith/detecting-browser-language-using-javascript</link>
      <pubDate>Fri, 28 Aug 2015 10:47:38 GMT</pubDate>
      <dc:creator><![CDATA[Ranjith Pallath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ranjith/2015/08/28/detecting-browser-language-using-javascript/</guid>
      <description><![CDATA[&#160;  I was recently working on helping someone localize their ADFS 3.0 login page. They had...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>I was recently working on helping someone localize their ADFS 3.0 login page. They had changed the theme and had some custom text like their organization name and some instructions to login. The challenge was localizing this custom text when people from a different country say France with their language set as French (FR) tries to access the site.\</p>  <p>Maybe there are better ways to this is ADFS. I am no ADFS expert but I was told that you got to use it using the exported OnLoad JavaScript method. So I thought of writing something in JavaScript to help identify the default language. I initially tried to use the navigator to get the language</p>  <p><font color="#c0504d" face="Courier New">var language = window.navigator.userLanguage || window.navigator.language;      <br />alert(language);</font></p>  <p>Soon I understood that this wont work since its returning the language of the browser itself as in if you installed English version of Chrome, it would return EN. This is not what I wanted. So what I had to do was extract it from the Request Header. The header would look something like this:</p>  <p><font face="Courier New"><font color="#c0504d">Connection: Keep-Alive        <br />Accept: text/html, application/xhtml+xml, image/jxr, */*         <br />Accept-Encoding: gzip, deflate, peerdist         <br /></font><font color="#c0504d"><font style="background-color: #ffff00">Accept-Language: fr-FR, fr; q=0.8, en-US; q=0.5, en; q=0.3          <br /></font>Cookie: glimpsePolicy=On; shopper=7cc14a57-c195-498b-b8f8-825d61434119         <br />Host: localhost:57350         <br />User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko         <br />DNT: 1         <br />X-P2P-PeerDist: Version=1.1         <br />X-P2P-PeerDistEx: MinContentInformation=1.0, MaxContentInformation=2.0</font></font></p>  <p>The highlighted header is what we are interested in. Since we can get this from the JavaScript, I wrote a simple Web API and hosted in Azure. </p>  <p><font color="#c0504d" face="Courier New">public class LanguageController : ApiController     <br />&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; // GET api/Language      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; public IEnumerable&lt;string&gt; Get()      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return Request.Headers.AcceptLanguage.ToList().Select(lang =&gt; lang.Value).ToList();      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160; }</font></p>  <p>This API is hosted in <a title="http://detectbrowserlanguage.azurewebsites.net/api/language" href="http://detectbrowserlanguage.azurewebsites.net/api/language">http://detectbrowserlanguage.azurewebsites.net/api/language</a> and as you can see it returns an array of all accepted languages. The rest is simple CSS and JQuery to do the trick. One other thing was I could not have references the JQuery using script tags so I ended up adding JQuery through my JavaScript itself. Looks something like this:</p>  <p><font color="#c0504d" face="Courier New">&lt;html&gt;      <br />&lt;head&gt;       <br />&lt;style&gt;       <br />&#160;&#160; p {       <br />&#160;&#160;&#160; display: none;       <br />&#160;&#160; }       <br />&#160;&#160; body:lang(en) p:lang(en) {       <br />&#160;&#160;&#160; display : inline;       <br />&#160;&#160; }       <br />&#160;&#160; body:lang(cz) p:lang(cz) {       <br />&#160;&#160;&#160; display : inline;       <br />&#160;&#160; }       <br />&#160;&#160; body:lang(en-US) p:lang(en-US) {       <br />&#160;&#160;&#160; display : inline;       <br />&#160;&#160; }       <br />&lt;/style&gt;       <br />&lt;script&gt;       <br />&#160; <br />&#160;&#160;&#160; function loadScript(url, callback) {</font></p>  <p><font color="#c0504d" face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160; var script = document.createElement(&quot;script&quot;)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; script.type = &quot;text/javascript&quot;;</font></p>  <p><font color="#c0504d" face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (script.readyState) { //IE      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; script.onreadystatechange = function () {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (script.readyState == &quot;loaded&quot; || script.readyState == &quot;complete&quot;) {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; script.onreadystatechange = null;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; callback();       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; };       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } else { //Others       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; script.onload = function () {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; callback();       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; };       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</font></p>  <p><font color="#c0504d" face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160; script.src = url;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; document.getElementsByTagName(&quot;head&quot;)[0].appendChild(script);       <br />&#160;&#160;&#160; }</font></p>  <p><font color="#c0504d" face="Courier New">&#160;&#160;&#160; loadScript(&quot;</font><a href="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js&quot;"><font face="Courier New">http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js<font color="#c0504d">&quot;</font></font></a><font color="#c0504d" face="Courier New">, function () {&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Send an AJAX request       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $.getJSON(&quot;</font><a href="http://detectbrowserlanguage.azurewebsites.net/api/language&quot;)"><font face="Courier New">http://detectbrowserlanguage.azurewebsites.net/api/language<font color="#c0504d">&quot;)</font></font></a>     <br /><font color="#c0504d" face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .done(function (data) {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // On success, 'data' contains a list of products.       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(data &amp;&amp; data.length&gt;0){       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $('body').prop(&quot;lang&quot;,data[0]);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $.each(data, function (index,language) {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Add a list item for the product.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //$('body').prop(&quot;lang&quot;,language);       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; });       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; });       <br />&#160;&#160;&#160; });       <br />&lt;/script&gt;       <br />&lt;/head&gt;       <br />&lt;body class=&quot;cz&quot;&gt;&#160;&#160;&#160; <br />&#160;&#160; &lt;div&gt;       <br />&#160;&#160;&#160;&#160; &lt;p lang=&quot;en&quot;&gt;Hello&lt;/p&gt;       <br />&#160;&#160;&#160;&#160; &lt;p lang=&quot;cz&quot;&gt;Ahoj&lt;/p&gt;       <br />&#160;&#160;&#160;&#160; &lt;p lang=&quot;ru&quot;&gt;Privet&lt;/p&gt;       <br />&#160;&#160; &lt;/div&gt;       <br />&lt;/body&gt;       <br />&lt;/html&gt;</font></p>  <p>This loads the appropriate greeting text to match the default language of the end user. Of course this does not support all languages but you get the point.</p>  <p>Hope this helps if you are trying to get something similar done.</p>]]></content:encoded>
    </item>
    <item>
      <title>Roadmap for Visual Studio Online</title>
      <link>https://docs.microsoft.com/archive/blogs/ranjith/roadmap-for-visual-studio-online</link>
      <pubDate>Fri, 14 Aug 2015 16:43:48 GMT</pubDate>
      <dc:creator><![CDATA[Ranjith Pallath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ranjith/2015/08/14/roadmap-for-visual-studio-online/</guid>
      <description><![CDATA[Visual Studio Online being a new offering its a common question that I hear - What is the roadmap...]]></description>
      <content:encoded><![CDATA[<p>Visual Studio Online being a new offering its a common question that I hear - What is the roadmap for adding new features to VSO especially since people have been using TFS for a while and would expect certain features to be available.</p>
<p>There is a page dedicated to providing the roadmap and release timelines for both VSO and VS and this is quiet amazing that we have such information out there for general viewing.</p>
<p><a href="https://www.visualstudio.com/en-us/news/feature-timeline-vs">Visual Studio Features Timeline</a></p>
<p><br /><a href="https://www.visualstudio.com/en-us/news/release-archive-vso">Visual Studio Online Features Timeline</a></p>
<p>Hope this will help answering some of your questions on when you can expect certain features to make the cut to the environment.</p>]]></content:encoded>
    </item>
    <item>
      <title>Error while trying to Deleting Azure AD due to Visual Studio Online association</title>
      <link>https://docs.microsoft.com/archive/blogs/ranjith/error-while-trying-to-deleting-azure-ad-due-to-visual-studio-online-association</link>
      <pubDate>Fri, 14 Aug 2015 16:18:00 GMT</pubDate>
      <dc:creator><![CDATA[Ranjith Pallath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ranjith/2015/08/14/error-while-trying-to-deleting-azure-ad-due-to-visual-studio-online-association/</guid>
      <description><![CDATA[Off late I ran into an issue with Azure AD. I created a new AD, added users and associated a few...]]></description>
      <content:encoded><![CDATA[<p>Off late I ran into an issue with Azure AD. I created a new AD, added users and associated a few apps like Office 365 and Visual Studio to this new AD. I wanted to make sure my AD users can access these apps and it all worked fine.</p>
<p>This while exercise was for a demo which I can giving to a customer. Once the demo was over, I deleted the VSO accounts and then wanted to delete the Azure Account. This is where the issue was. When I try deleting the AD, it refused that action saying I cannot delete it unless all users and Apps were removed and there is no way to remove VSO and O365 Management API app associations even though all the Linked VSO accounts were unlinked.</p>
<p>The only way I could do this is using Azure AD PowerShell. You would have to follow <a href="https://msdn.microsoft.com/en-us/library/azure/jj151815.aspx#bkmk_installmodule">Install the Azure AD Module</a> before attempting this PowerShell. Also&nbsp;make&nbsp;sure you REALLY REALLY want to delete the AD.</p>
<p>&nbsp;</p>
<p><strong>Connect-MsolService&nbsp;</strong> - This will prompt you to login. You would have to use an AD user account a nd not your Microsoft one.</p>
<p><strong>Get-MsolServicePrincipal | Remove-MsolServicePrincipal</strong> - This will remove the VSO association from the AD from which it can. Make sure you have logged in using an account who is an Admin in the account you want to delete.</p>
<p>For more details on removing Service Principal, refer <a href="https://msdn.microsoft.com/en-us/library/azure/dn194113.aspx">https://msdn.microsoft.com/en-us/library/azure/dn194113.aspx</a></p>
<p>I was really stuck on this and I hope this helps others who might be stuck.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Optimizing ASP.Net Application – The Presentation Layer (Part 2)</title>
      <link>https://docs.microsoft.com/archive/blogs/ranjith/optimizing-asp-net-application-the-presentation-layer-part-2</link>
      <pubDate>Wed, 19 Oct 2011 11:56:42 GMT</pubDate>
      <dc:creator><![CDATA[Ranjith Pallath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ranjith/2011/10/19/optimizing-asp-net-application-the-presentation-layer-part-2/</guid>
      <description><![CDATA[&#160;  Firstly, this is a continuation of my previous post Optimizing ASP.Net Application – The...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>Firstly, this is a continuation of my previous post <a href="http://blogs.msdn.com/b/ranjith/archive/2011/10/18/optimizing-asp-net-application-the-presentation-layer-part-1.aspx" target="_blank">Optimizing ASP.Net Application – The Presentation Layer (Part 1)</a></p>  <p>I am gonna discuss some other techniques and maybe introduce to some cool tools which will help you improve your site’s performance further. </p>  <p><font color="#f76b0f"><strong><u>Optimizing Images</u></strong></font></p>  <p>This is one simple thing you could use to make your sites run faster. You site would definitely have multiple images and all of them can actually be optimized. Even if you create your own images using your favorite image editor like Photoshop, you can further optimize those images. The million dollar question would obviously be how ? Use <a href="http://www.smushit.com/ysmush.it/" target="_blank">Smush.IT</a> or any similar tools which will trim off everything which is not required from your images, helping you reduce the image size a sizable chunk. You also have an offline version of this tool available at <a href="http://smushmysite.codeplex.com">http://smushmysite.codeplex.com</a>. I have personally not tried this offline tool but look like it works pretty much like the online one. <a title="http://punypng.com/" href="http://punypng.com/">http://punypng.com/</a> is another great service which you could use for “smushing” your images.</p>  <p>Now you can also do this from within your visual studio environment by using the <a href="http://visualstudiogallery.msdn.microsoft.com/a56eddd3-d79b-48ac-8c8f-2db06ade77c3" target="_blank">Image Optimizer</a> plugin </p>  <p><strong><u><font color="#f76b0f">Remove Entity Tags</font></u></strong></p>  <p>Entity tags (ETags) are a mechanism that web servers and browsers use to determine whether the component in the browser's cache matches the one on the origin server. (An &quot;entity&quot; is another word a &quot;component&quot;: images, scripts, stylesheets, etc.) ETags were added to provide a mechanism for validating entities that is more flexible than the last-modified date. An ETag is a string that uniquely identifies a specific version of a component. The only format constraints are that the string be quoted. The origin server specifies the component's ETag using the <code>ETag</code> response header.</p>  <pre>      HTTP/1.1 200 OK
      Last-Modified: Tue, 12 Dec 2006 03:03:59 GMT
      ETag: &quot;10c24bc-4ab-457e1c1f&quot;
      Content-Length: 12195</pre>

<p>Later, if the browser has to validate a component, it uses the <code>If-None-Match</code> header to pass the ETag back to the origin server. If the ETags match, a 304 status code is returned reducing the response by 12195 bytes for this example.</p>

<pre>      GET /i/yahoo.gif HTTP/1.1
      Host: us.yimg.com
      If-Modified-Since: Tue, 12 Dec 2006 03:03:59 GMT
      If-None-Match: &quot;10c24bc-4ab-457e1c1f&quot;
      HTTP/1.1 304 Not Modified</pre>

<p>The problem with ETags is that they typically are constructed using attributes that make them unique to a specific server hosting a site. ETags won't match when a browser gets the original component from one server and later tries to validate that component on a different server, a situation that is all too common on Web sites that use a cluster of servers to handle requests. By default, both Apache and IIS embed data in the ETag that dramatically reduces the odds of the validity test succeeding on web sites with multiple servers.</p>

<p>So how do we remove them? Well you could do this in the web.config by adding the following :</p>

<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">httpProtocol</span><span class="kwrd">&gt;</span>
<span class="kwrd">  &lt;</span><span class="html">customHeaders</span><span class="kwrd">&gt;</span>
<span class="kwrd">    &lt;</span><span class="html">add</span> <span class="attr">name</span><span class="kwrd">=&quot;ETag&quot;</span> <span class="attr">value</span><span class="kwrd">=&quot; &quot;</span><span class="kwrd">/&gt;</span>
  <span class="kwrd">&lt;/</span><span class="html">customHeaders</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">httpProtocol</span><span class="kwrd">&gt;</span></pre>


<p>There are other things you could so as well like refer images as Data Uri and not the actual Image source, This will minimize the number of requests further.</p>

<p>You could also implement page caching for pages which hardly changes or changes in a predictable time interval.</p>

<p>Well that’s it for now I guess. I will add on a part 3 if I really come across something important.</p>

<p>Happy Coding !!</p>]]></content:encoded>
    </item>
    <item>
      <title>Optimizing ASP.Net Application – The Presentation Layer (Part 1)</title>
      <link>https://docs.microsoft.com/archive/blogs/ranjith/optimizing-asp-net-application-the-presentation-layer-part-1</link>
      <pubDate>Tue, 18 Oct 2011 10:01:53 GMT</pubDate>
      <dc:creator><![CDATA[Ranjith Pallath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ranjith/2011/10/18/optimizing-asp-net-application-the-presentation-layer-part-1/</guid>
      <description><![CDATA[&#160;  Today I delivered a talk to the .Net developer community on optimizing ASP.Net applications....]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>Today I delivered a talk to the .Net developer community on optimizing ASP.Net applications. The talk was primarily focused on optimizing the presentation layer (HTML, JavaScript, CSS, …)</p>  <p>So how do we go about optimizing the presentation layer ? I am not gonna talk about View State or Session as it has been discussed all over the web time and again and by now people you would have already implement view state selectively and should be handling sessions with care and also implement GZIP compression over the session (Visit ASP.Net 4.0 enhancements if you are not doing this already).</p>  <p>When you request for any web page, there are two things which happens:</p>  <ol>   <li>The HTML (including data) is downloaded from the server</li>    <li>All the other resources (JavaScript, CSS, Images, ..) gets downloaded from the server</li> </ol>  <p>Most of the times when you talk about optimizing your ASP.Net sites, you would look into things like how fast you could get the data from the database and how you could implement things like App Fabric Caching, etc.</p>  <p>What you miss out is the fact that almost 75 % of your page load time would be attributed to downloading and rendering the so called resources and not the actual HTML + data. At least that what the statistics says.   <br /></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/43/13/metablogapi/4274.image_2326AF6E.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-43-13-metablogapi/4274.image_5F00_2326AF6E.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/43/13/metablogapi/1121.image_thumb_692746B4.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-43-13-metablogapi/1121.image_5F00_thumb_5F00_692746B4.png" width="386" height="200" /></a></p>  <p>So what can you do about this ? First you need to understand what to fix. If you are using IE 9 as the browser, you can use the developer tools to understand how does your page statistics look like. I created a simple application which has an image control and some image thumbnails. You click on a thumbnail and it loads that image on the image control. All using a very simple JQuery. I ran the developer tools to see the network profile and I was shocked to see the results:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/43/13/metablogapi/8802.image_2667FB7C.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-43-13-metablogapi/8802.image_5F00_2667FB7C.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/43/13/metablogapi/5672.image_thumb_7B5FE7A9.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-43-13-metablogapi/5672.image_5F00_thumb_5F00_7B5FE7A9.png" width="690" height="238" /></a></p>  <p>Alright I have a clear problem with my website and the high load time is because of my resources. Now what ?</p>  <p>Well go fix them. To help with this better, you could use <a href="http://developer.yahoo.com/yslow/">Yahoo YSlow</a> or <a href="http://code.google.com/speed/page-speed/">Google Page Speed</a>. Unfortunately you don’t have a version of these that will work with IE, so you would have to use Firefox or Chrome even though you know IE is the best browser <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smilewithtongueout" alt="Smile with tongue out" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/43/13/metablogapi/7725.wlEmoticon-smilewithtongueout_1ECC6642.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-43-13-metablogapi/7725.wlEmoticon_2D00_smilewithtongueout_5F00_1ECC6642.png" />.</p>  <p>Once you run this tool against your page, it would tell you what the issue is. Here are the major ones which will impact your performance greatly:</p>  <p><strong><font color="#f76b0f"><u>Location of CSS and JavaScript</u></font></strong></p>  <p>One of the most common error I’ve seen in my career is that people conveniently include all their script references in the Head section. Well this is not a great practice. Always try and put then after the page’s UI content. Only CSS references should be provided in Head and not Script. If at all you don’t want to cut all those lines and put them down, use the <font color="#c0504d">defer</font> property.</p>  <pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">script</span> <span class="attr">type</span><span class="kwrd">=&quot;text/javascript&quot;</span> <span class="attr">src</span><span class="kwrd">=&quot;Scripts/jquery-1.4.1.min.js&quot;</span> <span class="attr">defer</span><span class="kwrd">=&quot;defer&quot;</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">script</span> <span class="attr">type</span><span class="kwrd">=&quot;text/javascript&quot;</span> <span class="attr">src</span><span class="kwrd">=&quot;Scripts/main.js&quot;</span> <span class="attr">defer</span><span class="kwrd">=&quot;defer&quot;</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">script</span> <span class="attr">type</span><span class="kwrd">=&quot;text/javascript&quot;</span> <span class="attr">src</span><span class="kwrd">=&quot;Scripts/modernizr-latest.js&quot;</span> <span class="attr">defer</span><span class="kwrd">=&quot;defer&quot;</span> <span class="kwrd">/&gt;</span></pre>


<p>The defer attribute specifies that the execution of a script should be deferred (delayed) until after the page has been loaded. </p>

<p><font color="#f76b0f"><strong><u>Add Expires Header</u></strong></font></p>

<p>Always try and cache the local resources in the browser so you would not have to download them every single time. This can very easily be done for your ASP.Net application.</p>

<pre class="csharpcode"><font face="Arial">Jut go to web.config and add the following to</font> <span class="kwrd">&lt;</span><span class="html">system.webServer</span><span class="kwrd">&gt;</span></pre>

<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">staticContent</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">clientCache</span> <span class="attr">httpExpires</span> <span class="kwrd">=&quot;Fri, 29 Mar 2020 00:00:00 GMT&quot;</span><span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">staticContent</span><span class="kwrd">&gt;</span></pre>


<p>What happens is that all static content will now have an expires HTTP header set to the year 2020. Static content means anything that isn’t served through the ASP.NET engine such as images, script files and styles sheets.</p>

<p><font color="#f76b0f"><strong><u>Minimize the number of requests</u></strong></font></p>

<p>Consider that your site has 15 JavaScript files including jQuery, Mordenizr or any other helpers as well and may be 10 style sheets. This alone would amount to 25 requests to your server effectively reducing the performance. How can this be helped. Obviously, you need to minimize the number of requests. But how on earth is this possible? simple, merge all style sheets into one and do the same with JavaScript.</p>

<p>You could write custom HttpHandlers to do this or you could use something already available like <a href="http://www.codethinked.com/squishit-the-friendly-aspnet-javascript-and-css-squisher" target="_blank">SquishIt</a></p>

<p>this lets you easily bundle some css and javascript so you can download one CSS and one JS instead of 10 – 15 of them independently. You would have to change the markup by commenting CSS and Script references and replacing them with something like this:</p>

<pre class="csharpcode"><span class="asp">&lt;%</span>= SquishIt.Framework.Bundle.Css()
            .Add(<span class="str">&quot;~/Styles/Site.css&quot;</span>)
            .Add(<span class="str">&quot;~/Styles/styles.css&quot;</span>)
            .Render(<span class="str">&quot;~/Styles/combined_#.css&quot;</span>)
<span class="asp">%&gt;</span></pre>


<p>and</p>

<pre class="csharpcode"><span class="asp">&lt;%</span>= SquishIt.Framework.Bundle.JavaScript()
            .Add(<span class="str">&quot;~/Scripts/jquery-1.4.1.js&quot;</span>)
            .Add(<span class="str">&quot;~/Scripts/main.js&quot;</span>)
            .Render(<span class="str">&quot;~/Scripts/combined_#.js&quot;</span>)
<span class="asp">%&gt;</span></pre>


<p><font color="#f76b0f"><strong><u>Minify CSS and Javascript</u></strong></font></p>

<p>Another technique to reduce the load time on the client is to make sure that all your JS and CSS resources are minified. This allows you to reduce the size of your resources. One of the minifiers I have come across is the <a href="http://ajaxmin.codeplex.com/" target="_blank">Microsoft Ajax Minifier</a>. It’s a command line utility which also provides API so you can minify your resources at the time of deployment or even dynamically by using the API.</p>

<p>There are few other techniques which I will talk about in the next part of this post.</p>

<p>&#160;</p>

<p>Happy Coding !!</p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Azure Toolkit for Android</title>
      <link>https://docs.microsoft.com/archive/blogs/ranjith/windows-azure-toolkit-for-android</link>
      <pubDate>Tue, 30 Aug 2011 21:46:00 GMT</pubDate>
      <dc:creator><![CDATA[Ranjith Pallath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ranjith/2011/08/30/windows-azure-toolkit-for-android/</guid>
      <description><![CDATA[Windows Azure Toolkit for Android has been released along with significant updates to the Windows...]]></description>
      <content:encoded><![CDATA[<p><font face="Calibri"></font></p>  <p><a href="http://www.wadewegner.com/2011/08/windows-azure-toolkits-for-devices-now-with-android"><font face="Calibri">Windows Azure Toolkit for Android</font></a><font face="Calibri"> has been released along with significant updates to the Windows Azure Toolkits for </font><a href="http://watwp.codeplex.com/"><font face="Calibri">Windows Phone</font></a><font face="Calibri"> and </font><a href="https://github.com/microsoft-dpe/wa-toolkit-ios"><font face="Calibri">iOS</font></a><font face="Calibri">.</font></p>  <p><font face="Calibri">The purpose of these toolkits is to make it easier for mobile device developers – across multiple device platforms – to build applications that use Windows Azure to run services that power their device experiences. The toolkits include native libraries, project templates, sample applications, and documentation that make it easy for developers quickly get started build device applications that use Windows Azure.</font></p>  <p><font face="Calibri">Get the toolkits here: </font><a href="http://watwp.codeplex.com/"><font face="Calibri">Windows Phone</font></a><font face="Calibri"> | </font><a href="https://github.com/microsoft-dpe/wa-toolkit-ios"><font face="Calibri">iOS (iPhone &amp; iPad)</font></a><font face="Calibri"> |</font><a href="https://github.com/microsoft-dpe/wa-toolkit-android"><font face="Calibri">Android</font></a></p>  <p><font face="Calibri"></font></p>  <h3><font face="Calibri">What’s New?</font></h3>  <p><font face="Calibri">Some of the more notable updates shipping today are:</font></p>  <ul>   <li><font face="Calibri">First release of the </font><a href="https://github.com/microsoft-dpe/wa-toolkit-android"><font face="Calibri">Windows Azure Toolkit for Android</font></a><font face="Calibri">, which includes native libraries (for storage and authentication), a sample application, and unit tests.</font>       <ul>       <li><font face="Calibri">Support for SQL Azure in the </font><a href="http://watwp.codeplex.com/"><font face="Calibri">Windows Azure Toolkit for Windows Phone</font></a><font face="Calibri">.</font> </li>        <li><font face="Calibri">Store both membership data and MPNS channels.</font> </li>     </ul>   </li>    <li><font face="Calibri">Simple sample demonstration binding to SQL Azure data through OData.</font> </li>    <li><font face="Calibri">Full support for </font><a href="http://msdn.microsoft.com/en-us/library/ff683673.aspx"><font face="Calibri">Windows Azure Tools for Visual Studio 1.4</font></a><font face="Calibri"> and </font><a href="http://msdn.microsoft.com/en-us/library/ff637516(v=VS.92).aspx"><font face="Calibri">Windows Developer Phone Tools 7.1 RC</font></a><font face="Calibri">.</font> </li>    <li><font face="Calibri">Upgraded the web application to ASP.NET MVC 3.</font> </li>    <li><font face="Calibri">Shipped the full source code to BabelCam, which is now available in the </font><a href="http://windowsphone.com/s?appid=576327f5-785c-4997-bc01-dc9fe4423f88"><font face="Calibri">Windows Phone Marketplace</font></a><font face="Calibri">.</font> </li>    <li><font face="Calibri">Significant updates and restructuring of the </font><a href="https://github.com/microsoft-dpe/wa-toolkit-ios"><font face="Calibri">Windows Azure Toolkit for iOS</font></a><font face="Calibri">.</font> </li> </ul>  <table border="0" cellspacing="0" cellpadding="0"><tbody>     <tr>       <td valign="top" width="695">         <h3><font face="Calibri"></font></h3>          <h3><font face="Calibri"></font></h3>          <h3><font face="Calibri">BabelCam Sample Application</font></h3>       </td>     </tr>      <tr>       <td valign="top" width="474">         <p><font face="Calibri">BabelCam allows you to take a picture of text and turn it into characters while letting you translate into a different language at the same time – great for trying to understand foreign restaurant menus! BabelCam was initially created as a sample for a presentation at </font><a href="https://channel9.msdn.com/Events/MIX/MIX11/SVC02"><font face="Calibri">MIX 11</font></a><font face="Calibri">.</font></p>          <p><font face="Calibri">The release of the full source code for BabelCam is exciting as you can now run BabelCam locally on the Windows Phone and Windows Azure emulators while inviting people to download and install the free version of the application directly from the </font><a href="http://windowsphone.com/s?appid=576327f5-785c-4997-bc01-dc9fe4423f88"><font face="Calibri">Windows Phone Marketplace</font></a><font face="Calibri"> (requires Zune software).</font></p>          <p><font face="Calibri">One reason BabelCam is a good demo is that it uses a number of services, including Windows Azure web and worker roles, Windows Azure storage (blobs, tables, and queues), the Microsoft Push Notification Service, Project Hawaii’s OCR Service, and the Bing Translator. BabelCam allows you to demonstrate a whole lot for one simple application! Additionally, a comprehensive setup script is provided to help you configure and run the BabelCam sample.</font></p>          <h3><font face="Calibri"></font></h3>          <h3><font face="Calibri">Want More?</font></h3>       </td>        <td valign="top" width="221">         <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/43/13/metablogapi/7268.clip_image002_5CF0316D.gif" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-43-13-metablogapi/7268.clip_5F00_image002_5F00_5CF0316D.gif"><font face="Calibri"></font></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/43/13/metablogapi/5518.clip_image002_2BA1470D.gif" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-43-13-metablogapi/5518.clip_5F00_image002_5F00_2BA1470D.gif"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/43/13/metablogapi/6204.clip_image002_thumb_60EA5972.gif" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-43-13-metablogapi/6204.clip_5F00_image002_5F00_thumb_5F00_60EA5972.gif" width="165" height="285" /></a></a></a></p>       </td>     </tr>   </tbody></table>  <p><font face="Calibri">For more details, please refer to the following posts:</font></p>  <p><font face="Calibri"></font></p>  <ul>   <li><font face="Calibri">The Official Microsoft Blog: </font><a href="http://blogs.technet.com/b/microsoft_blog/archive/2011/08/31/microsoft-releases-the-windows-azure-toolkit-for-android.aspx"><font face="Calibri">Microsoft Releases the Windows Azure Toolkit for Android</font></a> </li>    <li><font face="Calibri">Windows Phone Developer Blog: </font><a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/08/31/building-windows-phone-applications-using-windows-azure.aspx"><font face="Calibri">Building Windows Phone Applications Using Windows Azure</font></a> </li>    <li><font face="Calibri">Windows Azure Team Blog: </font><a href="http://blogs.msdn.com/b/windowsazure/archive/2011/08/31/now-available-windows-azure-toolkit-for-android.aspx"><font face="Calibri">NOW AVAILABLE - Windows Azure Toolkit for Android</font></a> </li>    <li><font face="Calibri">Wade Wegner’s Blog: </font><a href="http://www.wadewegner.com/2011/08/windows-azure-toolkits-for-devices-now-with-android"><font face="Calibri">Windows Azure Toolkits for Devices: Now With Android!</font></a> </li> </ul>  <p><font face="Calibri"></font></p>  <p><font face="Calibri">You can also watch this video on Channel 9, which covers all updates released today:</font></p>  <p><a href="https://channel9.msdn.com/posts/Windows-Azure-Toolkit-for-Devices-Now-With-Android"><font face="Calibri"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/43/13/metablogapi/5611.clip_image002_2B912140.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-43-13-metablogapi/5611.clip_5F00_image002_5F00_2B912140.jpg" width="641" height="336" /></font></a></p>  <p><font face="Calibri">Have fun coding !!</font></p>]]></content:encoded>
    </item>
    <item>
      <title>New Silverlight Training Course Released</title>
      <link>https://docs.microsoft.com/archive/blogs/ranjith/new-silverlight-training-course-released</link>
      <pubDate>Sat, 22 Jan 2011 13:05:33 GMT</pubDate>
      <dc:creator><![CDATA[Ranjith Pallath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ranjith/2011/01/22/new-silverlight-training-course-released/</guid>
      <description><![CDATA[The Silverlight 4 Training Course includes a whitepaper that explains all of the new Silverlight 4...]]></description>
      <content:encoded><![CDATA[<p align="justify"><font size="2" face="Segoe UI">The Silverlight 4 Training Course includes a whitepaper that explains all of the new Silverlight 4 features, several hands-on-labs that explain the features, and a 8 unit course for building business applications with Silverlight 4. The business applications course includes 8 modules with extensive hands on labs as well as 25 accompanying videos that walk you through key aspects of building a business application with Silverlight. Key aspects in this course are working with numerous sandboxed and elevated out of browser features, the new RichTextBox control, implicit styling, webcam, drag and drop, multi touch, validation, authentication, MEF, WCF RIA Services, right mouse click, and much more! </font></p>  <p align="justify"><font size="2" face="Segoe UI">Access this training course @ </font><a title="https://channel9.msdn.com/Learn/Courses/Silverlight4" href="https://channel9.msdn.com/Learn/Courses/Silverlight4"><font size="2" face="Segoe UI">https://channel9.msdn.com/Learn/Courses/Silverlight4</font></a></p>]]></content:encoded>
    </item>
    <item>
      <title>Azure Dynamic Scalability</title>
      <link>https://docs.microsoft.com/archive/blogs/ranjith/azure-dynamic-scalability</link>
      <pubDate>Sat, 22 Jan 2011 12:26:45 GMT</pubDate>
      <dc:creator><![CDATA[Ranjith Pallath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ranjith/2011/01/22/azure-dynamic-scalability/</guid>
      <description><![CDATA[Azure is a highly scalable cloud platform but still does not offer any out of the box features...]]></description>
      <content:encoded><![CDATA[<p><font size="2" face="Segoe UI">Azure is a highly scalable cloud platform but still does not offer any out of the box features through the management portal for scaling your roles based on the increasing loads. It however exposes the APIs it internally uses to scale up/down when you place a request through the management portal.</font></p>  <p><font size="2" face="Segoe UI">Here are some approaches you can use to implement dynamic scalability of you Azure roles.</font></p>  <p><font size="2" face="Segoe UI"><strong>Performance-Based Scaling:</strong></font><font size="2" face="Segoe UI">     <br /></font><a href="http://msdn.microsoft.com/en-us/magazine/gg232759.aspx"><font size="2" face="Segoe UI">http://msdn.microsoft.com/en-us/magazine/gg232759.aspx</font></a><font size="2" face="Segoe UI">&#160;&#160; <br />&#160; <br /><strong>Code approach:        <br /></strong></font><a href="http://code.msdn.microsoft.com/azurescale"><font size="2" face="Segoe UI">http://code.msdn.microsoft.com/azurescale</font></a><font size="2" face="Segoe UI">      <br />&#160; <br /><strong>Multithreading approach:        <br /></strong></font><a href="http://msdn.microsoft.com/en-us/azure/ff700243.aspx"><font size="2" face="Segoe UI">http://msdn.microsoft.com/en-us/azure/ff700243.aspx</font></a><font size="2" face="Segoe UI">      <br />&#160; <br /></font><a href="http://blogs.msdn.com/b/gonzalorc/archive/2010/02/07/auto-scaling-in-azure.aspx"><font size="2" face="Segoe UI">http://blogs.msdn.com/b/gonzalorc/archive/2010/02/07/auto-scaling-in-azure.aspx</font></a><font size="2" face="Segoe UI">      <br />&#160; <br /></font><a href="http://blogs.msdn.com/b/architectsrule/archive/2010/04/27/dynamic-scaling-windows-azure.aspx"><font size="2" face="Segoe UI">http://blogs.msdn.com/b/architectsrule/archive/2010/04/27/dynamic-scaling-windows-azure.aspx</font></a><font size="2" face="Segoe UI">      <br />&#160; <br /></font></p>]]></content:encoded>
    </item>
    <item>
      <title>What's new in Windows Azure 1.3 SDK</title>
      <link>https://docs.microsoft.com/archive/blogs/ranjith/whats-new-in-windows-azure-1-3-sdk</link>
      <pubDate>Sat, 22 Jan 2011 11:57:40 GMT</pubDate>
      <dc:creator><![CDATA[Ranjith Pallath]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ranjith/2011/01/22/whats-new-in-windows-azure-1-3-sdk/</guid>
      <description><![CDATA[Windows Azure includes new features and capabilities to help you deploy and manage your cloud...]]></description>
      <content:encoded><![CDATA[<p><font size="2" face="Segoe UI">Windows Azure includes new features and capabilities to help you deploy and manage your cloud services. </font></p>  <ul>   <li><a href="http://msdn.microsoft.com/en-us/library/#vmrole"><font size="2" face="Segoe UI">Virtual Machine (VM) Role</font></a></li>    <li><a href="http://msdn.microsoft.com/en-us/library/#remote"><font size="2" face="Segoe UI">Remote Desktop Access</font></a></li>    <li><a href="http://msdn.microsoft.com/en-us/library/#connect"><font size="2" face="Segoe UI">Windows Azure Connect</font></a></li>    <li><a href="http://msdn.microsoft.com/en-us/library/#extra"><font size="2" face="Segoe UI">Extra Small Instance</font></a></li>    <li><a href="http://msdn.microsoft.com/en-us/library/#portal"><font size="2" face="Segoe UI">Redesigned Management Portal</font></a></li>    <li><a href="http://msdn.microsoft.com/en-us/library/#ws08"><font size="2" face="Segoe UI">Windows Server 2008 R2</font></a></li>    <li><a href="http://msdn.microsoft.com/en-us/library/#elevated"><font size="2" face="Segoe UI">Elevated Privileges for Startup Tasks</font></a></li>    <li><a href="http://msdn.microsoft.com/en-us/library/#fullIIS"><font size="2" face="Segoe UI">Full IIS in Web Role</font></a></li>    <li><a href="http://msdn.microsoft.com/en-us/library/#emulator"><font size="2" face="Segoe UI">Compute and Storage Emulators</font></a></li>    <li><a href="http://msdn.microsoft.com/en-us/library/#sample"><font size="2" face="Segoe UI">Code Samples</font></a></li> </ul>  <p><font size="2" face="Segoe UI">For the list of known issues and SDK installation requirements, see </font><a href="http://msdn.microsoft.com/en-us/library/gg465715.aspx"><font size="2" face="Segoe UI">Windows Azure SDK Release Notes (November 2010)</font></a><font size="2" face="Segoe UI">.</font></p>]]></content:encoded>
    </item>
  </channel>
</rss>