源代码管理集成概述

本部分比较了集成到 Visual Studio 源代码管理中的两种方法:源代码管理插件和 VSPackage,提供源代码管理解决方案并突出显示新的源代码管理功能。 Visual Studio 允许在源代码管理 VSPackage 和源代码管理插件以及基于解决方案的自动切换之间进行手动切换。

源代码管理集成

Visual Studio 支持两种类型的源代码管理集成选项。 在所有版本的 Visual Studio 中,仍可以根据源代码管理插件 API(以前也称为 MSSCCI API)集成插件,该插件在使用 Visual Studio 源代码管理用户界面(UI)时提供基本源代码管理功能。 另一方面,源代码管理 VSPackage 提供了一个新的深度集成 Visual Studio SDK 路径,该路径适用于源代码管理集成,该路径要求其源代码管理模型中具有较高的复杂程度和自主性。

Source Control Overview

源代码管理插件

所有版本的 Visual Studio 都支持源代码管理插件 API 规范版本 1.2 作为集成路径。 源代码管理插件实现者编写 DLL,该 DLL 实现源代码管理插件 API 函数以实现源代码管理集成和注册,如创建源代码管理插件中所述。 在此方法中,集成开发环境(IDE)将 Visual Studio UI 用于对话框,例如检查、检查out、工具/选项属性页、工具栏和源代码管理标志符号。 严格遵循源代码管理插件 API 可确保轻松集成到 Visual Studio 中,并为用户提供无故障体验。 这意味着源代码管理插件必须实现 API 中详述的大部分函数和回调。

若要使用源代码管理插件 API 实现源代码管理插件,请执行以下步骤:

  1. 创建实现源代码管理插件中指定的 函数的 DLL。

  2. 通过创建相应的注册表项 (操作说明:安装源代码管理插件)注册 DLL。

  3. 在源代码管理适配器包提示时创建帮助程序 UI 并显示(通过源代码管理插件处理源代码管理功能的 Visual Studio 组件)

    为了响应源代码管理命令,Visual Studio IDE 提供基本操作的标准 UI,然后通过源代码管理插件 API 中定义的函数将信息传递给源代码管理插件。 对于高级选项,可以调用源代码管理插件来显示自己的 UI,例如,浏览源代码管理的项目。 这意味着在处理源代码管理时,用户可能会显示两种可能不同的 UI 样式:Visual Studio 提供的 UI 以及源代码管理插件显示的 UI。 这与高级源代码管理操作最为明显。

实现源代码管理插件的缺点

  • 对于高级功能,用户可能会看到两种不同的界面样式,从而导致可能混淆。

  • 源代码管理插件仅限于源代码管理插件 API 隐含的源代码管理模型。

  • 对于某些源代码管理方案,源代码管理插件 API 可能过于严格。

实现源代码管理插件的优点

  • Visual Studio 为所有基本源代码管理操作提供所有 UI,以便源代码管理插件不必实现潜在的复杂 UI。

  • 由于 API 严格,源代码管理插件可以轻松与外部源代码管理程序交互,以提供更广泛的功能:Visual Studio 并不关心源代码管理功能是如何完成的,只是它根据源代码管理插件 API 完成。

  • 与源代码管理 VSPackage 相比,实现源代码管理插件更容易。

源代码管理 VSPackage

Visual Studio SDK 允许通过完全控制源代码管理功能和完全替换 Visual Studio 提供的源代码管理用户界面,深入集成到 Visual Studio 中。 源代码管理 VSPackage 注册到 Visual Studio 并提供源代码管理功能。 尽管多个源代码管理 VSPackage 可以注册到 Visual Studio,但一次只能激活其中一个。 源代码管理 VSPackage 可以完全控制在 Visual Studio 中处于活动状态的源代码管理功能和外观。 系统中可能注册的所有其他源代码管理 VSPackage 处于非活动状态,并且根本不显示任何 UI。

实现源代码管理 VSPackage 需要“全部或无”策略。 源代码管理 VSPackage 的创建者必须投入大量精力来实现许多源代码管理接口和新 UI 元素(对话框、菜单和工具栏),以涵盖整个源代码管理功能。 有关更多详细信息,请参阅 创建源代码管理 VSPackage

实现源代码管理 VSPackage 的缺点

  • VSPackage 必须实现许多复杂的接口才能成功与 Visual Studio 集成。

  • VSPackage 必须提供源代码管理所需的所有 UI;Visual Studio 在此领域不提供任何帮助。

  • 源代码管理 VSPackage 与 Visual Studio 紧密相连,不能使用独立程序运行,因此无法与源代码管理程序的外部版本轻松共享功能。

实现源代码管理 VSPackage 的优点

  • 由于 VSPackage 完全控制源代码管理 UI 和功能,因此用户会显示一个无缝的源代码管理界面。

  • VSPackage 不局限于特定的源代码管理模型。