有多种方式扩展 Visual Studio。 三个常见一个是:自动化、扩展 VSPackage 和 managed extensibility framework 扩展 (MEF)。
自动化主要用于自动执行重复任务,与宏和外接程序,或者为用户输入提供框架,在向导。
创建 VSPackage 是一种有效方式扩展 Visual Studio。 Visual Studio 包括 Vspackage,如调试器和预定义工具栏的许多元素。 VSPackage 扩展可以访问和扩展许多 Visual Studio 组件,例如 shell 和项目系统。
managed extensibility framework 是 (MEF)在 Visual Studio 2010 中编辑第一次使用的扩展性框架。 MEF 使您可以自定义和扩展编辑器,而不必创建 VSPackage。
Visual Studio 扩展性模型
Visual Studio 扩展性模型允许扩展程序访问和扩展 Visual Studio 组件由不同的库组成。
设计的第一个层在 Visual Studio API 中找到,相同的组接口 Microsoft 开发人员使用开发 Visual Studio。 要在非托管代码可以使用基于模板的库名为 Visual Studio 库 (VSL)编写扩展。
如果在托管代码编写扩展,则可以直接使用 Visual Studio 互操作程序集,也可以使用托管包结构 (MPF)。 托管包框架提供许多包装在 Visual Studio API 的接口的类。
如果扩展 Visual Studio 2010 编辑器,可以使用定义协定该扩展播发到 Visual Studio 编辑器中编辑程序集和 MEF 程序集。
有关更多信息,请参见:
Visual Studio 服务
服务为组件提供一组特定接口使用。 Visual Studio 提供了可由任何组件使用的设置服务,包括扩展。 例如, Visual Studio 服务使工具窗口显示或动态隐藏,请使访问帮助,状态栏或 UI 操作。 Visual Studio 2010 编辑器还提供了可编辑扩展导入的服务。
有关更多信息,请参见:
Visual Studio 可扩展组件
下列元素是最常用来 Visual Studio 扩展:
Shell 命令
菜单和“工具”栏
工具窗口
文档窗口
编辑器
语言服务
项目
模板
命令
命令完成任务,如打印文档,刷新视图的功能,或者创建一个新文件。
在扩展 Visual Studio 时,可以使用 Visual Studio shell 创建命令并注册它们。 可以指定这些说明如何将出现在 IDE,例如,在菜单或工具栏。 通常自定义命令显示在 工具 菜单,并且,显示的工具窗口的命令将显示在 视图 菜单的 其他窗口 子菜单。
如果您创建一个命令时,还必须创建它的事件处理程序。 事件处理程序确定命令时可见或启用,可以修改其文本,并保证命令适当地响应,当激活该 bug。 使用 IOleCommandTarget 接口,在大多数实例, IDE 处理顺序。 在 Visual Studio 的命令为已处理的开始从最里边的命令上下文,具体取决于本地选择和执行最外面的上下文,具体取决于全局选择。 命令添加到主菜单向脚本可供使用。
有关更多信息,请参见 Vspackage 如何将用户界面元素到 IDE。
菜单和“工具”栏
菜单和工具栏为用户提供一种调用命令。 菜单是通常显示为在顶层的单个文本项工具窗口命令的行或列。 子菜单是显示的二级菜单当用户单击包含一个小箭头的命令。 ,当用户右击特定 UI 元素,上下文菜单。 一些常见菜单名是 文件、 编辑、 视图和 窗口。 有关更多信息,请参见 使用命令、菜单和工具栏的常规任务。
工具栏是行或按钮和其他控件的列,如组合框,列表框和文本框。 工具栏按钮通常具有图标图像,例如 打开文件 命令的一个文件夹图标或 打印 命令的一台打印机。 所有工具栏元素与命令。 当您单击工具栏按钮时,其关联的命令运行。 一旦将下拉控件,中的每一项下拉列表与不同的命令。 这些工具栏控件,如拆分控件,是混合。 该控件一侧是工具栏按钮,另一端显示若干命令的一个向下箭头,单击该
有关更多信息,请参见
工具窗口
工具窗口在 IDE 显示信息。 工具箱、 解决方案资源管理器, 属性 窗口和 浏览器 是工具窗口的示例。
工具窗口通常提供用户可与之交互的各种控件。 例如, 属性 窗口允许用户设置为特定用途对象的属性。 ,因为可用于许多不同的情况, 属性 窗口这样,专用,而且一般。 同样, 输出 窗口专用,因为它提供基于文本的输出,但是,常规,因为在 Visual Studio 的许多子系统可以使用它提供输出到 Visual Studio 用户。
考虑 Visual Studio 的图,包含多个工具窗口。
某些工具窗口显示在解决方案资源管理器工具窗口和隐藏其他工具窗口的一个窗格。停靠,但使其可通过单击选项。 图片显示的其他两个工具窗口, 错误表 和 输出 窗口,将停靠在一个窗格。
并显示主文档窗格,该窗格显示几编辑器窗口。 尽管工具窗口通常有一个实例 (例如,只能打开一 解决方案资源管理器),编辑器窗口可以有多个实例,每个用于编辑的文档中,但在同一个窗格停靠。 图片显示具有两个编辑器窗口的文档窗格中,一个窗体设计器窗口并显示起始页的浏览器窗口。 在文档窗格上的所有窗口通过单击选项才可用,但是,包含 EditorPane.cs 文件的编辑器窗口可见和活动状态。
在扩展 Visual Studio 时,您可以创建允许 Visual Studio 用户与该扩展进行交互的工具窗口。 还可以创建拥有使 Visual Studio 用户编辑文档的编辑器。 由于工具窗口和编辑器将集成到 Visual Studio,您不必程序正确地停靠或出现的它们在选项。 而在 Visual Studio 正确注册,它们将自动拥有工具窗口典型的功能并在 Visual Studio 中文档窗口。
有关更多信息,请参见
文档窗口
文档窗口的多文档界面 (mdi) (MDI) 窗口中配置的子窗口。 文档窗口通常用于承载文本编辑器,窗体编辑器 (也称为设计器),或者编辑控件,但是,它们也可以承载其他函数类型。 新文件 对话框包括示例 Visual Studio 提供的文档窗口。
大多数编辑器特定于一种编程语言或的一个文件类型,如 HTML 页、 framesets、 C++ 文件、头文件。 通过选择在 新文件 对话框的模板,用户动态地创建编辑器创建一个文档窗口与模板的文件类型的。 ,当用户打开现有文件时,文档窗口还会创建。
文档窗口限制 MDI 工作区。 每个文档窗口在上面的选项,并且, tab 键顺序链接到可能已在 MDI 区的其他窗口。 右击文档窗口的选项卡显示包含可选拆分 MDI 区域为多个水平或垂直选项卡组的快捷菜单。 拆分 MDI 区让多个文件同时查看。
有关更多信息,请参见
编辑器
Visual Studio 2010 编辑器是新的 Visual Studio 组件。 当新编辑器本身 VSPackage 时,它使您可以自定义并使用它通过 managed extensibility framework 拥有内容的类型 (MEF)。 大多数情况下并不需要创建 VSPackage 扩展编辑器,不过,,如果要包括从 shell 的功能 (例如,菜单命令或热键),则可以将 MEF 扩展名与 VSPackage。
还可以创建自定义编辑器,例如,如果要读取和写入数据库,或者,如果您希望使用设计器。 还可以使用外部编辑器 (如记事本) 或 Microsoft " 写字板 "。
有关更多信息,请参见 编辑。
语言服务
如果希望 Visual Studio 编辑器支持新的编程关键字甚至一种新的编程语言,则创建语言服务。 每种语言服务能完全,部分或不实现某些编辑功能。 根据配置它,语言服务可以提供了语法,匹配的大括号, IntelliSense 支持和在编辑器的其他功能。
在语言服务核心是分析器和 scan 程序。 扫描仪 (或 lexer) 部件一个源文件转换为称为标记的元素和一个分析器生成在这些标记之间的关系。 在创建语言服务时,必须将该分析器和 scan 程序,以便 Visual Studio 可了解该语言的标记和语法。
可以创建托管或非托管语言服务。
有关更多信息,请参见
项目
在 Visual Studio 中,项目是开发人员用来组织的容器以及生成源代码和其他资源。 项目可以将组织,生成,调试,并且,部署源代码,对 web 服务和数据库和其他资源。 Vspackage 可以通过提供项类型、项目子类型和自定义工具扩展 Visual Studio 项目系统。
项还可收集到解决方案中,是分组一个或多个项目创建应用程序。 项目与解决方案的状态信息在两个解决方案文件、基于文本的解决方案 (.sln) 文件和二进制解决方案用户选项 (.suo) 文件中。 这些文件类似于用于 Visual Basic的早期版本中的组 (.vbg) 文件和用于 Visual C++早期版本的工作区 (.dsw) 和用户选项 (.opt) 文件。
有关更多信息,请参见
项目模板和项模板
Visual Studio 包括预定义的项目模板和项目项模板。 可以将由社区还将拥有模板或获取模板,然后将它们 Visual Studio。 MSDN Code Gallery 是转到的位置为模板和扩展。
要求生成特定类型的应用程序、控件、库或类的模板包含项目结构和基本文件。 如果要开发类似于其中一个模板的软件时,请创建基于该模板的项目然后修改该项目的文件。
备注
此模板结构没有为 Visual C++ 项目支持。有关如何创建 Visual C++ 项目模板的信息,请参见 设计向导。
有关更多信息,请参见 添加项目和项目项模板。
Shell 集成和 shell (独立应用程序
在任一个集成模式或独立模式可以将该扩展 Visual Studio。
使用集成 shell 使您可以允许客户可以与其他 Visual Studio 组件的自定义工具。 shell 集成优化到主语言和软件工具。
使用独立的 shell 允许您在与那些 Visual Studio 组件的 Visual Studio shell 运行您选择包含在中的自定义工具。 独立 shell 为具有完全访问权限 Visual Studio 服务的专用工具进行了优化,还有自定义外观和署名。
有关更多信息,请参见