Allen Clark
Microsoft Corporation
适用于:
Microsoft Visual Studio® 2005 Team System
摘要: Visual Studio 2005 Team System 是一套可扩展的软件开发生命周期工具,它帮助团队降低生成面向服务的现代化软件的复杂性,并使整个开发过程的参与成员之间能够进行更方便的信息交流。通过一组集成服务和特定于工具的 API(对集成附加的工具公开),将这些工具集成在一起。
注 本文档于产品投入生产之前编写,因此您可能会发现这里所包含的细节与发布的产品有不一致的地方。文中的信息均依据撰写文档时的产品状况,仅供您在规划时参考。如有更改,恕不另行通知。Microsoft 拥有本文档中的主题所涉及的专利、专利应用程序、商标、版权或其他的知识产权。除非 Microsoft 以任何书面许可协议明确提供,向您提供本文档并没给予您使用这些专利、商标、版权或其他知识产权的任何许可证。
| 简介 | |
| 团队基础 | |
| 特定于工具的可扩展性 | |
| 小结 |
Visual Studio 2005 Team System 包括 Visual Studio Team Foundation 平台和一套工具。Team Foundation 包括:
| • | 工作项跟踪 |
| • | 项目管理 |
| • | 源代码管理 |
| • | 集成服务 |
Visual Studio 2005 Team System 中的附加工具有:
| • | Architecture and Design |
| • | Public Builds |
| • | Code Analysis 和 Testing |
团队基础 (Team Foundation) 集成服务可以用于将工具集成到 Visual Studio 2005 Team System 之中,方法如下:
| • | Visual Studio Team Foundation 提供了一组服务并定义了一组增强的 API,在无需紧密耦合的情况下允许工具与其他工具集成。例如,Visual Studio Team Foundation 提供通用引用、事件生成与处理,以及分类服务。 |
| • | 工具能够插入到某些关键的用户界面以供使用,这等同于本地或第三方工具。例如,工具可以用于创建一个新项目或管理员安全。 |
| • | 工具能够将数据添加到报告仓库之中并在报告中利用这些数据。 |
除了集成服务之外,Visual Studio 2005 Team System 中的每个工具都可以通过自己的 API 或服务进行扩展。下表列出每种工具的扩展方式。
| 工具 | 工具的扩展方式 |
Project Management and Work Item Tracking | 自定义工作项类型和工作流的过程指导,以及利用工作项对象模型自动化工作项跟踪。 |
Architecture and Design | 添加远程服务、宿主环境以及针对设计人员的约束,以便提供更丰富、更详细的设计。 |
Source Code Management | 定义新的文件类型和签入策略,并利用源代码管理对象模型使源代码管理活动自动化。 |
Public Builds | 将生成步骤的新类型集成到生成过程中。 |
Code Analysis | 添加批注和规则,以便在静态分析过程中查找更多的缺陷。 |
Testing | 根据新的测试类型扩展测试工具,并在单元测试、生成验证测试和负载测试中使用它们。 |
Team Foundation 提供 Visual Studio 2005 Team System 工具之间进行集成的基础,以及工作项跟踪和 Source Code Management 工具。
工具、构件、服务和服务器
Team Foundation 启用的工具是一个在 Team System 中使用的应用程序,这是通过执行一组增强的 API 并将其插入到 Team Foundation 的可扩展用户界面实现的。在某些情况下,工具包括服务器和客户端组件。具有服务器组件的工具提供一个实现服务器端增强 API 的 Web 服务。在客户端,工具通过插入到通用用户界面从而集成到 Team System 中。
Team Foundation 增强 API 提供工具以构件形式管理的信息。每个构件都有一个不可更改的标识,并且表示对于用户有意义的信息单元。Team Foundation Server 集成服务和每个工具的服务器组件都是 Web 服务,它们共同组成一个逻辑上的 Team Foundation Server。Team Foundation Server 可以部署到单个硬件设备上,也可以跨多个设备进行部署以处理较大的负载。
工具注册和发现
每个工具利用 Team Foundation 进行自我注册,并描述工具管理的构件集合、工具支持的链接类型集合以及工具引发的事件集合。工具还能为其内部使用注册属性。
其他工具可以使用注册表来确定工具是否已经安装在 Team Foundation Server 中,以及获得对该工具的访问权限。
构件和链接管理
构件和链接是核心概念,通过这些概念,Visual Studio 2005 Team System 可以提供所有数据和关系(跨 Team Foundation 启用的所有工具)的公用视图。构件(例如,工作项和更改集)是数据。链接是构件之间的关联。
每个工具实现一个包括 API 的 Web 服务,该服务返回有关该工具管理的构件和链接的信息。
事件生成、事件处理和用户通知
工具注册其可引发的事件。其他的工具服务器组件可以订阅这些事件并作出适当的响应。工具可以同步或异步引发事件。工具通常选择异步引发事件,但当工具需要知道响应时除外。例如,如果工具提供事件的否决机制,那么工具应该将订户能够否决的事件声明为一个同步事件。编程模型对于同步事件和异步事件同样有效。
其他工具(例如,Web 服务)能够订阅 Team Foundation 事件,并响应这些事件表示的行为。
引发事件的工具还可以为传递基于那些事件和最终用户的通知提供电子邮件模板。如果用户订阅通知,则每次工具引发该事件时,该用户都会收到基于模板的电子邮件和事件内容。用户可以选择性地请求汇总每天事件的通知。
任何一种订阅(例如,服务器的事件订阅或用户的通知订阅)都可以包括一个筛选器。筛选器指定 Team Foundation 应该处理的事件内容,以便订阅的 Web 服务或用户可以得到需要的目标信息。例如,用户可以订阅一个工作项更改事件并筛选订阅,以便当某人给用户分配工作项时,用户可以接收通知。
组管理和授权
每个工具使用它自己的安全模式,并以适合该工具的方式管理工具的权限。如果每个工具要针对权限分配维护自己的用户组权限,那么维护组和权限的任务可能会成为用户的负担。出于这个原因,Team Foundation 集中管理要跨工具共享的用户组存储。用户只需要使用组的一个单独权限。
Windows 用户和 Windows 组可以加入到 Team Foundation 用户组。
通过注册工具需要安全保证的对象和动作,工具还可以使用授权服务来管理工具的权限。在工具注册这些项后,管理员可以授予和拒绝这些项的权限。然后,工具调用授权服务以确定用户是否有执行特殊操作的权限。
公文包项目
当团队决定使用 Team Foundation 启用的工具时,那么团队就会使用这些工具为生成可发布的软件套件的整个投入来管理数据。这种投入大致符合公文包项目。公文包项目可以包含需求、功能和源代码(包括大量 Visual Studio 项目文件、日程安排、错误、测试等)。
管理员在 Team Foundation 中定义公文包项目,通常,每个工具在任意时间以公文包项目的上下文进行操作。
当管理员创建一个新的公文包项目时,Team Foundation 会通知注册的工具,以便工具能够采取必要的措施来显示新的公文包项目。
公文包资源浏览器
Portfolio Explorer 帮助用户在公文包项目之间浏览并导航到特定于工具的功能。例如,用户可以导航到公文包项目,在那里进行操作,然后导航到报告或工作项。Team Foundation 启用的工具在 Portfolio Explorer 中通常至少显示一个启动点。
报告仓库
Team Foundation 提供一个报告仓库,工具能够向它发送数据。该数据可通过联机分析处理 (OLAP) 随时间变化进行组合和检查。通过从工具的数据存储检索数据,正确转换数据并通过仓库 API 传递数据,每个工具可将数据分配到仓库。从所有工具检索数据并重新处理 OLAP 多维数据集的整个过程,是由一个单独的、简单的托管服务进行管理的。仓库简化报告的创建 — 合并从多个工具检索的数据并按照共享维度汇总它们。
工具配置
每个工具都有自己的权限集和其他的配置设置。Team Foundation 通过提供常规 UI 使工具可以在其中显示它们的设置,从而让管理员能够在一个单独的环境中管理所有的 Team Foundation 启动的工具。
Project Management and Work Item Tracking
Project Management and Work Item Tracking 工具用于规划并跟踪项目使用工作项的进度。一些可用的工作项类型有:
| • | 要求 |
| • | 功能 |
| • | 方案 |
| • | 任务 |
| • | 错误 |
每类工作项都有一组字段和有效的状态转换。这组工作项类型定义绑定到方法论模板中。当公文包项目创建后,用户选择自己的方法,然后创建适当的工作项。Team Foundation 附带两种 Microsoft Solutions Framework (MSF) 方法论模板 — Microsoft Solutions Framework Agile 和 Microsoft Solutions Framework Complete。
工作项跟踪可以进行自定义和扩展,方法如下:
| • | 向工作项类型添加字段。 |
| • | 更改工作项类型的有效状态和状态转换。 |
| • | 添加新的工作项类型。 |
| • | 自定义 Web 网站模板。 |
| • | 自定义过程指导。 |
| • | 修改与过程相关的任务集,这些任务包含在每个新公文包项目中。 |
这些更该可以绑定到一个自定义的方法,以便它们可以应用到由方法创建的所有公文包项目。
字段集和状态转换可由每个公文包项目进行自定义,以支持工作过程或方法。例如,一个团队可能需要根据标识错误的人员对错误进行分类,这些人员可以是用户、测试团队、开发团队或项目的其他相关人员。要支持这一点,管理员可以将名为“Source”的字段添加到错误工作项,并将该字段定义为一个具有下列一个值的列表:
| • | 客户 |
| • | 测试人员 |
| • | 开发人员 |
| • | 其他内部人员 |
进行了这种定义的公文包项目中的错误现在利用该新字段来跟踪错误源。
假定跟踪该信息是有用的,并且管理团队希望所有的新项目都跟踪错误源。在这种情况下,管理员能够将新字段定义添加到方法模板(驱动公文包项目创建)中的错误工作项类型的定义中。利用修改的方法创建的任意新项目,将在错误工作项中包含 Source 字段。
团队可以决定引入它自己的方法。例如,一个公司可以定义自己的不同种类的 MSF Complete 方法。在这种情况下,公司可以利用修改(也许是一些新的工作项类型)来创建新方法模板(包括其中一些或所有的 MSF Complete 工作项类型)。当利用自定义方法模板创建公文包项目时,它将包括支持该公司特定方法的工作项类型。
除了工作项类型定义之外,方法模板还包含 Web 网站模板、过程指导和过程任务实例。其中的每一个都可以通过修改方法模板或创建一个新方法模板来进行自定义。
Team Foundation 引发工作项事件,并提供一个对象模型以使包含工作项的任务自动化。对象模型适于在丰富的客户端应用程序或 Web 服务器应用程序中使用。
Source Code Management
Source Code Management 工具提供一些用于扩展其功能的方法:
| • | 添加签入注释的新类型。 |
| • | 添加在签入代码前完成的策略。 |
| • | 添加对新文件类型的支持。 |
当开发人员签入代码时,团队可能希望收集一些来自开发人员的特定信息。通过将注释添加到签入功能或追加签入电子邮件通知这两种常用方式,即可实现。在这两种情况下,所有的信息只需略加结构化即可。Source Code Management 工具的管理员可以添加一些注释类型,开发人员在签入代码时可以填写这些注释。例如,团队可能希望开发人员提供测试结果和发布信息。测试结果用于标记测试团队,团队必须进行某种操作以响应签入。发布信息更普遍地用于描述签入完成的内容。要做到这一点,管理员可以向 Source Code Management 工具添加两种签入注释,测试结果和发布信息。管理员可能还要将发布信息指定为签入注释需要的类型,但是允许开发人员将测试结果注释置为空。
策略是在签入代码之前应该满足的条件。例如,有一个管理员可以启用的策略,它需要开发人员在签入其代码前执行静态分析。通过生成确定是否满足策略的代码,然后将代码插入到策略系统中,团队还可以开发新策略。
Source Code Management 工具识别一组文件类型,并按照适用于每个文件类型的方式处理它们。通过定义自定义文件类型,用户可以控制系统如何计算每次修订之间的细微差别,如何合并执行的操作以及系统是否允许多个用户同时签出文件。ISV(它的工具创建可能存储于 Source Code Management 工具中的文件),可以选择提供一个自定义文件类型处理程序来增强用户在使用这些构件时的体验。
Team Foundation 引发 Source Code Management 活动的事件,并提供对象模型以使 Source Code Management 任务自动化。对象模型适于在丰富的客户端应用程序或 Web 服务器应用程序中使用。
Visual Studio 2005 Team System 中的每个工具均可按照特定于工具功能的方式进行扩展。
Architecture and Design
Architecture and Design 工具提供了用于对系统建模和进行系统部署的方法。用户能够利用自己的远程服务(用于体系结构设计)、宿主环境(用于部署设计)来丰富设计环境。用户还可以向设计元素添加约束,以便使部署验证更为明确。有关详细信息,请参阅 Visual Studio 2005 Team System:设计分布式系统以进行部署。
Public Builds
Visual Studio 2005 Team System 包括进行配置和执行团队公共生成的工具。用户可以向生成过程添加新的生成步骤类型。他们还可以添加批注和规则,从而使静态分析发现更多缺陷。有关详细信息,请参阅 Visual Studio 2005 Team System:生成健壮而可靠的软件。
Testing
Visual Studio 2005 Team System 测试工具包括用于生成单元测试和其他功能测试的工具。测试可以本地运行,也可以在分布式环境中运行。测试结果可以用于单独评估,也可以与公共生成相关联,并在它们提供该生成的测试状态的地方发布。每个测试还可以集成到压力测试之中,以帮助评估应用程序在负载时的执行特性。
用户可以利用新类型扩展测试系统。这些新测试类型可用于增强结果查看,并将信息添加到每个测试结果和测试日志之中。有关详细信息,请参阅 Visual Studio 2005 Team System:通过更完善的测试实现更好的软件。
组成 Visual Studio 2005 Team System 的每个工具都提供用于扩展工具功能的方法。每个工具用来集成到 Team System 并提供与其他工具进行特殊集成的 API 均可用,从而使团队可以添加自己的工具以扩展现有工具的功能。这就使团队和软件生命周期工具提供商能够利用 Team Syste 工具中的丰富集成功能在套件中添加工具。
有关 Visual Studio 2005 Team System 的详细信息,请参阅:
| • | |
| • | |
| • | |
| • | |
| • | |
| • | |
| • |