源代码管理插件体系结构

你可以通过实现和附加源代码管理插件,将源代码管理支持添加到 Visual Studio 集成开发环境 (IDE)。 IDE 通过妥善定义的源代码管理插件 API 连接到源代码管理插件。 IDE 通过提供包含工具栏和菜单命令的用户界面 (UI) 来公开源代码管理系统的版本控制功能。 源代码管理插件可实现源代码管理功能。

源代码管理插件资源

源代码管理插件提供资源以帮助创建版本控制应用程序并将其连接到 Visual Studio IDE。 源代码管理插件包含必须由源代码管理插件实现的 API 规范,以便可以集成到 Visual Studio IDE 中。 它还包含一个代码示例(用 C++ 编写),该示例实现了一个主干源代码管理插件,从而演示符合源代码管理插件 API 的基本函数的实现。

如果你创建一个其中包含根据源代码管理插件 API 实现的所需函数集的源代码管理 DLL,则源代码管理插件 API 规范允许你利用你所选择的任何源代码控制系统。

组件

关系图中的源代码管理适配器包是 IDE 的组件,可将用户对源代码管理操作的请求转换为源代码管理插件支持的函数调用。 为实现这一目标,IDE 和源代码管理插件必须具有一个有效的对话框,用于在 IDE 和插件之间来回传递信息。 要使此对话发生,它们必须使用相同的语言。 本文档中概述的源代码管理插件 API 是进行此交换的常用词汇表。

源代码管理体系结构关系图

显示 VS 与源代码管理插件之间交互的体系结构关系图

如体系结构关系图所示,标记为关系图中的 VS shell 的 Visual Studio shell 托管用户的工作项目和关联的组件,如编辑器和解决方案资源管理器。 源代码管理适配器包可处理 IDE 与源代码管理插件之间的交互。 源代码管理适配器包提供自己的源代码管理 UI。 它是用户为了初始化和定义源代码管理操作范围而与之交互的顶级 UI。

源代码管理插件可以有自己的 UI,该 UI 可能由两个部分组成,如图所示。 标记为“供应商 UI”的框表示你作为源代码管理插件创建者所提供的自定义用户界面元素。 当用户调用高级源代码管理操作时,源代码管理插件将直接显示这些元素。 标记为“帮助程序 UI”的框是一组通过 IDE 间接调用的源代码管理插件 UI 功能。 源代码管理插件通过 IDE 提供的特殊回调函数将与 UI 相关的消息传递给 IDE。 帮助程序 UI 可促进与 IDE 的更无缝集成(通常通过使用“高级”按钮),从而提供更一致的最终用户体验。

源代码管理插件无法对 Visual Studio shell 进行更改,因此也无法更改源代码管理适配器包或 IDE 提供的源代码管理 UI。 它必须最大限度地利用各种源代码管理插件 API 功能的实现所提供的灵活性,这些功能有助于为最终用户提供集成体验。 源代码管理插件 API 文档的参考部分包含一些高级源代码管理插件功能的相关信息。 若要利用这些功能,源代码管理插件必须在初始化期间向 IDE 声明其高级功能,并且必须为每项功能实现特定的高级功能。