<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Code Junkie</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/codejunkie/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/codejunkie/feed.xml</link>
    <description>My likes and dislikes of the computer world.</description>
    <lastBuildDate>Tue, 16 Apr 2019 04:55:47 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Download Windows 8 Release Preview from MSDN Subscriptions</title>
      <link>https://docs.microsoft.com/archive/blogs/codejunkie/download-windows-8-release-preview-from-msdn-subscriptions</link>
      <pubDate>Thu, 31 May 2012 12:24:48 GMT</pubDate>
      <dc:creator><![CDATA[Anil Revuru]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/codejunkie/2012/05/31/download-windows-8-release-preview-from-msdn-subscriptions/</guid>
      <description><![CDATA[MSDN Home: (Visual Studio RC Banner)https://msdn.microsoft.com/subscriptions/&nbsp;
MSDN Subscriber...]]></description>
      <content:encoded><![CDATA[<p>MSDN Home: (Visual Studio RC Banner)<br /><a href="https://msdn.microsoft.com/subscriptions/">https://msdn.microsoft.com/subscriptions/</a>&nbsp;</p>
<p>MSDN Subscriber Downloads: (Windows Client and Server, Visual Studio)<br /><a href="https://msdn.microsoft.com/subscriptions/downloads">https://msdn.microsoft.com/subscriptions/downloads</a></p>
<p>TechNet Subscriber Downloads: (Windows Client and Server)<br /><a href="https://technet.microsoft.com/subscriptions/downloads">https://technet.microsoft.com/subscriptions/downloads</a></p>
<p>&nbsp;</p>
<p>Thanks<br />RV</p>]]></content:encoded>
    </item>
    <item>
      <title>Download Windows 8 from MSDN Subscriptions</title>
      <link>https://docs.microsoft.com/archive/blogs/codejunkie/download-windows-8-from-msdn-subscriptions</link>
      <pubDate>Tue, 13 Sep 2011 17:29:00 GMT</pubDate>
      <dc:creator><![CDATA[Anil Revuru]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/codejunkie/2011/09/13/download-windows-8-from-msdn-subscriptions/</guid>
      <description><![CDATA[MSDN Subscriptions just released windows 8 files on msdn subscriptions, you can get it with your...]]></description>
      <content:encoded><![CDATA[<p>MSDN Subscriptions just released windows 8 files on msdn subscriptions, you can get it with your subscription.</p>
<p>Windows 8 - <a href="https://msdn.microsoft.com/en-us/subscriptions/securedownloads/default.aspx?pv=36:481">https://msdn.microsoft.com/en-us/subscriptions/securedownloads/default.aspx?pv=36:481</a></p>
<p>Windows Server 2012 - <a href="https://msdn.microsoft.com/en-us/subscriptions/securedownloads/default.aspx?pv=36:483">https://msdn.microsoft.com/en-us/subscriptions/securedownloads/default.aspx?pv=36:483</a></p>
<p>Thanks <br />RV</p>]]></content:encoded>
    </item>
    <item>
      <title>Localized String Lengths and UI Design</title>
      <link>https://docs.microsoft.com/archive/blogs/codejunkie/localized-string-lengths-and-ui-design</link>
      <pubDate>Wed, 27 Jul 2011 09:29:00 GMT</pubDate>
      <dc:creator><![CDATA[Anil Revuru]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/codejunkie/2011/07/27/localized-string-lengths-and-ui-design/</guid>
      <description><![CDATA[Creating a UI design with right button widths and field lengths are quite challenging when you...]]></description>
      <content:encoded><![CDATA[<p>Creating a UI design with right button widths and field lengths are quite challenging when you consider using image spriting techniques. When I was designing a page I would go to <a href="https://www.microsofttranslator.com">www.microsofttranslator.com</a> and use it to translate words to see if everything works as expected. However, I had to do it for multiple languages which is painful. In the end, all I want is give one string and get it translated into multiple languages at once. So I started looking at how to use Bing translation API, specifically the <a href="https://msdn.microsoft.com/en-us/library/ff512404.aspx">AJAX interface</a>. However, the example given on the MSDN page was using really antiquated way of making AJAX calls.</p>
<p>I created a page that would make a simple AJAX call to Translate method to translate a given input string.</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">script</span> <span class="attr">type</span><span class="kwrd">="text/javascript"</span><span class="kwrd">&gt;</span>
     $(document).ready(<span class="kwrd">function</span> () {
         $(<span class="str">"#translateButton"</span>).click(<span class="kwrd">function</span> () {
             $(<span class="str">".translationResult"</span>).each(<span class="kwrd">function</span> () {
                 <span class="kwrd">var</span> translationResultObject = <span class="kwrd">this</span>;
                 <span class="kwrd">var</span> translationData = {};
                 translationData.appId = $(<span class="str">"#bingAPIKey"</span>).text();
                 translationData.to = $(translationResultObject).attr(<span class="str">"id"</span>);
                 translationData.from = <span class="str">"en"</span>;
                 translationData.text = $(<span class="str">"#translationInput"</span>).val();
          $.ajax({
            url: <span class="str">'https://api.microsofttranslator.com/V2/Ajax.svc/Translate'</span>,
            data: translationData,
            dataType: <span class="str">'jsonp'</span>,
            jsonp: <span class="str">'oncomplete'</span>,
            success: <span class="kwrd">function</span> (data) {
               $(translationResultObject).text(data);
            }
          });
             });

         });
     });

 <span class="kwrd">&lt;/</span><span class="html">script</span><span class="kwrd">&gt;</span></pre>
<p>Note the data type in AJAX call, I am using jsonp instead of json as the Bing AJAX interface calls use callback mechanism to return data. However I am not passing the callback function name and relying on the success method itself to use the context variable to assign my translated text back to DOM. You can also use another callback function and use jsonpCallback to direct jquery to use that. If you want to do that then use <a href="https://msdn.microsoft.com/en-us/library/ff512402.aspx">GetTranslations</a> along with options parameter to pass State back and forth. I had bunch of div elements that provided the needed input for the AJAX call to do its work.</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="languageLabel"</span><span class="kwrd">&gt;</span>German:<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="de"</span> <span class="attr">class</span><span class="kwrd">="translationResult"</span><span class="kwrd">&gt;&lt;/</span><span class="html">div</span><span class="kwrd">&gt;&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="languageLabel"</span><span class="kwrd">&gt;</span>Japanese:<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="ja"</span> <span class="attr">class</span><span class="kwrd">="translationResult"</span><span class="kwrd">&gt;&lt;/</span><span class="html">div</span><span class="kwrd">&gt;&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="languageLabel"</span><span class="kwrd">&gt;</span>French:<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="fr"</span> <span class="attr">class</span><span class="kwrd">="translationResult"</span><span class="kwrd">&gt;&lt;/</span><span class="html">div</span><span class="kwrd">&gt;&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="languageLabel"</span><span class="kwrd">&gt;</span>Spanish:<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="es"</span> <span class="attr">class</span><span class="kwrd">="translationResult"</span><span class="kwrd">&gt;&lt;/</span><span class="html">div</span><span class="kwrd">&gt;&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="languageLabel"</span><span class="kwrd">&gt;</span>Chinese Simplified:<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="zh-CHS"</span> <span class="attr">class</span><span class="kwrd">="translationResult"</span><span class="kwrd">&gt;&lt;/</span><span class="html">div</span><span class="kwrd">&gt;&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="languageLabel"</span><span class="kwrd">&gt;</span>Chinese Traditional:<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="zh-CHT"</span> <span class="attr">class</span><span class="kwrd">="translationResult"</span><span class="kwrd">&gt;&lt;/</span><span class="html">div</span><span class="kwrd">&gt;&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="languageLabel"</span><span class="kwrd">&gt;</span>Russian:<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="ru"</span> <span class="attr">class</span><span class="kwrd">="translationResult"</span><span class="kwrd">&gt;&lt;/</span><span class="html">div</span><span class="kwrd">&gt;&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="languageLabel"</span><span class="kwrd">&gt;</span>Italian:<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="it"</span> <span class="attr">class</span><span class="kwrd">="translationResult"</span><span class="kwrd">&gt;&lt;/</span><span class="html">div</span><span class="kwrd">&gt;&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="languageLabel"</span><span class="kwrd">&gt;</span>Korean:<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="ko"</span> <span class="attr">class</span><span class="kwrd">="translationResult"</span><span class="kwrd">&gt;&lt;/</span><span class="html">div</span><span class="kwrd">&gt;&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span>
<span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="languageLabel"</span><span class="kwrd">&gt;</span>Portugese:<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="pt"</span> <span class="attr">class</span><span class="kwrd">="translationResult"</span><span class="kwrd">&gt;&lt;/</span><span class="html">div</span><span class="kwrd">&gt;&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span></pre>
<p>Now lets see all of this in action.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/5773.image_25684F31.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-27-metablogapi/5773.image_5F00_25684F31.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/2134.image_thumb_2C1B58B4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-00-27-metablogapi/2134.image_5F00_thumb_5F00_2C1B58B4.png" width="402" height="230" /></a></p>
<p>I have attached the entire htm file to this blog post for reference.</p>
<p>Thanks <br />RV</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/19/03/93/TranslateStrings.htm" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-19-03-93/TranslateStrings.htm">TranslateStrings.htm</a></p>]]></content:encoded>
    </item>
    <item>
      <title>I am back with Subscriptions!!!</title>
      <link>https://docs.microsoft.com/archive/blogs/codejunkie/i-am-back-with-subscriptions</link>
      <pubDate>Mon, 25 Jul 2011 16:47:49 GMT</pubDate>
      <dc:creator><![CDATA[Anil Revuru]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/codejunkie/2011/07/25/i-am-back-with-subscriptions/</guid>
      <description><![CDATA[Its been almost a year since my last blog post, I have been extremely busy with stuff around moving...]]></description>
      <content:encoded><![CDATA[<p>Its been almost a year since my last blog post, I have been extremely busy with stuff around moving jobs to getting used to the new job. BTW, I moved from Information Security Tools to MSDN Subscriptions. MSDN as a whole is an awesome place to work, from Library to Visual Studio Snippets, patterns and practices to subscriptions, we do a lot of stuff. Recently you might have seen the beta release of <a href="https://blogs.msdn.com/b/msdnsubscriptions/archive/2011/06/30/msdn-amp-technet-subscriptions-2-0-experience-preview.aspx" target="_blank">MSDN Subscriptions 2.0 site</a>, I was hard at work on this. In the mean time I have been working on some more stuff as well, in the coming months I will try to cover the following things in more depth.</p>
<ol>
<li>Netduino - Arduino with .NET MF</li>
<li>QUnit - JavaScript unit testing</li>
<li>MVC 4</li>
</ol>
<p>BTW, in my last team I was working on Web Application Configuration Analyzer v2.0, it was released couple of months ago, you can find the updated version @ <a href="https://www.microsoft.com/download/en/details.aspx?id=573">https://www.microsoft.com/download/en/details.aspx?id=573.</a>&nbsp;I will have more info on WACA 2.0 later.</p>
<p>Thanks<br />RV</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Anti-XSS Library v4.0 is released</title>
      <link>https://docs.microsoft.com/archive/blogs/codejunkie/anti-xss-library-v4-0-is-released</link>
      <pubDate>Thu, 30 Sep 2010 15:50:26 GMT</pubDate>
      <dc:creator><![CDATA[Anil Revuru]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/codejunkie/2010/09/30/anti-xss-library-v4-0-is-released/</guid>
      <description><![CDATA[Barrage of changes were made for this release including CSS and LDAP encodings. You can get more...]]></description>
      <content:encoded><![CDATA[<p>Barrage of changes were made for this release including CSS and LDAP encodings. You can get more details about the release at <a title="https://blogs.msdn.com/b/securitytools/archive/2010/09/30/antixss_2d00_4_2d00_0_2d00_release_2d00_notes.aspx" href="https://blogs.msdn.com/b/securitytools/archive/2010/09/30/antixss_2d00_4_2d00_0_2d00_release_2d00_notes.aspx">https://blogs.msdn.com/b/securitytools/archive/2010/09/30/antixss_2d00_4_2d00_0_2d00_release_2d00_notes.aspx</a>. You can download the installer from <a title="https://www.microsoft.com/downloads/en/details.aspx?FamilyID=f4cd231b-7e06-445b-bec7-343e5884e651" href="https://www.microsoft.com/downloads/en/details.aspx?FamilyID=f4cd231b-7e06-445b-bec7-343e5884e651">https://www.microsoft.com/downloads/en/details.aspx?FamilyID=f4cd231b-7e06-445b-bec7-343e5884e651</a> and source from <a href="https://wpl.codeplex.com">https://wpl.codeplex.com</a>.</p>  <p>Thanks   <br />Anil RV</p>]]></content:encoded>
    </item>
    <item>
      <title>How to View a Report in WACA?</title>
      <link>https://docs.microsoft.com/archive/blogs/codejunkie/how-to-view-a-report-in-waca</link>
      <pubDate>Fri, 24 Sep 2010 09:02:47 GMT</pubDate>
      <dc:creator><![CDATA[Anil Revuru]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/codejunkie/2010/09/24/how-to-view-a-report-in-waca/</guid>
      <description><![CDATA[Web Application Configuration Analyzer v1.0 is the latest tool released by our team that scans a...]]></description>
      <content:encoded><![CDATA[<p><a href="https://www.microsoft.com/downloads/en/details.aspx?FamilyID=60585590-57df-4fc1-8f0c-05a286059406">Web Application Configuration Analyzer v1.0</a> is the latest tool released by our team that scans a machine for deployment best practices. Here is how you can use this tool to view a scan report which provides resolution details for failed rules.</p>  <p>1. From the presented Launchpad under the “Quick Actions” Section screen click on the “<b>View scan results</b>” link or go to “<b>File</b>” menu and select “<b>View scan results</b>”. You can also get to this screen by clicking on the “View Report” button after a scan, which will automatically select that scan for the report.</p>  <p>2. From the first drop down box, select a server to view a scan result. The drop down box displays all the server names for which results have been generated by the tool. Upon selecting the server name, the list box displays the scanned dates and times starting with latest date and timestamp.    <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/0537.clip_image002_097F7603.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/0537.clip_5F00_image002_5F00_097F7603.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 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/00/27/metablogapi/0525.clip_image002_thumb_205E477F.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/0525.clip_5F00_image002_5F00_thumb_5F00_205E477F.jpg" width="550" height="637" /></a></p>  <p>3. The report is divided into multiple sections. You can navigate to corresponding section by clicking the links in summary table. There are four sections for every report. First is the Summary, which tells you about the machine and its specific attributes. This section also serves as the index allowing you to select a link to jump to that specific section. The next section is the General application Rules. This is where all rules pertaining to a machine regardless to the machines purpose. The next section contains the IIS Application rules. If a user knows this machine is an IIS box then this section should have all the security rules for IIS in one contained section. The last section is for SQL server. Assuming the server is a SQL server machine all rules pertaining to SQL Server will be in this section.</p>  <p>4. Results from scanning a machine falls into one of four states: <b>Passed, Failed, Indeterminate and Not Applicable</b>. Passed indicates the rules was tested and based on WACA’s scan discovery the rule passed. Failed indicates after the rule was scanned for the discovery was the rule failed the test. <b>Not Applicable</b> state is used when specific application such as IIS or SQL Server is not present on the target machine. <b>Indeterminate</b> state is applied when a specific rule cannot find the underlying data due to missing information to process the rule. For example, Indeterminate state could be returned for the “Unnecessary service (Alerter) is not running” rule if the service itself is not present on the target machine. Investigate <b>indeterminate</b> rules by using the descriptions and resolutions from <b>Excel export</b>.</p>  <p>5. Severity and resolution provide additional context to the rule and only failed rules include resolutions to fix the violation. Context may determine whether a failure in WACA is a bug to be fixed. Some checks, for example, are applicable for servers facing the extranet, but would be considered false positives for any other environment. The description for the checks provides guidance for these scenarios.</p>  <p>6. Exporting to Excel and using the Filter feature can help with quickly identifying and managing failures.</p>  <p>Thanks   <br />Anil RV</p>]]></content:encoded>
    </item>
    <item>
      <title>How to Scan a Server using WACA?</title>
      <link>https://docs.microsoft.com/archive/blogs/codejunkie/how-to-scan-a-server-using-waca</link>
      <pubDate>Thu, 23 Sep 2010 10:32:32 GMT</pubDate>
      <dc:creator><![CDATA[Anil Revuru]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/codejunkie/2010/09/23/how-to-scan-a-server-using-waca/</guid>
      <description><![CDATA[Web Application Configuration Analyzer v1.0 is the latest tool released by our team that scans a...]]></description>
      <content:encoded><![CDATA[<p><a href="https://www.microsoft.com/downloads/en/details.aspx?FamilyID=60585590-57df-4fc1-8f0c-05a286059406">Web Application Configuration Analyzer v1.0</a> is the latest tool released by our team that scans a machine for deployment best practices. Here is how you can use this tool to scan a machine for these best practices.</p>  <p>1. Launch the application by going to Windows Start Menu and selecting “Microsoft Information Security”, “Web Application Configuration Analyzer v1.0” and “Web Application Configuration Analyzer”.</p>  <p>2. From the presented Launchpad screen under the “Quick Actions” Section click on the “<b>Scan a machine</b>” link or go to “<b>File</b>” menu and select “<b>Scan a machine</b>”.    <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/7140.clip_image002_0F829985.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/7140.clip_5F00_image002_5F00_0F829985.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 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/00/27/metablogapi/3326.clip_image002_thumb_22FFD359.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/3326.clip_5F00_image002_5F00_thumb_5F00_22FFD359.jpg" width="560" height="420" /></a></p>  <p>3. Enter the fully qualified domain name of the target machine and click “<b>Scan</b>” button to start the scan. You can also enter the SQL instance name to scan a SQL server on that machine.    <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/2766.clip_image004_625D86E9.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/2766.clip_5F00_image004_5F00_625D86E9.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/8611.clip_image004_thumb_48F583AF.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/8611.clip_5F00_image004_5F00_thumb_5F00_48F583AF.jpg" width="560" height="420" /></a>    <br />Note that you need <b>administrative permissions</b> on the target machine along with remote registry and WMI services. The tool will perform prerequisite scanning first to determine server existence, administrative access, IIS and SQL versions and remote services availability. If WACA is unable to connect to the SQL Server either because of network or permission issues, the user will be prompted to continue the scan. </p>  <p>4. It is not required that the target machine have either IIS or SQL installed, WACA will recognize this and report its results accordingly.</p>  <p>5. A message is displayed indicating that the scan is completed. Click on the “View Report” button to view the report.</p>  <p>Thanks   <br />Anil RV</p>]]></content:encoded>
    </item>
    <item>
      <title>Web Application Configuration Analyzer v1.0 RTW is live!</title>
      <link>https://docs.microsoft.com/archive/blogs/codejunkie/web-application-configuration-analyzer-v1-0-rtw-is-live</link>
      <pubDate>Mon, 20 Sep 2010 13:59:03 GMT</pubDate>
      <dc:creator><![CDATA[Anil Revuru]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/codejunkie/2010/09/20/web-application-configuration-analyzer-v1-0-rtw-is-live/</guid>
      <description><![CDATA[I am excited to announce the release of Web Application Configuration Analyzer v1.0 tool. The...]]></description>
      <content:encoded><![CDATA[<p>I am excited to announce the release of Web Application Configuration Analyzer v1.0 tool. The following is the quick overview of the tool and its features.</p>  <p>Web Application Configuration Analyzer (WACA) is a tool that scans a server against a set of best practices recommended for pre-production and production servers. It can also be used by developers to ensure that their codebase works within a secure / hardened environment (although many of the checks are not as applicable for developers). The list of best practices is derived from the Microsoft Information Security &amp; Risk Management Deployment Review Standards used internally at Microsoft to harden production and pre-production environments for line of business applications. The Deployment Review standards themselves were derived from content released by Microsoft Patterns &amp; Practices, in particular: Improving Web Application Security: Threats and Countermeasures available at: <a href="https://msdn.microsoft.com/en-us/library/ms994921.aspx">https://msdn.microsoft.com/en-us/library/ms994921.aspx</a>. It uses an agent-less scan that requires the user to have admin privileges on the target server, as well as any SQL Server instances running on that machine.</p>  <ul>   <li>Scan a machine for more than 140 rules </li>    <li>Generate HTML based reports </li>    <li>Compare two scans to view the differences </li>    <li>Export results to Excel </li>    <li>Export results to Team Foundation Server </li> </ul>  <p>You can download the tool from <a title="https://www.microsoft.com/downloads/en/details.aspx?FamilyID=60585590-57df-4fc1-8f0c-05a286059406" href="https://www.microsoft.com/downloads/en/details.aspx?FamilyID=60585590-57df-4fc1-8f0c-05a286059406">https://www.microsoft.com/downloads/en/details.aspx?FamilyID=60585590-57df-4fc1-8f0c-05a286059406</a>. You can view a demo of the tool in <a href="https://channel9.msdn.com/Blogs/Jossie/Web-Application-Configuration-Analizer-WACA">this channel9 screencast</a>.</p>  <p>Thanks    <br />Anil RV</p>]]></content:encoded>
    </item>
    <item>
      <title>Increase cheap netbook performance using Windows Embedded Standard 7</title>
      <link>https://docs.microsoft.com/archive/blogs/codejunkie/increase-cheap-netbook-performance-using-windows-embedded-standard-7</link>
      <pubDate>Fri, 17 Sep 2010 09:58:33 GMT</pubDate>
      <dc:creator><![CDATA[Anil Revuru]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/codejunkie/2010/09/17/increase-cheap-netbook-performance-using-windows-embedded-standard-7/</guid>
      <description><![CDATA[With recent release of Windows Embedded Standard 7 you can get all the goodness of Windows 7 with...]]></description>
      <content:encoded><![CDATA[<p>With recent release of Windows Embedded Standard 7 you can get all the goodness of Windows 7 with the power of componentization, which means you now split windows and remove the unneeded components to increase your performance. Here is the problem I had, I bought a ASUS EEEPC 900HD for $200, putting entire windows 7 slows its boot up time, services startup time and slows the overall performance. All I want is Internet Explorer, Adobe Flash, Word, Excel and Powerpoint. To start with here is what I needed:</p>  <ul>   <li>ASUS EEEPC 900HD </li>    <li><a href="https://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;FamilyID=2287a698-746c-4f80-b9ad-79435f4cea92">Windows Embedded Standard 7 Toolkit</a> </li>    <li><a href="https://profile.microsoft.com/RegSysProfileCenter/wizard.aspx?wizid=863232b6-ff33-49bc-9772-7b0f8c9e75fe&amp;lcid=1033&amp;fu=https%3a%2f%2fwww.microsoft.com%2fwindowsembedded%2fen-us%2feval%2fthankyou.aspx%3fPID%3dWES7TrialDownload&amp;cu=http%3a%2f%2fwww.microsoft.com%2fwindowsembedded%2fen-us%2fdownloads%2fdefault.mspx">Evaluation Key (180-day)</a> </li> </ul>  <p>Once you have Windows Embedded Standard 7 Toolkit installed open up the Image Configuration Editor (ICE) to start creating an “Answer” file that includes the list of components and drivers for your target image. Here is a screenshot of ICE with my sample “Answer” file.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/5383.image_727CF0A6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/5383.image_5F00_727CF0A6.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 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/00/27/metablogapi/4403.image_thumb_2A4F34CA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/4403.image_5F00_thumb_5F00_2A4F34CA.png" width="633" height="480" /></a> </p>  <p>The easiest thing to do is to create a new answer file, which automatically adds the core OS features. Select the appropriate drivers, user interface, and features. You can customize the start up program with custom shell to use a User interface to provide access to other programs. For instance, I am planning to configure shell to start IE after boot process and launch a custom page from &quot;$OEM$ Folder” which includes a list of Icons that user can select to open the corresponding programs. Over time I can replace that with native application. Customize and have fun!</p>  <p>Thanks   <br />Anil RV</p>]]></content:encoded>
    </item>
    <item>
      <title>Custom build activity for TFS 2010 to send email with build details – Part 2</title>
      <link>https://docs.microsoft.com/archive/blogs/codejunkie/custom-build-activity-for-tfs-2010-to-send-email-with-build-details-part-2</link>
      <pubDate>Wed, 15 Sep 2010 10:26:11 GMT</pubDate>
      <dc:creator><![CDATA[Anil Revuru]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/codejunkie/2010/09/15/custom-build-activity-for-tfs-2010-to-send-email-with-build-details-part-2/</guid>
      <description><![CDATA[My previous blog post talked about how to develop a custom workflow activity to use it in the build...]]></description>
      <content:encoded><![CDATA[<p>My previous <a href="https://blogs.msdn.com/b/codejunkie/archive/2010/09/02/custom-build-activity-for-tfs-2010-to-send-email-with-build-details-part-1.aspx">blog post</a> talked about how to develop a custom workflow activity to use it in the build workflow process to generate email with work item and file information. This second installment talks about how to integrate the custom workflow activity in your build process. </p>  <p>First step in this integration is to compile the assembly and register it in Global Assembly Cache (GAC) using <a href="https://msdn.microsoft.com/en-us/library/ex0ss12c(v=VS.100).aspx">gacutil.exe</a>. Open up Visual Studio Command Prompt (2010) in administrator mode by going to Start –&gt; All Programs –&gt; Microsoft Visual Studio 2010 –&gt; Visual Studio Tools. Type gacutil /i &lt;custom library location&gt; to register it in the GAC. This will ensure that the assembly is available for the Visual Studio toolbox and Visual Studio workflow designer and will allow the workflow host to access the custom activity.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/2308.image_44E27287.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/2308.image_5F00_44E27287.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/5554.image_thumb_127E9F08.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/5554.image_5F00_thumb_5F00_127E9F08.png" width="640" height="153" /></a>&#160;</p>  <p>Second step involves creating the build workflow process template. Instead of creating a new workflow template, we will make use of the default template that ships with Visual Studio Team Foundation Server. Create a new build definition in your TFS project and click on the process item to bring up the template configuration screen.</p>  <p>&#160;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/0576.image_5248858D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/0576.image_5F00_5248858D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/3884.image_thumb_2B0E3C58.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/3884.image_5F00_thumb_5F00_2B0E3C58.png" width="642" height="142" /></a> </p>  <p>Instead of modifying the default template please create a copy of it by clicking on new and selecting &quot;Copy an existing XAML file”.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/8686.image_1CCFC368.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/8686.image_5F00_1CCFC368.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/3465.image_thumb_718B2C60.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/3465.image_5F00_thumb_5F00_718B2C60.png" width="300" height="324" /></a> </p>  <p>Once we have the new XAML file, open it up from the Source Control or from the local workspace which should load the Visual Studio workflow designer. Right click on the toolbox, select “Choose Items”, select “System.Activities” and click “Browse” to select the activity DLL, ensure that you select the custom activity in the “Team Foundation Build Activities” tab. Once you have it on the toolbox, now its time to drop it in a sequence for it start sending email. When you open the copy of the “Default Template” and collapse the workflow, you should see 4 parts of the main sequence – Get The Build, Update The Drop Location, Run on Agent and Check In Gated Changes for CheckInShelveset Builds – in which we will be making changes to Run on Agent sequence.&#160; </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/8267.image_711EF96B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/8267.image_5F00_711EF96B.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/0576.image_thumb_1BF75D7E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/0576.image_5F00_thumb_5F00_1BF75D7E.png" width="202" height="363" /></a>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/3312.image_5097B9B9.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/3312.image_5F00_5097B9B9.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/3487.image_thumb_36C3838A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/3487.image_5F00_thumb_5F00_36C3838A.png" width="192" height="370" /></a>&#160; </p>  <p>Double click on “Run On Agent” to open the sequence and drag and drop the custom activity from toolbox after where we would be adding the custom activity. At the end of “Try Compile, Test, and Associate Changesets and Work Items” sequence, drop a new “Sequence” from “Control Flow” group in toolbox and rename it to “Send Build Mail”. Now double click on the newly created sequence to drop the custom activity and configure its properties.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/2248.image_1AB2C49F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/2248.image_5F00_1AB2C49F.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 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/00/27/metablogapi/6445.image_thumb_36575095.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/6445.image_5F00_thumb_5F00_36575095.png" width="500" height="174" /></a> </p>  <p>MailFrom, Mailto, StmpServer and Subject are very generic, notice that subject is using dynamic property “BuildNumber” to concatenate with subject to distinguish between various build definitions that use the same template. Build Detail can be directly configured with global variable “BuildDetail” that provides build summary information. The associated changesets is not that simple because the temporary variable that stores this information is not exposed back up to the “Run On Agent” sequence for us to use. So, let’s add a new variable “IList&lt;Changeset&gt;” and set the scope to the “Build On Agent” sequence. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/4073.image_4114A7EA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/4073.image_5F00_4114A7EA.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 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/00/27/metablogapi/4314.image_thumb_6E2994B8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/4314.image_5F00_thumb_5F00_6E2994B8.png" width="605" height="350" /></a> </p>  <p>Click on the “Variables” button at the bottom of the workflow designer to bring up the list of variables at the “Run On Agent” sequence. Add a new variable called “TempAssociatedChangesets” with variable type “IList&lt;Changeset&gt;” and scope set to “Run On Agent”. Double click on the “Try Compile, Test, and Associate Changesets and Work Items” and “Sequence” in the “Try” block to add an “Assign” activity. Drop the “Assign” activity from “Primitives” tab of toolbox, set “To” to “TempAssociatedChangesets” and “From” to “associatedChangesets”.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/7041.image_00062886.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/7041.image_5F00_00062886.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 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/00/27/metablogapi/3302.image_thumb_26D43EC6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/3302.image_5F00_thumb_5F00_26D43EC6.png" width="277" height="467" /></a> </p>  <p>Now you can go back to the “SendEmailActivity” and set the “BuildAssociatedChangesets” property to “TempAssociatedChangesets”. This should give the build activity access to the associated work items and files.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/8105.image_38B0D293.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/8105.image_5F00_38B0D293.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 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/00/27/metablogapi/7127.image_thumb_0D6C3B8C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/7127.image_5F00_thumb_5F00_0D6C3B8C.png" width="502" height="244" /></a> </p>  <p>Now save the template and check in the file to save the changes in source control. On your build server you have to do the following things:</p>  <ol>   <li>Register the custom activity in Global Assembly Cache (GAC)</li>    <li>Run the “Build Host” with the account that has permissions to send email as the mail from account. You can do this by going to the “Team Foundation Server Administration Console” and click on properties to set the build account.</li> </ol>  <p></p>  <p></p>  <p></p>  <p></p>  <p></p>  <p></p>  <p></p>  <p>After this, just schedule a build to receive the following email. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/00/27/metablogapi/8611.image_343A51CC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/8611.image_5F00_343A51CC.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 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/00/27/metablogapi/3733.image_thumb_25FBD8DC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-00-27-metablogapi/3733.image_5F00_thumb_5F00_25FBD8DC.png" width="640" height="347" /></a> </p>  <p>The email itself is not entirely bug free, like date and time are not correct and some times change sets repeat multiple times which need to be fixed, so feel free to modify the build activity and let me know the changes.</p>  <p>Many thanks to the following folks who helped me in creating this solution.</p>  <p>Jim Lamb - <a title="https://blogs.msdn.com/b/jimlamb/archive/2010/02/12/how-to-create-a-custom-workflow-activity-for-tfs-build-2010.aspx" href="https://blogs.msdn.com/b/jimlamb/archive/2010/02/12/how-to-create-a-custom-workflow-activity-for-tfs-build-2010.aspx">https://blogs.msdn.com/b/jimlamb/archive/2010/02/12/how-to-create-a-custom-workflow-activity-for-tfs-build-2010.aspx</a>    <br />Jacob Ehn - <a title="https://geekswithblogs.net/jakob/Default.aspx" href="https://geekswithblogs.net/jakob/Default.aspx">https://geekswithblogs.net/jakob/Default.aspx</a></p>  <p>Thanks   <br />Anil RV</p>]]></content:encoded>
    </item>
  </channel>
</rss>