Fork me on GitHub
好用的 VS扩展

装上VS2010后,去官网搜罗了几个VS扩展,用着挺顺手,这让我的VS2010用起来舒服多了。

在这里晒晒我装的这几个扩展,希望大家看了以后也能在下面的留言里晒晒自己的,咱们交流1下。
VS扩展,包括控件、模板和工具。工具就相当于小插件了,我装的都是这些,它们极大扩展的VS环境原有的功能。
选择工具菜单->扩展管理器

扩展管理器里显示已安装的扩展,可以启用和禁用;还可以通过联机库去下载新扩展。

一、Productivity Power Tools
我喜欢的功能:
1、Enhanced Scrollbar(增强的滚动条),在代码窗口右侧滚动条上通过不同的色点来显示一些附加信息。

绿色表示修改后已保存的代码,黄色表示修改后还没保存的代码,蓝色表示当前光标所在位置。其他还包括:断点、书签、光标所在类型在文档中所有出现的位置等等。

2、Solution Navigator(解决方案导航器)。
这个太好用了,有了它,我已经关掉VS自己的解决方案资源管理器了。它除了有VS自已那个管理器所有的功能,主要增加了可以按各种条件来筛选显示解决方案中的文件。

All:全部显示,Open:只显示已经打开的文件,Unsaved:修改后还没保存的文件,Edited:有修改的文件。在代码中还可以使用Ctrl+1和Ctrl+2快捷键,有惊喜,自己探索吧。

3、Tab Well UI(改进的文档标签)
 
4、Searchable Add Reference Dialog(可搜索的添加引用对话框)。在添加引用时,可以根据关键字进行搜索。
 
5、Quick Access(快速访问)。又一强大功能。按Ctrl+3后打开Quick Access对话框,输入关键字后回车,就可以快速执行包括VS的菜单命令、选择已打开的文档标签、查找解决方案中的文档等等。
比如:输入控制台后回车,就可以打开创建项目对话框,并且选择的是创建控制台应用程序模板。
 
6、Automatic Brace Completion(这个不会翻译 >_<)。当输入{,帮你完成输入},同时按Tab键光标跳到}后面。其他还支持 () [] <> "" ''
 
7、Ctrl + Click Go To Definition(Ctrl加鼠标单击转到定义),不解释。
 
8、Colorized Parameter Help(参数帮助着色),调用方法时的显示工具提示中对参数数据类型和关键字进行着色。

 
二、Collapse Selection In Solution Explorer
这个扩展工具功能很单纯,就是一键折叠解决方案管理器中所有展开的节点,当方案里项目和文档很多时,挺有用。可以作为上一个工具的解决方案导航器的补充。两个操作方式,一是点解决方案资源管理器的工具栏的图标;二是按快捷键,默认是Ctrl+Alt+数字键盘上的-,可以在工具->选项->键盘里改。
 
三、Indent Guides
为代码缩进添加参考线。代码看上去整齐多了。

 
四、Javascript Parser
我喜欢的功能:
1、当前文档中所有JS函数的树状列表,并且当鼠标悬停于列表中的函数时,显示函数中的注释说明。

2、在调试模式下显示动态注册的脚本的函数,比如页面上使用了验证控件,可以显示验证控件在运行时添加的那些函数。

3、当函数以骆驼命名法命名时,通过键入每词首字快速查找函数
 
4、显示函数中的//TODO注释。
这个工具刚装不久,其他功能持续探索中。。。
 
五、NuGet Package Manager
NuGet是一个在线的第三方类库。通过此管理器,可以在线浏览、查找众多的第三方类库,并下载回本地并引用到项目中。相当不错。

 

最后,大多扩展工具的设置,都可以通过VS的工具->选项菜单来设置。

直奔主题,如下SQL语句:

SELECT COUNT(*) AS COUNT,REQUEST,METHOD FROM REQUESTMETH GROUP BY 
REQUEST,METHOD HAVING (REQUEST ='FC.OCEAN.JOB.SERVER.CBIZOZBKHEADER' OR REQUEST='FC.Ocean.Job.Server.CBizOzDocHeader')
AND COUNT(*) >3
ORDER BY REQUEST

注意事项:

HAVING后的条件不能用别名COUNT>3 必须使用COUNT(*) >3,否则报:列名 'COUNT' 无效。

having 子句中的每一个元素并不一定要出现在select列表中

如果把该语句写成:

SELECT COUNT(*) AS COUNT,REQUEST,METHOD FROM REQUESTMETH GROUP BY 
REQUEST ORDER BY REQUEST

那么将报:

选择列表中的列 'REQUESTMETH.method' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。

注意:
1、使用GROUP BY 子句时,SELECT 列表中的非汇总列必须为GROUP BY 列表中的项。
2、分组时,所有的NULL值分为一组。
3、GROUP BY 列表中一般不允许出现复杂的表达试、显示标题以及SELECT列表中的位置标号。

如:

SELECT REQUEST,METHOD, COUNT(*) AS COUNT FROM REQUESTMETH GROUP BY 
REQUEST,2 ORDER BY REQUEST  

错误信息为:每个 GROUP BY 表达式都必须包含至少一个列引用。

 

GROUP BY 中使用 ORDER BY注意事项:

SELECT COUNT(*) AS COUNT FROM REQUESTMETH GROUP BY REQUEST,METHOD ORDER BY REQUEST,METHOD

--这样是允许的, ORDER BY后面的字段包含在GROUP BY 子句中

 

SELECT COUNT(*) AS COUNTS FROM REQUESTMETH GROUP BY REQUEST ORDER BY COUNT(*) DESC 

--这样是允许的,ORDER BY后面的字段包含在聚合函数中,结果集同下面语句一样

 

SELECT COUNT(*) AS COUNTS FROM REQUESTMETH GROUP BY REQUEST ORDER BY COUNTS DESC 

--这样是允许的,区别于HAVING,HAVING后不允许跟聚集函数的别名作为过滤条件

 

SELECT COUNT(*) AS COUNTS FROM REQUESTMETH GROUP BY REQUEST ORDER BY METHOD

--这样是错误的:ORDER BY 子句中的列 "REQUESTMETH.method" 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。


SELECT DISTINCT 中使用 ORDER BY注意事项:

SELECT DISTINCT BOOKID FROM BOOK ORDER BY BOOKNAME

以上语句将报:

--如果指定了SELECT DISTINCT,那么ORDER BY 子句中的项就必须出现在选择列表中。

因为以上语句类似

SELECT BOOKID FROM BOOK GROUP BY BOOKID ORDER BY BOOKNAME

其实错误信息也为:

--ORDER BY子句中的列"BOOK.BookName" 无效,因为该列没有包含在聚合函数或GROUP BY 子句中。


应该改为:

SELECT DISTINCT BOOKID,BOOKNAME FROM BOOK ORDER BY BOOKNAME
SELECT DISTINCT BOOKID,BOOKNAME FROM BOOK
SELECT BOOKID,BOOKNAME FROM BOOK GROUP BY BOOKID,BOOKNAME

 

以上两句查询结果是一致的,DISTINCT的语句其实完全可以等效的转换为GROUP BY语句

posted on 2012-10-29 14:27  HackerVirus  阅读(385)  评论(0编辑  收藏  举报