使用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();
}

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

对比一下,Visual Studio 2012生成的代码要简洁一些。

分享10条Visual Studio 2012的开发使用技巧的更多相关文章

  1. Visual Studio 2012的开发使用技巧

    分享10条Visual Studio 2012的开发使用技巧 使用Visual Studio 2012有一段时间了,并不是追赶潮流,而是被逼迫无可奈何.客户要求的ASP.NET MVC 4的项目,要用 ...

  2. Visual Studio 2012 应用软件开发新方式

    微软正式发布Visual Studio 2012 应用软件开发新方式 2012-09-13 09:54 51CTO.com 我要评论(0) 字号:T | T “现在,开发者将有更好的机会开发与云服务连 ...

  3. 在Visual Studio 2012中使用VMSDK开发领域特定语言(二)

    本文为<在Visual Studio 2012中使用VMSDK开发领域特定语言>专题文章的第二部分,在这部分内容中,将以实际应用为例,介绍开发DSL的主要步骤,包括设计.定制.调试.发布以 ...

  4. 在Visual Studio 2012中使用VMSDK开发领域特定语言(一)

    前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modeling SDK进行领域特定语言(DSL)的开发,包括两个部分的内容.在第一部分中,将对 ...

  5. Visual Studio 2012下Box2D开发环境设置

    Cocos2d-x 3.x默认情况下采用的物理引擎是Chipmunk,如果我们要使用Box2D引擎,需要进行一些设置和调整,而且不同的开发平台下这些设置也有所不同.由于本书在此之前介绍的都是基于微软的 ...

  6. 在Visual Studio 2012中使用VMSDK开发领域特定语言1

    在Visual Studio 2012中使用VMSDK开发领域特定语言(一)   前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modelin ...

  7. 用Visual Studio 2012+Xamarin搭建C#开发Andriod的环境

    第一步:安装Visual Studio: Visual Studio 2012(或者Visual Studio 2010),原因是目前为止Xamarin for Visual Studio的插件只支持 ...

  8. 使用Visual Studio 2012 开发 Html5 应用

    Visual Studio 一直以来是开发微软旗下应用的利器,只要是开发微软相关的应用无论是Windows程序,WPF,Asp.Net,WinRT Surface,WindowsPhone 等微软旗下 ...

  9. 10个Visual Studio原生开发调试技巧

    10个Visual Studio原生开发调试技巧(1) 2013-05-29 13:30 佚名 开源中国 我要评论(1) 字号:T | T 以下的列表中你可以看到写原生开发的调试技巧(接着以前的文章来 ...

随机推荐

  1. well属性

    Bootstrap 有一个 class 属性叫做 well,它的作用是为设定的列创造出一种视觉上的深度感(一种视觉上的效果,动手写代码体会一下).

  2. jQuery中$.fn的用法

    原文:http://www.jb51.net/article/42816.htm $.fn是指jquery的命名空间,$.fn=$.prototype. 1.$.extend 为jquery添加静态方 ...

  3. vi命令模式下快速注释代码的方法

    进入http://www.vim.org/scripts/script.php?script_id=1528 点击这个链接下载comments.vim这个插件 然后把它放入到./vim/plugin下 ...

  4. MongoDB学习比较-07 C#驱动操作MongoDB

    下载驱动 驱动的下载有两种方式:一种是在C#项目中通过NuGet进行安装,另一种是通过下面的链接:https://github.com/mongodb/mongo-csharp-driver/rele ...

  5. 今天自己解决了两个问题(IE10 type slow ChromeDriver erro)

    都是通过google解决的,其实本应该很快解决,可是因自己粗心,大写小错了,加上java基础不过关, "webdriver.chrome.driver"中的webdriver应是全 ...

  6. ButterKnife的原理简述

    ButterKnife的原理简述 注解处理器Java5 中叫APT(Annotation Processing Tool),在Java6开始,规范化为 Pluggable Annotation Pro ...

  7. 如何让ECSHOP不同的分类调用不同模板方法

    如何给ecshop商品分类,显示不同的模板的话.可以通过不同的分类ID来取得不同模板.我们可以通过分类ID来判断,比如分类为1的,调用cat1.dwt.分类为2的,调用cat2.dwt,我们在cate ...

  8. 使用css3制作蚂蚁线

    涉及知识点:background-clip.animation; 代码请查看codepen:https://codepen.io/guoxianqiang/pen/jVXPbm

  9. Kernels

    Let \(E\) be a set and  \(\mathscr{E}\)  a \(\sigma\)-algebra of subsets of  \(E\). Assume that the ...

  10. Android 事件拦截机制一种粗鄙的解释

    对于Android事件拦截机制,相信对于大多数Android初学者是一个抓耳挠腮难于理解的问题.其实理解这个问题并不困难. 首先,你的明白事件拦截机制到底是怎么一回事?这里说的事件拦截机制,指的是对触 ...