设计TFS 2008自定义流程

  1. TFS简介

TFS = Team Foundation Server,TFS是微软于2005年随同Visual Studio 2005一起发布的一款企业级的团队项目控制、管理、跟踪、分析软件,前身是Visual Source Safe。在2008年随同Visual Studio 2008发布了Team Foundation Server 2008,2010年随同Visual Studio 2010发布了Team Foundation Server 2010。本文以TFS 2008为主体来介绍一下自定义流程的设计过程,下次将使用最新的TFS 2010。

 

图1.1 TFS 2008 体系结构

 

TFS的主要功能:

  版本管理:工作区(workspace)、变更集(changeset) 、标签

  并行开发支持:多点(checkout)、分支与合并 、搁置集(shelveset)

  强化过程管理:链接工作项、静态代码分析、代码覆盖率

  自动化构建

  完善的权限管理

  支持分布式开发

 

 

  1. 自定义流程简介与设计工具

2.1、系统需求

 

软件

建议版本

操作系统

Windows Server 2003 R2 SP2 Enterprise Edition x86

开发环境

Visual Studio Team System 2008 SP1 x86

数据库

SQL Server 2008 SP1 Enterprise Edition x86

TFS

Team Foundation Server 2008 SP1 x86

TFS插件

Team Foundation Server Power Tools - October 2008 x86

本文假定您已经安装并配置好了上述环境,如果您有任何疑问,请参阅微软官方文档。

2.2、自定义流程

 

流程是一组或几组动作的集合体,在软件开发领域中往往用来体现一套系统的设计、开发、维护的过程。安装了TFS插件后就可以查看微软内置的一些流程:

 

2.2.1、打开VS 2008,点击【团队】菜单下面的【Team Foundation Server设置】à【过程模板管理器】:

 

2.2.2、选择一个过程模板,以CMMI 4.2为例,点击【下载】:

 

2.2.3、选择一个文件夹,点击【保存】,然后关闭过程模板管理器:

 

2.2.4、通过点击【工具】菜单中的【Process Editor】à【Process Templates】à【Open Process Templates】,打开刚才已下载的CMMI 4.2过程模板:

2.2.5、定位到CMMI 4.2的文件夹,找到【Process Template】xml文件,点击打开:

2.2.6、在【Work Item Type Definitions】中点击【bug】选项:

2.2.7、在【Workflow】选项卡中看以看到内置的bug流程:

 

2.2.8、下面我们要做的就是设计一套自己的流程,回到【Work Item Type Definitions】选项卡中,点击【New】创建一个工作项类型"客服记录",【Copy From】指的是可以从现有的工作项模板中复制,这里不需要:

2.2.9、在【Fields】选项卡中点击【New】添加一个字段:

字段的作用是记录流程中需要处理的内容,有多少内容就添加多少字段。

【Name】最好用中文,后续的判断验证提示也是中文;

【Type】标记该字段的数据类型,一般描述性信息为String,日期类用DateTime,特殊类型设置为特殊类型,如History、HTML等,这里和数据库中的数据类型差别很大;

【RefName】标记该字段的引用名称,在程序中需要处理,命名规则为:命名空间.名称,如MSS.Title,这里建议用英文。TFS内置了两个命名空间:System和Microsoft,你也可以使用自定义的命名空间。

注意:【Name】、【RefName】在TFS全局变量中必须是唯一的,否则会发生错误。TFS中所有的全局变量名存储在数据库"TfsWorkItemTracking"的"Fields"表中:

SELECT * FROM dbo.Fields

因为【Name】、【RefName】具有唯一性约束,所以在命名时要遵循如下重要规则:

1)【Name】唯一,【RefName】唯一;

2)若【RefName】使用了TFS内置的名称,则【Name】也必须对应。例如:上述我们使用了"System.Title"作为【RefName】名称,则【Name】也必须为TFS内置的【Name】,即"标题",【Type】也必须为TFS内置的【Type】。

【Help Text】是对该字段的说明性信息。

 

2.2.10、在【Rules】选项卡中点击【New】添加一些规则:

常见的有:

【ALLOWEDVALUES】定义该字段允许接受的值,一般用于数量较少的下拉列表;

【DEFAULT】定义该字段的默认值,如日期默认为当天;

【READONLY】定义该字段为只读;

【REQUIRED】定义该字段为必填项;

【WHEN】、【WHENNOT】根据条件设定规则。

 

2.2.11、在【Layout】选项卡中设计流程界面:

一般的,首先添加一个【Group】,下面放置一个【Column】,【Column】必须要设置宽度。宽度可以为固定值或百分比,建议使用百分比,以更好的适应不同分辨率的显示器。

在【Column】下面放置一个或多个【Control】:

【FieldName】来源于前面定义的字段,此项必填;

【Label】设置一个希望显示的名称;

【LabelPosition】设置控件中标签的位置,根据需求进行设置,一般默认为Left;

【Type】设置控件的类型,一般单行文本类控件设置为"FieldControl",日期类设置为"DateTimeControl",多行文本类设置为"HTMLFieldControl",TFS内置的历史记录对应为"WorkItemLogControl",TFS内置的附件信息对应为"AttachmentsControl"。

点击【Preview Form】预览效果:

 

设置TabGroup时有些问题需要注意:

如果想将一个TabPage设置为充满其父容器,除了将【Control】的"Dock"属性设置为Fill外,还需要将"LabelPosition"属性设置为Top,否则实际流程中无法充满父容器。

预览效果:

 

2.2.12、在【Workflow】中设计流程。

【State】表示流程中的一个状态,一个流程至少要有一个状态;

【Transaction Link】表示一个事务,它负责连接各个状态。

 

双击【Transaction】或在其上面点击右键,选择【Open Details】可以进行设置:

在【Transaction Detail】选项卡中可以设置该事务的起始和终止状态,有权限操作的用户和组;

在【Reasons】选项卡中设置启动该事务的原因,一个事务至少要有一个默认原因;

 

在【Actions】选项卡中设置该事务启动时执行的动作,不必填,但名称在当前流程中须唯一:

 

在【Fields】选项卡中设置启动该事务时需要处理的字段:

可以修改状态的名称,双击或在其上点右键,选择【Open Details】可以对状态进行设置:

点击【New】对该状态下的字段设置一些规则:

该方法较为常用,在每个状态控制哪些字段为必填、只读等属性时很方便。若某些字段在多个状态中被统一约束,则在【Fields】选项卡中设置约束较好。

 

 

2.2.13、导入、导出工作项类型定义

当流程设计完毕时,可以选择导入、导出操作,方便流程的重用。

导入方法是,依次点击【工具】菜单中的【Process Editor】à【Work Item Types】à【Import WIT】:

输入待连接的TFS Server的地址,点击【Connect】:

分别选择待导入的工作项类型定义文件(xml格式)和目标项目(若无则创建一个项目),点击【OK】:

 

在团队资源管理器中,添加刚才导入的项目,在【工作项】上点击右键,点击【添加工作项】,会看到我们自定义的工作项类型:

最终效果图:

导出工作项类型定义过程与此类似,故不再重复。

 

  1. 辅助工具

3.1、使用命令行管理工作项

 

安装了Team Foundation Server Power Tools - October 2008后,有一个命令行工具,TFPT.exe,默认存放于C:\ProgramFiles\Microsoft Team Foundation Server 2008 Power Tools,TFS 2008未直接提供删除工作项、工作项类型的方法,使用该命令行可以做到。

首先打开VS 2008的命令行工具:

警告:该命令行操作不可撤回,且需要TFS管理员角色,请仔细核对所做的每一步操作!

如果您使用的操作系统是Windows Vista/2008/7/2008 R2,则请右键选择【以管理员运行】打开该命令行。

 

删除一个或多个工作项的方法:

tfpt destroywi /server:devserver /workitemid:2947,2948,2949,2950 /noprompt

说明:

destroywi指删除工作项;

/server指TFS所在的服务器机器名,注意此处不能使用IP地址;

/workitemid指待删除的工作项ID,若想删除多个则用逗号分隔;

/noprompt指删除操作不进行提示,方便批量删除。

 

删除一个工作项类型及其下属所有工作项的方法:

tfpt destroywitd /server:devserver /project:mkeRP_YXA /workitemtype:常见问题 /noprompt

说明:

destroywitd指删除工作项类型;

/server指TFS所在的服务器机器名,注意此处不能使用IP地址;

/project指待删除的工作项类型所在的项目名称;

/workitemtype指待删除的工作项类型名称;

/noprompt指删除操作不进行提示,方便批量删除。

 

 

小结:

本文对TFS 2008的自定义流程的设计进行了简单的介绍,主要是一些基本的操作和注意事项。尤其是关于字段的命名,当时我花了很长时间排查错误,希望能让遇到类似问题的朋友少走弯路。TFS自定义流程非常灵活,可以方便的对开发、测试进行驱动,提高工作效率和规范化程度。

转载于:https://www.cnblogs.com/brooks-dotnet/archive/2010/08/27/1810423.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值