Wprowadzenie do rozszerzenia VisualStudio.Extensibility dla użytkowników zestawu VSSDK

Rozszerzenia są zwykle ładowane do procesu programu Visual Studio, jednak rozszerzenie VisualStudio.Extensibility przynosi większość rozszerzeń programu Visual Studio poza procesem. Ten model out-of-proc umożliwia tworzenie bardziej niezawodnych i wydajnych rozszerzeń. W poniższej dokumentacji opisano:

  • Ogólna architektura nowego modelu rozszerzalności
  • Jak korzystać z interfejsów API nowego modelu rozszerzalności
  • Jak skompilować i debugować rozszerzenie F5 przy użyciu nowego modelu
  • Zasoby i przykłady kodu, aby rozpocząć pisanie rozszerzenia przy użyciu nowego modelu

Informacje o modelu rozszerzenia VisualStudio.Extensibility

Nowy model rozszerzenia VisualStudio.Extensibility ma na celu rozwiązanie wielu problemów, które deweloperzy doświadczają podczas korzystania z rozszerzeń i pisania ich w programie Visual Studio przy użyciu starego modelu. Te problemy obejmują:

  • Rozszerzenia spowodowały awarie i zawieszały się w programie Visual Studio i innych zainstalowanych rozszerzeniach
  • Niespójne, nieaktualne dokumenty i interfejsy API, wymagania dotyczące specjalistycznej wiedzy i przytłaczającej architektury
  • Ponowne uruchamianie programu Visual Studio wymaganego do zainstalowania rozszerzeń
  • Brak obsługi platformy .NET Core

Pisanie rozszerzeń przy użyciu rozszerzenia VisualStudio.Extensibility zapewnia następujące korzyści:

  • Zwiększona niezawodność — rozszerzenia napisane przy użyciu nowego modelu są poza proc i nie blokują interfejsu użytkownika programu Visual Studio. Oznacza to, że jeśli rozszerzenie ulegnie awarii, program VS nie ulegnie awarii w wyniku.
  • Zmniejszona złożoność interfejsu API — interfejs API nowego modelu został skompilowany od podstaw, aby był bardziej spójny i łatwiejszy do zaimplementowania przy zachowaniu zaawansowanych funkcji starego modelu.
  • Tylko platforma .NET — aby korzystać z najnowszych ulepszeń na platformie .NET i W języku C#, nowy model rozszerzalności będzie obsługiwać tylko platformę .NET na potrzeby hostingu poza procesem i jest hostowany w procesie platformy .NET.
  • Obsługa platformy .NET Core — rozszerzenia poza procesami mogą korzystać z obsługi nowszych wersji platformy .NET i korzyści, jakie przynoszą.
  • Funkcja ładowania na gorąco — rozszerzenia napisane przy użyciu nowego modelu można zainstalować i załadować bez konieczności ponownego uruchamiania programu Visual Studio (z wyłączeniem rozszerzeń wymagających wymagań wstępnych składników programu Visual Studio, które nie zostały jeszcze zainstalowane).
  • Platforma między procesorami CPU — ponieważ podstawowa implementacja jest oparta na usługach obsługiwanych przez brokera RPC i jest oparta na platformie .NET, wszystkie rozszerzenia będą działać na wszystkich platformach procesora CPU obsługiwanych przez środowisko uruchomieniowe platformy .NET.

Technologia

Model rozszerzalności VisualStudio.Extensibility jest oparty głównie na kontraktach RPC udostępnianych jako usługi obsługiwane przez brokera z programu Visual Studio. Rozszerzenia są hostowane w zewnętrznym procesie usługi ServiceHub, który komunikuje się z programem Visual Studio za pośrednictwem procedury RPC. Rozszerzenia korzystają zarówno z usług udostępnianych przez program Visual Studio, jak i mogą również świadczyć usługi w procesie programu Visual Studio w niektórych przypadkach.

Pakiety rozszerzalności udostępniane w ramach zestawu SDK składają się z klas bazowych, metod narzędziowych i obiektów otoki wokół tych kontraktów RPC, dzięki czemu obszar powierzchni rozszerzalności jest łatwiejszy do użycia i odnajdywania. Naszym celem jest ułatwienie autorom rozszerzeń szybkiego współtworzenia ekosystemu programu Visual Studio.

Aby dowiedzieć się więcej, zapoznaj się z tymi dokumentami i przewodnikami, aby rozpocząć pracę: