Einführung in VisualStudio.Extensibility für VSSDK-Benutzer
Während Erweiterungen in der Regel in den Visual Studio-Prozess geladen wurden, bringt VisualStudio.Extensibility die meisten Visual Studio-Erweiterungen außer Prozess. Dieses out-of-proc-Modell ermöglicht es, zuverlässigere und leistungsfähigere Erweiterungen zu erstellen. In der folgenden Dokumentation wird beschrieben:
- Die allgemeine Architektur des neuen Erweiterbarkeitsmodells
- Nutzen der APIs des neuen Erweiterbarkeitsmodells
- Kompilieren und F5 Debuggen einer Erweiterung mit dem neuen Modell
- Ressourcen und Codebeispiele, um mit dem Schreiben einer Erweiterung mit dem neuen Modell zu beginnen
Informationen zum VisualStudio.Extensibility-Modell
Das neue VisualStudio.Extensibility-Modell zielt darauf ab, viele der Probleme zu beheben, die Entwickler beim Verwenden und Schreiben von Erweiterungen in Visual Studio mit dem alten Modell haben. Folgendes muss u. a. überprüft werden:
- Durch die Erweiterung verursachte Abstürze und Blockaden von Visual Studio und anderen installierten Erweiterungen
- Inkonsistente, veraltete Dokumente und APIs, Anforderungen an spezialisierte Expertise und überwältigende Architektur
- Neustarten von Visual Studio, das zum Installieren von Erweiterungen erforderlich ist
- Keine Unterstützung für .NET Core
Das Schreiben von Erweiterungen mit VisualStudio.Extensibility bietet die folgenden Vorteile:
- Höhere Zuverlässigkeit – Erweiterungen, die mit dem neuen Modell geschrieben wurden, sind out-of-proc und blockieren nicht die Visual Studio-Benutzeroberfläche. Wenn die Erweiterung abstürzt, stürzt VS daher nicht ab.
- Reduzierte API-Komplexität – Die API des neuen Modells wurde von Grund auf erstellt, um besser zu implementieren und gleichzeitig die erweiterte Funktionalität des alten Modells beizubehalten.
- .NET Only – Um von den neuesten Verbesserungen auf .NET und C# zu profitieren, unterstützt das neue Erweiterbarkeitsmodell nur .NET für das Out-of-Process-Hosting und wird in einem .NET-Prozess gehostet.
- .NET Core-Unterstützung – Out-of-Process-Erweiterungen können die Unterstützung für neuere .NET-Versionen und die Vorteile nutzen, die sie bieten.
- Hot-Loading-Funktionalität – Erweiterungen, die mit dem neuen Modell geschrieben wurden, können installiert und geladen werden, ohne Visual Studio neu zu starten (mit Ausnahme von Erweiterungen, die Visual Studio-Komponentenvoraussetzungen erfordern, die noch nicht installiert wurden).
- Cpuübergreifende Plattform – Da die zugrunde liegende Implementierung auf RPC-kompatiblen brokerierten Diensten basiert und .NET basiert, werden alle Erweiterungen auf allen CPU-Plattformen ausgeführt, die von .NET-Runtime unterstützt werden.
Technologie
Das VisualStudio.Extensibility-Modell basiert in erster Linie auf RPC-Verträgen, die als brokerierte Dienste von Visual Studio bereitgestellt werden. Die Erweiterungen werden in einem externen ServiceHub-Prozess gehostet, der über RPC mit Visual Studio kommuniziert. Erweiterungen nutzen beide Dienste, die von Visual Studio bereitgestellt werden, und stellen möglicherweise auch Dienste für den Visual Studio-Prozess in bestimmten Fällen bereit.
Erweiterbarkeitspakete, die als Teil des SDK bereitgestellt werden, bestehen aus Basisklassen, Hilfsmethoden und Wrapperobjekten um diese RPC-Verträge, mit dem Ziel, die Erweiterbarkeitsoberfläche zu vereinfachen und zu erkennen. Unser Ziel ist es, Erweiterungsautoren zu erleichtern, schnell zum Visual Studio-Ökosystem beizutragen.
Zugehöriger Inhalt
Weitere Informationen finden Sie in diesen Dokumenten und exemplarischen Vorgehensweisen für die ersten Schritte: