原始檔控制整合概觀
本節會比較整合至 Visual Studio 原始檔控制的兩種方式;原始檔控制外掛程式和 VSPackage 提供原始檔控制解決方案,並醒目提示新原始檔控制功能。 Visual Studio 允許在原始檔控制 VSPackage 和原始檔控制外掛程式,以及在自動解決方案型切換之間進行手動切換。
原始檔控制整合
Visual Studio 支援兩種類型的原始檔控制整合選項。 在所有版本的 Visual Studio 中,您仍可根據原始檔控制外掛程式 API 整合外掛程式 (之前也稱為 MSSCCI API),其可在使用 Visual Studio 原始檔控制使用者介面 (UI) 時提供基本原始檔控制功能。 另一方面,原始檔控制 VSPackage 會提供原始檔控制整合所適用的新深度整合 Visual Studio SDK 路徑,其原始檔控制模型中需要高層級的複雜度和自主性。
原始檔控制外掛程式
Visual Studio 的所有版本都支援原始檔控制外掛程式 API 規格 1.2 版做為整合路徑。 原始檔控制外掛程式實施者會撰寫 DLL,該程式可實作原始檔控制外掛程式 API 函式來進行原始檔控制整合和註冊,例如建立原始檔控制外掛程式中所述。 在此方法中,整合開發環境 (IDE) 會針對對話方塊使用 Visual Studio UI,例如簽入、簽出、工具/選項屬性頁、工具列和原始檔控制字符。 嚴格遵循原始檔控制外掛程式 API 可確保輕鬆整合到 Visual Studio 中,並為使用者提供不發生任何錯誤的體驗。 這表示原始檔控制外掛程式必須實作 API 中詳述的大部分函式和回呼。
若要使用原始檔控制外掛程式 API 實作原始檔控制外掛程式,請遵循以下這些步驟:
建立 DLL 以實作原始檔控制外掛程式中指定的函式。
藉由建立適當的登錄項目來註冊 DLL (使用方法:安裝原始檔控制外掛程式中所述)。
在原始檔控制配接器套件提示時建立協助程式 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 不受限於特定的原始檔控制模型。