使用Visual Studio 2012有一段时间了,并不是追赶潮流,而是被逼迫无可奈何。客户要求的ASP.NET MVC 4的项目,要用.NET 4.5来运行。经过一段时间的摸索,得到一点经验和体会。C#之父曾说,抗拒变化是人类的天性。Visual Studio 2012仅仅是在界面上变化就很让人感叹,也只有这样的大公司才有精力和时间去做这样的变更。微软有意推广一项技术,会在他最得意的产品中应用这项新技术,产品和技术路线并行,相辅相成,微软不愁在IT界没有饭吃。
1 添加程序集引用
这个版本的Visual Studio改变了从VS2003一直以来的做法,改成列表形式,以打勾表示被当前程序集引用,不打勾则去除引用。所以,当从GAC或是项目或是文件系统中添加程序集时,只需要它把它找到,并把列表前的勾选中即可。
Visual Studio 2010已经解决了添加GAC中的程序集非常慢的问题,不过手动刷新.NET Framework这个Tab页面里面的内容又比较麻烦,2012在这方面添加了一个搜索框,可以通过搜索而不以列表查看的方式添加引用,有一些改善。
Visual Studio 2010有一个扩展项目Mutex Extension,可用于拷贝和复制项目的引用。遗憾的是Visual Studio 2012仍然没有这个功能,不能对项目中所引用的程序集进行复制和拷贝。
2 解决方案浏览器中预览图片
如下图所示,在解决方案浏览器中指向文件名,可以直接预览该图片,这对Web开发是很有用处的。
当你把鼠标放在文件名上面时,Visual Studio会显示一个图片的缩略图。
Visual Studio默认双击项目中的一个文件,会用Visual Studio设置的编辑器打开。但是我想在资源管理器中打开它,也没有找到右键中的菜单项(Open File in File Explorer),默认在资源管理器中还是只能打开一个文件夹。
3 单击打开选中的项目文件
在Visual Studio中的解决方案管理器,有一项是Preview Selected Items,不选中则只可以双击打开选中的项,选则这一些,则单击之后就会在编辑器中打开编辑。一直以来使用Visual Studio,还是觉得双击打开要好一点。有时候我只是想看一下项目的结构,而不是想打开它进行编辑。
有人指出这一项是多余的功能,比如当我选中多个文件,如何去预览它呢,要全部在Visual Studio里面打开吗?这样就有点不合理了。所以,回到初始的美好经验,不要选中这个按钮。
4 解决方案中集成类型浏览器
Visual Studio的类型浏览器一直以来都没有什么很大的用处。如果我要找一个类型,会直接用搜索,而不是去类型浏览器中查找。这一次的Visual Studio直接把类型浏览器集成到解决方案管理器中,可以看到一个文件定义的类型和方法,方便了很多。
5 打开光标所在的窗口 CTRL + ALT + HOME
这一条特性比较有用。当我在编辑一段代码时,需要参考其它的代码,在解决方案浏览器中浏览,打开,看到我所需要的代码之后,要回到最开始我正在编辑的代码,请点击CTRL + ALT + HOME,Visual Studio为你打开光标所在的窗口。
6 快速启动 Quick Launch
这是个搜索功能项的特性,它可节省你找功能的时间,现在可以直接在这里搜索,查找菜单项,也可以查找配置项。比如我输入Format,它显示如下,点击相应的项,直接打开配置菜单的子项目,很实用的功能。
7 多个解决方案浏览器窗口
如果一个项目中有很多文件,在一个解决方案浏览器中查看比较吃力,可以选择该文件项,点右键选中”New Solution Explorer View” 菜单,它会在新的解决方案浏览器中打开查看。
是不是方便很多呢?
8 改善的搜索窗口
您可以在解决方案浏览器的按钮下面,输入要搜索的单词,解决方案浏览器会为您过滤它的项,显示与输入的单词相匹配的项目。这个版本的Visual Studio在解决方案浏览器的功能上改进不少。
其它的窗口,比如控件工具箱,也可以用于搜索控件名称。
错误列表窗口,也可以搜索
9 Tab选项卡固定
如果项目打开了很多文件,新打开的文件项,会隐藏已经打开的文件项。如果这样,你可以到Tab下拉列表中去找需要的选项卡,也可以通过解决方案浏览器,再次双击打开该项。现在你还有一种选择,打开一个Tab选项卡之后,点一下它的钉子图标,把它固定住,这样,即使Visual Studio打开很多选项卡,也会保持这个选项卡可见。
虽然快捷键Ctrl+Shift+Tab可以在多个打开的选项卡中切换,但是打开的选项卡很多的话,还是把它固定住好用一些。
10 自动代码生成的改善
比如要为按钮生成点击事件,输入以下的代码,Tab表示要按下Tab键
btnOK.Click+=TAB + TAB
Visual Studio 2010会为你生成标准的事件注册方法,下面是Visual Studio 2010的生成的方法
btnOK.Click +=new EventHandler(btnOK_Click); void btnOK_Click(object sender, EventArgs e) { throw new NotImplementedException(); }
同样的情况,来看一下Visual Studio 2012为你生成的代码:
btnOK.Click +=btnOK_Click; void btnOK_Click(object sender, EventArgs e) { throw new NotImplementedException(); }
对比一下,Visual Studio 2012生成的代码要简洁一些。