Delen via


Inleiding tot VisualStudio.Extensibility voor VSSDK-gebruikers

Hoewel extensies doorgaans zijn geladen in het Visual Studio-proces, brengt VisualStudio.Extensibility de meeste Visual Studio-extensies buiten het proces. Dit out-of-proc-model maakt het mogelijk om betrouwbaardere en performante extensies te maken. In de volgende documentatie wordt beschreven:

  • De algemene architectuur van het nieuwe uitbreidbaarheidsmodel
  • Profiteren van de API's van het nieuwe uitbreidbaarheidsmodel
  • Hoe een extensie compileren en debuggen met F5 met het nieuwe model
  • Resources en codevoorbeelden om aan de slag te gaan met het schrijven van een extensie met het nieuwe model

Over het VisualStudio.Extensibility-model

Het nieuwe VisualStudio.Extensibility-model is bedoeld om veel van de problemen op te lossen die ontwikkelaars ondervinden bij het gebruik en schrijven van extensies in Visual Studio met behulp van het oude model. Deze problemen zijn onder andere:

  • Door extensie veroorzaakte crashes en vastlopen van Visual Studio en andere geïnstalleerde extensies
  • Inconsistente, verouderde documenten en API's, vereisten voor gespecialiseerde expertise en overweldigende architectuur
  • Visual Studio opnieuw opstarten dat is vereist voor het installeren van extensies
  • Geen ondersteuning voor .NET Core

Het schrijven van extensies met VisualStudio.Extensibility biedt de volgende voordelen:

  • Verbeterde betrouwbaarheid – extensies die met het nieuwe model zijn geschreven, zijn out-of-proc en blokkeren de gebruikersinterface van Visual Studio niet. Dit betekent dat als de extensie vastloopt, VS niet crasht als gevolg hiervan.
  • Verminderde API-complexiteit : de API van het nieuwe model is vanaf de basis gebouwd om samenhangender en eenvoudiger te implementeren terwijl de geavanceerde functionaliteit van het oude model behouden blijft.
  • Alleen .NET : om te profiteren van de nieuwste verbeteringen in .NET en C#, biedt het nieuwe uitbreidbaarheidsmodel alleen ondersteuning voor .NET voor niet-proceshosting en wordt gehost in een .NET-proces.
  • .NET Core-ondersteuning : out-of-process-extensies kunnen profiteren van ondersteuning voor nieuwere .NET-versies en de voordelen die ze bieden.
  • Functionaliteit voor dynamisch laden: extensies die zijn geschreven met het nieuwe model, kunnen worden geïnstalleerd en geladen zonder Visual Studio opnieuw te hoeven starten (met uitzondering van extensies waarvoor vereisten voor Visual Studio-onderdelen zijn vereist die nog niet zijn geïnstalleerd).
  • Platformoverschrijdende CPU : omdat de onderliggende implementatie is gebaseerd op RPC-compatibele brokered services en .NET is gebaseerd, worden alle extensies uitgevoerd op alle CPU-platforms die worden ondersteund door .NET Runtime.

Technologie

Het VisualStudio.Extensibility-model is voornamelijk gebaseerd op RPC-contracten die worden geleverd als brokered services van Visual Studio. De extensies worden gehost in een extern ServiceHub-proces dat communiceert met Visual Studio via RPC. Extensies maken beide gebruik van services die worden geleverd door Visual Studio en kunnen in bepaalde gevallen ook services leveren aan het Visual Studio-proces.

Uitbreidbaarheidspakketten die als onderdeel van de SDK worden geleverd, bestaan uit basisklassen, hulpprogrammamethoden en wrapper-objecten rond deze RPC-contracten, met als doel het uitbreidbaarheidsoppervlak gemakkelijker te gebruiken en te ontdekken. Ons doel is om het voor auteurs van extensies gemakkelijker te maken om snel een bijdrage te leveren aan het Visual Studio-ecosysteem.

Bekijk deze documenten en overzichten voor meer informatie om u op weg te helpen: