zoukankan      html  css  js  c++  java
  • TFS二次开发系列:三、TFS二次开发的第一个实例

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

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

    服务

    TfsConfigurationServer

    (服务器级别)

    TfsTeamProjectCollection

    (集合级别)

    ITeamFoundationRegistry

    选中标记

    选中标记

    IIdentityManagementService

    选中标记

    选中标记

    ITeamFoundationJobService

    选中标记

    选中标记

    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文件。

  • 相关阅读:
    1022.游船出租
    1021.统计字符
    1020.最小长方形
    1017.还是畅通工程
    1019.简单计算器
    1015.还是A+B
    1014.排名
    1013.开门人和关门人
    1011.最大连续子序列
    1009.二叉搜索树
  • 原文地址:https://www.cnblogs.com/chengxingliang/p/3163513.html
Copyright © 2011-2022 走看看