TFS二次开发系列:三、TFS二次开发的第一个实例
首先我们需要认识TFS二次开发的两大获取服务对象的类。
他们分别为TfsConfigurationServer和TfsTeamProjectCollection,他们的不同点在于可以获取不同的TFS API服务类。他们的区别如下:
服务 |
TfsConfigurationServer (服务器级别) |
TfsTeamProjectCollection (集合级别) |
---|---|---|
基本上我们可以通过上面两个类对TFS操作所有功能点。下面我们先看看如何使用TfsTeamProjectCollection获取特定团队集合下的所有项目,并且打印出项目名称。
//取出团队集合URI下的项目名称,如果团队集合为空则取默认集合下项目
//Uri tfsUri = new Uri("http://pc-20130113jkun:8080/tfs/Calueng");这种将会Calueng团队集合下项目
Uri tfsUri = new Uri("http://pc-20130113jkun:8080/tfs");
TfsTeamProjectCollection server = new TfsTeamProjectCollection(tfsUri);
WorkItemStore workstore = server.GetService<WorkItemStore>();
foreach (Project project in workstore.Projects)
{
Console.WriteLine("DefaultCollection集合下项目名称是:" + project.Name);
}
Console.WriteLine("---------------------------------------------------------------");
下面的例子将获取我们整个TFS服务器的所有团队集合以及团队集合下的所有团队名称
//TFS配置服务获取所有项目的名称和所有的团队集合名称
TfsConfigurationServer configserver = TfsConfigurationServerFactory.GetConfigurationServer(tfsUri);
ReadOnlyCollection<CatalogNode> collectNodes =
configserver.CatalogNode.QueryChildren(new[] { CatalogResourceTypes.ProjectCollection },
false, CatalogQueryOptions.None);
foreach (CatalogNode collect in collectNodes)
{
Guid collectid = new Guid(collect.Resource.Properties["InstanceId"]);
TfsTeamProjectCollection teamproject = configserver.GetTeamProjectCollection(collectid);
Console.WriteLine("团队集合名称: " + teamproject.Name);
ReadOnlyCollection<CatalogNode> projNodes = collect.QueryChildren(new[] { CatalogResourceTypes.TeamProject },
false, CatalogQueryOptions.None);
foreach (CatalogNode projnode in projNodes)
{
Console.WriteLine(" 团队项目名称:" + projnode.Resource.DisplayName);
}
}
Console.ReadLine();
最后本实例使用VS2012+TFS2012编写。如需源码请点击 TFSTest1.rar 下载。当然你需要引入TFS的一些API DLL文件。
TFS二次开发系列:三、TFS二次开发的第一个实例的更多相关文章
- BizTalk开发系列(三十二)浅谈BizTalk主机性能优化
很多BizTalk的项目都要考虑到性能优化的问题,虽然BizTalk采用多线程处理消息的,大大提高了程序效率.但默认情况下 BizTalk的主机有很多阻止参数会控制BizTalk对服务器的资源使用率, ...
- 微信程序开发系列教程(二)使用JavaScript给微信用户发送消息
我之前的文章 微信程序开发系列教程(一)开发环境搭建 介绍了微信开发环境的搭建,这篇文章我们就来一步步开发一些具体的功能. 功能需求:当有微信用户关注了您的公众号之后,您用JavaScript发送一个 ...
- S5PV210开发系列三_简易Bootloader的实现
S5PV210开发系列三 简易Bootloader的实现 象棋小子 1048272975 Bootloader是嵌入式系统上电后第一段运行的代码.对于功能简单的处理器,可能并没有Bo ...
- Docker & k8s 系列三:在k8s中部署单个服务实例
本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...
- 《C#微信开发系列(Top)-微信开发完整学习路线》
年前就答应要将微信开发的学习路线整理给到大家,但是因为年后回来这段时间学校还有公司那边有很多事情需要兼顾,所以没能及时更新文章.今天特地花时间整理了下,话不多说,上图,希望对大家的学习有所帮助哈. 如 ...
- Java开发学习(三十二)----Maven多环境配置切换与跳过测试的三种方式
一.多环境开发 我们平常都是在自己的开发环境进行开发, 当开发完成后,需要把开发的功能部署到测试环境供测试人员进行测试使用, 等测试人员测试通过后,我们会将项目部署到生成环境上线使用. 这个时候就有一 ...
- 【Qt程序】基于Qt词典开发系列<十二>呼叫讲述
我们知道,win7系统自带有讲述人,即能够机器读出当前内容,详细能够将电脑锁定.然后点击左下角的button就可以.之前在用Matlab写扫雷游戏的时候,也以前调用过讲述人来进行游戏的语音提示. 详细 ...
- Windows下USB磁盘开发系列三:枚举系统中U盘、并获取其设备信息
前面我们介绍了枚举系统中的U盘盘符(见<Windows下USB磁盘开发系列一:枚举系统中U盘的盘符>).以及获取USB设备的信息(见<Windows下USB磁盘开发系列二:枚举系统中 ...
- BizTalk 开发系列(三十九) BizTalk Server 2009技术概览
BizTalk Server 2009已经发布一段时间了,之前Beta版发布的时候也写过一篇文章<BizTalk Server 2009 Beta初体验>, 当时比较了2006 R2与20 ...
- BizTalk开发系列(三十三)BizTalk之Excel终极解决方案
Excel作为优秀的客户端数据处理程序得到了广泛的应用. 由于其简单又强大的功能在很多公司或个人的数据处理中占用非常重要的位置. 而BizTalk作为微软的SOA主打产品虽然免费提供了很多Adapte ...
随机推荐
- 在 MAC OS X 安装 ADB (Android调试桥)
什么是 ADB? Android调试桥( adb )是一个开发工具,帮助安卓设备和个人计算机之间的通信. 这种通信大多是在USB电缆下进行,但是也支持Wi-Fi连接. adb 还可被用来与电脑上运行的 ...
- epub电子书--目录结构介绍
epub电子书简介 epub全称为Electronic Publication的缩写,意为:电子出版, epub于2007年9月成为国际数位出版论坛(IDPF)的正式标准,以取代旧的开放Open eB ...
- js ie中实现拖拽
获取鼠标移动信息 开始我们需要获取鼠标的坐标.我们添加一个document.onmousemove 就可以达到此目的: Javascript: document.onmousemove = mou ...
- c# WebClient Get Post 方法
public string GetData(string url) { string data; using (var client = new WebClient()) { using (var s ...
- Java 虚拟机
Java 虚拟机工作原理详解 一.类加载器 首先来看一下 java 程序的执行过程. 从这个框图很容易大体上了解 java 程序工作原理.首先,你写好 java 代码,保存到硬盘当中.然后你在命令行中 ...
- C#的winform控件命名规范
注:这里用红字标记的部分表示有重复出现,括号内为替代表示方案 1.标准控件 序号 控件类型简写 控件类型 1 btn Button 2 chk CheckBox 3 ckl CheckedListBo ...
- python3--函数(函数,全局变量和局部变量,递归函数)
1.1函数 1.1.1什么是函数 函数就是程序实现模块化的基本单元,一般实现某一功能的集合.函数名:就相当于是程序代码集合的名称参数:就是函数运算时需要参与运算的值被称作为参数函数体:程序的某个功能, ...
- WinForm------GridControl单元格内容修改外表样式
private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDra ...
- asp.net 的页面几种传值方式
http://www.cnblogs.com/makqiq/p/5882448.html 1.Querystring Querystring也叫查询字符串,这种页面间传递数据是利用网页地址URL.如果 ...
- C++计算几何库
http://www.cgal.org/ http://shapeop.org/