65.9K
CodeProject is changing. Read more.
Home

Working with TFS Server

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.82/5 (8 votes)

Jun 23, 2007

CPOL
viewsIcon

42741

Working with TFS Server using TeamExplorer SDK.

Introduction

I've worked on a project that must have the ability to integrate with Team Foundation Server. I tried to search CodeProject, but unfortunately found only one article concerning this. I was quite confused about the topic, but got it all clear - there is a very good documentation of TFS programming in MSDN. So, in my post, I'll outline links to the source information and will present a short piece of code for novice developers.

Before starting

  • Ensure that you have installed Visual Studio 2005 SDK (see links below).
  • The simplest way is to use GAC.

  • Add references to the TeamFoundation assemblies.
  • Screenshot - TFS.gif

Working with TFS

This is an example of how to connect to a TFS server, and retrieve Projects and their WorkItems using WIQL (WorkItem Query Language, see links):

//
// Using Section
// 

using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client; 


public void WorkWithTFS(string login, string password, string tfsName)
{
    //Connecting Server
    NetworkCredential tfsCredential = new NetworkCredential(login, password);
    TeamFoundationServer tfs = new TeamFoundationServer(tfsName, tfsCredential);
    tfs.Authenticate();

    WorkItemStore wis = (WorkItemStore)tfs.GetService(typeof(WorkItemStore));

    //Iterate Through Projects
    foreach (Project tfs_project in wis.Projects)
    {
       Console.WriteLine(tfs_project.Name);

       //Perform WIQL Query 
       WorkItemCollection wic = wis.Query(
          " SELECT [System.Id], [System.WorkItemType],"+
          " [System.State], [System.AssignedTo], [System.Title] "+
          " FROM WorkItems " + 
          " WHERE [System.TeamProject] = '" + tfs_project.Name + 
          "' ORDER BY [System.WorkItemType], [System.Id]");
       foreach (WorkItem wi in wic)
       {
         Console.WriteLine(wi.Title + "["+wi.Type.Name+"]"+wi.Description);
       }
     }
}

You can also use Queries stored on the TFS server to retrieve WorkItems.

Also, the TFS SDK allows you to completely manage the TFS Server; for more information search MSDN.

Links

History

  • 23 June 2007: First version.