Click here to Skip to main content
15,881,852 members
Articles / Programming Languages / C#

Working with TFS Server

Rate me:
Please Sign up or sign in to vote.
1.82/5 (8 votes)
23 Jun 2007CPOL 42.3K   19   3
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):

C#
//
// 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.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect
Netherlands Netherlands
Please visit my website for more articles

I'm software developer & Ph.D. student

Comments and Discussions

 
GeneralThoughts Pin
PIEBALDconsult10-Dec-14 18:13
mvePIEBALDconsult10-Dec-14 18:13 
GeneralThanks, concise and to the point. Pin
rockonedge27-Apr-10 17:40
rockonedge27-Apr-10 17:40 
I just copied the code over to VS2010 and it works.
a little update for vs2010 and .Net 4. You need to use the new TfsTeamProjectCollection class and hence Uri for tfsName rather than string.

    public void WorkWithTFS(string login, string password, Uri tfsName)<br />
    {<br />
        //Connecting Server<br />
<br />
        NetworkCredential tfsCredential = new NetworkCredential(login, password);<br />
        TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(tfsName, tfsCredential);<br />
        tfs.Authenticate();<br />
        <br />
        //...<br />
    }

GeneralCannot pass a GCHandle across AppDomains. PinPopular
naveen.srikakolanu23-Apr-08 0:16
naveen.srikakolanu23-Apr-08 0:16 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.