Zum Geleit sei angemerkt, dass es sich hierbei nicht um die erste Liste von Änderungen handelt. Die Neuerungen bis inklusive Visual Studio 2022 17.8.P1 haben wir in der Vergangenheit bereits besprochen; online findet sich der Artikel unter [1].
ZUM NEWSLETTER
Regelmäßig News zur Konferenz und der .NET-Community
Als Arbeitsumgebung kommt wie immer eine Windows-10-Zweischirmworkstation zum Einsatz; die hier benutzte Version von Visual Studio Community 2022 identifizierte sich als 17.10.0.P2.
Zu guter Letzt sei noch darauf hingewiesen, dass Visual Studio selbstständig über Neuerungen informiert. Wer im Benutzerinterface die Option Hilfe | Neuigkeiten anklickt, findet eine kompakte Liste neuer Funktionen, die Microsoft als besonders wichtig erachtet (Abb. 1).
Abb. 1: Visual Studio zeigte sich durchaus auskunftsfreudig
Wie immer gilt übrigens, dass die produktive Nutzung von Preview-Releases von Microsoft nicht gerne gesehen wird. Im Unternehmen des Autors ist sie allerdings seit Jahren gelebte Praxis; außerdem ist der Visual Studio Installer immer bereit, eine normale und eine Vorschau-Variante des Produkts nebeneinander auf dem gleichen Terminal zu installieren.
AI-Unterstützung mit und ohne Abonnement
Eins der beeindruckendsten Features von Visual Studio 2022 war die wesentliche Verbesserung von IntelliSense: Insbesondere auf Systemen mit sehr hoher Einkernleistung und schneller Internetverbindung ist die IDE stellenweise zum Finden von geradezu genialen Auto-Completition-Vorschlägen befähigt.
Aufgrund des Kaufs von GitHub hat Microsoft seit einiger Zeit Zugriff auf ein gigantisches Archiv von Quellcode, der seit einiger Zeit zur Realisierung einer als GitHub Copilot bezeichneten Funktion herangezogen wird. Angemerkt sei, dass es sich dabei um ein kostenpflichtiges Feature handelt – Abbildung 2 zeigt die unter [2] bereitstehende Preisliste.
Abb. 2: Microsoft lässt sich die Nutzung von AI-Funktionen in Visual Studio vergolden
Wer sich ein diesbezügliches Abonnement leistet und die Umbenennen-Refactoring-Funktion heranzieht, findet bei installierter GitHub-Copilot-Chat-Erweiterung eine zusätzliche Schaltfläche vor. Deren Anklicken nutzt dann den AI-Assistenten zur Generierung eines vernünftig erscheinenden Namens für das neue Element.
Eine ähnliche Komfortfunktion findet sich auch im Git-Commit-Fenster. Die insbesondere im universitären Umfeld oft für Ärger sorgenden Commits generiert ein mit einer Copilot-Subskription ausgestattetes VS ebenfalls automatisch.
Abb. 3: Visual Studio generiert auf Wunsch automatische Messages
Abb. 4: Die automatisch generierte Commit-Message
Allgemein gilt dabei übrigens, dass das Aufscheinen des mit zwei Sternen dekorierten Bleistiftsymbols auf das Verfügbarsein von AI-Funktionen hinweist: Microsoft dürfte Copilot in immer mehr Bereiche erweitern, um Entwickler:innen das Erzeugen von unnötigen oder nur als Dokumentation dienenden Strings zu ersparen und so Lebenszeit zurückzugeben.
Hervorzuheben ist außerdem, dass die Funktion „Explain Commit“ von GitHub Copilot auch nachträglich verwendet werden kann. Visual Studio analysiert in diesem Fall die im Versionskontrollsystem befindlichen Informationen und generiert einen menschenlesbaren Bericht über die (wahrscheinlich) durchgeführten Änderungen an der Codebasis.
Angemerkt sei, dass man im Hause Microsoft langfristig noch weitere Funktionen für Copilot avisiert. Unter [3] findet sich beispielsweise eine Passage, in der Microsoft die automatische Analyse von Unit-Test-Fehlschlägen verspricht (Abb. 5)
Abb. 5: Ein hochgestecktes Versprechen – fraglich, ob Microsoft es auch umsetzen kann
Intelligente Suche nach Code
Ein alter Kalauer besagt, dass die Unübersichtlichkeit einer Codebasis kubisch oder sogar exponentiell mit ihrer Größe wächst. Auf jeden Fall gilt, dass vernünftige Such- und Navigationsverfahren eins der besten Verkaufsargumente für integrierte Entwicklungsumgebungen darstellen.
Neben der durch Drücken von STRG + SHIFT + F aktivierbaren stupiden Textsuche stellt Microsoft seit einiger Zeit auch einen alternativen Suchassistenten zur Verfügung, der bei der Bewertung der gefundenen Ergebnisse Informationen über die jeweiligen Codedateien miteinbezieht. Diese auch als Codesuche bezeichnete Funktion lässt sich durch Drücken von STRG +T aktivieren, und erscheint ebenfalls in einem Pop-up-Fenster. Neu ist hier die Möglichkeit, die Textfunktion durch Drücken des Knopfes zu aktivieren (Abb. 6).
Abb. 6: Die Codesuche bekommt in Visual Studio 17.9 ein Sonderregime eingeschrieben
Sollte diese Funktion auf Ihrer Installation noch nicht zur Verfügung stehen, so lässt sich in den Einstellungen unter Tools | Options | Environment | Preview Features | Plain text search in die All-in-One Search aktivieren. Zu beachten ist außerdem, dass die Aktivierung des Sonderregimes zu einer wesentlichen Vertiefung der Ergebnisse führt – die Codesuche kann in diesem Fall beispielsweise auch Kommentare nach Treffern durchforsten.
Erweiterungen im Text-Rendering zwecks höherer Übersichtlichkeit
Farbliches Hervorheben ist einer der schnellsten Wege, um textuelle Informationen für das menschliche Gehirn besser erfassbar zu machen (das dürfte spätestens seit Tim van Beverens Klassiker „Runter kommen sie immer“ im allgemeinen Wissensschatz der GUI-Designer und Elektroniker verankert sein).
Seit Visual Studio 2019 pflegt die Community dabei einen Feature-Request, der eine eher kleine Erweiterung der Textdarstellung von Visual Studio zum Ziel hat. Spezifisch wünscht man sich die Möglichkeit, Kommentare und ähnliche Elemente nicht nur in einer anderen Schriftart oder Farbe, sondern auch kursiv, fett und/oder unterstrichen darstellen zu lassen.
In den Einstellungen findet sich unter Tools | Options | Environment | Fonts and Colors nun das in Abbildung 7 gezeigte Einstellungsfenster: Wer die Checkbox Kursiv (bzw. in der englischen Version Italic) aktiviert, bekommt den jeweiligen Text fortan kursiv angezeigt.
Abb. 7: Kleine Erweiterungen erhöhen die Übersichtlichkeit
Eine weitere Komfortfunktion ermöglicht das direkte Anzeigen von Bildvorschauen. Wo Sie den Cursor über ein Codeelement legen, das ein Bild anzeigt, erscheint das in Abbildung 8 gezeigte Pop-up. Im Interesse der Übersichtlichkeit beschneidet Microsoft die Breite und Höhe des Thumbnails dabei auf 500 Pixel; zum Zeitpunkt der Erstellung dieses Artikels gibt es noch keine Informationen darüber, welche Arten von Bilddaten der in Visual Studio integrierte Parser auswerten kann.
Abb. 8: Der Vorschauassistent informiert über den Bildinhalt
Verbesserte Erweiterungshandhabung in Visual Studio
Start-ups, die ihren Nutzer:innen kein Visual-Studio-Code-Plug-in anbieten, haben bei der Akquise von „other people’s money“ im Allgemeinen ihre liebe Not. Visual Studio bietet seit längerer Zeit einen Erweiterungsmanager an, der in der Vergangenheit allerdings vergleichsweise staubig wirkte und von der immensen Macht der Funktion ablenkte.
Der in 17.8 erstmals eingeführte neue Extension-Manager ist nun final und erleichtert die Verwaltung von Visual-Studio-Erweiterungen an mehrerlei Stelle. Abbildung 9 zeigt dabei einen Überblick des neuen Designs.
Abb. 9: Der Erweiterungsmanager präsentiert sich neuerdings sehr aufgeräumt
VisualStudio.Extensibility
Neben dem neuen Design ist auch das Filtersteuerelement zu beachten. Klickt man das Trichtersymbol an, so reagiert Visual Studio mit der Einblendung von Comboboxen unter dem Eingabefeld. Diese ermöglichen danach das Einschränken der angezeigten Erweiterungen, um nur bestimmte Expansions zuzulassen – die Abbildung entstand durch Selektion auf Steuerelemente auf Basis der Silverlight-Technologie.
Im Hintergrund führte Microsoft Retoolings im Bereich der Erweiterungsinfrastruktur durch. Man mag es nach dem Debakel um den Home Screen des Pocket PC kaum glauben, allerdings führte Visual Studio Erweiterungen bisher im eigentlichen Prozess der integrierten Entwicklungsumgebung aus.
Mit dem unter [4] im Detail dokumentierten Paket VisualStudio.Extensibility versucht Microsoft nun einen radikalen Neuanfang. Es handelt sich dabei um einen neuen Weg zur Programmierung von Plug-ins für Visual Studio, die dank einer Client-Server-Architektur außerhalb des VS-Prozesses leben. Neben der Möglichkeit zur beliebigen Parallelisierung dürfte das naturgemäß auch mit einer Steigerung der Stabilität einhergehen; Erweiterungen sollten nicht mehr in der Lage seien, Visual Studio als Ganzes zum Absturz zu bringen.
In Version 17.9 erfährt dieses neue Interface mehrere Nutzwertsteigerungen: Erstens ist es ab sofort erlaubt, auf Basis der neuen Technologie erzeugten Erweiterungen zwecks Verbreitung in den Visual Studio Marketplace hochzuladen.
Eine zweite Ergänzung, die logisch aus dem externen Hosting der Erweiterungsprozesse folgt, ist ihre vereinfachte Installation. Der bisher notwendige Neustart von Visual Studio entfällt bei Nutzung von auf VisualStudio.Extensibility basierenden Erweiterungen, weil diese einfach ihren externen Prozess starten und Verbindung mit dem von der integrierten Entwicklungsumgebung zur Verfügung gestellten Interface aufnehmen.
Zu guter Letzt gibt es einige Erweiterungen im Bereich der für Plug-ins auslösbaren Aktionen. Abbildung 10 informiert beispielsweise darüber, dass es fortan durch nach folgendem Schema aufgebauten Code erlaubt ist, eine Rekompilation eines in der Solution befindlichen Projekts zu befehligen:
var result = await this.Extensibility.Workspaces().QueryProjectsAsync( project => project.Where(p => p.Name == projectName), cancellationToken); await result.First().BuildAsync(cancellationToken);
Abb. 10: Erweiterungen dürfen nun Projektereignisse auslösen
Handhabung des Speicherbedarfs und Performanceprobleme des Emulators
Apropos Visual Studio Installer: Wer auf einer Workstation mit wenig Speicherplatz entwickelt, ist gut beraten, die Checkbox empfohlene Komponenten beim Update hinzufügen zu deaktivieren (Abb. 11).
Microsoft nimmt sich in Visual Studio 7.10 bzw. im dazugehörigen Visual Studio Installer das Recht heraus, Workstations automatisch mit in Redmond als empfehlenswert empfundenen Komponenten auszustatten – dass diese mitunter viel Speicherplatz verbrauchen, sei angemerkt.
Abb. 11: Wer Speicher sparen möchte, sollte diese Option berücksichtigen
Ein weiteres dauerndes Ärgernis betrifft die Hardwarebeschleunigung für den Android-Emulator: Ist sie deaktiviert, so artet das virtualisierte Testen von Applikationen in nervtötende Warterei aus. Visual Studio ist in aktuellen Versionen zur Erkennung von Performanceproblemen befähigt, und führt Entwickler:innen so zum Ziel.
Erleichterte Verwaltung der Optionen
Neben dem Streamlining im Erweiterungsmanager möchte Microsoft Entwickler:innen auch dabei helfen, die (immer mächtiger werdende) Flut an Settings in der Visual-Studio-Arbeitsoberfläche angenehmer zu verwalten. So ist ein Redesign des beispielsweise in Abbildung 12 gezeigten Einstellungsdialogs avisiert – als Inspirationsquelle dürfte, wie in der Vergangenheit so oft, Visual Studio Code gedient haben.
Vor der praktischen Besprechung dieses Features sei allerdings angemerkt, dass es sich dabei derzeit um eine frühe Preview handelt. Für Sie als Entwickler:in wirkt sich das unter anderem insofern aus, als Microsoft in der Dokumentation an mehrerlei Stelle darauf hinweist, dass der Gutteil der Features derzeit nur in altem Dialog zur Verfügung steht. Wer verzweifelt nach einer Einstellung sucht und diese nicht findet, ist gut beraten, der älteren Variante eine zweite Chance zu geben.
Zum Zeitpunkt der Drucklegung lässt sich die Variante des zu verwendenden Options-Dialogs unter Extras | Optionen Experience auswählen – Abbildung 12 zeigt die etwas holprige Übersetzung aus dem Hause Microsoft.
Abb. 12: An dieser Stelle ist etwas Nachbesserung vernünftig
Wer die aktualisierte Variante des Einstellungsdialogs zu verwenden gedenkt, sollte im ersten Schritt die Option Vorschau auswählen. Die integrierte Entwicklungsumgebung reagiert darauf mit der Einblendung eines Nachfragedialogs, der um die Autorisierung eines Neustarts bittet – aufgrund der doch erheblichen Änderungen ist Microsoft derzeit nicht in der Lage, die Umstellung in einer laufenden Instanz von Visual Studio durchzuführen.
Im nächsten Schritt lässt sich der Options-Dialog öffnen, was zum Aufscheinen des in Abbildung 13 gezeigten Fensters führt.
Abb. 13: Visual Studio Code sendet Grüße an die Vollversion
Die oben links eingeblendete Textbox erlaubt dann das Eingeben von Strings, die Visual Studio zur Einschränkung der angezeigten Optionsvielfalt heranzieht.
Interessant ist allerdings auch, dass Visual Studio bei Cursorberührung ein Zahnrad mit zusätzlichen Einstellungen zur jeweiligen Option anbietet. Wer dieses anklickt, bekommt ein Menü mit zwei Optionen eingeblendet: Neben einem bequemen Weg zum Wiederherstellen der von Microsoft vorgegebenen Standardeinstellungen ist es hier auch möglich, Feedback an Microsoft zu schicken. Besonders wünscht man sich in Redmond dabei Hinweise dazu, wie sich die Beschreibung der jeweiligen Funktion entwickler- bzw. benutzerfreundlicher gestalten lassen würde.
Vereinheitlichungen und QOL-Verbesserungen für GUI-Entwickler
Im Umfeld des Autors gibt es einige Beratungsunternehmen, die den Umstieg auf Visual Studio 2022 verweigert haben – Ursache dafür ist die schlechtere Integration des Windows-Forms-Designers in die neue Variante der IDE. Ursache dafür ist, dass Visual Studio 2022 im Interesse der besseren Performance als 64-Bit-Applikation vorliegt und dementsprechend naturgemäß mit dem 32-Bit-Forms-Designer nur wenig anzufangen weiß.
Microsoft begegnet diesem Problem seit einiger Zeit mit einem externen Windows-Forms-Designer, der sein nützliches Tun abseits des Hauptprozesses bewerkstelligt. In der aktuellen Version nahm Microsoft Verbesserungen vor, um dem laut Dokumentation nach wie vor weit von Featureparität entfernten Editor eine höhere Performance zu ermöglichen.
Neuerung Nummer zwei betrifft eine als „Live Property Explorer“ bezeichnete Funktion: Dieses bei der Arbeit mit gewöhnlichen XAML-Dateien liebgewonnene Feature steht ab sofort auch dann zur Verfügung, wenn das vorliegende Programm auf Basis des neuen MAUI-GUI-Stacks entsteht.
Während dem Debuggen einer MAUI-Applikation lässt sich das Werkzeug durch Drücken von Debug | Windows | Live Property Explorer aktivieren. Es verhält sich dann im Allgemeinen so, wie man es als Entwickler:in von der gewöhnlichen Version der IDE erwarten würde.
SIE LIEBEN .NET?
Entdecken Sie die BASTA! Tracks
Auf Jagd nach Featureparität für ARM
Dass Aktualisierungen von Visual Studio seit jeher mit einem wahren Sperrfeuer von Updates der zugrunde liegenden Komponenten einhergehen, wird erwartet – die Installation von Visual Studio setzt nun beispielsweise das .NET Framework in Version 4.7 voraus. Besonders interessant ist in diesem Zusammenhang aber die (an sich seit einiger Zeit zur Verfügung stehenden) Variante der integrierten Entwicklungsumgebung für Workstations, die auf ARM-Prozessoren basieren.
Bisher waren Nutzer:innen dieser neuartigen Variante des Produkts von der Verwendung der als SQL Server Developer Tools (SSDT) bezeichneten Komponente für die SQL-Datenbankanalyse ausgeschlossen – ein Problem, das Microsoft nun behoben hat. In der Dokumentation weisen die Redmonder allerdings darauf hin, derzeit noch keine vollständige Featureparität erreicht zu haben – einige fortgeschrittene Features stehen also nach wie vor nur auf X64-Stationen zur Verfügung.
Allgemeine Verbesserungen der Lebensqualität für C++ und C#
Wer viele Codedateien gleichzeitig geöffnet hält, lernt irgendwann das Scrollen durch die Tab-Liste. Microsoft verbessert diesen Teil des Systems insofern, als es nun auf Wunsch auch möglich ist, mehrere Zeilen mit Tab-Headern auf dem Bildschirm zu halten.
Nutzer:innen der Spiele-Engine Unreal bekommen eine Erweiterung von IntelliSense serviert: Die Codevervollständigung interagiert nun auch mit per Unreal-Header-Tool generierten Dateien, was die Reichhaltigkeit der angezeigten Auto-Completion-Vorschläge erhöht.
Mindestens ebenso hilfreich ist die Möglichkeit, die von Visual Studio als Standard verwendete CMake-Version durch eine hauseigene Variante zu ersetzen. Hierzu findet sich unter Tools | Options | CMake | General ein Einstellungsfenster, in dem sich der von der Toolchain verwendete Pfad zur CMake-EXE austauschen oder anpassen lässt.
Besondere Erwähnung verdient auch die Fähigkeit der IDE, Structs dynamisch (also ohne Rekompilation) in Form eines Speicherlayouts anzuzeigen (Abb. 14).
Abb. 14: Visual Studio zeigt die Struktur des Speicherlayouts an
Aufseiten der C#-Entwicklung gibt es Snippetsupport für Razor: Dabei handelt es sich um ein an die in Palm OS implementierten Shortcuts erinnerndes Feature, das das Einpflegen von hauseigenen Codestücken optimiert.
Außerdem steht mit Blazor Scaffolding ein vergleichsweise umfangreicher Codegenerator zur Verfügung. Er erzeugt auf Data Binding basierende Views automatisiert, was bei Einarbeitung und Umstieg Zeit spart.
Integration ins Microsoft-Ökosystem
Im Rahmen der Ankündigung von Visual Studio 17.10 Preview 1 betonte Microsoft mehrfach die neuen Möglichkeiten des Teams SDK: Wir haben es in unserem oben erwähnten Artikel [1] im Detail beschrieben, weshalb an dieser Stelle nur ein knapper Verweis ausreichen muss.
Interessant ist, dass Microsoft die Hoffnung auf das Verkaufen der kostenpflichtigen Versionen Visual Studio Professional und Visual Studio Enterprise auch nach dem durchschlagenden Erfolg der kostenfreien Community-Variante nicht komplett aufgegeben hat.
Der beste Beleg für diese Annahme ist das unter [5] bereitstehende und in Abbildung 15 gezeigte Portal. Besitzer:innen kostenpflichtiger Varianten bekommen von Microsoft dort einen kompakten Überblick über alles, was sie an Side Benefits im Rahmen ihres Abonnements angeboten bekommen.
Abb. 15: Der Microsoft-Weihnachtsmann bringt Geschenke
Fazit
Microsofts Entscheidung, mit Visual Studio und Visual Studio Code interne Konkurrenz zu erzeugen, trägt für die Entwicklerschaft reiche Dividende. Die Preview-Versionen von Visual Studio greifen Entwickler:innen an mehrerlei Stelle unter die Arme, ohne dabei lästig zu werden. Die Empfehlung des Autors für das neueste Produkt aus Redmond sei deshalb jederzeit gegeben.
Links & Literatur
[1] https://entwickler.de/reader/reading/windows-developer/4.2023/65722e67d1045fe264c26ad9?searchterm=visual%20studio
[2] https://github.com/features/copilot?utm_source=vscom&utm_medium=hero&utm_campaign=cta-get#pricing
[3] https://learn.microsoft.com/en-us/visualstudio/productinfo/vs-roadmap
[4] https://learn.microsoft.com/de-de/visualstudio/extensibility/visualstudio.extensibility/visualstudio-extensibility?view=vs-2022
[5] https://my.visualstudio.com