Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 15 Min.

Mit der Zeit gehen

Bei Visual Studio 2022 ergeben sich Änderungen hinsichtlich Add-ons. Bestehende Erweiterungen sollten angepasst werden.
© dotnetpro
Visual Studio 2022 ist eine integrierte Entwicklungsumgebung (IDE) von Microsoft, die eine leistungsstarke Plattform zum Erstellen, Debuggen und Testen von Code und Anwendungen bietet. Sie unterstützt eine Vielzahl von Programmiersprachen und Technologien, darunter unter anderem C#, C++, Visual Basic, F# und Python. Eine der Stärken von Visual Studio ist seine Erweiterbarkeit, die es ermöglicht, die Funktionalität der IDE durch kleine Anwendungen, sogenannte Add-ons, zu erweitern und anzupassen.Erweiterungen sind Komponenten, die in Visual Studio eingebunden werden können, um die Nutzererfahrung zu verbessern und die Produktivität zu steigern. Sie können neue Funktionen hinzufügen, bestehende Tools einbinden oder den Arbeitsablauf anpassen. Beispiele für Erweiterungen sind Codegeneratoren, Debugging-Tools, Projektvorlagen, Tools zur Codeanalyse und zur Einbindung externer Dienste wie GitHub oder Azure DevOps. Näheres erläutert der Kasten Was sind Erweiterungen?Der Übergang von Visual Studio 2019 zu 2022 hat einige Änderungen in der Produktarchitektur und der Implementierung von Erweiterungen mit sich gebracht. Dazu gehört beispielsweise die Unterstützung für 64-Bit-Architekturen, die es ermöglicht, leistungsfähigere und ressourceneffizientere Erweiterungen zu erstellen. Diese Anpassungen haben auch Auswirkungen auf bestehende und neue Erweiterungen.Dieser Artikel konzentriert sich auf die Implementierung von Erweiterungen mit Visual Studio 2022 und auf die Migration von Erweiterungen von Visual Studio 2019 auf 2022. Durch die Änderungen in der neuen Version der Entwicklungsumgebung ist hier mit Anpassungen zu rechnen. Nicht jede Erweiterung lässt sich problemlos von der älteren auf die aktuelle Version übertragen.

Was ist Visual Studio 2022?

Visual Studio 2022 ist die jüngste Version der IDE von Microsoft, die bereits in einer früheren dotnetpro-Ausgabe ausführlich vorgestellt wurde [1]. Sie bietet eine Reihe von Verbesserungen und neuen Funktionen, welche die Produktivität und Nutzerfreundlichkeit steigern sollen.Eine der wichtigsten Neuerungen in Visual Studio 2022 ist die Umstellung auf eine 64-Bit-Anwendung. Darüber hinaus hat Microsoft die Leistung der IDE in verschiedenen Bereichen verbessert, wie zum Beispiel bei der Suchfunktion In Dateien suchen, die nun deutlich schneller ist.An der Programmierschnittstelle zu Visual Studio 2022 hat Microsoft ebenfalls einige Änderungen vorgenommen, um die Stabilität und Leistung der IDE zu erhöhen. Viele APIs haben sich geändert, die in der Regel aber mit einfachen Anpassungen zu bewältigen und für den eigenen Code leicht umzusetzen sind. Diese Änderungen führen an zahlreichen Stellen dazu, dass Erweiterungen für Visual Studio an die neue Version angepasst werden müssen.

Erweiterungen für Visual Studio 2022

Das Erstellen von Erweiterungen für Visual Studio 2022 ermöglicht es, die Funktionalität der IDE anzupassen. Um solche Erweiterungen zu entwickeln, sind einige Voraussetzungen zu schaffen, wie die Installation des Visual Studio SDK [2], das zusätzliche Tools und Ressourcen für die Erstellung von Erweiterungen bereitstellt.Es gibt verschiedene Erweiterungsmöglichkeiten in Visual Studio, wie nutzerdefinierte Befehle, Menüs, Symbolleisten, Code-Snippets, Projektvorlagen, (Tool-)Fenster und IntelliSense-Funktionen. Damit ist es möglich, die IDE an spezifische Anforderungen anzupassen. Eine Möglichkeit, eine Erweiterung zu erstellen, besteht darin, die VSIX-Projektvorlagen [3] zu verwenden, die Visual Studio zur Verfügung stellt (Bild 1).
Der Dialog zum Anlegen eines neuen VSIX-Projekts (Bild 1) © Autor
Diese Vorlagen ermöglichen es, eine oder mehrere Visual-Studio-Erweiterungen in einem VSIX-Projekt zu verpacken und das Paket dann auf der Website des Visual Studio Marketplace zu veröffentlichen.Um eine solche Erweiterung zu erstellen, ist zunächst das ­Visual Studio SDK zu installieren. Anschließend tauchen die VSIX-Projektvorlagen im Dialog Neues Projekt auf. Je nach Anzahl der bereits verfügbaren Projektvorlagen ist eine Suche nach „vsix“ sinnvoll. Es gibt sowohl eine C#- als auch eine Visual-Basic-Version der Vorlage. Nachdem das VSIX-Projekt erstellt ist, kann die Entwicklung an der Erweiterung beginnen.Während des Entwicklungsprozesses erfolgen die Tests einer Erweiterung in einer experimentellen Instanz von Visual Studio, um sicherzustellen, dass sie wie erwartet funktioniert (Bild 2).
Screenshot einer experimentellen Visual-Studio-Instanz zum Testen einer Erweiterung (Bild 2) © Autor
Nach der Fertigstellung der Erweiterung ist sie bereit für eine Veröffentlichung im Visual Studio Marketplace, damit andere Nutzer sie herunterladen und installieren können.Durch die Nutzung des Visual Studio SDK und der VSIX-Projektvorlagen lassen sich diese nutzerdefinierten Erweiterungen schnell umsetzen. Die mit Visual Studio 2022 eingeführten Änderungen sind Thema im weiteren Verlauf dieses Artikels.

Visual Studio 2019 versus 2022

Die Implementierung von Erweiterungen in Visual Studio hat sich zwischen den Versionen 2019 und 2022 in einigen Aspekten verändert. Eine der wichtigsten Änderungen betrifft die Produktarchitektur, da Visual Studio 2022 nun eine 64-Bit-Anwendung ist. Dies bedeutet, dass das Programm über deutlich mehr Speicher verfügt als die Version 2019In Visual Studio 2022 haben sich auch einige APIs geändert, wurden entfernt oder angepasst. Daher sind Erweiterungen zu aktualisieren, um diese Änderungen zu berücksichtigen und sicherzustellen, dass eine Erweiterung in der neuen Version der IDE korrekt funktioniert.Schließlich gibt es Änderungen an den Meldungen des ­Visual Studio SDK [4], die ebenfalls Anpassungen erfordern können. Das bedeutet, dass es insgesamt einige kleine und große Unterschiede zwischen Visual Studio 2019 und 2022 bei der Implementierung von Erweiterungen gibt. Das macht mindestens einen Test erforderlich, um eine Erweiterung in der neuen Version auszuprobieren.

Ein Beispiel

Das folgende Beispiel in C# zeigt eine Erweiterung für Visual Studio 2022, die ein nutzerdefiniertes Tool-Fenster hinzufügt. Sie verwendet dazu das Visual Studio SDK.Zunächst ist ein allgemeines Tool-Fenster durch eine Klasse zu erstellen, wie es in Listing 1 dargestellt ist. Hier wird ­eine neue Klasse MyToolWindow erzeugt, die von der ToolWindowPane-Klasse erbt. Der Konstruktor setzt den Titel des Fensters und weist dem Content-Attribut ein neues MyToolWindowControl-Objekt zu.

Was sind Erweiterungen?

Erweiterungen, auch bekannt als Add-ons, Plug-ins oder Add-ins, sind zusätzliche Softwaremodule, welche die Funktionalität einer bestehenden Anwendung erweitern oder verbessern. Sie sind in der Regel optional und können nach Bedarf hinzugefügt oder entfernt werden, ohne dass das Hauptprogramm geändert werden muss.
In Listing 2 ist der Code zu sehen, um ein nutzerdefiniertes Steuerelement zu erstellen, das im Fenster platziert werden kann. Dazu wird neue Klasse MyToolWindowControl erzeugt, die von der UserControl-Klasse erbt. Der Konstruktor der Klasse erstellt ein StackPanel und fügt ihm ein TextBlock-Element hinzu, das eine Begrüßungsnachricht enthält. Schließlich wird das StackPanel dem Content-Attribut des UserControl übergeben.
Listing 1: Ein Tool-Fenster für die Erweiterung
using System.Runtime.InteropServices;<br/>using Microsoft.VisualStudio.Shell;<br/> 
Nachdem diese Beispielerweiterung erstellt ist, kann sie in Visual Studio 2022 installiert und verwendet werden. Das neue Tool-Fenster lässt sich öffnen, um die Begrüßungsnachricht anzuzeigen. Das Beispiel zeigt, wie einfach es ist, eine grundlegende Erweiterung für Visual Studio 2022 mit einem Tool-Fenster einzurichten.Entwickler können dafür auf Ressourcen wie den Visual Studio Marketplace, Microsoft Docs, die Online-Community Gitter und das VSExtensibility-Repository auf GitHub [5] zurückgreifen, um Unterstützung, Inspiration und Zusammenarbeit beim Erstellen und Verwendung von Erweiterungen zu finden.

Erweiterungen migrieren

Zu den Empfehlungen für die Migration einer Erweiterung gehören zwei VSIX-Projekte und die bedingte Kompilierung, insbesondere wenn die Erweiterungen größere Änderungen erfordern, um sowohl in Visual Studio 2019 als auch in Visual Studio 2022 zu funktionieren. Viele Erweiterungen funktionieren jedoch in beiden Versionen mit nur geringfügigen Änderungen, die keine umfassende Modernisierung erfordern.Vor der Modernisierung eines Projekts empfiehlt es sich, vom veralteten Verwaltungsformat packages.config [6] für Projektabhängigkeiten auf das moderne Format mit <PackageReference> zu wechseln, falls noch nicht geschehen [7]. Dieses neue Format steht ab Visual Studio 2017 Version 15.7 zur Verfügung. Diese Anpassung erlaubt es im nächsten Schritt, alle Assembly-Verweise auf das Visual Studio SDK durch das <PackageReference>-Elemente auszutauschen. Das sieht für eine konkrete Abhängigkeit wie folgt aus:

Alt:
&lt;Reference
  Include="Microsoft.VisualStudio.OLE.Interop" /&gt;
Neu:
&lt;PackageReference Version="..."
  Include="Microsoft.VisualStudio.OLE.Interop" /&gt; 
Die Schritte zur Aktualisierung einer bestehenden Erweiterung umfassen das Hinzufügen eines neuen gemeinsamen freigegebenen Projekts für jedes vorhandene Projekt, das auf das Visual Studio SDK verweist, und das Hinzufügen eines neuen VSIX-Projekts, das Visual Studio 2022 anvisiert.Dazu ist zunächst der mit der Vorlage gelieferte Quellcode zu entfernen, die Datei source.extension.vsixmanifest ist jedoch beizubehalten. Anschließend wird dem neuen VSIX-Projekt eine Referenz zum gleichen gemeinsamen Projekt hinzugefügt, auf welches das auf Visual Studio 2019 zielende VSIX verweist.Freigegebene Projekte sind in Visual Studio 2015 hinzugekommen. Bei freigegebenen Projekten können Quellcode­dateien zwischen mehreren Projekten gemeinsam genutzt und unterschiedlich erstellt werden, indem bedingte Kompilierungssymbole und eindeutige Sätze von Verweisen verwendet werden. Für jedes vorhandene Projekt in der Projektmappe der Erweiterung, die auf das Visual Studio SDK verweist, ist ein solches freigegebenes Projekt hinzuzufügen. Die zuvor identifizierten Projekte, die auf das SDK verweisen, benötigen nun einen Verweis auf das gemeinsam genutzte Projekt. Dadurch wird es möglich, den gesamten Quellcode aus den Projekten, die das SDK referenzieren, in das gemeinsam genutzte Projekt zu verschieben. In das freigegebene Verzeichnis dieses Projekts sind zudem alle Metadatenda­teien wie Lizenzen, Symbole und dergleichen zu verschieben. Durch ein Kompilieren lässt sich sicherstellen, dass bis hierhin keine Fehler aufgetreten sind.Um jetzt noch die Unterstützung für Visual Studio 2022 zu ergänzen, ist ein neues VSIX-Projekt der Projektmappe hinzuzufügen. Dieses Projekt wird die neue Version unterstützen. Als Erstes muss das Projekt einen Verweis auf das freigegebene Projekt erhalten, das weiter oben angelegt wurde. Auch hier kann das Kompilieren dieses neuen VSIX-Projekts sicherstellen, dass bis zu diesem Schritt alles funktioniert. Je nach Erweiterung sind weitere Verweise hinzuzufügen.Jetzt können Sie die Paketverweise von 16.x (alte Version) auf 17.x (neue Version) von Visual Studio anpassen. Anschließend ist die Datei source.extension.vsixmanifest an der Reihe. Diese ist zu aktualisieren, um die Unterstützung für Vi­sual Studio 2022 hinzuzufügen. Dazu ist ein neuer InstallationTarget-Eintrag für Visual Studio 2022 notwendig, der wie in Listing 3 gezeigt aussieht.
Listing 2: Implementierung eines User-Controls für die Erweiterung
using System.Windows.Controls;&lt;br/&gt;namespace MyToolWindowExtension&lt;br/&gt;{&lt;br/&gt;  public class MyToolWindowControl : UserControl&lt;br/&gt;  {&lt;br/&gt;    public MyToolWindowControl()&lt;br/&gt;    {&lt;br/&gt;      var stackPanel = new StackPanel();&lt;br/&gt;      var textBlock = new TextBlock&lt;br/&gt;      {&lt;br/&gt;        Text = "Ein benutzerdefiniertes Tool-Window!"&lt;br/&gt;      };&lt;br/&gt;      stackPanel.Children.Add(textBlock);&lt;br/&gt;      this.Content = stackPanel;&lt;br/&gt;    }&lt;br/&gt;  }&lt;br/&gt;} 
Als nächster Schritt ist der Code der Erweiterung auf den Einsatz von APIs hin zu überprüfen, die in Visual Studio 2022 geändert, entfernt oder migriert wurden. Beispielsweise ist die bereits erwähnte Schnittstelle IBlockContextProvider gegen die neue Schnittstelle IStructureContextSourceProvider auszutauschen und dergleichen.Zudem ist es wichtig, das Projekt für die 64-Bit-Architektur zu kompilieren, da Visual Studio 2022 ja nun eine 64-Bit-Anwendung ist. Dazu lässt sich die Plattform-Zieloption in den Projekteigenschaften auf x64 oder Any CPU setzen.Nun ist das Projekt bereit zum Kompilieren und Testen. Die Erweiterung sollte trotz des oder gerade aufgrund des beschriebenen Migrationspfades intensiv getestet werden. Dadurch lassen sich hoffentlich Fehler finden, die durch die Migration an sich entstanden sind. Zudem ist im Kontext des neuen Visual Studios zu testen, ob weiterhin alles ordnungsgemäß funktioniert. Abhängig von der Komplexität einer Erweiterung und den verwendeten APIs sind möglicherweise noch zusätzliche Anpassungen vorzunehmen, um die Migration abzuschließen.Für .NET-Erweiterungen und C++-Erweiterungen gelten dieselben grundlegenden Schritte zur Migration. Es ist wichtig, die spezifischen Anforderungen und Unterschiede zwischen den beiden Technologien zu berücksichtigen und sicherzustellen, dass die Erweiterungen in beiden Umgebungen ihre Arbeit korrekt verrichten.Ein wichtiger Faktor ist, Erweiterungen zu unterscheiden, die Code ausführen, und solche, die dies nicht tun. Erweiterungen, die keinen Code ausführen, wie beispielsweise Projekt- oder Elementvorlagen, sind nicht wie oben beschrieben zu migrieren; Erweiterungen, die Code ausführen, müssen dagegen speziell für Visual Studio 2022 kompiliert sein. Visual Studio 2022 lädt keine Erweiterungen, die auf eine frühere Version von Visual Studio ausgerichtet sind. In beiden Fällen ist es essenziell, die experimentelle Instanz von Vi­sual Studio zum Testen der Erweiterung zu verwenden, um zu garantieren, dass sie wie erwartet funktioniert. Die experimentelle Instanz ermöglicht es, die Erweiterungen in einer isolierten Umgebung zu testen, ohne die reguläre Visual-Studio-Installation zu beeinträchtigen.

API-Anpassungen in Visual Studio 2022

Wie schon erwähnt, bringt Visual Studio 2022 einige Änderungen in den APIs mit sich, die zu beachten sind, wenn Erweiterungen migriert oder aktualisiert werden müssen. Microsoft teilt die Anpassungen in die Kategorien „Breaking“, „Removed“ und „Migrated“ ein. Das zeigt schon auf den ersten Blick, dass es Änderungen gibt, die Funktionalität verändern, dass es entfernte Funktionen gibt und dass Schnittstellen vorhanden sind, die von Microsoft migriert wurden.Ein Beispiel für eine „Breaking“-API-Änderung ist die bereits angesprochene Umstellung auf eine 64-Bit-Anwendung. Diese Änderung hat Auswirkungen auf die Interoperabilität von Erweiterungen, die in älteren Versionen von Visual Studio erstellt wurden. Das macht Anpassungen an Erweiterungen notwendig, um sicherzustellen, dass sie auch in der neuen 64-Bit-Version von Visual Studio 2022 ohne Probleme funktionieren.Um Visual Studio 2022 zu einem 64-Bit-Prozess zu machen, haben einige Interop-APIs Anpassungen erfahren. Diese Schnittstellen sind davon ausgegangen, dass ein Zeiger in ­eine 32-Bit-Ganzzahl passt, um tatsächlich einen Wert in Zeigergröße zu verwenden. Die zwei nachfolgenden Codebeispiele zeigen den Zustand vorher und nachher:

Alt: shell.LoadLibrary(myGuid, myFlags,
  out uint ptrLib);

Neu: shell.LoadLibrary(myGuid, myFlags,
  out IntPtr ptrLib); 
Darüber hinaus sind einige Schnittstellen entfallen, wie zum Beispiel beim veralteten Find-API. Die folgende Liste zeigt einen Ausschnitt an Methoden, die in Visual Studio 2022 nicht mehr zur Verfügung stehen:

EditPoint.FindPattern(String, Int32, EditPoint,
  TextRanges)
EditPoint.ReplacePattern(TextPoint, String, String,
  Int32, TextRanges)
TextSelection.FindPattern(String, Int32, TextRanges)
TextSelection.ReplaceText(String, String, Int32) 
Ein Beispiel für ein „Removed“-API in Visual Studio 2022 ist die Schnittstelle IBlockContextProvider samt zugehöriger Typen. Soll diese Schnittstelle zum Einsatz kommen, ist stattdessen das Interface IStructureContextSourceProvider zu verwenden. Auch die Schnittstelle IToolTipProvider hat sozusagen das Zeitliche gesegnet und ist, wieder inklusive der zugehörigen Typen, in Visual Studio 2022 verschwunden. Als Ersatz fungiert nun das Interface IToolTipService.Im Fall der migrierten APIs existiert eine recht lange von Microsoft bereitgestellte Liste [8]. Statt einen Wust an Assemblies bereitzuhalten, gibt es jetzt eine vereinheitlichte Interop-Assembly. Zudem sind diese neuen Assemblies auf NuGet verfügbar und nicht nur über lokale Visual-Studio-Installa­tionen. Tabelle 1 zeigt einige dieser Vereinheitlichungen.

Beispiele für migrierte APIs

Vor Visual Studio 2022 Ab Visual Studio 2022
VSLangProj165 Microsoft.VisualStudio.Interop
VSLangProj2 Microsoft.VisualStudio.Interop
VSLangProj80 Microsoft.VisualStudio.Interop
VSLangProj90 Microsoft.VisualStudio.Interop
An dieser Stelle sei der kurze Hinweis erlaubt, dass es wichtig ist, die Dokumentation und Ressourcen von Microsoft zu nutzen. Das Wissen hilft sicherzustellen, dass die Erweiterungen korrekt funktionieren und dass Sie die neuen Funk­tionen von Visual Studio 2022 optimal nutzen.

Erweiterungspakete

Erweiterungspakete sind eine Sammlung von Erweiterungen, die gemeinsam installiert werden können, um die Funktionalität von Visual Studio zu erweitern und anzupassen. Sie ermöglichen es, bevorzugte Erweiterungen mit anderen Nutzern zu teilen oder eine Reihe von Erweiterungen für bestimmte Szenarien zu bündeln.Um ein Erweiterungspaket zu erstellen, ist ebenfalls das Visual Studio SDK notwendig, das als optionales Merkmal im Visual-Studio-Setup enthalten ist. Seit Visual Studio 15.8 Preview 2 ist das Erweiterungspaket-Feature als Visual Studio Extension-Entwicklung verfügbar. Es stellt dafür eine entsprechende Vorlage zur Verfügung. Die VSIX-ID einer Erweiterung, die in ein Erweiterungspaket eingebunden werden soll, findet sich im Visual Studio Marketplace bei der entsprechenden Erweiterung [9].

Erweiterungen verwalten

In Visual Studio 2022 lassen sich Erweiterungen mithilfe der Programmfunktion Erweiterungen verwalten suchen, installieren und verwalten. Die entsprechende Einstellung verbirgt sich hinter dem Menüpunkt Erweiterungen | Erweiterungen verwalten. Hier lässt sich eine Erweiterung suchen, installieren oder eine vorhandene entfernen.Erweiterungen, die in VSIX-Dateien verpackt sind, können auch außerhalb des Visual Studio Marketplace verfügbar sein. Diese Dateien erkennt der genannte Dialog allerdings nicht. Diese VSIX-Datei lassen sich aber ohne Probleme trotzdem installieren, indem die Datei mit einem Doppelklick gestartet wird.Ab Visual Studio 17.7 Preview 3 bietet die IDE eine Vorschau des modernisierten Erweiterungsmanagers, der Details zu Erweiterungen hervorhebt und dabei hilft, nützliche Erweiterungen leichter zu finden [10]. Um den neuen Manager zu verwenden, muss Visual Studio 17.7 Preview 3 oder eine neuere Version aus dem Preview-Channel installiert sein. Sodann navigieren Sie über das MenuExtras | Optionen | Umgebung zu „Vorschaufeatures“ und aktivieren dort die Funktion Extension Manager UI Refresh. Nach dem Neustart von Visual Studio befindet sich der aktualisierte Extension Manager unter Erweiterungen | Erweiterungen verwalten (Bild 3)
Die neue Verwaltung für Erweiterungen in der Visual-Studio-Preview (Bild 3) © Autor
.

Support durch Community-Ressourcen

Die Ressourcen und die Community rund um Visual-Studio-Erweiterungen bieten eine Vielzahl von Möglichkeiten, um bei der Arbeit damit Unterstützung, Inspiration und eventuell zur Zusammenarbeit zu finden. Ein zentraler Ort für alle Erweiterungen ist der Visual Studio Marketplace, der eine breite Palette von Erweiterungen bietet, die verschiedene Programmiersprachen, Technologien und Aufgaben unterstützen. Hier kann man die eigenen Erweiterungen unterbringen und anbieten.Für diejenigen, die daran interessiert sind, eigene Erweiterungen zu erstellen, bietet Microsoft Docs umfangreiche Informationen und Anleitungen [11]. Dazu gehören Informa­tionen über das Visual Studio SDK, über das Erstellen von Erweiterungen und über die Verwendung von VSIX-Projektvorlagen. Darüber hinaus gibt es Anleitungen zur Implementierung von Erweiterungen für verschiedene Programmiersprachen und Technologien.Das VSExtensibility-Repository auf GitHub ist eine weitere wichtige Ressource für Entwickler, die an Visual-Studio-Erweiterungen arbeiten [5]. In diesem Repository finden sich Hinweise über bevorstehende Änderungen an der Erweiterbarkeit von Visual Studio, das neue Erweiterungsmodell und das Language Server Protocol. Entwickler können hier auch Fragen stellen und Unterstützung von Microsoft-Ingenieuren erhalten.

Drei Erweiterungen für effizientes Coding

Über die Jahre haben sich zahlreiche Erweiterungen für Visual Studio im Marketplace angesammelt. Darunter sind viele kostenfreie Erweiterungen, die zudem Open Source sind. Aber auch kostenpflichtige Erweiterungen von Unternehmen sind dort aufgeführt. Die folgende Liste beschreibt drei sehr beliebte Erweiterungen.Visual Assist ist eine Erweiterung, die bei der Codegenerierung, Navigation, beim Refaktorisieren und als Codierungshilfe unterstützt [12]. Diese Erweiterung wurde hauptsächlich für C/C++ und C# entwickelt, unterstützt aber auch Python, JavaScript und VB in gewissem Umfang. Die Vorteile sind eine verbesserte Codenavigation und -generierung und Unterstützung bei Refakto­risierungsaufgaben. Als Nachteil ist zu ­erwähnen, dass die Erweiterung hin und wieder verwirren kann, da sie einige Standard-IDE-Funktionen überschreibt. In vielen Fällen ist das eher Geschmackssache und bedarf einer Eingewöhnungsphase.CodeMaid ist eine Visual-Studio-Erwei­terung, die hilft, Code aufzuräumen undneu zu organisieren [13]. Mit CodeMaid können Entwickler unerwünschte Leerzeichen entfernen, unerwünschte Codezeilen löschen und den Code an ihre eigenen Präferenzen oder die StyleCop-Konvention von Microsoft anpassen. Zu den Vorteilen zählen ein vereinfachtes Code-Cleanup und die Neuordnung von Code, eine bessere Lesbarkeit und Wartbarkeit des Codes und die Unterstützung einer Vielzahl von Programmiersprachen. Ein Nachteil ist, dass CodeMaid, ebenso wie ReSharper, die IDE-Leistung beeinträchtigen kann.Eine weitere, sehr nützliche und kostenlose Open-Source-Erweiterung für Visual Studio 2022 ist SonarLint [14]. Sie unterstützt Entwickler dabei, Codequalitäts- und Sicherheitsprobleme während des Codeschreibens zu identifizieren und zu beheben. Ähnlich wie ein Rechtschreibprüfer markiert ­SonarLint Fehler im Code in Echtzeit und klärt mit klaren ­Anleitungen über die Behebung von Problemen auf, bevor der Code eingecheckt wird. Unterstützt werden mehrere Programmiersprachen, darunter die Sprachen C#, Visual Basic, C, C++, JavaScript und TypeScript. Außerdem lässt sich die Erweiterung recht einfach in Visual Studio 2022 einbinden. Als Nachteil ist zu nennen, dass es in seltenen Fällen zu Fehl­­alarmen kommen kann, die dann manuell überprüft werden müssen.

Das neue VisualStudio.Extensibility SDK

(Preview)

VisualStudio.Extensibility ist ein neues Framework von Microsoft für die Entwicklung von Visual-Studio-Erweiterungen. Es konzentriert sich in erster Linie auf Erweiterungen, die außerhalb der IDE ausgeführt werden, um die Leistung und Zuverlässigkeit zu verbessern. Es verfügt über ein modernes, asynchrones API, das neu konzipiert wurde, um die Produktivität bei der Entwicklung von Erweiterungen zu maximieren. VisualStudio.Extensibility befindet sich in aktiver Entwicklung und ist als Vorschau verfügbar. Es zielt unter anderem darauf ab, viele der Probleme zu lösen, die bei der Verwendung und Erstellung von Erweiterungen in Visual Studio aufgetreten sind:Visual Studio bleibt reaktionsfähig und stürzt nicht ab, wenn eine Erweiterung abstürzt oder sich aufhängt.Vereinfachte Architektur, konsistente APIs und klare Dokumentation.Erweiterungen lassen sich ohne Neustart von Visual Studio einrichten.Da sich dieses Framework in einer frühen Phase der Entwicklung befindet [15], geht der Artikel an dieser Stelle nicht weiter darauf ein, sondern die Informationen erscheinen in einem gesonderten Artikel nach der Veröffentlichung.

Fazit

Die Einführung von Erweiterungen ermöglicht es Entwicklern, die Funktionalität der IDE zu erweitern und anzupassen, um sich die Arbeit zu erleichtern, Abläufe zu verkürzen oder zu automatisieren.In Visual Studio 2022 hat sich dabei gegenüber der Vor­gängerversion einiges in Sachen Erweiterungen verändert. Dabei geht es um Änderungen in der Produkt­architektur, Anpassungen für die 64-Bit-Unterstützung, sogenannte Breaking, Removed und Migrated APIs sowie Änderungen an den Meldungen des Visual Studio SDK. Die Migration von Erweiterungen von Visual Studio 2019 zu 2022 ist ein wichtiger Schritt, um sicherzustellen, dass bestehende Erweiterungen in der aktuellen Version der IDE korrekt funk­tionieren. Entwickler müssen eigene Erweiterungen an die Änderungen in der Produktarchitektur und der Implementierung von Erweiterungen anpassen, einschließlich der Umstellung auf eine 64-Bit-Anwendung.Werden Erweiterungen nicht angepasst, fallen sie schnell in der Gunst der Community zurück. Die Entwicklung beibt nicht stehen, sodass allen klar sein muss, dass Erweiterungen eine konstante Wartung und Pflege erfordern. Spannend wird es in Zukunft durch das neue Framework VisualStudio.Extensibility. Das könnte in vielen Teilen ein Neustart für die Entwicklung und die Nutzung von Erweiterungen sein.

Fussnoten

  1. [1] Fabian Deitelhoff, Ein Überblick zu VS 2022, dotnetpro 4/2022, Seite 8 ff., http://www.dotnetpro.de/A2204VSRoadmap
  2. [2] Visual Studio SDK, http://www.dotnetpro.de/SL2312Erweiterung1
  3. [3] Erste Schritte mit der VSIX-Projektvorlage, http://www.dotnetpro.de/SL2312Erweiterung2
  4. [4] Visual Studio SDK-Fehlermeldungen, http://www.dotnetpro.de/SL2312Erweiterung3
  5. [5] VisualStudio.Extensibility auf GitHub, http://www.dotnetpro.de/SL2312Erweiterung4
  6. [6] Verweis auf „packages.config“, http://www.dotnetpro.de/SL2312Erweiterung5
  7. [7] PackageReference in Projektdateien, http://www.dotnetpro.de/SL2312Erweiterung6
  8. [8] SDK reference packages, http://www.dotnetpro.de/SL2312Erweiterung7
  9. [9] Walkthrough: Create an Extension Pack, http://www.dotnetpro.de/SL2312Erweiterung8
  10. Maia Kelner, Introducing a powerful new Extension Manager, http://www.dotnetpro.de/SL2312Erweiterung9
  11. Starten der Entwicklung von Erweiterungen in Visual Studio, http://www.dotnetpro.de/SL2312Erweiterung10
  12. Visual Assist, http://www.wholetomato.com
  13. CodeMaid, http://www.codemaid.net
  14. SonarLint, http://www.dotnetpro.de/SL2312Erweiterung14
  15. Maia Kelner, Build Better Extensions with VisualStudio.Extensibility Preview 3!, http://www.dotnetpro.de/SL2312Erweiterung15

Neueste Beiträge

DWX hakt nach: Wie stellt man Daten besonders lesbar dar?
Dass das Design von Websites maßgeblich für die Lesbarkeit der Inhalte verantwortlich ist, ist klar. Das gleiche gilt aber auch für die Aufbereitung von Daten für Berichte. Worauf besonders zu achten ist, erklären Dr. Ina Humpert und Dr. Julia Norget.
3 Minuten
27. Jun 2025
DWX hakt nach: Wie gestaltet man intuitive User Experiences?
DWX hakt nach: Wie gestaltet man intuitive User Experiences? Intuitive Bedienbarkeit klingt gut – doch wie gelingt sie in der Praxis? UX-Expertin Vicky Pirker verrät auf der Developer Week, worauf es wirklich ankommt. Hier gibt sie vorab einen Einblick in ihre Session.
4 Minuten
27. Jun 2025
„Sieh die KI als Juniorentwickler“
CTO Christian Weyer fühlt sich jung wie schon lange nicht mehr. Woran das liegt und warum er keine Angst um seinen Job hat, erzählt er im dotnetpro-Interview.
15 Minuten
27. Jun 2025
Microsoft./NET

Das könnte Dich auch interessieren

MAUI-Tools - Steuerelemente der Community
Nützliche Hilfen für besondere Aufgaben.
12 Minuten
14. Okt 2024
WPF/VB: Fenster auf dem richtigen Monitor starten - Tipp der Woche
Das Notebook steht links, der große Monitor rechts daneben. Die Anwendung soll auf dem großen Monitor starten – außer wenn der Anwender unterwegs arbeitet und kein zweiter Monitor angeschlossen ist.
2 Minuten
24. Mär 2022
Von .NET Core 3.0 zu .NET 5 - Microsoft Build
Aus .NET, .NET Core und Mono soll mit .NET 5 wieder eine gemeinsame Plattform für alle Anwendungen entstehen.
2 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige