Introduzione a VisualStudio.Extensibility per gli utenti di VSSDK

Anche se le estensioni sono in genere state caricate nel processo di Visual Studio, VisualStudio.Extensibility offre la maggior parte delle estensioni di Visual Studio out-of-process. Questo modello out-of-process consente di creare estensioni più affidabili ed efficienti. La documentazione seguente descrive:

  • Architettura generale del nuovo modello di estendibilità
  • Come sfruttare le nuove API del modello di estendibilità
  • Come compilare e F5 eseguire il debug di un'estensione con il nuovo modello
  • Risorse ed esempi di codice per iniziare a scrivere un'estensione con il nuovo modello

Informazioni sul modello VisualStudio.Extensibility

Il nuovo modello VisualStudio.Extensibility mira a risolvere molti dei problemi riscontrati dagli sviluppatori quando si usano e scrivono estensioni in Visual Studio usando il modello precedente. Dovrà verificare le condizioni seguenti:

  • Arresti anomali causati dall'estensione e blocchi di Visual Studio e altre estensioni installate
  • Documentazione e API non coerenti e non aggiornate, requisiti per competenze specializzate e architettura eccessiva
  • Riavvio di Visual Studio necessario per installare le estensioni
  • Nessun supporto per .NET Core

La scrittura di estensioni con VisualStudio.Extensibility offre i vantaggi seguenti:

  • Maggiore affidabilità : le estensioni scritte con il nuovo modello sono out-of-process e non bloccano l'interfaccia utente di Visual Studio. Ciò significa che se l'estensione si arresta in modo anomalo, Visual Studio non si arresta in modo anomalo.
  • Riduzione della complessità dell'API: l'API del nuovo modello è stata creata da zero per essere più coesa e più semplice da implementare mantenendo al tempo stesso le funzionalità avanzate del modello precedente.
  • Solo .NET: per trarre vantaggio dai miglioramenti più recenti in .NET e C#, il nuovo modello di estendibilità supporterà solo .NET per l'hosting out-of-process ed è ospitato in un processo .NET.
  • Supporto di .NET Core: le estensioni out-of-process possono sfruttare il supporto per le versioni .NET più recenti e i vantaggi offerti.
  • Funzionalità di caricamento frequente: le estensioni scritte con il nuovo modello possono essere installate e caricate senza dover riavviare Visual Studio (escluse le estensioni che richiedono i prerequisiti dei componenti di Visual Studio che non sono ancora stati installati).
  • Multi-CPU Platform : poiché l'implementazione sottostante è basata su servizi negoziati compatibili con RPC ed è basata su .NET, tutte le estensioni verranno eseguite in tutte le piattaforme CPU supportate dal runtime .NET.

Tecnologia

Il modello VisualStudio.Extensibility si basa principalmente sui contratti RPC forniti come servizi negoziati da Visual Studio. Le estensioni sono ospitate in un processo ServiceHub esterno che comunica con Visual Studio tramite RPC. Le estensioni usano entrambi i servizi forniti da Visual Studio e possono anche fornire servizi al processo di Visual Studio in determinati casi.

I pacchetti di estendibilità forniti come parte dell'SDK sono costituiti da classi base, metodi di utilità e oggetti wrapper intorno a questi contratti RPC, con l'obiettivo di semplificare l'uso e l'individuazione dell'area di attacco di estendibilità. L'obiettivo è rendere più semplice per gli autori di estensioni contribuire rapidamente all'ecosistema di Visual Studio.

Per altre informazioni, vedere questi documenti e procedure dettagliate per iniziare: