Team Foundation Server 11 中团队开发资源管理器的新功能

[原文发表地址] The New Team Explorer in TFS 11

[原文发表时间] 2011-9-19 5:44 AM

在我的上一篇博客——版本控制的优化中,已经了解了部分团队开发资源管理器新特点。在本篇博客中,我将继续关注团队开发资源管理器的新体验。再多谈谈我们所做的变化及做这些更改的原因。

你会想起来,团队开发资源管理器窗口在TFS 2010及之前版本中是一个标准树形结构控件,它看起来有点像解决方案资源管理器窗口。一段时间以来,我们感受到,在团队开发资源管理器窗口中我们想要做的任何模型都必须放入树形结构中,这样非常具有约束力。几年前当我创建Team Members Power Tools 时,我迫切希望有更好的方式可以将图片及其他丰富的资源展示给人们。但是团队开发资源管理器窗口不支持这一功能。因此我添加了另外一种树形节点。在TFS11中,当我们想要查看我们创建的东西,例如查看代码时,很显然我们需要一种新方法。替代方法就是为所有东西不断添加新的工具窗口。可问题是我们已经有相当多的窗口了,我们从反馈中得知,人们已不堪重负。

我们决定尝试一种新的工具窗口。这种窗口本质上是包含其他工具窗口(或者称之为页)的框架,并为它们提供浏览器来开启导航模式。我们认为这将更方便并且合理地访问更多的功能,同时在开启10多个工具窗口时也不会污染IDE。

当我们着手设计时,我们想解决一些问题。它们包括同时并不局限于以下 问题……

  1. 移动到更多无模式经验的地方。过去所有的信息对话框都是由丑陋堆积的UI创建的。
  2. 移动到更多异步经验,以常用方式显示进程/取消。
  3. 通过不填充所有团队开发资源管理器信息(文档、报告、工作项目、生成……)来加快启动/连接速度,但是在需要时加载它们
  4. 简化常见的情况。
  5. 拥有更清新的外观。
  6. 提供更丰富的可扩展性。
  7. 允许面向组织的情况而不是我们常用的项目分类

想要刷新一下你的记忆,下面是TFS 2010里 团队资源管理器的外观:

clip_image002

主页

在TFS 11中,团队开发资源管理器单一窗口使用页面导航来提供更多的功能。页面导航的"根"是主页,它可以通过工具栏上的“小房子”形状按钮快速打开。它包含了大多数页面的链接以及与这些页面相关联操作的链接。你可以看到用来导航到你访问过的页面的前进和后退按钮,以及用来搜索工作项目的搜索框。

clip_image004

这个搜索框和Outlook 或者Team Web Acess(2010)中搜索框的功能相似。在此例中,我在搜寻当前分配给我的工作项目中的标题或描述的单词"create"。搜索框中的下拉菜单将提供一些选项作为特定的筛选依据。你可以双击一个工作项目来打开它,或者你可以使用“以索引打开”链接来打开搜索,在那儿你可以进一步定义你的查询条件,以及将结果导出到excel等等。搜索功能目前只支持工作项目,但是我们希望在将来能扩展范围。

clip_image006

管理你的工作

在TFS 2010 中,你的工作流程可能是这样的:

  1. 打开一个解决方案
  2. 做一些修改
  3. 查找出与变更相关联的工作项目(如果有的话)
  4. 输入注释来描述所做的变更
  5. 导入变更

在TFS 11中,我们将此流程稍作优化。“我的工作”页面可以查看当前分配给你的工作并且追踪这些工作的进度。

clip_image008

一旦你决定开始,你可以使用该工作项目(在测试版本中可以拖拽)的文本菜单来标注为“正在进行”

clip_image010

这两个工作项目现在是“正在处理”状态。因为你还没有作任何变更,你可以看到一个“完成”链接而不是“签入”链接。在开发人员的预览视图里,当你做这些时,也就是工作项目与变更相关联时。在测试版中,这一指令会将工作项目转换到工作流的下一个逻辑状态。例如,如果你正在使用Scrum 模板,它将会 从 “将进行”转换 到 “正在进行”状态 ,而 这些 变更 也 将 会在 基于 web的 任务 板上反映出来。当然你 也可以使用文本菜单 来从“正在进行”地区 删除 工作 项目(在测试版中,这将还原到其以前的状态)。

clip_image012

一旦你对解决方案做了变更,你就会看到一些不同的链接。

clip_image014

当 你做了后续变更时,你可以有以下选择:

  • 导入这些变更
  • 请求查看这些变更的代码或者
  • 暂停这些变更及与 shelveset相关连的文本

首先让我们使用最后一个选项开始。Shelvesets可以将一系列变更移动到服务器上,同时从本地工作区撤销(可选),你可能已经对此很了解了。当将工作移到另一台计算机或交给队友时,它真的是一个有用的功能。我们正在为暂停包括Visual Studio 文本(打开的解决方案、 工具窗口、 书签、 断点等)设计功能。获取所有IDE 状态,那样你就可以返回到以前的状态,这会明显地减少中断的成本。

clip_image016

当你点击暂停,将会出现一个行面板,在真正暂停之前,你可以在那儿描述你的工作。如果你认为编辑框规模比你需要的要小,你将会高兴因为它能够水平扩展工具窗口,它也会垂直扩展以容纳你的内容 (在此宽度最多 3 行)。当你点击暂停时,这些变更将会被移动到搁置集中(同时从工作区中撤销)。你可以在暂停区域查看你暂停的工作,如图所示:

clip_image018

如果你展开刚暂停的工作,你将看到你正在处理,以及之前所做变更的工作项目:

clip_image020

查看变更链接将导航到Shelveset详细页面,在那里你可以查看变更以及相关联的工作项目等等。

clip_image022

在团队开发资源管理器(尤其是我的工作页面)中,另外一个新的功能是“未阅读”指标。如果有一个工作项目指派给你,自从上次你查看它之后,它又有了一些变更,或者它是个新的工作项目,那么它将被加粗。这样就可以及时知道我的工作的变化以及对我的工作的意见。下面的代码审查部分中,我会展示一个例子。

代码审查

出于本次演示的需要,让我们来请求审查暂停工作的代码。点击更多链接,将会弹出一个菜单,在这儿我们可以请求查看变更的代码。

clip_image024

新的代码审阅页面,你可以指定审阅者,给你的请求一个标题,分配区域路径,并且输入评论来让审阅者了解你想要的反馈。如果你想要在代码审阅请求里删掉某些文件,就点击查看更改链接。当你完成时,你可以单击提交请求以创建新的代码审查请求,它将会在我的工作页面上的代码审查及要求部分显示。在这里你可以检查你的请求的状态,然后定位到代码审查详细信息以查看那些你已收到的反馈。

clip_image026

以审阅者的角度来看

如果你的审阅者为项目配置了接收电子邮件警报,那他们就会收到通知邮件。在所有情况下,他们会看到像在我的工作 页面上的审阅代码请求:

clip_image028

双击代码审查请求,定位到查看代码的页面,在那里审阅者可以看到该请求的详细信息:

clip_image030

从这里,审阅者可以通过单击接受按钮来接受审查。或者,他们可以选择拒绝审查。如果想要将审查交给其他人,你可以简单地展开审阅者部分,添加合适的审阅者,然后拒绝审查请求。你也可能需要添加注释来让请求者知道你为什么把审查交给其他人。

审阅者可以在审查本身中,及审查包含的文件中或在那些文件中的文本添加注释。如前面所述,编辑框将垂直扩展以容纳该注释。

clip_image032

当审阅者完成了对所做变更的评论时,他们会单击发送评论链接来发表他们的意见。你会注意到在这里,新的评论是以粗体显示的。当审阅者已完成审查,则可以单击完成按钮。注释就会立刻发送出去,其他人也可以随及加以置评。实际上如果双方在同一时间都处于联机状态,你甚至可以像进行交互式的 IM 对话来使用它。

clip_image034

当审查完后,你有几个选择可以简洁地告知请求者审查的结果。如果你已经添加了至少一个注释,然后"兼批注"是默认选项。或者,您可以让请求者知道他们的变更"看起来不错" 而且你很满意导入的结果。"需要处理"结果是一种让请求者知道在导入之前处理您的反馈意见的方式。当然,您也可以在审查中添加评论来表达你准确的意思。

一旦审阅者"完成"审查,它将从我的工作页面上的代码审阅和要求部分删除。测试 版中,审阅者可以拟一份最近完成审查的列表,以防他们想要追踪审查的某些方面。考虑到你所提供的反馈,如果你希望请求者与你一起跟进审查,你可以将审查标为未完成。

以请求者的角度来看

一旦审阅者发送注释或完成审查,则它会在我的工作页面上以未读(粗体)显示

clip_image036

请求者可以看到,审阅者已完成代码评审,并提供了一些反馈。

clip_image038

在处理审阅者的反馈之前,请求者将恢复暂停的工作。暂停工作的文本菜单中的继续命令是可用的。在测试 版中,你还可以只需将暂停的工作拖动到正在处理区域来恢复你的工作。

clip_image040

在 Visual Studio 中,恢复暂停的工作将取消搁置到工作区的更改并还原您的任务文本(解决方案,打开文件,等等)。处理审阅者的反馈之后,请求者将关闭审查,然后,在这种情况下,表明审查完成了。

clip_image042

现在你准备签入你做的变更。单击签入链接将您带到挂起更改页面 (了解更多在待定的更改页面上的详细信息,见TFS 11 版本控制优化)。签入后,你将看到你提交的变更集的确认信息,并提供了一个链接:

clip_image044

生成

在新的团队开发资源管理器中,我们向生成中添加了大量之前没有的内容。我们从Build Explorer中广泛地转发了一些功能,那样遇到常见的用例时你不必打开它。它不会完全取代Build Explorer,但它绝对应该将需要减少到转到那个窗口。我们还得到很多关于如何管理大量的生成定义的反馈。TFS 中建议最强烈的是为组织生成定义添加"生成文件夹"。我们还没有实现 (我们还不确定是否会添加)。我们正在尝试一些我们认为可行同时又不会将一个更多组织层次结构引入到产品中的方式。查看下面的更多内容……

clip_image046

My Builds部分显示了你所排序或触发的生成 (例如不断的集成或者网关的签入生成)。这一部分中,生成的文本菜单中提供了以下命令:

clip_image048

Requeue命令是新加的。你可能会猜,它允许你为所选的生成 re-queue 特定版本中相同的生成过程参数等。这在生成因为某些环境问题而失败的情况下是很有用的。

All Build Definitions部分提供了一系列,你猜对了,是所有的生成定义(好,实际上是100个)。你可以使用筛选器框来筛选你想寻找的。它可以简单快速地找到您正在寻找的生成定义,而且不需要定位到大的列表。此外,您可以将生成定义的列表加入到"收藏夹"中。这些都是你经常使用的生成定义。

clip_image050

对于你最喜欢的生成定义,你可以通过彩色的直方图看到生成历史以及最新生成的状态。像 TFS 2010的生成摘要视图中,你可以单击直方图上的栏来导航到该版本的详细信息。需要注意的是,你最喜欢的生成定义是放在服务器上的,所以你会从任何连接到你的项目集合(包括web 访问)的机器上看到相同的列表。

工作项目

开发人员预览的工作项目页面看起来和以前版本中的工作项目节点很相似。也许最大的变化是,在页面上有些操作是一些链接,而不必所有的事情都使用文本菜单。

clip_image052

在测试版中有更多的功能(包括服务器端收藏夹)。

性能
我们一直努力尽可能将长时间运行的任务移到后台线程。不过仍然有一些情况,由于与 Visual Studio UI的 交互,我们必须在前台线程上执行这些任务。然而,自从开发人员预览被锁定后我们一直努力提高性能,你将在测试版中看到那些改进。
可扩展性

在TFS 2010中, 团队开发资源管理器的可扩展性是相当有限的。你可以将一组节点添加到树形控件中、 为他们提供一个文本菜单和处理激活 (双击) 的事件。在TFS 11中,团队开发资源管理器有更丰富的可扩展性模型。你可以通过以下方式扩展它:

  • 向导航结构添加整个新页面
  • 向现有页面添加新的部分
  • 向主页添加顶层的链接
  • 在主页中添加一个现有顶层项目下的二次链接

在团队开发资源管理器自定义页中,我们建议你在使用我们的框架时,将你的内容组织成为不同的部分。但是,你可以完全控制你的网页的内容和行为。敬请关注以后更多新的团队开发资源管理器扩展的帖子。

Brian