Team Foundation Server (TFS)工具的亮点之一是管理日常工作项, 工作项如Bug, Task,Task Case等。

使用TFS API编程访问TFS服务器中的工作项, 步骤如下:

1。 准备,

首先要明确TFS服务器的URL, TFS服务器访问就像访问网站。需要通过一个网络地址。

其次要了解TFS中工作项相关组织结构:

Microsoft.TeamFoundation.Client.TfsTeamProjectCollection ;

Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore;

Microsoft.TeamFoundation.WorkItemTracking.Client.Project;

Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemType;

Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem

TfsTeamProjectCollection像是一座物理建筑,它有门牌编号,我们通过门牌号码找到该建筑。WorkItemStore像是图书馆,里边存放各种类别,各种年级的书籍。Project像是年级的概念,每个年级是隔离的,每个年级也都有不同类别的书,比如各年级都有语文,数学,英语等类别的书籍。WorkItemType是类别的概念,比如数学,英语。每个Project有不同WorkItemType的工作项。如一年纪有语文学习的书籍,数学学习的书籍;二年级也有语文类的书籍,数学类的书籍。

然后还要了解对WorkItem来说,里边有一些属性是直属WorkItem的,而有些属性(我们在界面上看到的Fields)是存放在数组中的,通过WorkItem.Fields["Field Name"]访问。

2。开始编程,

访问TFS服务器

using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client; string tfsUri = "https://vstf-cooper.com:8080/tfs/learning"; Microsoft.TeamFoundation.Client.TfsTeamProjectCollection server = new TfsTeamProjectCollection(tfsUri);

获取WorkItemStore

Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore myWorkItemStore = server.GetService<WorkItemStore>();

创建隶属于"Project1"的Bug

Project myProject = myWorkItemStore.Projects["Project1"];
WorkItemType bugType = iltProject.WorkItemTypes["Bug"]; WorkItem bug = new WorkItem(bugType);
bug.Title = "";
bug.Fields["Assigned To"].Value = "Cooper";
bug.Save();

3。查询TFS中工作项,

查询TFS中的工作项是通过SQL语句Query出来的,返回结果是Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemCollection.

string sql = @"Select * From WorkItems Where [Work Item Type] = '{0}' and [System.TeamProject] = '{1}' ";
WorkItemCollection queryResults = myWorkItemStore.Query(sql);

TFSAPI的更多相关文章

随机推荐

  1. Matlab实现网络拓补图

    顶点号 顶点号 权值 1 2 400 1 3 450 2 4 300 2 8 230 2 9 140 3 4 600 4 5 210 4 19 310 5 6 230 5 7 200 6 7 320 ...

  2. matrix_last_acm_2

    2014年广州站网络赛 北大命题 password 123 B http://acm.hust.edu.cn/vjudge/contest/view.action?cid=97257#problem/ ...

  3. HOWTO: Create native-looking iPhone/iPad applications from HTML, CSS and JavaScript

    HOWTO: Create native-looking iPhone/iPad applications from HTML, CSS and JavaScript Though it's not ...

  4. c#中的线程一

    一.使用线程的理由 1.可以使用线程将代码同其他代码隔离,提高应用程序的可靠性. 2.可以使用线程来简化编码. 3.可以使用线程来实现并发执行 二.基本知识 1.进程与线程:进程作为操作系统执行程序的 ...

  5. 提权后获取linux root密码

    提权后获取linux root密码 2011-09-09 10:45:25     我来说两句      收藏    我要投稿 在webbackdoor本身是root(可能性小的可怜)或通过某漏洞溢出 ...

  6. HDU 4639 Hehe(字符串处理,斐波纳契数列,找规律)

    题目 //每次for循环的时候总是会忘记最后一段,真是白痴.... //连续的he的个数 种数 //0 1 //1 1 //2 2 //3 3 //4 5 //5 8 //…… …… //斐波纳契数列 ...

  7. oc和swift的混编

    参考:http://blog.sina.com.cn/s/blog_8d1bc23f0102v5tl.html swift中使用oc类的方法 1.创建一个oc.h文件 2.添加需要倒入的oc类的头文件 ...

  8. Java script 看看黑客怎么写的

    在2011年的BlackHat DC 2011大会上Ryan Barnett给出了一段关于XSS的示例java script 代码: ($=[$=[ ] ] [(__=!$+$)[_=-~-~-~$] ...

  9. light oj 1205 - Palindromic Numbers 数位DP

    思路:搜索的时候是从高位到低位,所以一旦遇到非0数字,也就确定了数的长度,这样就知道回文串的中心点. 代码如下: #include<iostream> #include<cstdio ...

  10. node操作mysql数据库

    1.建立数据库连接:createConnection(Object)方法       该方法接受一个对象作为参数,该对象有四个常用的属性host,user,password,database.与php ...