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. Linux sort --copy

    Source: http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html sort是在Linux里非常常用的一个命令,管排序的,集中 ...

  2. 【BZOJ】【1003】【ZJOI2006】物流运输trans

    最短路/DP 这题数据规模并不大!!这是重点……… 所以直接暴力DP就好了:f[i]表示前 i 天的最小花费,则有$f[i]=min\{f[j]+cost[j+1][i]+k\} (0\leq j \ ...

  3. topcoder 643 DIV2

    太弱了,太弱了! A:基本的判断吧,然后就是边界问题,写了好久,结果发现时房间第二个交的.. B:真心跪了,还好想出来了,思路想的太慢太慢,结果交上去,落后太多,不过HACK时很多人挂了, 这也是DI ...

  4. JAVA float double数据类型保留2位小数点5种方法

    /** * Java 两个整数相除保留两位小数,将小数转化为百分数 * java中,当两个整数相除时,由于小数点以后的数字会被截断,运算结果将为整数,此时若希望得到运算结果为浮点数,必须将两整数其一或 ...

  5. c# 获取mac地址的2种方法

    和大家分享下,互相学习一下吧.第一个获取方法好像获取不到mac地址,我用了第二种方法可以获取到.希望知道的可以说下为什么. 1,首先要添加引用:using System.Management; 2,代 ...

  6. Sql Server总结

     主键 主键就是数据行的唯一标识.不会重复的列,才能当主键.一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都要设定主键.主键有两种选用策略:业务主键和逻辑主键. 业务主键是使用有业务意义的 ...

  7. kafka配置

    官网:http://kafka.apache.org/ 主要有3种安装方式: 1. 单机单broker 2. 单机多broker 3. 多机多broker 1. wget http://mirror. ...

  8. java+内存分配及变量存储位置的区别[转]

    原文来自:http://blog.csdn.net/rj042/article/details/6871030#comments Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Jav ...

  9. 【uva1502/hdu4117-GRE Words】DP+线段树优化+AC自动机

    这题我的代码在hdu上AC,在uva上WA. 题意:按顺序输入n个串以及它的权值di,要求在其中选取一些串,前一个必须是后一个的子串.问d值的和最大是多少. (1≤n≤2×10^4 ,串的总长度< ...

  10. Project Euler P105:Special subset sums: testing 特殊的子集和 检验

    Special subset sums: testing Let S(A) represent the sum of elements in set A of size n. We shall cal ...