TFS二次開發系列:3、TFS二次開發的第一個實例

  首先咱們須要認識TFS二次開發的兩大獲取服務對象的類。node

  他們分別爲TfsConfigurationServer和TfsTeamProjectCollection,他們的不一樣點在於能夠獲取不一樣的TFS API服務類。他們的區別以下:服務器

 

服務ide

TfsConfigurationServerui

(服務器級別)spa

TfsTeamProjectCollection3d

(集合級別)code

ITeamFoundationRegistryserver

選中標記

選中標記

IIdentityManagementService對象

選中標記

選中標記

ITeamFoundationJobServiceblog

選中標記

選中標記

IPropertyService

選中標記

選中標記

IEventService

選中標記

選中標記

ISecurityService

選中標記

選中標記

ILocationService

選中標記

選中標記

TswaClientHyperlinkService

選中標記

選中標記

ITeamProjectCollectionService

選中標記

 

IAdministrationService

選中標記

選中標記

ICatalogService

選中標記

 

VersionControlServer

 

選中標記

WorkItemStore

 

選中標記

IBuildServer

 

選中標記

ITestManagementService

 

選中標記

ILinking

 

選中標記

ICommonStructureService3

 

選中標記

IServerStatusService

 

選中標記

IProcessTemplates

 

選中標記

   基本上咱們能夠經過上面兩個類對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文件。

相關文章
相關標籤/搜索