每天读一篇一线开发者原创好文
一、问题的提出
微软TFS系统基于Web界面,提供完整的需求任务管理功能,并能提供很好的界面呈现。但是在TFS中每个人都可以去修改需求的信息,如果所有需求都根据TFS进行跟踪,很容易发生需求被误修改的情况。
为了解决这个问题,项目上继续使用Excel表进行项目需求的跟踪,此表我们称之为PB表。当有新的需求添加后,由需求管理员将需求填写到PB表中,然后通知到各领域的APO,各领域APO梳理PB表,将表中的需求添加到TFS中。
每周每个APO都需要花一两个小时时间同步PB表和TFS中的需求,保证两者的一致性,这个工作比较简单,但是却非常重要,出错就可能导致需求漏开发,影响版本进度。
一种能够简化PB表和TFS同步的工具变得非常重要。
二、解决思路
我们的解决思路就是利用TFS的RestAPI接口实现对TFS中需求任务的管理,主要实现功能:
1、能够比较TFS和PB表中的需求,给出两者之间的差异;
2、能够将PB表中的任务批量导入到TFS中;
2.1 TFS的RestAPI接口
TFS的官网中详细的描述了TFS的RestAPI接口,具体请参考:
https://www.visualstudio.com/zh-cn/docs/integrate/api/overview
分析了一下我们的需求:
1、工作项目:我们必须要知道我们的项目,也就是需要在TFS中查询出当前用户可以访问的项目列表;
2、查询需求列表:TFS提供了用户自定义查询功能,我们可以预先在TFS上创建查询项,然后让工具直接根据查询项执行查询。当然我们也可以直接使用TFS的查询接口,这个太繁琐了,不建议使用。
根据以上需求,本次主要使用到以下TFS接口:
2.2应用程序提供功能
Windows的用户都比较习惯使用图形界面程序,本着傻瓜化的原则,本工具需要有图形化界面,简单起见,本程序基于wxWidgets库开发。
程序需要呈现以下功能:
1、能够让用户填写TFS服务器信息,因为每个项目对应的TFS服务器可能是不同的;
2、能够让用户填写访问TFS服务器的账号和密码;
3、能够让用户查询TFS中用户所在项目的查询项,并根据此查询项执行查询;
4、能够解析本地的PB表数据,并根据配置进行需求过滤;
5、能够比较PB表和TFS中的需求列表,明确两者之间的差异;
6、能够批量将PB表需求导入到TFS系统中。
三、实践情况
应用程序界面如下:
3.1.1 PB表选择
用户可以在PB表栏目中选择本地的需求列表,文件格式为Excel,例如本项目的PB表格式如下,每个需求都单独占用一行:
另外需要用户指定PB表配置文件,此配置文件用户描述如何从Excel表中筛选数据,
例如V6.**.**版本的配置文件内容如下:
通过以上的过滤条件,就可以得到指定领域的需求。
3.1.2 TFS参数配置
访问TFS服务器需要使用如下信息:
3.1.3 比较PB表与TFS的差异
PB表信息和TFS信息填充完成后,点击“比较”按钮,完成后会弹出对话框:
点击是查看比较结果(注意Firefox默认是能显示的,其他浏览器可能无法显示),以Web页面方式显示出PB表和TFS的需求数和不匹配的条目:
3.1.4 同步PB需求到TFS
PB表信息和TFS信息填充完成后,点击“同步到TFS”按钮,此时会执行比较,然后弹出对话框显示PB表中未更新到TFS上的需求列表:
选中需要同步的需求,点击“同步”按钮就可以完成PB表数据到TFS的同步。
4.效果评价
未使用工具前,需要找到PB表中未更新的需求,然后逐个到界面中添加,操作起来很慢,估计30个需求需要15分钟;使用工具后30秒完成同步。
另外一个工作就是比较PB表和TFS的差异,以前要么人工一个一个需求对,要么通过Excel进行进算,使用工具后,几秒钟后就可以在界面中看到PB表和TFS的差异,大大简化了工作。
5.推广建议
使用TFS的都可以通过本工具进行比较。
6.参考资料
TFS RestAPI接口文档说明:https://www.visualstudio.com/zh-cn/docs/integrate/api/overview
领取专属 10元无门槛券
私享最新 技术干货