Delen via


Over VisualStudio.Extensibility (Preview)

VisualStudio.Extensibility is een nieuw framework voor het ontwikkelen van Visual Studio-extensies die zich voornamelijk richten op extensies die niet meer worden verwerkt vanuit de IDE voor verbeterde prestaties en betrouwbaarheid. Het beschikt over een moderne, asynchrone API die gestroomlijnd en zorgvuldig is ontworpen om de productiviteit van ontwikkelaars te maximaliseren. VisualStudio.Extensibility is actief in ontwikkeling en is beschikbaar als preview.

Met de huidige preview kunt u een breed scala aan extensies ontwikkelen voor Visual Studio, waaronder, maar niet beperkt tot:

  • Opdrachten maken
  • Werken met code of tekst in de editor
  • Prompts of dialoogvensters voor de gebruiker weergeven
  • Visualisaties voor foutopsporingsprogramma's maken

VisualStudio.Extensibility is bedoeld om veel van de problemen op te lossen die ontwikkelaars ondervinden bij het gebruik en schrijven van extensies in Visual Studio. Het schrijven van extensies met VisualStudio.Extensibility biedt de volgende voordelen:

  • Verbeterde betrouwbaarheid: Visual Studio blijft responsief en crasht niet als een extensie vastloopt of crasht.
  • verminderde API-complexiteit: VisualStudio.Extensibility heeft een vereenvoudigde architectuur, consistente API's en duidelijke documentatie.
  • functionaliteit voor dynamisch laden: Visual Studio hoeft niet opnieuw te worden opgestart bij het installeren van extensies.

Uiteindelijk kunt u de VisualStudio.Extensibility SDK gebruiken om elke extensie te schrijven die u kunt schrijven met behulp van de Visual Studio SDK. Tot die tijd kunt u echter situaties tegenkomen waarin de functionaliteit die u nodig hebt in uw extensie nog niet beschikbaar is in VisualStudio.Extensibility. In dat geval kunt u VisualStudio.Extensibility SDK gebruiken in combinatie met Visual Studio SDK die in het proces wordt uitgevoerd om alle functieverschillen te dekken. Voor meer informatie, zie Uitbreidingen voor in-proc.

De meest recente informatie over VisualStudio.Extensibility vindt u in de GitHub-opslagplaats VSExtensibility op aankondigingen.

Artikel Beschrijving
VisualStudio.Extensibility installeren Download en installeer de nieuwste preview van VisualStudio.Extensibility.
Aan de slag Begin met inleidende handleidingen en quickstarts als u nog nooit eerder een extensie hebt ontwikkeld.
Concepten Bouw uw mentale model van hoe de SDK en extensies werken.
Overzichten Meer informatie vindt u in overzichten van elk belangrijk gebied van functionaliteit.
Voorbeelden Verken voorbeeldcode waarmee belangrijke functies worden gedemonstreerd.
API-verwijzing Blader door de documentatie van de VisualStudio.Extensibility-API.
Experimentele API's en Ingrijpende Wijzigingen Meer informatie over onze benadering van stable-vs-experimentele API's en over het verbreken van wijzigingen uit de vorige versie.
bekende problemen Bekijk bekende problemen met de VisualStudio.Extensibility SDK.
Geavanceerde onderwerpen Informatie over implementatiedetails van de VisualStudio.Extensibility SDK.

VisualStudio.Extensibility installeren

De huidige preview van VisualStudio.Extensibility werkt met Visual Studio 2022 versie 17.9 Preview 1 of hoger met de Visual Studio extension development workload die moet worden geïnstalleerd.

Aan de slag

De volgende artikelen helpen u te oriënteren en aan de slag te gaan.

Als u wilt weten hoe u werkt met VisualStudio.Extensibility, raden we u aan een grondig inzicht te krijgen in asynchrone programmering met asynchroon programmeren en wachten op en afhankelijkheidsinjectie. Bovendien is de UI in VisualStudio.Extensibility gebaseerd op Windows Presentation Foundation (WPF), dus wilt u misschien de WPF-documentatiebekijken.

Concepten

Als u bekend bent met de Visual Studio SDK, raadpleegt u Inleiding tot VisualStudio.Extensibility voor VSSDK-gebruikers.

Zie Onderdelen van een nieuwe Visual Studio-extensie voor meer informatie over de architectuur van een extensie om uw mentale model te bouwen. Verder kunt u meer lezen over afhankelijkheidsinjectie die wordt gebruikt om onderdelen te delen tussen onderdelen van een extensie.

Zie Functionele gebieden van de SDKvoor meer informatie over wat er is opgenomen in de SDK.

Wanneer en waar moet uw extensie worden weergegeven in de IDE? Visual Studio-extensies worden weergegeven in de IDE wanneer aan bepaalde voorwaarden wordt voldaan. Zie activeringsbeperkingen op basis van regelsom te bepalen hoe en wanneer uw extensie wordt weergegeven in de IDE.

Visual Studio-extensies maken hun functies beschikbaar voor Visual Studio via bijdragen. Zie Bijdragen voor meer informatie

Meer informatie over het Remote UI model dat wordt gebruikt in VisualStudio.Extensibility.

Overzichten

Lees een overzicht van de gebieden van de SDK die u mogelijk nodig hebt voor uw uitbreidingsontwikkelingsprojecten.

  • Maak opdrachten en maak ze beschikbaar voor gebruikers in de IDE. Zie Opdrachten.
  • Werk met de inhoud van bestanden en documenten, zie Editor-extensies.
  • Werk met de in-het-geheugen weergave van deze documenten zelf, zie Documenten.
  • Gebruik het uitvoervenster in een extensie, zie Uitvoervenster.
  • Werk met de hulpprogrammavensters, dokbare vensters in de Visual Studio IDE, zie Toolvensters.
  • Gebruik prompts met aanpasbare knoppen om met de gebruiker te communiceren. Zie gebruikersprompts.
  • Dialoogvensters gebruiken met aangepaste gebruikersinterface om met de gebruiker te communiceren, zie dialoogvensters
  • Aangepaste gegevensvisualisaties maken bij foutopsporing, zie Visualisaties voor foutopsporingsprogramma's
  • Informatie over projecten en oplossingen opvragen of wijzigen, zie ProjectQuery-
  • Instellingen definiëren, lezen en bijwerken, zie Instellingen
  • Werk met taalservers/LSP voor aanvullende taalondersteuning. Zie Language Server Provider

Voorbeelden en zelfstudies

U vindt een Visual Studio-oplossing met alle voorbeelden op Samples.sln.

Monster Beschrijving
eenvoudige opdrachthandler Demonstreert de basisbeginselen van het werken met opdrachten. Zie ook de zelfstudie Uw eerste Visual Studio-extensie maken.
Guid-extensie invoegen Laat zien hoe u tekst of code invoegt in de code-editor, hoe u een opdracht configureert met een specifieke activeringsvoorwaarde en hoe u een resourcebestand gebruikt voor lokalisatie. Zie ook de tutorial Maak uw eenvoudige extensie.
autoritatief ouderschap Laat zien hoe u een opdracht maakt die kan worden gekoppeld aan verschillende aspecten van de IDE.
documentkiezer Laat zien hoe u een editorextensie maakt die alleen van toepassing is op bestanden die overeenkomen met een bestandspadpatroon.
uitvoervenster Toont het basisgebruik van de Uitvoervenster-API
hulpprogrammavenster Laat zien hoe u een hulpprogrammavenster maakt en vult met inhoud.
gebruikersprompt Laat zien hoe u een prompt voor de gebruiker weergeeft.
Dialoogvenster Laat zien hoe u een dialoogvenster met aangepaste gebruikersinterface voor de gebruiker weergeeft.
marge voor woordenaantal Laat zien hoe u een editormargeextensie maakt waarmee het aantal woorden in een document wordt weergegeven.
Markdown-linter Laat zien hoe meerdere onderdelen kunnen samenwerken in een extensie en hoe verschillende gebieden van Visual Studio kunnen worden uitgebreid.
Projectquery Toont verschillende soorten projectsysteemquery's die u kunt maken.
opmerking verwijderen Laat zien hoe u Visual Studio SDK-services gebruikt via .NET-afhankelijkheidsinjectie en visualStudio.Extensibility-API's gebruikt voor opdrachten, prompts en voortgangsrapport.
RegexMatchDebugVisualizer- Laat zien hoe u de Remote UI kunt gebruiken om een Debugger-Visualisator te maken, waarmee reguliere expressiematches kunnen worden gevisualiseerd die in een modaal dialoogvenster worden gestart.
MemoryStreamDebugVisualizer- Laat zien hoe u een Debugger Visualizer maakt om MemoryStream-objecten te visualiseren die worden gestart in een niet-modaal toolvenster.
RustLanguageServiceProvider Toont hoe je een Rust-taalserverproviderextensie maakt die Intellisense en tooltips toevoegt wanneer een Rust-bestand wordt geopend.
CompositeExtension Hoe je een extensie maakt met in-proc- en out-of-proc-onderdelen die met brokered services communiceren.

Experimentele API's en belangrijke wijzigingen

Vanaf onze release van 17.9 zijn we klaar om de meeste API's als stabiel te labelen. Dat wil gezegd, we zijn niet van plan om belangrijke wijzigingen aan te brengen in deze API's. Eventuele belangrijke wijzigingen, zoals de wijzigingen die worden gevraagd door feedback van gebruikers over bruikbaarheid, worden formeel vooraf gecommuniceerd op onze belangrijke wijzigingen pagina met ruime kennisgeving.

Er zijn een paar van onze API's die nog niet voldoen aan deze balk voor stabiliteit, om een van de volgende redenen:

  • Het functiegebied is nieuw en aanvullende functies en wijzigingen worden verwacht in toekomstige versies.
  • De API is nieuw en we willen feedback van gebruikers opnemen in het ontwerp voordat deze stabiel wordt gemarkeerd.
  • We hebben feedback ontvangen dat een bepaalde API moeilijk te gebruiken is, dus we zijn van plan deze in toekomstige versies bij te werken.

Deze API's worden expliciet gelabeld met behulp van het kenmerk [Experimental] om auteurs van extensies te helpen hun extensies te maken met vertrouwen in de SDK.

Zie onze Experimentele API's pagina voor meer informatie, waaronder het gebruik van experimentele API's.

Bekende problemen

We waarderen uw feedback en foutenrapporten in onze Issues Trackeren we werken aan het oplossen van eventuele problemen die in de SDK zijn gevonden.

Ga naar onze bekende problemen pagina voor informatie over eventuele actuele bekende problemen.

Geavanceerde onderwerpen

Artikel Beschrijving
andere concepten voor externe gebruikersinterfaces Aanvullende onderwerpen met betrekking tot het werken met het externe UI-model
Geavanceerde externe gebruikersinterface- Uitgebreide informatie over het externe UI-model
In-proc-extensies Een beknopt overzicht van verschillende opties voor het gebruik van VisualStudio.Extensibility SDK in-proc

API-documenten

Feedback verzenden

We zoeken actief naar feedback en betrokkenheid. De preview-fase is een goed moment om community-invoer te krijgen om ons te helpen bij het identificeren van problemen en kansen. U kunt feedback geven en bugs rapporteren in onze problemen tracker.