time 
设为首页】【收藏本站
当前位置: 主页 > 程序设计 > .net > Visual Studio > Team Fundation Server二次开发实践(三)第一个二次开发实例

Team Fundation Server二次开发实践(三)第一个二次开发实例

时间:2013-10-01 17:24 点击:1306次 字体:[ ]




  首先我们需要认识TFS二次开发的两大获取服务对象的类。

  他们分别为TfsConfigurationServer和TfsTeamProjectCollection,他们的不同点在于可以获取不同的TFS API服务类。他们的区别如下:

 

服务

TfsConfigurationServer

(服务器级别)

TfsTeamProjectCollection

(集合级别)

ITeamFoundationRegistry

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

IIdentityManagementService

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

ITeamFoundationJobService

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

IPropertyService

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

IEventService

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

ISecurityService

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

ILocationService

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

TswaClientHyperlinkService

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

ITeamProjectCollectionService

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

 

IAdministrationService

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

ICatalogService

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

 

VersionControlServer

 

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

WorkItemStore

 

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

IBuildServer

 

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

ITestManagementService

 

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

ILinking

 

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

ICommonStructureService3

 

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

IServerStatusService

 

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

IProcessTemplates

 

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

   基本上我们可以通过上面两个类对TFS操作所有功能点。下面我们先看看如何使用TfsTeamProjectCollection获取特定团队集合下的所有项目,并且打印出项目名称。

  1. //取出团队集合URI下的项目名称,如果团队集合为空则取默认集合下项目  
  2.             //Uri tfsUri = new Uri("http://pc-20130113jkun:8080/tfs/Calueng");这种将会Calueng团队集合下项目  
  3.             Uri tfsUri = new Uri("http://pc-20130113jkun:8080/tfs");  
  4.             TfsTeamProjectCollection server = new TfsTeamProjectCollection(tfsUri);  
  5.             WorkItemStore workstore = server.GetService<WorkItemStore>();  
  6.             foreach (Project project in workstore.Projects)  
  7.             {  
  8.                 Console.WriteLine("DefaultCollection集合下项目名称是:" + project.Name);  
  9.             }  
  10.             Console.WriteLine("---------------------------------------------------------------"); 

  下面的例子将获取我们整个TFS服务器的所有团队集合以及团队集合下的所有团队名称

  1. //TFS配置服务获取所有项目的名称和所有的团队集合名称  
  2.             TfsConfigurationServer configserver = TfsConfigurationServerFactory.GetConfigurationServer(tfsUri);  
  3.             ReadOnlyCollection<CatalogNode> collectNodes =  
  4.                 configserver.CatalogNode.QueryChildren(new[] { CatalogResourceTypes.ProjectCollection },  
  5.                 false, CatalogQueryOptions.None);  
  6.             foreach (CatalogNode collect in collectNodes)  
  7.             {  
  8.                 Guid collectid = new Guid(collect.Resource.Properties["InstanceId"]);  
  9.                 TfsTeamProjectCollection teamproject = configserver.GetTeamProjectCollection(collectid);  
  10.                 Console.WriteLine("团队集合名称: " + teamproject.Name);  
  11.                 ReadOnlyCollection<CatalogNode> projNodes = collect.QueryChildren(new[] { CatalogResourceTypes.TeamProject },   
  12.                      false, CatalogQueryOptions.None);  
  13.                 foreach (CatalogNode projnode in projNodes)  
  14.                 {  
  15.                     Console.WriteLine("    团队项目名称:" + projnode.Resource.DisplayName);  
  16.                 }  
  17.             }  
  18.             Console.ReadLine(); 

Team Fundation Server二次开发实践(三)第一个二次开发实例_www.fengfly.com

  最后本实例使用VS2012+TFS2012编写。如需源码请点击 TFSTest1.rar 下载。当然你需要引入TFS的一些API DLL文件。



本文地址 : http://www.fengfly.com/plus/view-213859-1.html
标签: TFS Team Fundation Server
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: