雖然延伸模組通常會載入 Visual Studio 進程,但 VisualStudio.Extensibility 會讓大部分的 Visual Studio 延伸模組在進程之外。 此 out-of-proc 模型可讓您建立更可靠且效能更高的延伸模組。 下列文件說明:
- 新擴充性模型的一般架構
- 如何利用新擴充性模型的 API
- 如何使用新模型編譯和 F5 偵錯延伸模組
- 開始使用新模型撰寫延伸模組的資源和程式碼範例
關於 VisualStudio.Extensibility 模型
新的 VisualStudio.Extensibility 模型旨在解決開發人員在使用舊模型在 Visual Studio 中使用和編寫擴展時遇到的許多問題。 這些問題包括:
- 延伸模組導致的 Visual Studio 及其他安裝的延伸模組崩潰和停止回應
- 不一致、過時的文件和 API、對專業知識的要求以及壓倒性的架構
- 安裝延伸模組需要重新啟動 Visual Studio
- 不支援 .NET Core
使用 VisualStudio.Extensibility 撰寫延伸模組可提供下列優點:
- 提高可靠性 – 使用新模型撰寫的延伸模組是程式外的,不會封鎖 Visual Studio UI。 這意味著,如果擴展崩潰,VS 不會因此崩潰。
- 降低 API 複雜性 – 新模型的 API 是從頭開始構建的,更具凝聚力且更易於實施,同時保留舊模型的高級功能。
- 僅限 .NET – 為了受益於 .NET 和 C# 的最新增強功能,新的擴充性模型將僅支援 .NET 進行進程外裝載,並裝載在 .NET 進程中。
- .NET Core 支援 - 跨進程延伸模組可以利用較新 .NET 版本的支援及其帶來的優點。
- 熱載入功能 – 使用新模型撰寫的延伸模組可以安裝及載入,而不需要重新啟動 Visual Studio(不包括那些需要尚未安裝的 Visual Studio 元件必要條件的延伸模組)。
- 跨 CPU 平臺 – 由於基礎實作是以 RPC 相容的代理服務為基礎,而且是以 .NET 為基礎,因此所有延伸模組都會在 .NET 執行階段支援的所有 CPU 平臺上執行。
科技
VisualStudio.Extensibility 模型主要是建置在 Visual Studio 代理服務提供的 RPC 合約之上。 延伸模組裝載於透過 RPC 與 Visual Studio 通訊的外部 ServiceHub 進程中。 延伸模組會利用 Visual Studio 所提供的服務,在某些情況下也可以提供 Visual Studio 進程的服務。
作為 SDK 一部分提供的擴充性套件包含這些 RPC 合約周圍的基類、公用程式方法和包裝函式物件,其目標是讓擴充性介面區域更容易使用和探索。 我們的目標是讓延伸模組作者更輕鬆地快速參與 Visual Studio 生態系統。
相關內容
若要深入瞭解,請查看這些文件和逐步解說以幫助您入門: