我们在使用VS2010进行编码时,有时会做一些重复的工作,为了减轻这部分工作的,提高编程效率,VS2010允许你自定功能,还可以对VS的功能作一些扩展,并允许你同别人共享扩展的这部分功能。
VS 2010允许你通过以下几种方式来扩展它的功能:
1)宏
宏是扩展Visual Studio最简单的方法,比较适合快速自动操纵等任务,宏的功能比较有限,只适用于简单的自动化任务。编写宏只能采用VBA ,没有其他语言的支持,此外宏的共享需要共享项目文件(包括其源代码)。
2)Add-in(外接程序)
外接程序比宏强大,可以创建工具窗口和向导,并可以Vs2010 IDE中无缝集成。外接程序可编译成动态链接库形式加以共享,编译后的共享文件是二进制形式的
3)Visual Studio SDK开发工具包
Visual Studio SDK需要单独下载和安装,运用VS SDK,可以访问VS2010 内核,因此可以开发出比外接程序更强大的功能,甚至于可以开发出自己的的编辑器、设计工具,适合于其它开发语言的开发环境。
4)托管扩展框架组件MEF(Managed Extensibility Framework )
我们可以通过以上几种方法扩展VS 2010的基础是VS2010的自动化模型,也叫可扩展策略DTE(Development Tools Extensibility),对象模型是我们可对VS2010 IDE进行扩展开 发的基础.DTE是一个基于COM的接口,已经添加到各个版本的Visual Studio中,DTE的各个版本的接口和相关类实现已覆盖Visual Studio的各个方面的功能。
DTE相关类只是对接口的实现,就其实现本质而言,接口不支持扩展的,永远不能改变。例如,您可以找到Debugger,Debugger2,Debugger3,Debugger4,和Debugger5接口。Debugger是Visual Studio 2003的一部分,并且是最早的版本。 Debugger2是Debugger更新,位于的Visual Studio 2005,Debugger3位于Visual Studio 2008,Debugger4位于Visual Studio 2008 SP1和Debugger5应用于Visual Studio 2010。根DTE接口也有一个更新版本DTE2,你通常使用DTE2,而不是DTE。这一点在实际编程中的意思是,对象模型层次结构不简单。该模型将暴露在早期表现上的类的方法的模式,但您需要用对象较新的接口来访问它的功能。例如,解决方案对象Solution没有提供能够创建解决方案文件夹功能,直到后来Solution2其中提供了AddSolutionFolder方法。因此,下面的宏代码将不能正常工作
以下是代码片段:
Public Sub AddSolutionFolder() DTE.Solution.AddSolutionFolder("TestFolder") End Sub |
但是下面这段代码却可以
以下是代码片段:
Public Sub AddSolutionFolder() Dim solution As Solution2 = DirectCast(DTE.Solution, Solution2) solution.AddSolutionFolder("TestFolder") End Sub |