TFSAPI
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的更多相关文章
随机推荐
- 【BZOJ】【1202】【HNOI2005】狡猾的商人
Orz iwtwiioi http://www.cnblogs.com/iwtwiioi/p/3887617.html 并查集+前缀和 啊……这题应该是水题吧?但是我这个大沙茶居然一天都没想出来…… ...
- [百度空间] [原]DLL导出实例化的模板类
因为模板是在编译的时候根据模板参数实例化的,实例化之后就像一个普通的类(函数),这样才有对应的二进制代码;否则,没有模板参数,那么编译器就不知道怎么生成代码,所以生成的DLL就没有办法导出模板了.但是 ...
- WARNING: Calls to any function that may require a gradient calculation inside a conditional block may return undefined results
GLES2.0: Some device will give a warning on compling shaders(yet the compling will succeed), and the ...
- Kali-linux安装之后的简单设置
1.更新软件源:修改sources.list文件:leafpad /etc/apt/sources.list然后选择添加以下适合自己较快的源(可自由选择,不一定要全部): #官方源deb http:/ ...
- js java正则表达式替换手机号4-7位为星*号
需求: 一个手机号13152461111,由于安全性,需要替换4-7位字符串为星号,为131****1111,那么有2中玩法,一种是前端隐藏,一种是后台隐藏. 1. 前台隐藏 <!DOCTYPE ...
- 最小PE文件讨论
1.实例1国外的人写的最小的PE文件--97Bytes 4D5A0000504500004C0101006A2A58C30000000000000000040003010B01080004000000 ...
- 理解Linux系统负荷[转]
一.查看系统负荷 在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行).(另外,它们在苹果公司的Mac电脑上也适用.) 二.一个类比 我们不妨把这个CPU想象成一座大桥, ...
- samsung-smart app 开发
http://www.samsungdforum.com/ http://seller.samsungapps.com/login/signIn.as?returnURL=%2fmain%2fsell ...
- NWR协议
NWR是一种在分布式存储系统中用于控制一致性级别的一种策略.在Amazon的Dynamo云存储系统中,就应用NWR来控制一致性. 让我们先来看看这三个字母的含义:N:在分布式存储系统中,有多少份备份数 ...
- CRF++中文分词使用指南
http://blog.csdn.net/marising/article/details/5769653 前段时间写了中文分词的一些记录里面提到了CRF的分词方法,近段时间又研究了一下,特把方法写下 ...