您的位置: 首页 > 技术文档 > 网络编程 > 在VS 2010中查询和导航代码
ASP.NET 4中的SEO改进 回到列表 ASP.NET中创建GeoRSS订阅源
 在VS 2010中查询和导航代码

作者:Scott 时间: 2010-04-01 文档类型:转载 来自:蓝色理想

【原文地址】Searching and Navigating Code in VS 2010 (VS 2010 and .NET 4.0 Series)
【原文发表日期】 Wednesday, October 21, 2009 12:50 AM

这是我针对即将发布的VS 2010 和 .NET 4所撰写的 贴子系列的第九篇。今天的博客讨论已经内置于VS 2010中的一些新的代码查询和导航特性。

代码的查询和导航

开发人员需要能够对正开发的代码库(code-base)进行轻松的导航,查询和理解。在我们做的可用性研究中,我们一般会发现较之于实际编写新的代码,开发人员会花更多的时间在阅读,检查和查询现有的代码上。

VS 2010代码编辑器添加了一些非常棒的新特性,这些特性允许你更加高效地查询和导航代码库,允许你更轻松地理解代码在方案中是如何被使用的。

对ASP.NET MVC源码进行查询和导航

为这个博客贴子起见,我将使用ASP.NET MVC框架代码库(有好几千行代码)来帮助示范一些新的VS 2010查询和导航特性。如果你安装了VS 2010 Beta 2的话,你可以跟着我的示范,从这里下载并打开ASP.NET MVC框架源码。

image 

你应该会发现下面的特性对这个项目而言,速度非常快,尽管该项目有好几千行代码。我在下面示范的所有的特性目前都内置于VS 2010了(对所有的项目类型,以及对VB 和 C#都工作)。

VS 2010 之“Navigate To (导航到)” 支持

能够快速地找到代码,并导航到这些代码,无论对大的还是小的方案都很重要。

Visual Studio 2010现在支持一个新的(Ctrl+逗号)的键盘快捷(即,控制键和逗号键同时按下)。当你按下(Ctrl+逗号)组合键时,一个新的VS 2010 “Navigate To(导航到)”对话框会出现,允许你快速地查询你的方案中的类型,文件,变量和成员,然后打开并且定位到这些东西上面:

image

这个“Navigate To”对话框提供了一个快速的递增查询界面, 你一开始键入查询文字,结果就立刻显示出来。例如,键入“cont”(不用按回车),你就会看到随着你开始键入,176个结果立刻显示在结果列表中:

image

再多键入几个字符,你就会看到列表自动过滤为那些匹配“controller”的结果:

image

你可以使用卷动条卷动结果,或者也可以按tab键,然后使用光标箭头键(如果你不想把手移离键盘的话)。你会发现“Navigate To” 窗口列出了匹配你的查询文字的所有类型的结果, 包括类型名称,方法、属性名称,字段声明,以及文件名称:

image

选择列表中的任意一个结果,会将相关的源码文件在VS 2010打开(如果还没有打开的话),立刻将你带到相关的源码位置(并且将其中的相关名称高亮显示):

image

很棒的模糊查询功能

“Navigate To”查询框还支持一些很棒的“模糊查询”功能,允许你做一些智慧的过滤和查询操作,而不必知道你正在查询的东西的确切名称。在对话框的递增/即查即显的查询界面中这些操作都工作良好,允许你改进你的查询,随着键入操作,就得到实时的结果。

来试一下,让我们首先查询“cache”这个词。注意一下,查询结果中不光包括那些起先的字母为“cache”的项,而且也显示了那些包含“cache”这个词的结果:

image

我们可以在查询文本框中加多个词,进一步过滤查询结果。例如,在下面,我对列表做了过滤,只包括那些名称中同时含有“cache” “action” 的结果:

image

.NET框架中的类型和成员用了一个命名设计指引模式叫“Pascal Casing”,即,类型或成员名称中每个词的第一个字母都是大写的。“Navigate To”对话框也允许你使用这个“Pascal Casing”约定来快速地过滤类型。只键入类型/成员名称的大写首字母,它就会立刻过滤列出匹配大写pascal命名约定的结果。

例如,键入“AMS” 会过滤出下面的结果(只有那些名称中的词先以A起头,然后是以M起头,然后是以S起头的类型和成员):

image

“Navigate To” 对话框允许你以最少的键击次数就能快速地过滤和定位代码,免去你不得不使用鼠标,打开解决方案管理器,然后直接点击文件的劳苦。

查看调用的层次结构

拥有快速查询和导航的能力固然是好,但要是能够快速地发现代码是怎么被使用的,那就更好了。VS 2010引进了一个新的“View Call Hierarchy (查看调用的层次结构)”的特性,允许你快速地发现你的代码库中的某个特定方法或属性是在何处被调用的,允许你快速地遍历(traverse)整个代码库的调用树形图(而不必运行或调试方案)。

要用这个特性,只要选择你的代码库中的一个方法或属性名称,然后键入(Ctrl+K,Ctrl+T )快捷键组合,或者右击、然后选择“View Call Hierarchy”上下文菜单命令:

image

这会调出一个新的“Call Hierarchy (调用的层次结构)”工具窗口,在默认情形下会在代码编辑器下方显示。在下面,你可以看到“Call Hierarchy”窗口显示了我们方案中的2个方法,它们调用了我们在上面选择了的 ViewPage.RenderView() 方法。

image

然后,我们还可以向下钻取到第一个“RenderViewAndRestoreContentType”方法,进而看都是谁调用了它:

image

对虚拟方法/属性,你还可以使用调用层次结构窗口看哪些类继承并覆盖了它们。

双击“Call Hierarchy”窗口中的任意一个成员会打开相应的源码文件,立刻将你带到对应的源码位置:

image

这允许你快速地在代码库中导航,在编写代码时,更好地理解类和方法间的关系。

引用的高亮显示

在VS 2010中,当你在代码编辑器中选择或高亮显示一个变量/参数/字段声明时,所有这些东西随后用到的地方都会在编辑器中为你自动地高亮显示,这方便你快速地识别一个变量或参数是在什么地方被使用的以及是如何使用的。

例如,当我们在下面的编辑器中选择传到ControllerActionInvoker.GetParameterValue()方法中的“controllerContext” 参数时,注意在该方法中用了这个参数的4个地方现在都被自动高亮显示了:

image

如果我选择该方法中的一个局部变量,用到了它的所有地方现在都被自动地高亮显示了:

image

如果多个地方被高亮显示了,你可以使用(Ctrl-Shift-up箭头)键组合和(Ctrl-Shift-Down箭头键组合在它们之间来回循环,快速地将光标移到上一个或下一个高亮显示的字符上。

结束语

新的 VS 2010 文本编辑器方便了对项目或方案中的代码的快速查询,导航和探究。这些操作的速度非常之快(即使是在一个大的代码库内),而且随着你对项目进行改动,会保持更新,最终结果是使你的生产力大为提高。

希望本文对你有所帮助,

Scott

除了写博客外,最近我一直在使用Twitter发短贴和共享链接。你可以在Twitter上通过www.twitter.com/scottgu(@scottgu是我的twitter名)跟随我。

【译注】把上面的Navigate翻译成“导航”觉得有点那个,其实这里的意思跟“定向”,“定位”,“转向”相近。

 

欢迎访问微软官网下载相关软件http://www.microsoft.com/zh/cn/default.aspx

出处:蓝色理想
责任编辑:bluehearts

◎进入论坛网络编程版块参加讨论

相关文章 更多相关链接
ASP.NET页面间数据传递的方法
ASP.NET 4中的SEO改进
ASP.NET中创建GeoRSS订阅源
ASP.NET实现类似Excel的数据透视表
ASP.NET 与 PHP 正面交锋
作者文章 更多作者文章
ASP.NET中创建GeoRSS订阅源
详解 VS 2010中WF 4.0的应用
创意设计欣赏
俄罗斯设计师RSS图标设计
重新发现HTML表格
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
悟道web标准:前端性能优化
纯中文域名".中国"今日提交申请
世界之窗3.0皮肤设计大赛结果公布
使用jQuery制作滑动动画效果的层
如何设计网页横幅
Plump 图标设计
Subrat Nayak图标设计
百度知道推出文档分享服务
CSS Sprites(CSS雪碧):要还是不要?
UIRSS三周年纪念日推出V2公测版
栏目最新 栏目最新列表
Firefox的Jetpack扩展案例分析
阿里妈妈UED谈CSS Sprites技术
Photoshop中设计绿色时尚Web网站
操作Dom节点实现间歇滚动新闻
浏览器15年历史回顾
如何创建Firefox的Jetpack扩展
全透视:CSS Z-index 属性
用PS 3D工具绘制甜麦圈包装袋
悟道Web标准:让W3C标准兼容终端
悟道WEB标准:统一思想,遵循标准

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

本文暂时没有评论和评分

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
《Web标准设计》
闪魂-FlashCS4完美入门与案例精粹
Waver_h's华丽世界
Illustrator CS3质感绘画表现技法
《Flash短片轻松学》
《用户体验要素》
《JavaScript语言精粹》
作品集 更多内容

腐败夫妻志之愚人节之 三里屯VILLAGE 3月活 游戏抢号界面 练习 瑞士朵佳浓首页 Sundries House 练习 西关迟暮·恩宁路