今年秋天的首个Visual Studio 更新

[原文发表地址] Visual Studio Update this Fall

[原文发表时间] 2012-09-12 18:00

一段时间以来,我们一直在讨论提高我们交付Visual Studio的节奏。今年春天,Jason首先在 DevConnections上谈论到了这一话题,并且在几个星期前,我也撰写了一篇博文,概述了(侧重于TFS) 该节奏的大体方向。在本周的 Visual Studio 2012的启动事件上,我们更深入地探讨了我们这个秋天将推出的首个 VS 2012 更新。我想用这篇帖子更深入地论及这一点。

我很高兴将尝试一些新的节奏。在过去,我们做了大量(像动力工具)的工作来完善我们长达2年时间的节奏,但都没有像这次那样灵活。我们的首个更新将包括一个VS 2012 更新,并且将包含许多新功能、 改进的性能、 bug 修复等。它还将包括一个 TFS 2012的更新,这很大程度上引入了自从我们锁定TFS 以来云服务中的所有功能。

随着此次更新发布的临近,我们计划在未来几个月提供一系列的"预览"。首个预览将在本月晚些时候推出。我还不知道你们会对预览有何期待。一般情况下,它们是早期版本,开销小。特别声明,对于最初几个,我不会计划试图将它们安装在你的产品环境中。我可能会倾向于将它们安装在一个虚拟机上。这就是说,我们最终将在我们的产品环境中安装它们 — — 但在你们这样做之前我们最好进行充分的论证。最初几个预览之后,我期望我们将更好地理顺过程,而使用它们令你更具优势。

我要总结一下我们首个更新中的显著改善。但不意味着这列出了所有内容。现在我将关注一些我对其有相当高的信心会融入进来的事情。还有一些我认为会融入进来的其他事情,一旦我肯定它们会融入的话,我会稍后保存。然而,我没有试图记录所有此时会包括的 bug 修复等。

因此你问其中包含哪些东西?

好吧,让我们从Jason在今年早些时候的Tech大会上公布的功能集开始。

SharePoint 开发

我们做了一连串的工作来改善整体的生命周期,特别是针对SharePoint 开发人员的测试。

负载测试— —我们现在已经支持SharePoint开箱负载测试。为了实现这一支持,这比你想象中的要花费更多的心血,因为SharePoint 是如此的动态的。你不能只是记录一个脚本然后回放它 — — 这是行不通的,因为 SharePoint 生成并期望动态数据 (如 GUID)。我们已经构建该扩展到我们的负载测试解决方案中以此用来解析动态的 SharePoint 数据,并在后续请求中适时地将其包括进来。所以,现在你可以录制一个脚本并回放它,我们将动态地对其进行调整以匹配 SharePoint 的期望。

编码的UI支持— — 我们的2012产品已经相当接近支持该功能,但有几个 SharePoint 具体问题我们不能解决,使得 CodedUI (功能测试) 不适用于 SharePoint。在我们的首个更新中,我们将解决这些问题。

单元测试— — SharePoint单元测试的大问题之一是大多数代码需要 SharePoint 被运行,针对一个激活的 SharePoint 实例尝试运行测试真的是件痛苦的事。所以用新的 VS 2012 Fakes & Stubs功能,我们已经构建一个SharePoint"模拟器"。这将使对SharePoint的单元测试变得更容易。

Intellitrace 收集计划— — 虽然这将不会是首个 CTP,我们正在为SharePoint构建一个自定义的 Intellitrace 收集计划,它能帮助筛选出一堆SharePoint "基础结构噪音",让你集中于那些和你的组件相关的事件,而那些事件可能是你看到的问题的原因。

DevOps 的改进

除了我上面列出的一些 SharePoint测试支持之外,还有一些Jason在 DevConnections 谈到的 DevOps 功能。

自定义Intellitrace 收集计划— — 收集Intellitrace 可以收集的一切东西是非常强大的— — 针对开发人员使用和产品中应用程序的性能。在我们的首个更新中,我们将添加功能来让你控制粒度和收集的区域,使你获得你所需要的信息。我们也正在让Intellitrace 与System Center相集成,以便更易于在产品环境中收集诊断信息。

手动测试的改进

在过去几年中,我们已经获得了一堆有关手动测试功能的反馈。我们一直忙着在VS 2012中支持Windows 8,以至于我们没有许多时间来响应这些反馈。从我们的首个更新开始,并在接下来的几个当中,我们将会在大部分反馈上注入更多的精力。

web 应用程序手动测试的代码覆盖率— — 今天,我们支持为自动化测试收集代码覆盖率,但人们也想要能够为手动测试生成代码覆盖率,并将其与其他结果合并来获取一个代码覆盖率的综合视图。在我们的首个更新中,通过添加用于收集web 应用程序手动测试的代码覆盖率支持,我们将开辟这一蹊径。

web 上的测试用例管理— — 我们听说许多客户在最后验收测试中,他们不想在测试环境中安装任何不被安装于产品环境中的东西。这是可以理解的。在我们的首个更新中,我们将推出一个基本基于web的 测试用例管理和手动测试体验,这将从一个浏览器启动此方案。这不会出现在首个CTP中,但应会在下一个当中出现。

clip_image001

Win8 环境的实验室管理支持— — 我们将为 SCVMM 2012 SP1添加支持,这将启用 Windows 2012和 Windows 8 实验室管理支持。

VSUpdate — — 在我们的 2012版本中,我们不能为Test Professional获得自动更新机制的支持。在我们的首个更新中,我们将添加对 VSUpdate 的支持,你将在Test Manager中收到更新通知,通知方式与开发人员在 Visual Studio 中获得的方式相同。所以你将需要通过传统的方式查找并下载此首个更新,但这样做之后,我们就会让它保持最新变得更容易。

项目管理方面的改进

看板支持— — 你可能已经看到我们最近引入到云端服务的新看板功能。在我们的首个更新中,我们将带来它和一些其他的改进。这将会为你管理你的项目提供更广泛的选择。你可以使用我们的基于Scrum的敏捷项目管理工具、 看板或项目和项目服务器 — — 或者它们的组合。

Work in progress limits

可用性改进— — 每个sprint,在托管服务方面,我们公布了一组小的改进 — — 像拖放任务分配、 链接和附件选项卡的数量等。它们每个都是微小的事情,但加在一起就增加可用性和提高生产效率。我们的首个更新将包括众多这种改进。

开发人员的效率

我们有几个很不错的功能来提高开发人员的生产效率。

单元测试分组和筛选— — 我们将会向Test Explorer(测试管理器)添加支持来进行分组和筛选单元测试。这将使它便于你组织你的测试,轻松地找到它们,并在适当的时间运行正确的测试集。

Q1_Test_Explorer_Window

代码映射— — 代码映射是超级酷的新功能,它允许我在浏览代码时,以增量方式构建一个体系结构/依赖关系图。它能够进入现有的代码基地,并比以往更容易地探索它。当你浏览代码时,你可以增量地每次布局一个图表一个元素 (类、 方法等)。你可以"查询"以展开该关系图 — — 像添加所有派生的类或所有引用方法等来逐步了解代码依赖项。

codemap_screenshot

260 个字符的路径限制— — 虽然我不想让你们的期望太高,但是在这里我超级高兴我们可以作出一些改善。UserVoice上投票最多的之一是移除 260 个字符的路径限制。目前我们不能完全做到这一点,但我们能取得一些进展。在首个更新中,我们将会为" server paths(服务器路径)"增加字符限制,从 260 个字符加到 400 个字符。这意味着在你的版本控制路径中,你能够为项目名称、 分支等拥有更多空间,而不会损害你的功能来为你的解决方案使用完整的 260 个字符。我知道你们中的一些人问— — 为什么只有 400 个?为什么不是不受限制。我也很想这样。此增量的改进是由SQL Server中索引的大小限制(约 1000 字节)所驱动的。400 * 2 (占 Unicode) = 800 ,为我们需要放在索引中的其他事物只留给了约 200 个字节。我们会继续移除260 个字符客户端限制,并考虑扩展服务器的限制超过400,但我很高兴能够在这一领域带来一些缓解。此功能不将出现在 CTP 1中,但应在下一个当中。

Windows 商店应用程序的改进

我们为 Windows 8 商店应用程序开发做了很多改进,但现在我只将讨论一个。

混合托管 / 本机调试— —从首个更新开始,你将终于能够为Windows 商店应用程序做混合的托管和本机调试。这将让使用本机和托管组件开发应用程序变得更加简单!

结论

正如我所说的,这不是一个详尽的列表,但它有很多新的东西 — — 尤其是谈论到我们启动VS 2012的那一天。我们会致力继续为我们的客户提供持续的价值,所以期待着来自Visual Studio 更新列车的卓越的事情吧。我必须要提到的一个重要点是,不是所有的这些功能都将提供给每个 VS 客户。 在这里,我不会试着去记录完整的产品细目,但它应相当直观 — — 例如,只有你使用Ultimate,你才能获得代码映射,因为它是Ultimate中体系结构工具的一个扩展。SharePoint 负载测试和 SharePoint单元测试模拟器同样也是如此 — — 都依赖于功能 (负载测试和Fakes & stubs) ,只可用于Ultimate。其他功能 (如单元测试分组、 筛选或 Windows商店应用程序托管/本机调试) 会对所有 VS 用户可用。随着发布更新的临近,我们可以制作一个矩阵来显示每个产品级别可用的功能。

感谢你的阅读,随着发布的临近,我超级兴奋地分享更多信息。

Brian