<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>Tarun Arora</title>
        <link>http://geekswithblogs.net/TarunArora/Default.aspx</link>
        <description>Visual Studio ALM MVP </description>
        <language>en-GB</language>
        <copyright>Tarun Arora</copyright>
        <managingEditor>tarun.arora@avanade.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Tarun Arora</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/TarunArora/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/TarunArora" /><feedburner:info uri="tarunarora" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>TarunArora</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
            <title>TFS API Find out who deleted your build?</title>
            <category>TFS API</category>
            <category>TFS SDK</category>
            <link>http://feedproxy.google.com/~r/TarunArora/~3/m8Pje8nu8fk/tfs-api-find-out-who-deleted-your-build.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt; &lt;p&gt;I am sure you have been in the situation where you start following a change through the list of builds and suddenly realize a lot of the builds have been deleted by some one! The good news is, when the build is deleted from the build explorer in Visual Studio it is only soft deleted in the database. &lt;/p&gt; &lt;p&gt;&lt;img src="http://ts2.mm.bing.net/th?id=I4593850334512365&amp;amp;pid=1.1" width="300" height="225" /&gt;&lt;/p&gt; &lt;p&gt;Are you wondering who moved your cheese? &lt;/p&gt; &lt;p&gt;In this blog post, I'll give you a walkthrough on how to write a simple utility to get the list of deleted builds and their details using the TFS API. &lt;/p&gt; &lt;p&gt;&lt;a href="https://skydrive.live.com/#cid=61D0A67D27B527D3&amp;amp;id=61D0A67D27B527D3%21655"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Download the sample application&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; – wpf, .net 4, you need to have &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=2680"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;vs sdk&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; installed on your machine to run it.&lt;/p&gt; &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/TFSAPIFindoutwhodeletedyourbuild_E91F/image_2.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/TFSAPIFindoutwhodeletedyourbuild_E91F/image_thumb.png" width="577" height="317" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;h3&gt;1. Connect to TFS using the API&lt;/h3&gt; &lt;p&gt;If you are new to the TFS API, refer to this blog post on &lt;a href="http://geekswithblogs.net/TarunArora/archive/2011/06/18/tfs-2010-sdk-connecting-to-tfs-2010-programmaticallyndashpart-1.aspx"&gt;&lt;font color="#0000ff"&gt;&lt;u&gt;getting started with the Visual Studio SDK&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;The below snippet will help present a connect to tfs pop up to the user&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; TfsTeamProjectCollection _tfs;
&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; _selectedTeamProject;

&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; ConnectToTfs()
{
      &lt;span class="kwrd"&gt;bool&lt;/span&gt; isSelected = &lt;span class="kwrd"&gt;false&lt;/span&gt;;
      TeamProjectPicker tfsPP = &lt;span class="kwrd"&gt;new&lt;/span&gt; TeamProjectPicker(TeamProjectPickerMode.SingleProject, &lt;span class="kwrd"&gt;false&lt;/span&gt;);
      tfsPP.ShowDialog();
      &lt;span class="kwrd"&gt;this&lt;/span&gt;._tfs = tfsPP.SelectedTeamProjectCollection;

      &lt;span class="kwrd"&gt;if&lt;/span&gt; (tfsPP.SelectedProjects.Count() &amp;gt; 0)
      {
          &lt;span class="kwrd"&gt;this&lt;/span&gt;._selectedTeamProject = tfsPP.SelectedProjects[0].Name;
          isSelected = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
      }
      &lt;span class="kwrd"&gt;return&lt;/span&gt; isSelected;
 }&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;h3&gt;2. Get All the build definitions for the selected Team Project using the TFS API&lt;/h3&gt;
&lt;p&gt;By using the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.build.client.ibuildserver.aspx"&gt;&lt;font color="#0000ff"&gt;IBuildService&lt;/font&gt;&lt;/a&gt; you can get access to the QueryBuildDefinition method which takes team project and returns the build definitions associated to the team project.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; IBuildDefinition[] GetAllBuildDefinitionsFromTheTeamProject(_selectTeamProject)
{
      _bs = _tfs.GetService&amp;lt;IBuildServer&amp;gt;();
      &lt;span class="kwrd"&gt;return&lt;/span&gt; _bs.QueryBuildDefinitions(_selectedTeamProject);
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;h3&gt;3. Get all the deleted builds for the chosen build definition using the TFS API&lt;/h3&gt;
&lt;p&gt;By using the &lt;a href="http://msdn.microsoft.com/en-us/library/cc340053"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;QueryBuilds&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; methods it is possible to construct a query to confine the search to builds for the selected build definition that have been marked as deleted. &lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;// bdef is the selected build definition&lt;/span&gt;
var bdef = (((ComboBox)sender).SelectedItem) &lt;span class="kwrd"&gt;as&lt;/span&gt; IBuildDefinition;

&lt;span class="kwrd"&gt;if&lt;/span&gt; (bdef != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
{
        &lt;span class="rem"&gt;// _bs = IBuildServer service, create a new query&lt;/span&gt;
        var def = _bs.CreateBuildDetailSpec(_selectedTeamProject);
        &lt;span class="rem"&gt;// only bring back the last 100 deleted builds&lt;/span&gt;
        def.MaxBuildsPerDefinition = 100;
        &lt;span class="rem"&gt;// query for only deleted builds&lt;/span&gt;
        def.QueryDeletedOption = QueryDeletedOption.OnlyDeleted;
        &lt;span class="rem"&gt;// Last deleted should be returned 1st&lt;/span&gt;
        def.QueryOrder = BuildQueryOrder.FinishTimeDescending;
        &lt;span class="rem"&gt;// Only look for deleted builds in the chosen build definition&lt;/span&gt;
        def.DefinitionSpec.Name = bdef.Name;
        &lt;span class="rem"&gt;// Bring back deleted builds from any state&lt;/span&gt;
        def.Status = BuildStatus.All;
        &lt;span class="rem"&gt;// Pass this query for processing to the build service&lt;/span&gt;
        var builds = _bs.QueryBuilds(def).Builds;

        &lt;span class="rem"&gt;// Add each deleted build to a local buildDetail entity,&lt;/span&gt;
        &lt;span class="rem"&gt;// You could switch this with Console.WriteLine if you&lt;/span&gt;
        &lt;span class="rem"&gt;// would like to see the output instead. &lt;/span&gt;
        &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var build &lt;span class="kwrd"&gt;in&lt;/span&gt; builds)
        {
              dgBuildDetails.Items.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; BuildDetail()
              {
                    BuildStatus = build.Status.ToString(),
                    BuildNumber = build.BuildNumber,
                    BuildDef = build.BuildDefinition.Name,
                    TeamProject = build.TeamProject,
                    RequestedBy = build.RequestedBy,
                    RequestedOn = build.FinishTime.ToString(),
                    DeletedBy = build.LastChangedBy,
                    DeletedOn = build.LastChangedOn.ToString()
              });
       }
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;4. Putting it all together&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://skydrive.live.com/#cid=61D0A67D27B527D3&amp;amp;id=61D0A67D27B527D3%21655"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Download the sample application&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; – wpf, .net 4, you need to have &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=2680"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;vs sdk&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; installed on your machine to run it.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Diagnostics;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Data;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Documents;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Input;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Media;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Media.Imaging;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Navigation;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Shapes;
&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.TeamFoundation.Build.Client;
&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.TeamFoundation.Client;
&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.TeamFoundation.TestManagement.Client;
&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.TeamFoundation.VersionControl.Client;

&lt;span class="kwrd"&gt;namespace&lt;/span&gt; TfsApiGetDeletedBuildDetails
{
    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;/// Interaction logic for MainWindow.xaml&lt;/span&gt;
    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MainWindow : Window
    {
        &lt;span class="kwrd"&gt;public&lt;/span&gt; MainWindow()
        {
            InitializeComponent();
        }

        &lt;span class="kwrd"&gt;private&lt;/span&gt; TfsTeamProjectCollection _tfs;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; _selectedTeamProject;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; IBuildServer _bs;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; VersionControlServer _vcs;

        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; ConnectToTfs()
        {
            &lt;span class="kwrd"&gt;bool&lt;/span&gt; isSelected = &lt;span class="kwrd"&gt;false&lt;/span&gt;;
            TeamProjectPicker tfsPP = &lt;span class="kwrd"&gt;new&lt;/span&gt; TeamProjectPicker(TeamProjectPickerMode.SingleProject, &lt;span class="kwrd"&gt;false&lt;/span&gt;);
            tfsPP.ShowDialog();
            &lt;span class="kwrd"&gt;this&lt;/span&gt;._tfs = tfsPP.SelectedTeamProjectCollection;

            &lt;span class="kwrd"&gt;if&lt;/span&gt; (tfsPP.SelectedProjects.Count() &amp;gt; 0)
            {
                &lt;span class="kwrd"&gt;this&lt;/span&gt;._selectedTeamProject = tfsPP.SelectedProjects[0].Name;
                isSelected = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
            }
            &lt;span class="kwrd"&gt;return&lt;/span&gt; isSelected;
        }

        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; btnConnect_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (ConnectToTfs())
            {
                cbBuildDef.IsEnabled = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
                _vcs = _tfs.GetService&amp;lt;VersionControlServer&amp;gt;();
                cbBuildDef.ItemsSource = GetAllBuildDefinitionsFromTheTeamProject();
                cbBuildDef.DisplayMemberPath = &lt;span class="str"&gt;"Name"&lt;/span&gt;;
                cbBuildDef.SelectedValuePath = &lt;span class="str"&gt;"Uri"&lt;/span&gt;;
                cbBuildDef.SelectedIndex = 0;
            }
        }

        &lt;span class="rem"&gt;// Grab all build definitions&lt;/span&gt;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; IBuildDefinition[] GetAllBuildDefinitionsFromTheTeamProject()
        {
            _bs = _tfs.GetService&amp;lt;IBuildServer&amp;gt;();
            &lt;span class="kwrd"&gt;return&lt;/span&gt; _bs.QueryBuildDefinitions(_selectedTeamProject);
        }

        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; BuildDetail
        {
            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; BuildStatus { get; set; }
            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; BuildNumber { get; set; }
            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; BuildDef { get; set; }
            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; TeamProject { get; set; }
            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; RequestedBy { get; set; }
            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; RequestedOn { get; set; }
            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; DeletedBy { get; set; }
            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; DeletedOn { get; set; }
        }

        &lt;span class="rem"&gt;// Get All Deleted Builds for the selected build definition &lt;/span&gt;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; cbBuildDef_SelectionChanged(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, SelectionChangedEventArgs e)
        {
            dgBuildDetails.Items.Clear();

            List&amp;lt;BuildDetail&amp;gt; buildDetails = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;BuildDetail&amp;gt;();

            &lt;span class="rem"&gt;// bdef is the selected build definition&lt;/span&gt;
            var bdef = (((ComboBox)sender).SelectedItem) &lt;span class="kwrd"&gt;as&lt;/span&gt; IBuildDefinition;

            &lt;span class="kwrd"&gt;if&lt;/span&gt; (bdef != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
            {
                &lt;span class="rem"&gt;// _bs = IBuildServer service, create a new query&lt;/span&gt;
                var def = _bs.CreateBuildDetailSpec(_selectedTeamProject);
                &lt;span class="rem"&gt;// only bring back the last 100 deleted builds&lt;/span&gt;
                def.MaxBuildsPerDefinition = 100;
                &lt;span class="rem"&gt;// query for only deleted builds&lt;/span&gt;
                def.QueryDeletedOption = QueryDeletedOption.OnlyDeleted;
                &lt;span class="rem"&gt;// Last deleted should be returned 1st&lt;/span&gt;
                def.QueryOrder = BuildQueryOrder.FinishTimeDescending;
                &lt;span class="rem"&gt;// Only look for deleted builds in the chosen build definition&lt;/span&gt;
                def.DefinitionSpec.Name = bdef.Name;
                &lt;span class="rem"&gt;// Bring back deleted builds from any state&lt;/span&gt;
                def.Status = BuildStatus.All;
                &lt;span class="rem"&gt;// Pass this query for processing to the build service&lt;/span&gt;
                var builds = _bs.QueryBuilds(def).Builds;

                &lt;span class="rem"&gt;// Add each deleted build to a local buildDetail entity,&lt;/span&gt;
                &lt;span class="rem"&gt;// You could switch this with Console.WriteLine if you&lt;/span&gt;
                &lt;span class="rem"&gt;// would like to see the output instead. &lt;/span&gt;
                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var build &lt;span class="kwrd"&gt;in&lt;/span&gt; builds)
                {
                    dgBuildDetails.Items.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; BuildDetail()
                                    {
                                        BuildStatus = build.Status.ToString(),
                                        BuildNumber = build.BuildNumber,
                                        BuildDef = build.BuildDefinition.Name,
                                        TeamProject = build.TeamProject,
                                        RequestedBy = build.RequestedBy,
                                        RequestedOn = build.FinishTime.ToString(),
                                        DeletedBy = build.LastChangedBy,
                                        DeletedOn = build.LastChangedOn.ToString()
                                    });
                }
            }
        }

        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Hyperlink_RequestNavigate(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, RequestNavigateEventArgs e)
        {
            Process.Start(&lt;span class="kwrd"&gt;new&lt;/span&gt; ProcessStartInfo(e.Uri.AbsoluteUri));
            e.Handled = &lt;span class="kwrd"&gt;true&lt;/span&gt;;

        }
    }
}
&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;

&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Thank you for taking the time out and reading this blog post. If you enjoyed the post, remember to subscribe to &lt;a href="http://feeds.feedburner.com/TarunArora"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;http://feeds.feedburner.com/TarunArora&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;. 
&lt;/p&gt;&lt;p&gt;Check out the other posts on cool tools using TFS API. &lt;img alt="In love" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/TFS-APIRelease-Notes-From-Build_DFBA/wlEmoticon-Inlove_2.png" /&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/TarunArora/aggbug/149694.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TarunArora?a=m8Pje8nu8fk:1EV5W14cuzM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TarunArora?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TarunArora/~4/m8Pje8nu8fk" height="1" width="1"/&gt;</description>
            <dc:creator>Tarun Arora</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/TarunArora/archive/2012/05/20/tfs-api-find-out-who-deleted-your-build.aspx</guid>
            <pubDate>Sun, 20 May 2012 15:43:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TarunArora/comments/149694.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TarunArora/archive/2012/05/20/tfs-api-find-out-who-deleted-your-build.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/TarunArora/comments/commentRss/149694.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TarunArora/services/trackbacks/149694.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/TarunArora/archive/2012/05/20/tfs-api-find-out-who-deleted-your-build.aspx</feedburner:origLink></item>
        <item>
            <title>Get Detailed Build Test Results using the TFS API</title>
            <category>TFS API</category>
            <category>TFS SDK</category>
            <category>TFS2010</category>
            <link>http://feedproxy.google.com/~r/TarunArora/~3/_CrL_WrNr38/get-detailed-build-test-results-using-the-tfs-api.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;It’s a Friday evening and you have just checked in that last bit of code, you are waiting for the build to go all green so that you could call it a day. Just then the build summary page comes back red on the test results section. The build summary page tells you that 1 of the test namely &lt;em&gt;HelloWorld.Tests.UnitTest1.Sum_TwoIntNumbers_IncorrectResult_TestMethod&lt;/em&gt; has failed… &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/GetDetailedBuildTestResultsusingtheTFSAP_6C6/image_6.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/GetDetailedBuildTestResultsusingtheTFSAP_6C6/image_thumb_2.png" width="477" height="390" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To know why the test has failed, you have no option but to click on &lt;em&gt;&lt;font color="#0000ff"&gt;View Test Results&lt;/font&gt;&lt;/em&gt; link which in turn downloads the trx file from the server so that you can see the error message and possibly identify the root cause of failure from the description error message. If the test list contains more than a 1000 tests you will notice that it takes a lot of time in downloading the test results locally. That’s probably not what you would want to do on a Friday evening… &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/GetDetailedBuildTestResultsusingtheTFSAP_6C6/image_10.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/GetDetailedBuildTestResultsusingtheTFSAP_6C6/image_thumb_4.png" width="482" height="251" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In this blog post I’ll show you how to use the TFS API to write a simple utility to pull down the test result details programmatically and a bonus power tool for those who read the complete post, let’s get started… &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A peek at what we will get to…&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/GetDetailedBuildTestResultsusingtheTFSAP_6C6/image_12.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/GetDetailedBuildTestResultsusingtheTFSAP_6C6/image_thumb_5.png" width="692" height="308" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;1. Connecting to TFS using the API &lt;/h3&gt;  &lt;p&gt;If you are new to the TFS API, refer to this blog post on &lt;a href="http://geekswithblogs.net/TarunArora/archive/2011/06/18/tfs-2010-sdk-connecting-to-tfs-2010-programmaticallyndashpart-1.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;getting started with the Visual Studio SDK&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;The below snippet will help present a connect to tfs pop up to the user&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; TfsTeamProjectCollection _tfs;
&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; _selectedTeamProject;

&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ConnectToTfs()
{
       TeamProjectPicker tfsPP = &lt;span class="kwrd"&gt;new&lt;/span&gt; TeamProjectPicker(TeamProjectPickerMode.SingleProject, &lt;span class="kwrd"&gt;false&lt;/span&gt;);
       tfsPP.ShowDialog();
       &lt;span class="kwrd"&gt;this&lt;/span&gt;._tfs = tfsPP.SelectedTeamProjectCollection;
       &lt;span class="kwrd"&gt;this&lt;/span&gt;._selectedTeamProject = tfsPP.SelectedProjects[0].Name;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;2. Get All Build Definitions for the selected Team Project&lt;/h3&gt;

&lt;p&gt;By using the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.build.client.ibuildserver.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;IBuildService&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; you can get access to the QueryBuildDefinition method which takes team project and returns the build definitions associated to the team project.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; IBuildDefinition[] GetAllBuildDefinitionsFromTheTeamProject(_selectTeamProject)
{
      _bs = _tfs.GetService&amp;lt;IBuildServer&amp;gt;();
      &lt;span class="kwrd"&gt;return&lt;/span&gt; _bs.QueryBuildDefinitions(_selectedTeamProject);
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;3. Get All Builds Associated to the Build Definition&lt;/h3&gt;

&lt;p&gt;Get All Builds in the build definition for specific build Definition specifications programmatically, this helps you narrow down the search and get the selected few filtered results, like in the snippet below, we specify the maximum number of builds to return, what build quality builds to return, etc.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;// Get All Builds for the selected build definition &lt;/span&gt;
&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; cbBuildDef_SelectionChanged(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, SelectionChangedEventArgs e)
{
       var bdef = (((ComboBox)sender).SelectedItem) &lt;span class="kwrd"&gt;as&lt;/span&gt; IBuildDefinition;
       var def = _bs.CreateBuildDetailSpec(_selectedTeamProject);
       def.MaxBuildsPerDefinition = 10;
       def.QueryOrder = BuildQueryOrder.FinishTimeDescending;
       def.DefinitionSpec.Name = bdef.Name;
       def.Status = BuildStatus.All;
       var builds = _bs.QueryBuilds(def).Builds;

        cbBuild.ItemsSource = _bs.QueryBuilds(def).Builds;
        cbBuild.DisplayMemberPath = &lt;span class="str"&gt;"BuildNumber"&lt;/span&gt;;
        cbBuild.SelectedValuePath = &lt;span class="str"&gt;"Uri"&lt;/span&gt;;
        cbBuild.SelectedIndex = 0;
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;4. Get all the Test Results associated to a Build&lt;/h3&gt;

&lt;p&gt;I’ll be using the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.testmanagement.client.itestmanagementservice.aspx"&gt;&lt;font color="#0000ff"&gt;ITestManagementService&lt;/font&gt;&lt;/a&gt; to pull all test runs associated to a build. As you can see below by using the QueryResultsByOutcome I can query for tests that passed or failed or tests that errored. You could also use the QueryResultsByOwner to get test results by individual tfs users.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; GetTestResult(Uri buildUri)
{
       _tms = _tfs.GetService&amp;lt;ITestManagementService&amp;gt;();
       var testRuns = _tms.GetTeamProject(_selectedTeamProject).TestRuns.ByBuild(buildUri);

        &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var testRun &lt;span class="kwrd"&gt;in&lt;/span&gt; testRuns)
        {
             lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}"&lt;/span&gt;, testRun.Title));
             lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"TestRunId: {0} | TestPlanId: {1}"&lt;/span&gt;, testRun.Id, testRun.TestPlanId));
             lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"TestSettingsId: {0} | TestEnvironmentId {1} "&lt;/span&gt;, testRun.TestSettingsId, testRun.TestEnvironmentId));

             var totalTests = testRun.Statistics.TotalTests;

              &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var et &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Error))
              {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} - {2}"&lt;/span&gt;, et.Outcome, et.TestCaseTitle, et.ErrorMessage));
              }

              &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var tp &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Passed))
              {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} "&lt;/span&gt;, tp.Outcome, tp.TestCaseTitle));
               }

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var tf &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Failed))
                {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} - {2}"&lt;/span&gt;, tf.Outcome, tf.TestCaseTitle, tf.ErrorMessage));
                }

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var tw &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Warning))
                {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} - {2}"&lt;/span&gt;, tw.Outcome, tw.TestCaseTitle, tw.ErrorMessage));
                }

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var ta &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Aborted))
                {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} - {2}"&lt;/span&gt;, ta.Outcome, ta.TestCaseTitle, ta.ErrorMessage));
                }

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var tb &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Blocked))
                {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} - {2}"&lt;/span&gt;, tb.Outcome, tb.TestCaseTitle, tb.ErrorMessage));
                }

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var ti &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Inconclusive))
                {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} - {2}"&lt;/span&gt;, ti.Outcome, ti.TestCaseTitle, ti.ErrorMessage));
                }

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var to &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Timeout))
                {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} - {2}"&lt;/span&gt;, to.Outcome, to.TestCaseTitle, to.ErrorMessage));
                }

                &lt;span class="rem"&gt;// Get the test results by user by passing in the Test Foundation Identity&lt;/span&gt;
                &lt;span class="rem"&gt;// testRun.QueryResultsByOwner(TeamFoundationIdentity);&lt;/span&gt;
            }

            &lt;span class="kwrd"&gt;if&lt;/span&gt;(testRuns.Count() == 0)
                lstTestRunDetails.Items.Add(&lt;span class="str"&gt;"No Test Results have been associated with the selected build"&lt;/span&gt;);
 }&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;5. Putting it all together&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://skydrive.live.com/?cid=61D0A67D27B527D3&amp;amp;id=61D0A67D27B527D3%21152#cid=61D0A67D27B527D3&amp;amp;id=61D0A67D27B527D3%21653"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Download the sample application&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; – wpf, .net 4, you need to have &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=2680"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;vs sdk&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; installed on your machine to run it. &lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Data;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Documents;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Input;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Media;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Media.Imaging;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Navigation;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Shapes;
&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.TeamFoundation.Build.Client;
&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.TeamFoundation.Client;
&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.TeamFoundation.TestManagement.Client;
&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.TeamFoundation.VersionControl.Client;

&lt;span class="kwrd"&gt;namespace&lt;/span&gt; TfsApiGetTestResultsAndDetailsByStatus
{
    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="rem"&gt;/// Interaction logic for MainWindow.xaml&lt;/span&gt;
    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MainWindow : Window
    {
        &lt;span class="kwrd"&gt;public&lt;/span&gt; MainWindow()
        {
            InitializeComponent();
        }

        &lt;span class="kwrd"&gt;private&lt;/span&gt; TfsTeamProjectCollection _tfs;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; _selectedTeamProject;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; IBuildServer _bs;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; VersionControlServer _vcs;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; ITestManagementService _tms;

        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ConnectToTfs()
        {
            TeamProjectPicker tfsPP = &lt;span class="kwrd"&gt;new&lt;/span&gt; TeamProjectPicker(TeamProjectPickerMode.SingleProject, &lt;span class="kwrd"&gt;false&lt;/span&gt;);
            tfsPP.ShowDialog();
            &lt;span class="kwrd"&gt;this&lt;/span&gt;._tfs = tfsPP.SelectedTeamProjectCollection;
            &lt;span class="kwrd"&gt;this&lt;/span&gt;._selectedTeamProject = tfsPP.SelectedProjects[0].Name;
        }

        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; btnConnect_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            ConnectToTfs();
            _vcs = _tfs.GetService&amp;lt;VersionControlServer&amp;gt;();
            cbBuildDef.ItemsSource = GetAllBuildDefinitionsFromTheTeamProject();
            cbBuildDef.DisplayMemberPath = &lt;span class="str"&gt;"Name"&lt;/span&gt;;
            cbBuildDef.SelectedValuePath = &lt;span class="str"&gt;"Uri"&lt;/span&gt;;
            cbBuildDef.SelectedIndex = 0;
        }

        &lt;span class="kwrd"&gt;private&lt;/span&gt; IBuildDefinition[] GetAllBuildDefinitionsFromTheTeamProject()
        {
            _bs = _tfs.GetService&amp;lt;IBuildServer&amp;gt;();
            &lt;span class="kwrd"&gt;return&lt;/span&gt; _bs.QueryBuildDefinitions(_selectedTeamProject);
        }

        &lt;span class="rem"&gt;// Get All Builds for the selected build definition &lt;/span&gt;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; cbBuildDef_SelectionChanged(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, SelectionChangedEventArgs e)
        {
            var bdef = (((ComboBox)sender).SelectedItem) &lt;span class="kwrd"&gt;as&lt;/span&gt; IBuildDefinition;
            var def = _bs.CreateBuildDetailSpec(_selectedTeamProject);
            def.MaxBuildsPerDefinition = 10;
            def.QueryOrder = BuildQueryOrder.FinishTimeDescending;
            def.DefinitionSpec.Name = bdef.Name;
            def.Status = BuildStatus.All;
            var builds = _bs.QueryBuilds(def).Builds;

            cbBuild.ItemsSource = _bs.QueryBuilds(def).Builds;
            cbBuild.DisplayMemberPath = &lt;span class="str"&gt;"BuildNumber"&lt;/span&gt;;
            cbBuild.SelectedValuePath = &lt;span class="str"&gt;"Uri"&lt;/span&gt;;
            cbBuild.SelectedIndex = 0;
        }

        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; cbBuild_SelectionChanged(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, SelectionChangedEventArgs e)
        {
            var build = (((ComboBox)sender).SelectedItem) &lt;span class="kwrd"&gt;as&lt;/span&gt; IBuildDetail;
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (build == &lt;span class="kwrd"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; ((ComboBox)sender).Items.Count != 0)
            {
                build = ((ComboBox)sender).Items[0] &lt;span class="kwrd"&gt;as&lt;/span&gt; IBuildDetail;
                var def = _bs.CreateBuildDetailSpec(_selectedTeamProject);
                GetTestResult(build.Uri);
            }
        }

        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; GetTestResult(Uri buildUri)
        {
            _tms = _tfs.GetService&amp;lt;ITestManagementService&amp;gt;();
            var testRuns = _tms.GetTeamProject(_selectedTeamProject).TestRuns.ByBuild(buildUri);

            &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var testRun &lt;span class="kwrd"&gt;in&lt;/span&gt; testRuns)
            {
                lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}"&lt;/span&gt;, testRun.Title));
                lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"TestRunId: {0} | TestPlanId: {1}"&lt;/span&gt;, testRun.Id, testRun.TestPlanId));
                lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"TestSettingsId: {0} | TestEnvironmentId {1} "&lt;/span&gt;, testRun.TestSettingsId, testRun.TestEnvironmentId));

                var totalTests = testRun.Statistics.TotalTests;

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var et &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Error))
                {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} - {2}"&lt;/span&gt;, et.Outcome, et.TestCaseTitle, et.ErrorMessage));
                }

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var tp &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Passed))
                {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} "&lt;/span&gt;, tp.Outcome, tp.TestCaseTitle));
                }

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var tf &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Failed))
                {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} - {2}"&lt;/span&gt;, tf.Outcome, tf.TestCaseTitle, tf.ErrorMessage));
                }

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var tw &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Warning))
                {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} - {2}"&lt;/span&gt;, tw.Outcome, tw.TestCaseTitle, tw.ErrorMessage));
                }

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var ta &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Aborted))
                {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} - {2}"&lt;/span&gt;, ta.Outcome, ta.TestCaseTitle, ta.ErrorMessage));
                }

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var tb &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Blocked))
                {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} - {2}"&lt;/span&gt;, tb.Outcome, tb.TestCaseTitle, tb.ErrorMessage));
                }

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var ti &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Inconclusive))
                {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} - {2}"&lt;/span&gt;, ti.Outcome, ti.TestCaseTitle, ti.ErrorMessage));
                }

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var to &lt;span class="kwrd"&gt;in&lt;/span&gt; testRun.QueryResultsByOutcome(TestOutcome.Timeout))
                {
                    lstTestRunDetails.Items.Add(&lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}: {1} - {2}"&lt;/span&gt;, to.Outcome, to.TestCaseTitle, to.ErrorMessage));
                }

                &lt;span class="rem"&gt;// Get the test results by user by passing in the Test Foundation Identity&lt;/span&gt;
                &lt;span class="rem"&gt;// testRun.QueryResultsByOwner(TeamFoundationIdentity);&lt;/span&gt;
            }

            &lt;span class="kwrd"&gt;if&lt;/span&gt;(testRuns.Count() == 0)
                lstTestRunDetails.Items.Add(&lt;span class="str"&gt;"No Test Results have been associated with the selected build"&lt;/span&gt;);
        }
    }
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;6. And the Bonus Power tool…&lt;/h3&gt;

&lt;p&gt;Thank you for reading this far. If you haven’t already download the Community TFS Build Manager extension from the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/16bafc63-0f20-4cc3-8b67-4e25d150102c"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;visual studio extension gallery&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; do so now. The Community TFS Build Manager (TBM) is an open source build management solution developed by the ALM rangers, the build manager simplifies the management of builds in medium to large Team Foundation Server environments. Some common limitations you may run into while dealing with builds through the Visual Studio Build Explorer are not being able to perform bulk operations on builds, create a relationship diagram of the build controller/agents, managing build process templates, etc. The community TFS build manager address that and many other such gaps you may encounter while managing builds through the visual studio build explorer. You can grab the source and read more about the project on &lt;a href="http://tfsbuildextensions.codeplex.com/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;CodePlex&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Recently a new feature namely Build Notes has been added to the community TFS Build Manager that let’s you generate an ms word report of the build summary. A sample attached below… Look at the test result section, the trx file is parsed for you to get you a test result list filtered by test result outcome, where failed test also carries the error message. Watch this &lt;a href="http://www.youtube.com/watch?v=7jSP2NvuU8M&amp;amp;feature=player_embedded"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;video&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; or read this &lt;a href="http://geekswithblogs.net/TarunArora/archive/2012/04/27/community-tfs-build-manager-ndash-build-notes-preview.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;post&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; here on what you can achieve with the build notes. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_32.png"&gt;&lt;img title="image" border="0" alt="image" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb_15.png" width="490" height="533" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_30.png"&gt;&lt;img title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb_14.png" width="487" height="471" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Thank you for taking the time out and reading this blog post. If you enjoyed the post, remember to subscribe to &lt;a href="http://feeds.feedburner.com/TarunArora"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;http://feeds.feedburner.com/TarunArora&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Check out the other posts on &lt;a href="http://geekswithblogs.net/TarunArora/category/12804.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;cool tools using TFS API&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;. &lt;img alt="In love" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/TFS-APIRelease-Notes-From-Build_DFBA/wlEmoticon-Inlove_2.png" /&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/TarunArora/aggbug/149669.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TarunArora?a=_CrL_WrNr38:a68fdF-sy3k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TarunArora?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TarunArora/~4/_CrL_WrNr38" height="1" width="1"/&gt;</description>
            <dc:creator>Tarun Arora</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/TarunArora/archive/2012/05/16/get-detailed-build-test-results-using-the-tfs-api.aspx</guid>
            <pubDate>Wed, 16 May 2012 22:37:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TarunArora/comments/149669.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TarunArora/archive/2012/05/16/get-detailed-build-test-results-using-the-tfs-api.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/TarunArora/comments/commentRss/149669.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TarunArora/services/trackbacks/149669.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/TarunArora/archive/2012/05/16/get-detailed-build-test-results-using-the-tfs-api.aspx</feedburner:origLink></item>
        <item>
            <title>Community TFS Build Manager &amp;ndash; Build Notes Preview</title>
            <link>http://feedproxy.google.com/~r/TarunArora/~3/TskBXK-YXWQ/community-tfs-build-manager-ndash-build-notes-preview.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;The Community TFS Build Manager (TBM) is an open source build management solution developed by the ALM rangers, the build manager simplifies the management of builds in medium to large Team Foundation Server environments. Some common limitations you may run into while dealing with builds through the Visual Studio Build Explorer are not being able to perform bulk operations on builds, create a relationship diagram of the build controller/agents, managing build process templates, etc. The community TFS build manager address that and many other such gaps you may encounter while managing builds through the visual studio build explorer. Since TBM is really an extension of the build explorer solution in Visual Studio it is available for download from the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/16bafc63-0f20-4cc3-8b67-4e25d150102c"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Visual Studio Extension Gallery&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;. You can grab the source and read more about the project on &lt;a href="http://tfsbuildextensions.codeplex.com/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;CodePlex&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;07 May 2012 - [TA]&lt;/strong&gt;&lt;/font&gt; – The Community TFS Build Manager extension with the build notes functionality – version 1.4.0.1 has been released to the Visual Studio Extension Gallery now. Please download and install the extension from &lt;a href="http://visualstudiogallery.msdn.microsoft.com/16bafc63-0f20-4cc3-8b67-4e25d150102c/view/Reviews"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;here&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;30th April 2012 – [TA] –&lt;/font&gt;&lt;/strong&gt; The change set &lt;a href="http://tfsbuildextensions.codeplex.com/SourceControl/changeset/changes/75929"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;75829&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; includes Build Notes, this feature has not yet been released to Visual Studio Extension gallery. You can try build notes out by downloading the &lt;a href="https://skydrive.live.com/?mkt=en-gb#cid=61D0A67D27B527D3&amp;amp;id=61D0A67D27B527D3%21507"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;&lt;strike&gt;executable from&lt;/strike&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;&lt;strike&gt; &lt;/strike&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/u&gt;&lt;a href="https://skydrive.live.com/?mkt=en-gb#cid=61D0A67D27B527D3&amp;amp;id=61D0A67D27B527D3%21507"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;&lt;strike&gt;here&lt;/strike&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;strike&gt; &lt;/strike&gt;and run &lt;em&gt;TFSBuildManager.Application.exe&lt;/em&gt;. Please note, this is currently in Preview, if you run into any issues (which you most likely will :) please raise them &lt;a href="http://tfsbuildextensions.codeplex.com/workitem/list/basic"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;here&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;. &lt;/p&gt;                                                                    &lt;div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:c7d7fd84-1554-4730-861c-e800eab8949a" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"&gt;&lt;div id="02d1eed9-dc76-4ecc-ac4d-c81c0680932d" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=7jSP2NvuU8M" target="_new"&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/videob6ff8abcffb4.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('02d1eed9-dc76-4ecc-ac4d-c81c0680932d'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/7jSP2NvuU8M&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/7jSP2NvuU8M&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="clear:both;font-size:.8em;"&gt;Build Notes - An Introduction&lt;/div&gt;&lt;/div&gt;    &lt;h3&gt;&lt;font color="#004080"&gt;1. Feature Introduction - Build Notes&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;I have worked with several clients implementing Agile/Waterfall where release notes are created using the information available in builds (such as work items resolved, change sets included, etc) but this is done manually. This makes the process of creating release notes laborious and error prone. Lately I have been working on a feature for the TBM which will help you automate much of the release note creation process by allowing you to generate a summary document from the build summary.&lt;/p&gt;  &lt;p&gt;Let me give you a very brief taste of the level of details included in the build notes,&lt;/p&gt;  &lt;p&gt;                        &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_4.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb_1.png" width="878" height="557" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;But that’s not all, look at the deep dive for the entire template :-]&lt;/p&gt;  &lt;h3&gt;&lt;font color="#004080"&gt;2. Deep Dive into Build Notes&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;When I started writing this feature I wanted to give the user the ability to easily include exclude sections from the build notes. I am sure that the DEV team will be more interested in the Build Configuration summary details section more than the QA team, by being able to easily exclude sections that the audience may not be interested in you can keep the information relevant to the audience. &lt;/p&gt;  &lt;p&gt;                                                                          &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_8.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb_3.png" width="411" height="238" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Most of our customers use MS Word to distribute release notes across teams, hence Ms Word became the obvious choice for build notes. An interesting fact that came forward while I was still researching the requirements for this feature was that not all companies have ms word installed as part of the standard build which means that the build notes generation logic should not depend on ms word being installed on the machine where the notes are being generated and this is where Open XML SDK comes to the rescue. &lt;/p&gt;  &lt;p&gt;Now that I was sure that I was using MS Word and Open XML SDK I needed to template what I wanted to distribute as part of the build notes. By extracting the build information from TFS using the TFS API and feeding that information into the standard word template I could generate the Build Notes.  &lt;/p&gt;  &lt;p&gt;                                                                                 &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_10.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb_4.png" width="305" height="247" /&gt;&lt;/a&gt;          &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The Build Notes Template &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_12.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; margin-left: 0px; display: inline; border-top-width: 0px; margin-right: 0px" border="0" alt="image" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb_5.png" width="595" height="463" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;1. Header – The header includes the Build Number for which the notes has been generated&lt;/p&gt;  &lt;p&gt;2. Introduction section – Includes images for build state and build retention state. Along with information on User who triggered the build, the build definition triggered and how it was triggered. How Long the build ran for, duration it was completed before. You also get to know the build URI (I know, I am working to make this a link, but wait this is still in progress), the source get version for the build, the shelve set name, the label name, build quality, drop location and location of the log file.&lt;/p&gt;  &lt;p&gt;3. Latest Activity – Includes the name of the individual who last modified the build, when it was last modified and how long ago. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;4. Build Configuration Summary – Includes information of the build platform, build flavour, no of errors, warnings, details of the solution(s) compiled by the build along with the error count, warning count and log file path.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;5. Change set Details – The change set id, comment, when it was changed in and by whom it was checked in along with details of all the files included in the change set. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_14.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; margin-left: 0px; display: inline; border-top-width: 0px; margin-right: 0px" border="0" alt="image" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb_6.png" width="597" height="577" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;6. Work Item Details – The Work Item Id, Title, Type of work item, current state of the work item and the iteration path the work item is assigned to. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;7. Footer – The footer includes the details of by who &amp;amp; when the build notes were generated. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;8. Test Results – This feature has been highly requested by many customers. The customer does not want to download the trx file to see the list of tests that failed. Build notes not only gives you the information about the test run such as Test Result Id, Status, total test run, completed and Pass % it also parses the trx file to gives you a separate list of test passed, failed and inconclusive. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;What more, you are not restricted to generating build notes for just one build, you can include as many builds as you want in one build notes, the template section is repeated for each build you choose to be included in the build notes. I have so far tested this for 25 builds in one go and it works just fine. Exciting or What? :-]&lt;/p&gt;  &lt;h3&gt;&lt;font color="#004080"&gt;3. Feature Walkthrough&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;Enough of talk, let’s see this in action…&lt;/p&gt;  &lt;p&gt;1. Fire up the Community Build Manager and select the team project collection you would like to work with. I am demoing this against my TFS preview team project collection &lt;a href="https://geeks.tfspreview.com"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;https://geeks.tfspreview.com&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; which is also using cloud Build Services.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_16.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb_7.png" width="413" height="302" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;2. Choose Builds from the show drop down list&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_18.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb_8.png" width="415" height="210" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;3. From the completed builds tab right click any of the builds you would like to generate the build notes for, from the context menu choose &lt;em&gt;‘Experimental: Build Notes’&lt;/em&gt;. You can select random builds by holding the ctrl key or use the shift key to select sequential builds. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_22.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb_10.png" width="417" height="235" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;4. Select the Options you would like to include in the build notes document. By un-checking any of the options you can eliminate that from being included in the build notes. Click Generate to continue generating the build notes. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_26.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb_12.png" width="413" height="241" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;5. If all goes right you should get a build notes document, similar to the one below,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_28.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb_13.png" width="489" height="502" /&gt;&lt;/a&gt;    &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_30.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb_14.png" width="487" height="503" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_32.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; margin-left: 0px; display: inline; border-top-width: 0px; margin-right: 0px" border="0" alt="image" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb_15.png" width="490" height="490" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Build Summary VS Build Notes&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;On the left you can see the build summary in the visual studio build explorer and on the right you can see the build notes generated using the TFS Build Manager. &lt;/p&gt;  &lt;p&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_19.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/CommunityTFSBuildManagerBuildNotes_8B3F/image_thumb.png" width="961" height="570" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h3&gt;&lt;font color="#004080"&gt;4. FAQ&lt;/font&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Where can I download the Community TFS Build Manager – Build Notes Preview from?&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strike&gt;It is planned that this will be available for download from Visual Studio Gallery, &lt;strong&gt;but for now &lt;/strong&gt;you can download it from &lt;/strike&gt;&lt;a href="https://skydrive.live.com/#cid=61D0A67D27B527D3&amp;amp;id=61D0A67D27B527D3%21507"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;&lt;strike&gt;here&lt;/strike&gt;&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;strike&gt;.&lt;/strike&gt; &lt;font color="#ff0000"&gt;Please refer to the update comments&lt;/font&gt;, the extension is available for download and can directly be installed from the visual studio extension gallery &lt;a href="http://visualstudiogallery.msdn.microsoft.com/16bafc63-0f20-4cc3-8b67-4e25d150102c/view/Reviews"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;here&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Where can I download the source code for the Build Notes Preview?&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Since this is part of the community build extension codeplex project, you can download the source code from &lt;a href="http://tfsbuildextensions.codeplex.com/SourceControl/list/changesets"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;here&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Where do I report bugs or request enhancements to the Build Notes Preview?&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You can raise a bug or enhancement request &lt;u&gt;&lt;a href="http://tfsbuildextensions.codeplex.com/workitem/list/basic"&gt;&lt;font color="#0000ff"&gt;here&lt;/font&gt;&lt;/a&gt;&lt;/u&gt;. Alternatively you can &lt;a href="http://geekswithblogs.net/TarunArora/contact.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;contact me&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; directly.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;4. Can I customize the build Notes template?&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;YES! Absolutely, the whole purpose of taking the template approach for build notes was giving the user the flexibility to easily modify the build notes template as per their needs. You can edit as much as you like, I’ll be discussing this in great detail in the next blog post. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;5. Am I looking at the Latest Blog post on TBM - Build Notes?&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You can follow all posts related to TBM – Build Notes from &lt;a title="http://geekswithblogs.net/TarunArora/category/13622.aspx" href="http://geekswithblogs.net/TarunArora/category/13622.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;http://geekswithblogs.net/TarunArora/category/13622.aspx&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Hope you like the feature enhancement, next I’ll be discussing ‘&lt;em&gt;how to customize the build notes preview template&lt;/em&gt;’. Thank you for taking the time out and reading this blog post. If you enjoyed the post, remember to subscribe to &lt;a href="http://feeds.feedburner.com/TarunArora"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;http://feeds.feedburner.com/TarunArora&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;. Special thanks to &lt;a href="http://mikefourie.wordpress.com/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Mike Fourie&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;, &lt;a href="http://geekswithblogs.net/jakob/Default.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Jakob Ehn&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;, &lt;a href="http://pascoal.net/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Tiago Pascol&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/b/anutthara/about.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Anuthara Bharadwaj&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;, &lt;a href="http://social.msdn.microsoft.com/profile/niveditabawa_msft/?ws=usercard-mini"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Nivedita Bawa&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/b/briankel/about.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Brian Keller&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; and &lt;a href="http://social.msdn.microsoft.com/profile/ed%20blankenship%20-%20mvp/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Ed Blankship&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; for their great feedback. While I’ll be busy fixing the defects you raise, in case you have any feedback please feel free to leave a comment. &lt;/p&gt;  &lt;p&gt;Cheers ;)&lt;/p&gt; &lt;img src="http://geekswithblogs.net/TarunArora/aggbug/149498.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TarunArora?a=TskBXK-YXWQ:Knav7j11YnM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TarunArora?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TarunArora/~4/TskBXK-YXWQ" height="1" width="1"/&gt;</description>
            <dc:creator>Tarun Arora</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/TarunArora/archive/2012/04/27/community-tfs-build-manager-ndash-build-notes-preview.aspx</guid>
            <pubDate>Fri, 27 Apr 2012 17:38:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TarunArora/comments/149498.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TarunArora/archive/2012/04/27/community-tfs-build-manager-ndash-build-notes-preview.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/TarunArora/comments/commentRss/149498.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TarunArora/services/trackbacks/149498.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/TarunArora/archive/2012/04/27/community-tfs-build-manager-ndash-build-notes-preview.aspx</feedburner:origLink></item>
        <item>
            <title>TFS API The All New Team Project Picker &amp;ndash; Beautiful!</title>
            <category>TFS SDK</category>
            <category>TFS API</category>
            <link>http://feedproxy.google.com/~r/TarunArora/~3/QUmXJMhToDE/tfs-api-the-all-new-team-project-picker-ndash-beautiful.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;The Team Project Picker in TFS 2011 looks gorgeous. I specially like the status bar on the working state, at least let’s you know that the project picker is still working on getting the details and of course the new icons for team project collection and team projects are stunning too. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/TFSAPITheAllNewTeamProjectPickerBeautifu_94E/clip_image001_2.jpg"&gt;&lt;img title="clip_image001" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="clip_image001" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/TFSAPITheAllNewTeamProjectPickerBeautifu_94E/clip_image001_thumb.jpg" width="392" height="282" /&gt;&lt;/a&gt;  &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/TFSAPITheAllNewTeamProjectPickerBeautifu_94E/clip_image002_2.jpg"&gt;&lt;img title="clip_image002" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="clip_image002" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/TFSAPITheAllNewTeamProjectPickerBeautifu_94E/clip_image002_thumb.jpg" width="397" height="282" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h3&gt;How do I get the Team Project Picker using the TFS API?&lt;/h3&gt;  &lt;p&gt;That is fairly straight forward. Add a reference to the Microsoft.TeamFoundation.Client dll available in C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v2.0 and use the below code,&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ConnectToTfs()
        {
            TeamProjectPicker tfsPP = &lt;span class="kwrd"&gt;new&lt;/span&gt; TeamProjectPicker(TeamProjectPickerMode.MultiProject, &lt;span class="kwrd"&gt;false&lt;/span&gt;, &lt;span class="kwrd"&gt;new&lt;/span&gt; UICredentialsProvider());
            tfsPP.ShowDialog();
        }&lt;/pre&gt;
        &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;
    
  &lt;/table&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Download a sample application &lt;a href="https://skydrive.live.com/redir.aspx?cid=61d0a67d27b527d3&amp;amp;resid=61D0A67D27B527D3!492&amp;amp;parid=61D0A67D27B527D3!152"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;here&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;Why does my project picker look different?&lt;/h3&gt;

&lt;p&gt;You might run into an issue, where the project picker looks like the below,&lt;/p&gt;

&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/TFSAPITheAllNewTeamProjectPickerBeautifu_94E/clip_image001%5B1%5D.jpg"&gt;&lt;img title="clip_image001[1]" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="clip_image001[1]" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/TFSAPITheAllNewTeamProjectPickerBeautifu_94E/clip_image001%5B1%5D_thumb.jpg" width="386" height="283" /&gt;&lt;/a&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/TFSAPITheAllNewTeamProjectPickerBeautifu_94E/clip_image002%5B1%5D.jpg"&gt;&lt;img title="clip_image002[1]" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="clip_image002[1]" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/TFSAPITheAllNewTeamProjectPickerBeautifu_94E/clip_image002%5B1%5D_thumb.jpg" width="386" height="283" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When the Team Project Picker is run from inside of VS the colour theme will be picked up from VS itself. When running outside of VS the windows theme colours are used, so there can be differences between the two. Currently there isn’t a way to change that since the dialog itself is not public (just the wrapper that launches the dialog). So don’t be surprised if the Team Project Picker looks different then expected :-] &lt;/p&gt; &lt;img src="http://geekswithblogs.net/TarunArora/aggbug/149290.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TarunArora?a=QUmXJMhToDE:FZSuzYlVYho:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TarunArora?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TarunArora/~4/QUmXJMhToDE" height="1" width="1"/&gt;</description>
            <dc:creator>Tarun Arora</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/TarunArora/archive/2012/04/11/tfs-api-the-all-new-team-project-picker-ndash-beautiful.aspx</guid>
            <pubDate>Wed, 11 Apr 2012 22:49:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TarunArora/comments/149290.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TarunArora/archive/2012/04/11/tfs-api-the-all-new-team-project-picker-ndash-beautiful.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/TarunArora/comments/commentRss/149290.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TarunArora/services/trackbacks/149290.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/TarunArora/archive/2012/04/11/tfs-api-the-all-new-team-project-picker-ndash-beautiful.aspx</feedburner:origLink></item>
        <item>
            <title>Walkthrough: Scheduling jobs using Quartz.net &amp;ndash; Part 1: What is Quartz.Net?</title>
            <category>Quartz.Net</category>
            <link>http://feedproxy.google.com/~r/TarunArora/~3/bsO4XGfxn0s/walkthrough-scheduling-jobs-using-quartz.net-ndash-part-1-what-is.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://quartznet.sourceforge.net/"&gt;&lt;i&gt;&lt;font color="#0000ff"&gt;Quartz.NET&lt;/font&gt;&lt;/i&gt;&lt;/a&gt;&lt;i&gt; is a full-featured, open source enterprise job scheduling system written in .NET platform that can be used from smallest apps to large scale enterprise systems. &lt;/i&gt;&lt;/p&gt;  &lt;h3&gt;What is the problem that we trying to address?&lt;/h3&gt;  &lt;p&gt;I want to schedule the execution of a task but only when something happens. Let’s call that something a trigger, so... if the trigger is met =&amp;gt; execute the task. &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/WalkthroughSchedulingjobsusingQuartz.Net_1413B/image_2.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; margin: 5px 10px 5px 5px; display: inline; border-top-width: 0px" border="0" alt="image" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/WalkthroughSchedulingjobsusingQuartz.Net_1413B/image_thumb.png" width="143" height="124" /&gt;&lt;/a&gt; &lt;i&gt;Sounds simple, why not use windows task scheduler for this?&lt;/i&gt; &lt;/p&gt;  &lt;p&gt;Well, windows task scheduler is great for tasks where the trigger can be easily defined. With windows task scheduler will you be able to schedule a task to run on every working day according to the UK calendar (exclude all weekends &amp;amp; bank holidays) without either writing the logic for day check in the task or a wrapper script calling into the task. &lt;/p&gt;  &lt;p&gt;The task should just contain the execution logic and should not have anything to do with the schedule for execution; Quartz.net allows you to achieve this and lots more. A quartz.net trigger gives you the flexibility for task invocation based on the following triggers, &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;1. at a certain time of day (to the millisecond) &lt;/li&gt;    &lt;li&gt;2. on certain days of the week &lt;/li&gt;    &lt;li&gt;3. on certain days of the month &lt;/li&gt;    &lt;li&gt;4. on certain days of the year &lt;/li&gt;    &lt;li&gt;5. not on certain days listed within a registered Calendar (such as business holidays) &lt;/li&gt;    &lt;li&gt;6. repeated a specific number of times &lt;/li&gt;    &lt;li&gt;7. repeated until a specific time/date &lt;/li&gt;    &lt;li&gt;8. repeated indefinitely &lt;/li&gt;    &lt;li&gt;9. repeated with a delay interval &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Did 8 – repeat indefinitely just ring a bell? I’ll be covering that in the future post. &lt;/p&gt;  &lt;h3&gt;Using Quartz.net as a windows service&lt;/h3&gt;  &lt;p&gt;You can have Quartz.net run as a standalone instance within its own .NET virtual machine instance via .NET Remoting. Let’s take a look at typical application architecture. In the figure below, I have the application tier set up on Machine 1, database set up on Machine 2 and Quartz.net set up on Machine 3 which is normally the architecture for most (if not all) enterprise applications.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/WalkthroughSchedulingjobsusingQuartz.Net_1413B/image_4.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/WindowsLiveWriter/WalkthroughSchedulingjobsusingQuartz.Net_1413B/image_thumb_1.png" width="450" height="268" /&gt;&lt;/a&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;font size="1"&gt;&lt;strong&gt;Figure 1 -  Typical Application architecture while using Quartz.net as a windows service&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;What other options do I have if I don’t want to use Quartz.net?&lt;/h3&gt;  &lt;p&gt;Quartz.net is just one of the many job scheduling services. Have a look at this comprehensive list of free and paid enterprise job scheduling software along with their feature comparison. &lt;a href="http://en.wikipedia.org/wiki/List_of_job_scheduler_software"&gt;&lt;font color="#0000ff"&gt;&lt;u&gt;http://en.wikipedia.org/wiki/List_of_job_scheduler_software&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This was first in the series of posts on enterprise scheduling using Quartz.net, in the next post I’ll be covering &lt;em&gt;how to Install Quartz.net as a windows service&lt;/em&gt;. Thank you for taking the time out and reading this blog post. If you enjoyed the post, remember to subscribe to &lt;a href="http://feeds.feedburner.com/TarunArora"&gt;&lt;font color="#0000ff"&gt;http://feeds.feedburner.com/TarunArora&lt;/font&gt;&lt;/a&gt;. Stay tuned! &lt;/p&gt; &lt;img src="http://geekswithblogs.net/TarunArora/aggbug/149279.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TarunArora?a=bsO4XGfxn0s:7IYZywH-R9I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TarunArora?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TarunArora/~4/bsO4XGfxn0s" height="1" width="1"/&gt;</description>
            <dc:creator>Tarun Arora</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/TarunArora/archive/2012/04/10/walkthrough-scheduling-jobs-using-quartz.net-ndash-part-1-what-is.aspx</guid>
            <pubDate>Tue, 10 Apr 2012 20:50:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TarunArora/comments/149279.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TarunArora/archive/2012/04/10/walkthrough-scheduling-jobs-using-quartz.net-ndash-part-1-what-is.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/TarunArora/comments/commentRss/149279.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TarunArora/services/trackbacks/149279.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/TarunArora/archive/2012/04/10/walkthrough-scheduling-jobs-using-quartz.net-ndash-part-1-what-is.aspx</feedburner:origLink></item>
        <item>
            <title>ALMing in Hinglish 2&amp;ndash;Windows 8-Manual Testing Metro Style Apps using MTM11</title>
            <category>ALMing in Hinglish</category>
            <category>Tfs11</category>
            <category>MTM</category>
            <category>vNext</category>
            <link>http://feedproxy.google.com/~r/TarunArora/~3/0r89WtpkDr8/alming-in-hinglish-2ndashwindows-8-manual-testing-metro-style-apps-using.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;What is ALMing in Hinglish =&amp;gt; &lt;a href="http://geekswithblogs.net/TarunArora/archive/2012/03/05/introduction-to-alming-in-hinglish.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Introduction&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;img src="https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcREjA3p7cxubvT63eg3_qwElqbk1AsoxNYlI25AU92lUH_-3qtq" width="238" height="143" /&gt; &lt;img src="https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcRM9-ETWvn4Vhx6E-ZTit1skhXrtdiDwkYW6fHCDIQua6RbcDLL" width="146" height="142" /&gt; &lt;/p&gt;  &lt;p&gt;दूसरे वीडियो में &lt;a href="http://social.msdn.microsoft.com/Profile/shubhra%20maji%20msft"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;शुभ्रा माजी&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;, &lt;a href="http://social.msdn.microsoft.com/Profile/aditya%20agrawal%20%5Bmsft%5D"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;आदित्य अग्रवाल&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; और &lt;a href="http://www.linkedin.com/pub/srishti-shridhar/14/b04/bb7"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;सृष्टि श्रीधर&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; से चर्चा करेंगे विंडोज 8 मेट्रो स्टाइल ऍप्लिकेशन्स की मैनुअल टैस्टिंग के बारे में. टीम हमें माइक्रोसॉफ्ट टेस्ट प्रबंधक 2011 के माध्यम से एक डेमो देंगी विंडोज 8 मेट्रो स्टाइल ऍप्लिकेशन्स की मैनुअल टैस्टिंग की.&lt;/p&gt;  &lt;div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:f9afeeea-087f-4a0d-b187-2636d7889bce" class="wlWriterSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"&gt;   &lt;div id="934f6d5d-6401-4caf-8583-a1d76b2c1cc1" style="padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"&gt;     &lt;div&gt;&lt;embed type="application/x-shockwave-flash" height="252" width="448" src="http://www.youtube.com/v/d3ae0o3yp_8?hl=en&amp;amp;hd=1" /&gt;&lt;/div&gt;   &lt;/div&gt;    &lt;div style="font-size: 0.8em; width: 448px; clear: both"&gt;ALMing in Hinglish–Windows 8 Metro Style App manual testing using MTM11&lt;/div&gt; &lt;/div&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;In this second in the series of videos I bring to you &lt;a href="http://social.msdn.microsoft.com/Profile/shubhra%20maji%20msft"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Shubhra Maji&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; who is a Program Manager on the Visual Studio dev tools team in Hyderabad along with the very seasoned &lt;a href="http://social.msdn.microsoft.com/Profile/aditya%20agrawal%20%5Bmsft%5D"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Aditya Agarwal&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; &amp;amp; &lt;a href="http://www.linkedin.com/pub/srishti-shridhar/14/b04/bb7"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Srishti Sridhar&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; who have been working in the Visual Studio team from past several releases. The team wonderfully walks us through manually testing Metro Style Apps in Windows 8 using Microsoft Test Manager 11. &lt;/p&gt;  &lt;p&gt;A great thank you for watching, if you have any questions/feedback/suggestions please &lt;a href="http://geekswithblogs.net/TarunArora/contact.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;contact us&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Stay Tuned for more…&lt;/p&gt;  &lt;p&gt;Namaste!&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;You might also like&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://geekswithblogs.net/TarunArora/archive/2012/03/05/alming-in-hinglish-1-exploratory-testing-in-vs11-with-nivedita-bawa.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;ALMing in Hinglish 1-Exploratory Testing in VS11 with Nivedita Bawa&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/TarunArora/aggbug/149173.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TarunArora?a=0r89WtpkDr8:jWfypd1WI4s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TarunArora?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TarunArora/~4/0r89WtpkDr8" height="1" width="1"/&gt;</description>
            <dc:creator>Tarun Arora</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/TarunArora/archive/2012/04/01/alming-in-hinglish-2ndashwindows-8-manual-testing-metro-style-apps-using.aspx</guid>
            <pubDate>Sun, 01 Apr 2012 22:07:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TarunArora/comments/149173.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TarunArora/archive/2012/04/01/alming-in-hinglish-2ndashwindows-8-manual-testing-metro-style-apps-using.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/TarunArora/comments/commentRss/149173.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TarunArora/services/trackbacks/149173.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/TarunArora/archive/2012/04/01/alming-in-hinglish-2ndashwindows-8-manual-testing-metro-style-apps-using.aspx</feedburner:origLink></item>
        <item>
            <title>ALMing in Hinglish 1-Exploratory Testing in VS11 with Nivedita Bawa</title>
            <category>ALMing in Hinglish</category>
            <link>http://feedproxy.google.com/~r/TarunArora/~3/LXhIS3R-Rlo/alming-in-hinglish-1-exploratory-testing-in-vs11-with-nivedita-bawa.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;What is ALMing in Hinglish =&amp;gt; &lt;a href="http://geekswithblogs.net/TarunArora/archive/2012/03/05/introduction-to-alming-in-hinglish.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Introduction&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;पहली वीडियो में &lt;a href="http://social.msdn.microsoft.com/profile/niveditabawa_msft/?ws=usercard-mini"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;निवेदिता बावा&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; से चर्चा करेंगे खोजपूर्ण टैसटि़ग के बारे में. निवेदिता हमें बताएंगी खोजपूर्ण टैसटि़ग क्या है और इसके लाभ, और खोजपूर्ण टैसटि़ग पर माइक्रोसॉफ्ट टेस्ट प्रबंधक 2011 के माध्यम से एक डेमो देंगी. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/ALMing-in-Hinglish-Exploratory-Testing-w_146CC/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/ALMing-in-Hinglish-Exploratory-Testing-w_146CC/image_thumb.png" width="244" height="167" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In this first in the series of videos I interview &lt;a href="http://social.msdn.microsoft.com/profile/niveditabawa_msft/?ws=usercard-mini"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Nivedita Bawa&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; who is a Program Manager on the Visual Studio team. Nivedita wonderfully explains what exploratory testing is, what are it’s advantages, why people refrain from using it and a walkthrough of some exploratory testing scenarios using Microsoft Test Manager 2011.   &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="padding-bottom: 1px; margin: 0px; padding-left: 130px; padding-right: 1px; display: inline; float: none; padding-top: 1px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:14ab0f2f-86eb-46c3-b5fd-e2d01a119b71" class="wlWriterEditableSmartContent"&gt;&lt;div id="6c59ea90-d2e5-4e82-b6a8-32340b640142" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=CRK06j_jev8&amp;amp;feature=youtu.be" target="_new"&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/ALMing-in-Hinglish-Exploratory-Testing-w_146CC/video3d55100ede33.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('6c59ea90-d2e5-4e82-b6a8-32340b640142'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;600\&amp;quot; height=\&amp;quot;337\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/CRK06j_jev8?hl=en&amp;amp;hd=1\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/CRK06j_jev8?hl=en&amp;amp;hd=1\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;600\&amp;quot; height=\&amp;quot;337\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="width:600px;clear:both;font-size:.8em"&gt;ALMing in Hinglish–Exploratory Testing with Nivedita Bawa.&lt;/div&gt;&lt;/div&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Feel free to contact me directly if you have any questions/feedback/suggestions…&lt;/p&gt;  &lt;p&gt;Stay Tuned…&lt;/p&gt;  &lt;p&gt;Namaste!&lt;/p&gt; &lt;img src="http://geekswithblogs.net/TarunArora/aggbug/148902.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TarunArora?a=LXhIS3R-Rlo:097tt0FZZz4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TarunArora?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TarunArora/~4/LXhIS3R-Rlo" height="1" width="1"/&gt;</description>
            <dc:creator>Tarun Arora</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/TarunArora/archive/2012/03/05/alming-in-hinglish-1-exploratory-testing-in-vs11-with-nivedita-bawa.aspx</guid>
            <pubDate>Mon, 05 Mar 2012 23:13:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TarunArora/comments/148902.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TarunArora/archive/2012/03/05/alming-in-hinglish-1-exploratory-testing-in-vs11-with-nivedita-bawa.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/TarunArora/comments/commentRss/148902.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TarunArora/services/trackbacks/148902.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/TarunArora/archive/2012/03/05/alming-in-hinglish-1-exploratory-testing-in-vs11-with-nivedita-bawa.aspx</feedburner:origLink></item>
        <item>
            <title>Introduction to ALMing in Hinglish</title>
            <category>ALMing in Hinglish</category>
            <link>http://feedproxy.google.com/~r/TarunArora/~3/YV4Ag3SEE7M/introduction-to-alming-in-hinglish.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;पिछले साल अक्तूबर में मैने &lt;a href="http://geekswithblogs.net/TarunArora/archive/2011/10/28/tfs-2011-hands-on-labs-in-hindi.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;विजुअल स्टूडियो 11 लैब्स&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; का पूर्वावलोकन किया था जो 1000 से अधिक बार डाउनलोड किया गया है. यह एक महान प्रेरणा राही है इसी तरह की पहल की दिशा में काम करने के लिए. मैं शुक्रिया अदा करना &lt;font color="#000000"&gt;चाहूँगा &lt;a href="http://blogs.msdn.com/b/charles_sterling/about.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;चार्ल्स स्टर्लिंग&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/font&gt; और उनकी टीम का ‘ALMing in Hinglish’ मे समर्थन के लिये. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/ALMing-in-Hinglish_11353/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 7px 12px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/ALMing-in-Hinglish_11353/image_thumb.png" width="186" height="126" /&gt;&lt;/a&gt;Hinglish (हिन्दी + अंग्रेजी) वीडियो की श्रृंखला में हम माइक्रोसॉफ्ट विजुअल स्टूडियो &lt;b&gt;ए.एल.एम विशेषताऒ की &lt;/b&gt;खोज करेंगे उत्पाद टीम के सदस्य &lt;b&gt;से &lt;b&gt;बात करके. &lt;/b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;किसी भी प्रश्न / प्रतिक्रिया / सुझाव के लिए मुझसे संपर्क करें ...&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;In October last year I translated the Visual Studio 11 Preview Hands on &lt;a href="http://geekswithblogs.net/TarunArora/archive/2011/10/28/tfs-2011-hands-on-labs-in-hindi.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Labs to Hindi&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; which has received over 1000 downloads to date. This overwhelming response has been a great motivation in finding more interactive ways to deliver Visual Studio ALM content in Hindi &amp;amp; other regional languages. I would like to thank &lt;a href="http://blogs.msdn.com/b/charles_sterling/about.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Charles Sterling&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; &amp;amp; team for their support towards the &lt;em&gt;‘ALMing in Hinglish’&lt;/em&gt; initiative. &lt;/p&gt;  &lt;p&gt;In the series of Hinglish (English + Hindi) videos we will explore the various ALM offerings of Visual Studio by talking to people in the Microsoft Visual Studio product teams.&lt;/p&gt;  &lt;p&gt;Feel free to contact me directly if you have any questions/feedback/suggestions… &lt;/p&gt;  &lt;p&gt;Stay Tuned…&lt;/p&gt;  &lt;p&gt;Namaste!&lt;/p&gt; &lt;img src="http://geekswithblogs.net/TarunArora/aggbug/148901.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TarunArora?a=YV4Ag3SEE7M:Xps_4eKf6RY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TarunArora?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TarunArora/~4/YV4Ag3SEE7M" height="1" width="1"/&gt;</description>
            <dc:creator>Tarun Arora</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/TarunArora/archive/2012/03/05/introduction-to-alming-in-hinglish.aspx</guid>
            <pubDate>Mon, 05 Mar 2012 22:49:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TarunArora/comments/148901.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TarunArora/archive/2012/03/05/introduction-to-alming-in-hinglish.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/TarunArora/comments/commentRss/148901.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TarunArora/services/trackbacks/148901.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/TarunArora/archive/2012/03/05/introduction-to-alming-in-hinglish.aspx</feedburner:origLink></item>
        <item>
            <title>My Big Fat Indian Wedding!</title>
            <category>Personal</category>
            <link>http://feedproxy.google.com/~r/TarunArora/~3/q0WMTSFPxJM/my-big-fat-indian-wedding.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;I have been off the circuit for over a month now for guys wondering if I have fallen off the planet, I was getting married! Indian Weddings are grand and the festivities start months in advance while the hang over carries on for weeks after. The Weddings in India are about bringing together friends &amp;amp; family, fun times with a lot of dance &amp;amp; music, spicy curries &amp;amp; royal beverages, blending of rituals, and a lot of culture. &lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.facebook.com/profile.php?id=630367536"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Annu&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; Weds &lt;a href="http://www.facebook.com/profile.php?id=695500987"&gt;&lt;font color="#0000ff"&gt;Tarun&lt;/font&gt;&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&lt;strong&gt;Before the wedding… 8, 9, 10 Feb 2012&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;A lot covered in 3 days, felt like running a marathon with rituals of purification, Mehndi, Hawan, … , Cocktail and finally getting engaged on the 10th of Feb 2012. &lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;                          * Rituals *                                                             * &amp;amp; more rituals *                                                 * 10th Feb 2012 *&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_6794.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_6794" border="0" alt="IMG_6794" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_6794_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt;  &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_6824.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_6824" border="0" alt="IMG_6824" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_6824_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/_MG_9435.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="_MG_9435" border="0" alt="_MG_9435" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/_MG_9435_thumb.jpg" width="246" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&lt;strong&gt;The Big Day – 11th Feb 2012&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;                     *All Set*                                                         **The Horse Ride**                                                                             *** The Wedding Vows***&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/DSC_0147_2.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="DSC_0147" border="0" alt="DSC_0147" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/DSC_0147_thumb.jpg" width="170" height="251" /&gt;&lt;/a&gt;   &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/DSC_0215_2.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="DSC_0215" border="0" alt="DSC_0215" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/DSC_0215_thumb.jpg" width="291" height="250" /&gt;&lt;/a&gt;  &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/DSC_1011_5.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DSC_1011" border="0" alt="DSC_1011" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/DSC_1011_thumb_1.jpg" width="363" height="252" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;Honeymoon in Paradise – Maldives | Soneva Gili |14th-19th Feb 2012&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;No Shoes… No News =&amp;gt; &lt;a href="http://www.sixsenses.com/soneva-gili/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Soneva Gili By Six Senses&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;                 * Over Water Villas *                                                * No Shoes/ No News *                                                * While Snorkelling *&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8384.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_8384" border="0" alt="IMG_8384" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8384_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_7938.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_7938" border="0" alt="IMG_7938" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_7938_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt;    &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8391.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="IMG_8391" border="0" alt="IMG_8391" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8391_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;My elder brother &lt;a href="http://ae.linkedin.com/in/aaroraonline"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Amit Arora&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; who knows everything there is to know about hotels, destinations and travel surprised us by booking us the perfect vacation @ the paradise island. For our honeymoon we wanted to travel to a destination where we could relax, yet be thrilled and occasionally surprised, where we were at the heart of nature but not too far from the lap of luxury! Soneva Gili proved to be just that “perfect” destination where our expectations were exceeded in all six senses. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="1"&gt;             * The Wine Cellar *                                                 * Exploring the Island *                                            * The Palm Island *&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_7277.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_7277" border="0" alt="IMG_7277" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_7277_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8277_1.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_8277" border="0" alt="IMG_8277" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8277_thumb_1.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8483.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_8483" border="0" alt="IMG_8483" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8483_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In our 6 day stay in the sumptuous over-water villa on the island we were pampered and looked after faultlessly. Though every experience &amp;amp; activity offered at Soneva Gili was unique our personal favourite were the so very romantic sun set sail in the traditional dhoni and the romantic theme dinner on the palm island. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="1"&gt;                          * Dhoni *                                                            * Nature a real Mix! *                                               * Baby Shark *&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_7479.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_7479" border="0" alt="IMG_7479" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_7479_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8538.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_8538" border="0" alt="IMG_8538" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8538_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8550.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_8550" border="0" alt="IMG_8550" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8550_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Our Mr Friday Ahmed made anything &amp;amp; everything possible, even on the day when the dolphins weren’t ready to show up he managed to get some dancing dolphins to pop out of the Indian ocean during the dolphin cruise. Hari our chef spoiled us for choice personalising every course, every meal, every day. Firdhaus in charge of room service provided in-despicable service. Iain (General Manager) &amp;amp; Alex (Resort Manager) managed everything to perfection. Just like any one else we were looking for the perfect holiday and the least I can say is we have been delighted in every possible way. I would highly recommend Soneva Gili to anyone looking for a memorable vacation. &lt;a href="http://www.tripadvisor.co.uk/Hotel_Review-g298332-d301969-Reviews-Soneva_Gili_by_Six_Senses-North_Male_Atoll.html"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;More Details, reviews, photos, …&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="1"&gt;                    * Great Hosts - Alex &amp;amp; Ian *                                  * Fun In The Sand! *                                             * Beautiful Sun Set *&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8490.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_8490" border="0" alt="IMG_8490" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8490_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8552.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_8552" border="0" alt="IMG_8552" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8552_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8622.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_8622" border="0" alt="IMG_8622" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/My-Big-Fat-Indian-Wedding_12EC3/IMG_8622_thumb.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;I must have time travelled, it is still cold and wet here in London! Unfortunately all good things come to an end. Vacation is finally over and trust me it still feels awkward wearing shoes. But as they say &lt;em&gt;&lt;strong&gt;C’est La Vie!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Namaste!&lt;/p&gt; &lt;img src="http://geekswithblogs.net/TarunArora/aggbug/148875.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TarunArora?a=q0WMTSFPxJM:LKNPyOSUB9s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TarunArora?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TarunArora/~4/q0WMTSFPxJM" height="1" width="1"/&gt;</description>
            <dc:creator>Tarun Arora</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/TarunArora/archive/2012/03/03/my-big-fat-indian-wedding.aspx</guid>
            <pubDate>Sat, 03 Mar 2012 15:36:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TarunArora/comments/148875.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TarunArora/archive/2012/03/03/my-big-fat-indian-wedding.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/TarunArora/comments/commentRss/148875.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TarunArora/services/trackbacks/148875.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/TarunArora/archive/2012/03/03/my-big-fat-indian-wedding.aspx</feedburner:origLink></item>
        <item>
            <title>Microsoft IE6 Migration</title>
            <category>IE Migration</category>
            <link>http://feedproxy.google.com/~r/TarunArora/~3/3TvseefrOgk/microsoft-ie6-migration.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;With support for Windows XP coming to an end on the 8th April 2014 and IE6 standing in so many people’s way of migration, what better time to start taking the leap to a more modern browser?&lt;/p&gt;  &lt;p&gt;Microsoft have teamed up with &lt;b&gt;Camwood&lt;/b&gt;, &lt;b&gt;Citrix Systems&lt;/b&gt; and &lt;b&gt;Quest Software&lt;/b&gt;, all application compatibility experts, to help jump-start your move. Join the road shows being organized around the UK between Feb and April to learn more about the technical challenges faced by departments and how you can get around it.&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="0" width="661"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="659"&gt;         &lt;p&gt;&lt;a href="http://blogs.technet.com/b/uktechnet/archive/2012/01/17/save-the-date-ie6-migration-roadshows.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/Microsoft-IE6-Migration_10BBE/clip_image001_4c057807-1c49-44c0-85de-6f54e7c6190d.jpg" width="719" height="123" /&gt;&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;Join us at a date below for a packed agenda discussing the &lt;b&gt;technical challenges&lt;/b&gt; faced by IT departments when migrating their users off of IE6. We will establish: &lt;/p&gt;          &lt;p&gt;· Why you should go through the trouble of migrating;&lt;/p&gt;          &lt;p&gt;· How you go about identifying those problem applications;&lt;/p&gt;          &lt;p&gt;· What you can do about them.&lt;/p&gt;          &lt;p&gt;There are a range of dates to choose from, each offering a slightly different spin and all promising to be thoroughly informative! Take your pick and use the links below to register with our partners.&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;Who, Where &amp;amp; When?&lt;/strong&gt;&lt;b&gt;             &lt;br /&gt;&lt;strong&gt;Tues 21&lt;sup&gt;st&lt;/sup&gt; February&lt;/strong&gt;&lt;/b&gt;            &lt;br /&gt;Microsoft &amp;amp; Quest Software             &lt;br /&gt;Manchester United Football Ground (Old Trafford)             &lt;br /&gt;09:30 – 14:00 (+Stadium Tour!)            &lt;br /&gt;&lt;a href="http://www.quest-software.co.uk/landing/?ID=7174"&gt;More Information &amp;amp; Registration&lt;/a&gt;            &lt;br /&gt;&lt;strong&gt;Thurs 22&lt;sup&gt;nd&lt;/sup&gt; March &lt;/strong&gt;&lt;b&gt;             &lt;br /&gt;&lt;/b&gt;Microsoft &amp;amp; Citrix Systems (Including newly acquired AppDNA)            &lt;br /&gt;Chalfont St. Peter (Easy access via the M40 &amp;amp; M25 as well as rail)            &lt;br /&gt;09:00 – 16:00            &lt;br /&gt;&lt;a href="http://www.citrixappdnaevents.com/ie6-migration-roadshow"&gt;More Information &amp;amp; Registration&lt;/a&gt;            &lt;br /&gt;&lt;strong&gt;Tues 3&lt;sup&gt;rd&lt;/sup&gt; April &lt;/strong&gt;&lt;b&gt;             &lt;br /&gt;&lt;/b&gt;Microsoft &amp;amp; Camwood             &lt;br /&gt;London, Cardinal Place             &lt;br /&gt;More Information &amp;amp; Registration TBC            &lt;br /&gt;&lt;strong&gt;Thurs 19&lt;sup&gt;th&lt;/sup&gt; April &lt;/strong&gt;&lt;b&gt;             &lt;br /&gt;&lt;/b&gt;Microsoft &amp;amp; Quest Software             &lt;br /&gt;Reading Football Ground (Madejski Stadium)             &lt;br /&gt;09:30 – 14:00 (+Stadium Tour!)            &lt;br /&gt;&lt;a href="http://www.quest-software.co.uk/landing/?ID=7174"&gt;More Information &amp;amp; Registration&lt;/a&gt;&lt;/p&gt;          &lt;p&gt;On behalf of all the team at Microsoft, we hope to see you there!&lt;/p&gt;          &lt;p&gt;&lt;a href="http://camwood.com/"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/Microsoft-IE6-Migration_10BBE/clip_image002_42f6d8bb-bf32-4ca3-bd34-2be4e4244ce0.jpg" width="97" height="17" /&gt;&lt;/a&gt; &lt;a href="http://www.citrix.com/lang/English/home.asp"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/Microsoft-IE6-Migration_10BBE/clip_image003_ceb9b3e8-4565-47fe-829d-b8eb84360924.jpg" width="58" height="17" /&gt;&lt;/a&gt; &lt;a href="http://www.quest.com/default.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/Microsoft-IE6-Migration_10BBE/clip_image004_e724484d-35a6-4212-beb5-88587b907338.jpg" width="88" height="17" /&gt;&lt;/a&gt; &lt;a href="http://blogs.technet.com/b/uktechnet/archive/2012/01/17/save-the-date-ie6-migration-roadshows.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/Microsoft-IE6-Migration_10BBE/clip_image006_933ebab1-2f10-462a-b995-872ecb002924.jpg" width="394" height="22" /&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Please share the word, after all, 2014 isn’t too far away now &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-Inlove" alt="In love" src="http://geekswithblogs.net/images/geekswithblogs_net/TarunArora/Windows-Live-Writer/Microsoft-IE6-Migration_10BBE/wlEmoticon-Inlove_2.png" /&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/TarunArora/aggbug/148396.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TarunArora?a=3TvseefrOgk:Z5xrq_l_gZ4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TarunArora?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TarunArora/~4/3TvseefrOgk" height="1" width="1"/&gt;</description>
            <dc:creator>Tarun Arora</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/TarunArora/archive/2012/01/18/microsoft-ie6-migration.aspx</guid>
            <pubDate>Wed, 18 Jan 2012 19:07:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/TarunArora/comments/148396.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/TarunArora/archive/2012/01/18/microsoft-ie6-migration.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/TarunArora/comments/commentRss/148396.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/TarunArora/services/trackbacks/148396.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/TarunArora/archive/2012/01/18/microsoft-ie6-migration.aspx</feedburner:origLink></item>
    </channel>
</rss>

