可以说木匠让小时的我第一次感受到了专业,虽然那时还不知道专业这个词,尤其是那些有年纪的老木匠,专注地在那锯木头、钉钉子、刨出带着香味的木花。他们有其他人所没有的工具,更重要的是他们掌握了那些工具。VS正是我们手头的工具,它可以是锤子,也可以是锯、刨子,如果你能掌握它,而且要掌握的好。
我向来喜欢了解手头工具的方方面面(也许与我的思维方式有关,总想了解得更多)。我甚至觉得,对于最常用的工具,了解得越多越好——今天掌握了一个小功能,未来两三年都会受益。
上面是我对工具的一点感想。VS越来越强大了,在VS 2010 Beta1中我又看到一直想要的两个功能,但我确信,扩展仍是不可避免的,因为VS面向的是所有的开发人员,它只能够提供最通用的功能,所以就有了这个文章系列。
在这个过程中,我尽量以有用的实例介绍VS 2008可扩展性开发的每个方面,我讨厌HelloWorld。在之前使用过的例子中,包括了园友、同事和自己的一些需求,下面列出随笔的链接:
(一):VS概览
简要介绍了VS的历史及其基本要素,帮助建立起对它的感性认识。
(二):Macro和Add-In初探
通过两个简单的例子来说明Macro和Add-In的开发。
(三):Add-In运行机制解析(上)
主要关注的是Add-In向导所产生的代码,其中的重点是Connect.cs和.Addin文件
(三):Add-In运行机制解析(下)
主要介绍了VS Add-In的事件和生命周期。
(四):添加新的命令
首先介绍了命令和命令栏的概念,然后解释了如何添加、执行命令,以及如何执行VS内置的命令。
(五):操作Solution、Project和ProjectItem
介绍与解决方案、项目和文件(夹)相关的操作。
(六):操作Solution Explorer
解决方案管理器是VS中最重要的UI元素之一,本文就介绍对它的操作。
(七):操作文本编辑器
介绍如何对文本编辑器进行扩展。
(八):关于用户界面的种种(上)
首先是如何访问、操作那些内置的工具窗口,如Solution Explorer、Output Window等等;然后介绍了如何创建自定义的工具窗口
(八):关于用户界面的种种(下)
为Add-In添加选项页(Options Page),设置菜单项的图标。
还有下面几篇相关的随笔:
通过PropertyManager Add-In管理代码中的属性
如果您下载的Add-In代码不能调试运行
如何移除VS Add-In残留的菜单项
给VS添加代码转换功能
其实,还有一个比较重要的主题没有写,就是CodeModel(比如代码中的命名空间、类、方法等等),但是找不到合适的例子,写了也只是些API介绍而已,只好作罢。
中间主要参考了两本书,开始是这一本《Professional Visual Studio? 2008 Extensibility》,说实话,这本书很一般,最多三星,基本上是API的介绍和HelloWorld的例子,但是VS可扩展性开发比较独立、单纯,当作参考手册来看看还是可以的,最好的参考是MSDN;第二本是《Working with Microsoft Visual Studio? 2005》,这本书还不错,有些地方对运行机制做了介绍,值得看一下。
很多朋友一听我说VS扩展开发,第一反应往往是,这玩意儿很复杂吧?完全不是。在写这些随笔的过程中,我感觉只要了解了基本的思路,开发起来跟普通应用的开发没什么差别,所以不要再因为觉得扩展复杂而放弃了:)
虽然这个随笔系列结束了,不过对VS的扩展仍然会继续,只要我觉得能够实现。希望这些能给你带来一些帮助。