VS2010中关注代码的开发










posted on 2008-12-22 15:31:28 by soma 评论(0) 阅读(8705)
随笔 - 126, 评论 - 145, 引用 - 3 |
||
VS2010中关注代码的开发[原文发表地址] Code Focused Development in VS 2010
[原文发表时间] Friday, December 19, 2008 8:34 PM
在11月份的一篇博文中,我提到了一个叫做“快速搜索”的功能—Visual Studio 2010中关注代码的功能之一。在过去的岁月中我们在这一领域中已经有所滞后,而在Visual Studio 2010中,我们想专注于这方面并视其为关键。今天,我想分享更多关于我们关注代码开发方面的投资和功能的细节。
高亮引用(Highlight Reference)
高亮引用是一种看似简单却易于使用的方式,帮助我们快速理解一段代码并导航到相应的引用。这个功能在一小段延迟之后被自动激活 – 所有在鼠标指针下的引用都被高亮显示。只要按下Ctrl + Shift + UpArrow (或者DownArrow作反向导航),就可以轻松导航到下一个引用。在下面这个例子里,你可以看到该项功能的实际运作;你可能也注意到它推断出哪项重载绑定到当前的选择,而不是使用纯文本匹配的方式。
![]() 快速搜索
快速搜索是我先前提到过的专注于代码的功能。它作用于C++、C#和VB的所有符号,以及所有文件类型。它是一种非常轻量的作增量搜索的方式,可以很快的过滤结果并拥有诸如子字符串这样强大的启发式搜索。让我们简单的看一下我可能会怎样使用快速搜索。
假设我要寻找一个事件句柄,我已不太记得它的名字,但知道我使用了典型的命名规则,快速搜索可以帮上我的忙。我的第一步是在快速搜索中输入“Click”来寻找所有带有“Click”的方法签名。
![]() 这时候,我可能记得它还包含了“Enter”。我再输入一个字母“E”,我就能对所有同时包含“Click”和“E”的结果进行快速过滤。两次输入之间的空格被当作通配符搜索。现在我已经把结果缩减成一个很短的列表,我可以从里面选择我想要的结果。
![]() 快速搜索甚至还支持驼峰匹配。比如说,如果我输入大写的“SPF”,快速搜索会把结果过滤为那些驼峰匹配或者完全匹配的结果!
![]() 调用层次
我们关注的另一个场景是重审依赖关系。比方说,如果我对一个方法作了点改动,我可能会想知道调用这个方法的所有实例。在VS2010中,我们改进了C++中调用浏览器的使用体验,并为C#和VB添加了一个新的调用层次的工具。这些功能让调用方法和被调用方法之间的导航变得更容易(如下所示)。
![]() 调用层次工具还允许你察看一个方法的所有重载方法以及接口方法的任意一种实现。比如,如果我想看看谁实现了MakeSound()这个接口方法,我可以通过调用层次看到在Cat和Dog中一共有两个实现。
![]() 消耗先行的开发
在Visual Studio中有很多诸如智能感应和快速搜索的功能适用于用户消耗的API定义好之后。然而,我们注意到有很多时候你需要对一个还未完全定义好的API进行开发。比如,在测试驱动开发(TDD)中,我们可以看到测试先行的模式。因此,在VS2010中,我们使消耗先行的开发变得更简单。
我之前谈过关于“从使用中生成”的功能。该功能通过代码中的符号使用推断出各种类型、方法、属性和构造方法并生成一小段代码。在下面的截屏中,你可以看见“从使用中生成”这一功能的实际运作。
![]() 生成构造方法将会生成以下代码:
![]() 而且,我们为智能感应也开发了一套“消耗先行”的模式,从而使你可以轻松的触发智能感应中的功能。在现在的Visual Studio中,你可能已经有这样的经历,IDE会自动完成一个标示符,但其实你并不想让它这样做的,因为它还并不存在(考虑一下范式方法返回类型)。在下面的例子里,如果你输入“Puzzle”,智能感应为预先选择“PuzzleTest”。敲击空格或回车键将会插入“PuzzleTest”。
![]() 取而代之的,通过敲击Ctrl + Alt + 空格键,你将能触发“消耗先行”的模式。现在,当你输入“Puzzle”,列表中仍然包含了“PuzzleTest”,但却不会主动选择它。你真正输入的内容才是会被插入的内容。
![]() 这些是我们在Visual Studio 2010中所作的工作的一些例子。我们的工作旨在让你的工作更简单更高效。
Namaste!
posted on 2008-12-22 15:31:28 by soma 评论(0) 阅读(8705) VSTS 2010中的实验室管理[原文发表地址] Lab Management in VSTS 2010
[原文发表时间] Friday, December 12, 2008 5:30 PM
Visual Studio Team System 2010的其中一个重要-组件是实验室管理(Lab Management)。我们在最近的PDC会议上-对此有说到,我们也看到很多客户为这-个功能感到非常的兴奋。
很明显地,对于我们软件开发人员和测试人员来说,他们所开发和测试的应用程序面临复杂性的加速增长。对于我们微软内部以及-其它业界的软件人员来说,这-同样也是一个问题。
我们在开发VSTS2010时,希望能够有一个好的工具来开发最高质量的软件。我们发现开发速度以及在整个开发-软件生成-实施-测试当中的可扩展性,以及如何应用新技术-如虚拟化技术,就是其中的一个差距。我们在实验室管理方面的投入就是特意为了来解决这个差距。
开发人员对于太多软件瑕疵(bugs)在他们以及他们的测试人员之间的“不断来回”而苦恼不已,并且在分布式的开发环境下感觉更棘手。测试人员缺少正确的工具,也没有得到足够的重视。他们在测试环境的配置方面花费了30-50%的时间,然后很多他们所汇报的软件瑕疵(bugs)已“无法重现”为由而被解决掉。
为了应对这些挑战,我们设立了一些基本的原则:a)配置环境应该只需要几分钟而不是几个星期b)开发人员和测试人员之间的障碍应该被消除c)自动化全面扩展至软件生成,环境的设置,软件安装以及测试d)消除软件瑕疵(bugs)“来回”现象。
实验室管理用户虚拟化技术与我们的整体应用软件的开发周期管理的深层次集成,以及系统中心虚拟机管理系统提供了对于这些原则的解决方案。该方案是用来加速设置/分割/恢复复杂的虚拟环境到一个干净的状态。我们允许测试人员写丰富的瑕疵报告,包括环境恢复点的链接,这样开发人员就可以用来重现该软件瑕疵被发现的环境,从而解决了软件瑕疵不可重现的问题。最后,我们把预设虚拟机,软件安装以及验证做成一个集成的方案,提升了软件生成的自动化程度。我们相信,这种方法可以使得团队更加有效的包容变化,在需求变化更多的情况下变得更加敏捷。
一下是一个该技术的更加具体的例子:
当一个测试人员在虚拟机环境下测试并找到一个软件瑕疵的时候,只用一个简单的点击就可以把整个环境的镜像点(多个虚拟机)记录下来。他可以把这个镜像点的链接,只有几个字节,作为附件自动内嵌在软件瑕疵报告中,同时可以选择包含更多的信息,比如带时间坐标的视频,操作记录,历史调试记录以及更多信息。
开发人员得到这个软件瑕疵报告之后,他能够从集成开发环境(IDE)里打开它,并且找到与这个瑕疵在该镜像点上所有相关的丰富信息。头一次,开发人员不需要询问测试者他/她到底做了什么以及重新设置瑕疵重现的环境。他们可以简单地双击链接,得到一个简单的实验室环境视图,其中可以包括多个虚拟机环境,他可以用一次点击就可以恢复所需的整个环境状态。然后,他就拥有了整个环境,包括历史环境下的调试工具,来回卷他们的代码,找到导致软件瑕疵的事件发生的顺序,或者程序的流程,而所有这些工具都包含在VSTS 2010中。
正如你所想象的,实验室管理能够最大程度的提升开发人员- 测试人员的工作流,并且帮助整个开发流程变得更加有效率。
Namaste!
posted on 2008-12-22 14:07:36 by soma 评论(0) 阅读(4352) VS 2010中 C++的新增功能[原文发表地址] C++ enhancements in VS 2010 [原文发表时间] Friday, November 21, 2008 8:36 AM 作为我的VS2010和.net 框架4的系列博客之一, 今天我们来看看为Visual C++ 中Native开发人员提供的新功能. 在我早先的一篇博客中, 我提到了Visual C++团队为帮助Native开发人员更好地在Windows平台上进行开发而做的巨大努力. 今年初我们发布了Visual C++ 2008 Feature Pack, 就是这项努力的成果之一. Visual Studio 2010沿着这个方向继续发展以帮助C++开发人员提高开发效率, VS2010主要致力于对IDE的整体使用体验进行重大改进,以及对语言和类库的改进来为C++开发人员提供更强大的功能. Native C++应用程序近年来已变得更大更复杂. VS2010可以帮助C++开发人员很好地开发拥有大量代码的C++程序. 其中一个重大的改进是智能感知 (IntelliSense). IDE大量功能都有使用到的智能感知引擎, 经过了重要的架构修正, 主要解决了处理大型应用程序时效率较低的问题. 一个主要的例子是在编辑较大的codebase中的源文件时,IDE仍能保持响应状态. 源代码的编辑不再触发symbol数据库大规模的更新, 即使是处理很复杂的源代码依赖关系时. 经常编辑多层次include的头文件的Visual C++开发人员或经常切换项目配置的开发人员将会明显感觉到IDE响应性能的重大改进. 另一个Visual C++的改进在于构建系统. 在VS2010中, MSBuild 将会成为Visual C++ 编译的构建系统. MSBuild 提供强大的定制性、扩展性和日志功能,这些都是大型复杂的构建环境中非常关键的要素。MSBuild的日志功能可以将原先对经常构建的项目进行跟踪的代价高而琐碎事务变得非常容易。另外,扩展性功能提供了多个不同版本的编译器,从VS2010的IDE中您可以看到下图所示: 日益复杂的C++应用程序对工具和效率提出了更高的要求。VS2010提供了一组新的IDE高效工具, 帮助您轻松地了解复杂的Codebase。智能感知和浏览的功能都经过了修正,不仅能处理大型程序,而且变得更加准确和富有弹性。新的头文件依赖关系工具能提供给您更多于复杂的include层次关系的具体细节。新的快速搜索功能帮助您快速定位到一个symbol或文件,您只需输入名字的一部分并回车即可。 在类库和语言方面,VS2010的一个重要改进是并行性。使用VS2010,C++开发人员可以高效地写出并行计算的代码,因为新的C++语言在并行方面引入了一系列类库和新功能的支持. VS2010提供了Parallel Patterns Library (PPL),它提供了一个抽象层充分利用多核的硬件来构建响应性能良好的C++应用程序。PPL提供了一种表达并行机制的高效的方法,并且还提供了新的异步通信API以帮助您提高应用程序的弹性和健壮性。VS2010提供了新的语言特性包括未来的C++0x标准,例如lamda表达式,并重定义了“auto”关键字使得基于PPL的代码更整洁更易维护。最后,VS2010还提供了更多的对使用MFC构建的Windows应用程序的支持,VS2010为MFC提供了一系列很棒的特性比以往更容易地利用Windows Vista以及之后的Windows7的特性。使用内置的重启管理器,MFC应用程序能轻松获得从非预期的应用程序失败中恢复未储存的应用程序数据的功能。任务对话框的支持将使得MFC应用能开发出更丰富的用户界面,以取代冗长的消息对话框。 这些年来,我们听到很多C++开发人员一直将过去的Visual C++6.0 时代认为是Visual C++开发工具的辉煌时代。很多人怀念那个时候敏捷高效的IDE。在Visual C++ 2010中,我们努力开创一个高效Visual C++ IDE的新时代。我们将这个IDE与强大的C++语言支持、类库的巨大改进一起在VS2010中呈现给大家。 您可以在团队的blog中看到更多Visual C++的信息,并可在blog上与团队交流。 Namaste! posted on 2008-12-10 21:06:19 by soma 评论(0) 阅读(10210) |
||
|
Powered by: Joycode.MVC引擎 0.5.2.0 Copyright © Soma的博客中文版 |
||