TFS封装库介绍

在软件开发过程中,经常需要与版本控制系统进行交互,以管理代码和跟踪项目进度。Microsoft Team Foundation Server (TFS) 是微软提供的一个集成的版本控制和项目管理平台。为了更好地与TFS进行交互,开发者可能会创建一些封装库来简化操作。本文将介绍一个封装了TFS客户端API的库,并展示如何使用这个库。

为什么需要封装库

封装库的创建初衷是为了解决特定问题。在开发测试管理环境Zeta Test时,需要将TFS数据集成到该环境中。Zeta Test允许测试人员和测试经理创建和管理测试用例,管理黑盒测试、白盒测试和回归测试。客户提出了将他们的TFS数据库与Zeta Test连接的需求。在规划增强功能时,希望确保即使没有安装TFS Explorer(连接TFS的客户端运行时)的其他客户端也能使用应用程序。因此,创建了这个封装库,它是唯一引用TFS客户端API库的程序集。

封装库的特点

封装库是一个小型的封装,它封装了TFS客户端API的几个函数,这些函数处理工作项跟踪架构。封装库提供了以下主要类: FieldController, FieldDefinitionController, ProjectController, ServerConfiguration, ServerController, StoredQueryController, TfsAllowedValuesCollection, TfsAttachment, TfsAttachmentCollection, TfsField, TfsFieldCollection, TfsFieldDefinition, TfsFieldDefinitionCollection, TfsFieldFilter, TfsFieldFilterList, TfsLink, TfsLinkCollection, TfsProject, TfsProjectCollection, TfsRegisteredLinkType, TfsRegisteredLinkTypeCollection, TfsRevision, TfsRevisionCollection, TfsServer, TfsStoredQuery, TfsStoredQueryCollection, TfsTeamFoundationServer, TfsWorkItem, TfsWorkItemCollection, TfsWorkItemStore, TfsWorkItemType, TfsWorkItemTypeCollection, WorkItemController, WorkItemTypeController。

封装库的使用示例

封装库的使用示例可以在文章顶部的下载中找到。以下是一些典型的使用场景。 var config = new ServerConfiguration { ServerUrl = @"http://ukeim-js6hkkfzx:8080/" }; 上述代码创建了一个配置类。这通常是连接的第一步。指定所有需要连接的设置。甚至可以指定模拟以在不同的用户上下文中连接(通常具有更高的权限)。 接下来,会创建一个类来连接到服务器,然后创建一个类来连接到某个特定项目: var serverController = new ServerController(config); var projectController = new ProjectController(config, serverController.GetAllProjects()[0]); 上述示例创建了一个控制器来连接到服务器。使用这个控制器类,可以枚举所有项目(通过GetAllProjects()方法)。 使用项目控制器类,可以例如查询符合某些条件的一个或多个工作项: var wis1 = projectController.GetWorkItemsByTitle("Set up"); foreach(var workItem in wis1) { Console.WriteLine(workItem.Title); } 也可以像下面这样查询某个字段定义: var fd1 = projectController.Project.Store.GetFieldDefinition(-3); var fd2 = projectController.Project.Store.GetFieldDefinition(10004); var fd3 = projectController.Project.Store.GetFieldDefinition("ID"); var fd4 = projectController.Project.Store.GetFieldDefinition("Issue"); 有关更多示例,请参见测试项目的源文件和库本身。

学习经验

在开始这个项目之前,没有TFS的经验,真的很喜欢使用TFS客户端API的简便性。结构非常文档化,易于理解。实际上,最难的部分是设置TFS本身。最终得到了一个工作的VMware机器,希望永远不需要再次配置。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485