<?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>Thej's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/thejs_blog/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/thejs_blog/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 04:06:57 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Worlds first Sway C.V?</title>
      <link>https://docs.microsoft.com/archive/blogs/thejs_blog/worlds-first-sway-c-v</link>
      <pubDate>Fri, 14 Aug 2015 00:28:00 GMT</pubDate>
      <dc:creator><![CDATA[ThejKumar Siddhotam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thejs_blog/2015/08/14/worlds-first-sway-c-v/</guid>
      <description><![CDATA[First post as an ex-microsoftie. I was just playing around with Sway and found it to be really...]]></description>
      <content:encoded><![CDATA[<p>First post as an ex-microsoftie. I was just playing around with Sway and found it to be really useful. I managed to make two sways with almost no effort.</p>
<p>&nbsp;</p>
<p>My interactive C.V -<a href="https://sway.com/_my1EHcy_bxdfD9t" target="_blank"> https://sway.com/_my1EHcy_bxdfD9t</a></p>
<p>&nbsp;</p>
<p>My life till now in a new country - <a href="https://sway.com/buSuINktUFmula2H" target="_blank">https://sway.com/buSuINktUFmula2H</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>FindMatchingControls for WPF windows</title>
      <link>https://docs.microsoft.com/archive/blogs/thejs_blog/findmatchingcontrols-for-wpf-windows</link>
      <pubDate>Thu, 04 Sep 2014 02:56:00 GMT</pubDate>
      <dc:creator><![CDATA[ThejKumar Siddhotam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thejs_blog/2014/09/04/findmatchingcontrols-for-wpf-windows/</guid>
      <description><![CDATA[If you have used Coded UI Test API FindMatchingControls on a WPF window, you might have noticed that...]]></description>
      <content:encoded><![CDATA[<p>If you have used Coded UI Test API <a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.uitesting.uitestcontrol.findmatchingcontrols.aspx">FindMatchingControls</a> on a WPF window, you might have noticed that the returned <a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.uitesting.uitestcontrolcollection.aspx">UITestControlCollection</a> doesn't have any children even if the window actually exists.</p>
<p>There is a small work around for this. You can go to the UIMap.uitest file, edit the window's search properties and remove the classname property from it (check the image below).</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/39/8231.Capture.JPG" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-39/8231.Capture.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/39/8231.Capture.JPG" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-39/8231.Capture.JPG" alt="" border="0" /></a></p>]]></content:encoded>
    </item>
    <item>
      <title>Excel Automation With Coded UI Test</title>
      <link>https://docs.microsoft.com/archive/blogs/thejs_blog/excel-automation-with-coded-ui-test</link>
      <pubDate>Wed, 28 May 2014 02:04:00 GMT</pubDate>
      <dc:creator><![CDATA[ThejKumar Siddhotam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thejs_blog/2014/05/28/excel-automation-with-coded-ui-test/</guid>
      <description><![CDATA[&nbsp;The three matrix that I have validated and shared are&nbsp;


Excel 2013 X VS 2013...]]></description>
      <content:encoded><![CDATA[<p style="text-align: justify;"><strong>&nbsp;</strong>The three matrix that I have validated and shared are&nbsp;</p>
<ol>
<li>
<div style="text-align: justify;">Excel 2013 X VS 2013 Update2</div>
</li>
<li>
<div style="text-align: justify;">Excel 2010 X VS 2013 Update2</div>
</li>
<li>
<div style="text-align: justify;">Excel 2010 X VS 2012</div>
</li>
</ol>
<p style="text-align: justify;"><strong>Install Instructions:</strong></p>
<ol style="text-align: justify;">
<li>Hit F5 on the solution. That installs the Excel Add-In</li>
<li>Copy Microsoft.VisualStudio.Test.Sample.UI.dll to UITestExtensionPackages&nbsp;and PrivateAssemblies</li>
<li>Copy Microsoft.VisualStudio.Test.Sample.UI.Excel.Communication.dll to PrivateAssemblies.&nbsp;</li>
</ol>
<p style="text-align: justify;">&nbsp;<strong>Important Points:</strong>&nbsp;</p>
<ol>
<li>In case of VS 2013, you need update 2 to get things working</li>
<li>Donot use two plugins at once. Pick the required set and ensure that only one addin is loaded into excel. To be sure go to Excel -&gt; File -&gt; Options -&gt; Add Ins -&gt; Manage combobox (Com Add ins) -&gt; Go. Here remove the CodedUIAddinHelper. Open the appropriate solution from above and hit F5. This will launch excel and also loads the plugin. Subsequent launches of excel can be done from anywhere (taskbar etc)</li>
<li>I have implemented Value as a writable properly that can be handcoded.</li>
</ol>
<p>&nbsp;</p>
<p style="text-align: justify;"><strong>Note:</strong></p>
<ul>
<li>
<div style="text-align: justify;">Path to UITestExtensionPackages will usually be something like C:\Program Files (x86)\Common Files\Microsoft Shared\VSTT\12.0\UITestExtensionPackages&nbsp;</div>
</li>
<li>
<div style="text-align: justify;">Path to PrivateAssemblies will usually be something like C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies</div>
</li>
</ul>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/52/90/07/ExcelPlugins.zip" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-52-90-07/ExcelPlugins.zip">ExcelPlugins.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Automating Webview control using Coded UI Test</title>
      <link>https://docs.microsoft.com/archive/blogs/thejs_blog/automating-webview-control-using-coded-ui-test</link>
      <pubDate>Sun, 25 Aug 2013 23:48:00 GMT</pubDate>
      <dc:creator><![CDATA[ThejKumar Siddhotam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thejs_blog/2013/08/25/automating-webview-control-using-coded-ui-test/</guid>
      <description><![CDATA[Webview control allows you to add html content to a XAML based windows store application. As part of...]]></description>
      <content:encoded><![CDATA[<p class="Normal">Webview control allows you to add html content to a XAML based windows store application. As part of adding automation support for&nbsp;<a href="https://aps.mail.microsoft.com/owa/redir.aspx?C=3UMyxkcps0-KvQXPLCVSFJrE5QS_ddAIaVWQU2mIc-5BIMiiWoTJHnMMn52ybc_hYgBYfk5FaWE.&amp;URL=http%3a%2f%2fblogs.msdn.com%2fb%2fvisualstudioalm%2farchive%2f2013%2f06%2f27%2fusing-coded-ui-to-test-xaml-based-windows-store-apps.aspx" target="_blank"><span class="Hyperlink__Char">XAML based windows store applications</span></a>, Coded UI Test also supports automating webview and the html content inside it.</p>
<p class="Normal">&nbsp;</p>
<p class="Normal">Authoring on (or inside) a webview control is the same as any other control. You drag and drop the cross hair of Coded UI Test Builder on top of the control or hover the mouse cursor on the control and press Ctrl+I. The hierarchy of the html controls inside webview looks like this &ndash;</p>
<p class="Normal"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/39/1300.temp1.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-39/1300.temp1.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/39/1300.temp1.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-39/1300.temp1.jpg" alt="" border="0" /></a></p>
<p class="Normal">&nbsp;</p>
<p class="Normal">The top most element in the hierarchy is the XamlWindow, followed by the&nbsp;<a href="https://aps.mail.microsoft.com/owa/redir.aspx?C=3UMyxkcps0-KvQXPLCVSFJrE5QS_ddAIaVWQU2mIc-5BIMiiWoTJHnMMn52ybc_hYgBYfk5FaWE.&amp;URL=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fmicrosoft.visualstudio.testtools.uitesting.windowsruntimecontrols.xamlwebview(v%3dvs.120).aspx" target="_blank"><span class="Hyperlink__Char"><span class="Hyperlink__Char">XamlWebView</span></span></a>&nbsp;which is the webview control hosting the html content. The document and the textbox are web controls. The complete set of the web controls is documented&nbsp;<a href="https://aps.mail.microsoft.com/owa/redir.aspx?C=3UMyxkcps0-KvQXPLCVSFJrE5QS_ddAIaVWQU2mIc-5BIMiiWoTJHnMMn52ybc_hYgBYfk5FaWE.&amp;URL=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fmicrosoft.visualstudio.testtools.uitesting.htmlcontrols.aspx" target="_blank"><span class="Hyperlink__Char"><span class="Hyperlink__Char">here</span></span></a>. On these controls you will be able to see properties like innerText and tagName which are specific to web controls.</p>
<p class="Normal">&nbsp;</p>
<p class="Normal">Hand coding on hosted html controls will require a couple of things</p>
<p class="List_0020Paragraph">1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The XamlWebView and the HtmlDocument immediately inside it are to be always added in the hierarchy of the control.</p>
<p class="List_0020Paragraph">2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name should always be added as a search property to the XamlWebView.</p>
<p class="List_0020Paragraph">3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If there is a HTML frame in the hierarchy, the HTMLFrame&nbsp;<a name="_GoBack"></a>and the HTMLDocument immediately below it are to be added.</p>
<p class="Normal">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/39/8780.temp2.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-39/8780.temp2.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/39/8780.temp2.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-39/8780.temp2.jpg" alt="" border="0" /></a></p>
<p class="Normal">Sample code looks like below</p>
<p class="Normal">&nbsp;</p>
<p class="Normal">&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Dear Desktop users, meet the new Start Menu, it just got bigger</title>
      <link>https://docs.microsoft.com/archive/blogs/thejs_blog/dear-desktop-users-meet-the-new-start-menu-it-just-got-bigger</link>
      <pubDate>Fri, 31 Aug 2012 18:25:00 GMT</pubDate>
      <dc:creator><![CDATA[ThejKumar Siddhotam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thejs_blog/2012/08/31/dear-desktop-users-meet-the-new-start-menu-it-just-got-bigger/</guid>
      <description><![CDATA[First, let me start by saying these are my thoughts and my thoughts alone and I do not work in the...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">First, let me start by saying these are my thoughts and my thoughts alone and I do not work in the Windows team. Second, this post is targeted towards desktop users who don&rsquo;t have a touch screen and who prefer to stay most of the time in the desktop world. Third, this is about the start screen and start menu only and no other aspects of the OS(s).</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Having made that clear, here I go.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">I have been reading a lot of discussion going on in the web over the removal of start button and start menu in windows 8. &nbsp;While most folks are excited about the new windows 8 start screen, a few are of the opinion that it slows them down. I will try to prove them wrong via this post. Now the below is a snapshot of a windows 7 start menu.&nbsp;</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;">It typically contains a bunch of programs like outlook, word, media player, a browser etc and a bunch of links to folders like Documents, Music etc. The highlight of the windows start menu at least for me was the search box in it. In fact, I had gotten so used to it, pressing windows key, typing something and hitting enter had become muscle memory. And yea, there is also an &ldquo;All Programs&rdquo; item which can be used to launch many other programs but I prefer using search box to this item.</span></span></span></p>
<table border="0">
<tbody>
<tr>
<td>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/39/8080.Untitled.png" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-39/8080.Untitled.png"><img width="295" height="318" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/39/8080.Untitled.png" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-39/8080.Untitled.png" border="0" /></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/39/1401.startmenu.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-39/1401.startmenu.jpg"></a></span></span></span></span></p>
</td>
<td style="padding-left: 30px;">
<p style="text-align: left; padding-left: 30px;"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">To summarize there are five things about the start menu that folks use on a regular basis</span></span></p>
<ol>
<li style="text-align: justify;"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Launching - Clicking a button at the left-bottom corner of the screen or hitting windows key.</span></span></li>
<li style="text-align: justify;"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Pinned Programs - Launch the programs pinned to it with a single click(8-10 programs on average)</span></span></li>
<li style="text-align: justify;"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Folders &ndash; Open Documents folder with a single click. (and Music, Favorites, Videos, Computer etc)</span></span></li>
<li style="text-align: justify;"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Search - Has an amazing search box which can be used to search for almost anything in the computer.</span></span></li>
<li style="text-align: justify;"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">All Programs &ndash; Used to launch non pinned items but takes several clicks.&nbsp;</span></span>&nbsp;</li>
</ol></td>
</tr>
</tbody>
</table>
<p><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri">&nbsp;</span><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Now, in windows 8, there are several awesome windows store apps that work brilliantly with mouse and keyboard. I use them on a regular basis. But for those who are going to be mainly living in the desktop world and want their start screen back, I have some good news - the start menu has in fact become larger and is now called the start screen. There is nothing significant that the start menu in windows 7 used to do that the new start screen cannot (but the reverse is obviously not true). Now, have a look at the picture below, you can see I have mimicked the structure of the start menu in the start screen. And there is scope of pinning more desktop programs over here.</span></span></p>
<p><br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/39/0640.starttiles.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-39/0640.starttiles.jpg"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/39/0640.starttiles.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-39/0640.starttiles.jpg" border="0" /></a><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/39/0753.starttiles.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-39/0753.starttiles.jpg"></a></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Now let&rsquo;s do a compare of the earlier points shall we</span></span></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top"><strong><span style="font-family: arial black,avant garde; font-size: small;"><span style="background-color: #ffffff;" size="3" face="Times New Roman"> </span></span></strong>
<p><span style="font-size: small;"><span style="background-color: #ffffff;" size="3"><span face="Calibri">Action</span></span></span></p>
<span style="font-size: small;"><span style="background-color: #ffffff;" size="3" face="Times New Roman"> </span></span></td>
<td valign="top"><span style="font-size: small;"><span style="background-color: #ffffff;" size="3" face="Times New Roman"> </span></span>
<p><span style="font-size: small;"><span style="background-color: #ffffff;" size="3"><span face="Calibri">How to do it</span></span></span></p>
<span style="font-size: small;"><span style="background-color: #ffffff;" size="3" face="Times New Roman"> </span></span></td>
<td valign="top"><span style="font-size: small;"><span style="background-color: #ffffff;" size="3" face="Times New Roman"> </span></span>
<p><span style="font-size: small;"><span style="background-color: #ffffff;" size="3"><span face="Calibri">Comparison with old start menu</span></span></span></p>
<strong><span style="font-family: arial black,avant garde; font-size: small;"><span style="background-color: #ffffff;" size="3" face="Times New Roman"> </span></span></strong></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Launching</span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Click on left-bottom corner or hitting windows key</span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Practically no difference (Let&rsquo;s assume someone told you about the hot corners or you saw the instructions when setting up your new pc)</span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Pinned programs</span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Single click on tile to launch </span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Many more programs can be pinned compared to start menu</span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Folders</span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Single click on tile to launch</span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Many more folders can be pinned compared to start menu</span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Search</span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Start typing on the start screen and search box will appear automatically</span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Now you can search not just in the computer but web as well(inside windows store apps as well, but we are talking desktop users here)</span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
</tr>
<tr>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">All Programs</span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Right-Click and Click &ldquo;All apps&rdquo; - all your programs appear. Click on any to launch.</span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
<td valign="top"><span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Earlier, the simplest case involved two clicks and the worst case involved many. Now, in most cases you wouldn&rsquo;t need it because start screen now has much larger area to pin all the programs you want. Still, if you have something that you haven&rsquo;t pinned, it requires no more than three clicks.(check the below screenshot)</span></span></p>
<span style="font-family: Times New Roman; font-size: small;" size="3" face="Times New Roman"> </span></td>
</tr>
</tbody>
</table>
<p><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"></span><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"></span><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"></span>&nbsp;</p>
<p><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/39/1614.startall.jpg" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-39/1614.startall.jpg"><img alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/39/1614.startall.jpg" original-url="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-39/1614.startall.jpg" border="0" /></a></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Times New Roman;" face="Times New Roman"><br clear="ALL" /></span><span style="font-family: Calibri;" face="Calibri">&nbsp;</span></span><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">As you can see the windows 8 start screen is either better or is same as the start menu of windows 7 in all respects. So, put to rest all the worries about start screen slowing you down because it doesn&rsquo;t. It just got bigger and better. </span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">You need more reasons to upgrade? Well, I will just give 8 reasons but there are several others. And if I start talking about using the windows store apps then I can give 88 plus reasons. But let&rsquo;s stick to pure desktop users.</span></span></p>
<ol>
<li>
<div style="text-align: left; padding-left: 30px;"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Did you check out the boot times &ndash; absolutely amazing</span></span></div>
</li>
<li>
<div style="text-align: left; padding-left: 30px;"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">The new explorer</span></span></div>
</li>
<li>
<div style="text-align: left; padding-left: 30px;"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">The cute yet powerful new task manager</span></span></div>
</li>
<li>
<div style="text-align: left; padding-left: 30px;"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Better battery life</span></span></div>
</li>
<li>
<div style="text-align: left; padding-left: 30px;"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Better copy paste experience</span></span></div>
</li>
<li>
<div style="text-align: left; padding-left: 30px;"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Inbuilt ISO and VHD reading</span></span></div>
</li>
<li>
<div style="text-align: left; padding-left: 30px;"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Inbuilt USB 3.0 support</span></span></div>
</li>
<li>
<div style="text-align: left; padding-left: 30px;"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Sync settings across machines</span></span></div>
</li>
</ol>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">I use three pcs at work and one at home. Out of these one is a hybrid-laptop (touch and type), one works on dual-monitor, one is a powerful machine which hosts several VMS and the last one is a netbook. All of these now run on Windows 8 and I have never been so satisfied with an OS.&nbsp; I urge all the desktop users to give windows 8 start screen a try, you will be surprised at how much you will like it. And at 40$ for an upgrade, it&rsquo;s a steal.</span></span></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Retrying in C#</title>
      <link>https://docs.microsoft.com/archive/blogs/thejs_blog/retrying-in-c</link>
      <pubDate>Wed, 04 Jul 2012 17:14:00 GMT</pubDate>
      <dc:creator><![CDATA[ThejKumar Siddhotam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thejs_blog/2012/07/04/retrying-in-c/</guid>
      <description><![CDATA[Retrying if an exception occurs is a very common scenario that many of you may have faced one time...]]></description>
      <content:encoded><![CDATA[<p>Retrying if an exception occurs is a very common scenario that many of you may have faced one time or the other. Let's take an example. Let's say I have a dll in which there is a class Pinger. It has methods like Ping(), WaitAndPing(int), WaitAndPingConditional(bool, int).Let's assume that these methods Ping a certain server and may sometimes throw a TimedOutException if the server is busy. Now in such a case, we can write a wrapper class over this, wrapping each method, where we catch the exception and retry once more. The code might look like</p>
<p>&nbsp;</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">private</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">bool </span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas">UsualMethod3(</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">bool</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> a, </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">int</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> b)</span></span></p>
<p>{</p>
<p style="padding-left: 30px;"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas">Pinger</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> pinger = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">new</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas">Pinger</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas">();</span></span></p>
<p style="padding-left: 30px;"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">for</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> (</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">int</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> i = 0; i &lt; 2; i++)</span></span></p>
<p style="padding-left: 30px;">{</p>
<p style="padding-left: 60px;"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">try</span></span></span></p>
<p style="padding-left: 60px;">{</p>
<p style="padding-left: 90px;"><span style="font-size: x-small;">return pinger.Ping(a, b);</span></p>
<p style="padding-left: 60px;">}</p>
<p style="padding-left: 60px;"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">catch</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> (</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas">Exception</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> e)</span></span></p>
<p style="padding-left: 60px;">{</p>
<p style="padding-left: 90px;"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">if</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> (i == 0 &amp;&amp; e </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">is</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas">TimeoutException</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas">)</span></span></p>
<p style="padding-left: 90px;">{</p>
<p style="padding-left: 120px;"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas">Console</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas">.WriteLine(</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">string</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas">.Format(</span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;" size="2" color="#a31515" face="Consolas"><span style="color: #a31515; font-family: Consolas; font-size: x-small;" size="2" color="#a31515" face="Consolas"><span style="color: #a31515; font-family: Consolas; font-size: x-small;" size="2" color="#a31515" face="Consolas">"Got an exception \"{0}\" in attempt {1}, retrying"</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas">, </span></span>e.Message, i + 1));</p>
<p style="padding-left: 120px;"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">continue</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas">;</span></span></p>
<p style="padding-left: 90px;">}</p>
<p style="padding-left: 90px;"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">throw</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> e;</span></span></p>
<p style="padding-left: 60px;">}</p>
<p style="padding-left: 30px;">}</p>
<p style="padding-left: 30px;"><span style="font-size: x-small;">return null;</span></p>
<p>}</p>
<p>&nbsp;</p>
<p>The problem with the above code is that you have to repeat the same&nbsp;for every&nbsp;method of PingerClass. If there are several such methods, very quickly we might end up having a lot of duplication of the same try catch and for loop. A simple solution for this is to have a method that takes any kind of function as an input and does retry etc for this. This can be achieved using Func. So, if you check the attached code, you will find that I have a method like this.</p>
<p>&nbsp;<span style="font-size: x-small;">public </span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">object</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> Retry(</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas">Func</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas">&lt;</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">object</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas">&gt; function, </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas">Action</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas">&lt;</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;" size="2" color="#2b91af" face="Consolas">Exception</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas">&gt; retryHandler, </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;" size="2" color="#0000ff" face="Consolas">int</span></span></span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"> retryCount).</span></span>&nbsp;</p>
<p>So anywhere you need to do a retry, you just pass the function or a chunk of code wrapped in a function to it, You will be able to execute any kind of code in this retry block.</p>
<p><span style="font-size: x-small;">RetryManager</span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas">.Instance.Retry(() =&gt;</span></span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; font-size: x-small;"> //Write whatever code you want to be retried here. For the above case, you would be making a call to pinger.Ping() here</span></p>
<p><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }, null, 1);</span></p>
<p></p>
<p>&nbsp;</p>
<p>&nbsp;If you want to handle some kind of exceptions only, then you can write code in the handler.</p>
<p><span style="font-size: x-small;">RetryManager</span><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas">.Instance.Retry(() =&gt;</span></span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; font-size: x-small;"> //Write whatever code you want to be retried here. For the above case, you would be making a call to pinger.Ping() here</span></p>
<p><span style="font-size: x-small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }, <span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"><span style="font-family: Consolas; font-size: x-small;" size="2" face="Consolas"></span></span></span></span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (e) =&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; font-size: x-small;"> //Write code to handle a failure here before the retry happens. For the above case, it would be <em><strong>if<span style="font-family: Consolas;" size="2" face="Consolas"><span style="font-family: Consolas;" size="2" face="Consolas">(!(e </span></span><span style="font-family: Consolas;" size="2" color="#0000ff" face="Consolas"><span style="font-family: Consolas;" size="2" color="#0000ff" face="Consolas"><span style="font-family: Consolas;" size="2" color="#0000ff" face="Consolas">is</span></span></span><span style="font-family: Consolas;" size="2" face="Consolas"><span style="font-family: Consolas;" size="2" face="Consolas"> </span></span><span style="font-family: Consolas;" size="2" color="#2b91af" face="Consolas"><span style="font-family: Consolas;" size="2" color="#2b91af" face="Consolas"><span style="font-family: Consolas;" size="2" color="#2b91af" face="Consolas">TimeoutException</span></span></span><span style="font-family: Consolas;" size="2" face="Consolas"><span style="font-family: Consolas;" size="2" face="Consolas">)) </span></span><span style="font-family: Consolas;" size="2" color="#0000ff" face="Consolas"><span style="font-family: Consolas;" size="2" color="#0000ff" face="Consolas"><span style="font-family: Consolas;" size="2" color="#0000ff" face="Consolas">throw</span></span></span><span style="font-family: Consolas;" size="2" face="Consolas"><span style="font-family: Consolas;" size="2" face="Consolas"> e;</span></span></strong></em></span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }, 1);</p>
<p></p>
<p><span style="font-size: x-small;"></span>&nbsp;</p>
<p>&nbsp;</p>
<p>To use the attached solution, unzip it, build the Pinger class first(because it is used as a dll ref in the test project) and then look at the test code. There are two testmethods RetryTestsUsual and RetryUsingRetryHelper. In RetryTestsUsual, retrying is done using a for loop and a try catch. As said above this is a simple solution if are doing it for only one or two methods. In RetryUsingRetryHelper, you will find that the code has been significantly reduced and there is a lot less duplication.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/32/69/79/Retrier.zip" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-32-69-79/Retrier.zip">Retrier.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>My first windows phone APP</title>
      <link>https://docs.microsoft.com/archive/blogs/thejs_blog/my-first-windows-phone-app</link>
      <pubDate>Sun, 16 Oct 2011 18:40:00 GMT</pubDate>
      <dc:creator><![CDATA[ThejKumar Siddhotam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thejs_blog/2011/10/16/my-first-windows-phone-app/</guid>
      <description><![CDATA[This was more of an experiment. I wanted to see if it was possible to write a simple&nbsp;app and...]]></description>
      <content:encoded><![CDATA[<p>This was more of an experiment. I wanted to see if it was possible to write a simple&nbsp;app and upload it to market place in less than an hour. And the result - yes it is possible.</p>
<p>The app itself is very simple. Just a bunch of stories converted into a e-book&nbsp;styled application for easy reading. I had written those stories when I was in college.</p>
<p>&nbsp;</p>
<p>Here is the link to the app. Just a click on it from your windows phone should take it to the installation page in the market place. <a href="http://windowsphone.com/s?appid=78f325c7-3d30-4374-a2a1-c54263670151">Love Stories From India</a></p>
<p>&nbsp;&nbsp;</p>
<p>Note: Because I wanted to do it in less than one hour, I didn't spend much time in polishing it well. So there may be a few rough edges. But the stories should be a nice pass time ( I hope :-) ) .</p>]]></content:encoded>
    </item>
    <item>
      <title>Modifying Technology used for identifying control</title>
      <link>https://docs.microsoft.com/archive/blogs/thejs_blog/modifying-technology-used-for-identifying-control</link>
      <pubDate>Tue, 17 May 2011 00:50:00 GMT</pubDate>
      <dc:creator><![CDATA[ThejKumar Siddhotam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thejs_blog/2011/05/17/modifying-technology-used-for-identifying-control/</guid>
      <description><![CDATA[I have seen several posts on the forum asking&nbsp;how to ensure&nbsp;UIA is used instead of MSAA...]]></description>
      <content:encoded><![CDATA[<p>I have seen several posts on the forum asking&nbsp;how to ensure&nbsp;UIA is used instead of MSAA for all controls. My colleague Rajeev Kumar had once written some sample code that achieves this.</p>
<p>All you have to do is unzip the attached file, build it and put&nbsp;the UIAProxy.dll&nbsp;in %ProgramFiles%\Common Files\microsoft shared\VSTT\10.0\UITestExtensionPackages\ (or %ProgramFiles(x86)%\Common Files\microsoft shared\VSTT\10.0\UITestExtensionPackages\ if it is a 64 bit machine).</p>
<p>Note1: If it is still not working for you. You might have to do some code changes in the UIAProxyTechnologyManager.cs file. There is a method called GetControlSupport in that file. Check what your controls classname is coming as, and ensure that you return (int)ControlSupport.NativeSupport for that class name.</p>
<p>Note2: This code is not production quality code and has not undergone complete testing. So there might be a few bugs. If you find any issues as such, do ping me, I will do my best to get them resolved.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Update:</p>
<p>We have released a QFE after which achieving the above(using UIA instead of MSAA) has become a lot more easier.</p>
<p>Go through <a href="http://blogs.msdn.com/b/visualstudioalm/archive/2012/05/24/coded-ui-test-new-extensibility-qfe.aspx">http://blogs.msdn.com/b/visualstudioalm/archive/2012/05/24/coded-ui-test-new-extensibility-qfe.aspx</a> to know more about the QFE.</p>
<p>I am attaching a sample project which you can use as a improved/easier replacement for UIAProxy.dll.</p>
<p>Download ProxyPlugins.zip, extract, build the &nbsp;WPFExtendPlugin&nbsp;solution and copy WPFExtendPlugin.dll to %ProgramFiles%\Common Files\microsoft shared\VSTT\10.0\UITestExtensionPackages\ (or %ProgramFiles(x86)%\Common Files\microsoft shared\VSTT\10.0\UITestExtensionPackages\ if it is a 64 bit machine).</p>
<p>If you are already using UIAProxy.dll, do delete it before using this.</p>
<p>If you want to fine tune this further, you need to modify GetControlSupportLevel() method in WPFExtendManager.cs file to return ControlSupport.ControlSpecific support only for the controls of your choice.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/16/52/50/ProxyPlugins.zip" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-16-52-50/ProxyPlugins.zip">ProxyPlugins.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Test Post</title>
      <link>https://docs.microsoft.com/archive/blogs/thejs_blog/test-post</link>
      <pubDate>Tue, 17 May 2011 00:14:06 GMT</pubDate>
      <dc:creator><![CDATA[ThejKumar Siddhotam]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/thejs_blog/2011/05/17/test-post/</guid>
      <description><![CDATA[Have finally created a blog on msdn. Lets see how good I am at maintaining it.]]></description>
      <content:encoded><![CDATA[<p>Have finally created a blog on msdn. Lets see how good I am at maintaining it.</p>]]></content:encoded>
    </item>
  </channel>
</rss>