Visual Studio 2022

Visual Studio 2022 – Wichtigste Neuerungen und was sie bewirken

Von am 20.02.2022

Im November 2021 wurde die bereits länger angekündigte neue Version 2022 des IDE-Klassikers Visual Studio veröffentlicht. Damit ergeben sich einige Neuerungen für alle Entwickler*innen, die diese IDE für ihre Arbeit nutzen. Vor allem sind Verbesserungen unter den Änderungen zu finden. In diesem Artikel werden die wichtigsten Neuerungen vorgestellt und welche Auswirkungen diese auf die Arbeit mit VS 2022 haben.

Allgemeine Neuerungen

64-bit

Visual Studio 2022 läuft nun, anders als seine Vorgänger, die nur 32-bit anboten, ausschließlich mit einer 64-bit-Version. Das soll laut Microsoft vor allem Vorteile für große Solutions, da durch die Verwendung von 64-bit mehr als 4 GB RAM zur Verfügung stehen. Dabei sollen Testungen mit Solutions, die über 16.000 Projekte beinhalten, gemacht worden sein. Gleichzeitig können durch diese Änderung allerdings auch Fehler auftreten. Durch die jahrelange Exklusivität der 32-bit-Version könnten in Projekten z.B. einige Ordnerpfade hardcoded auf 32-bit-Dateien verweisen, die nun nicht mehr gültig sind. Deswegen ist bei dieser Änderung besondere Vorsicht geboten.

Öffnen der Solutions schneller

Zudem werden Solutions beim Öffnen nun um einiges schneller geladen und oft erst später benötigte Features im Laufe der Nutzung nachgeladen. In der alltäglichen Nutzung macht sich dies schnell bemerkbar. Vor allem bei großen Solutions mit fast 30 Projekten musste man mit den Versionen 2019 und davor oft minutenlang warten, um vielleicht nur eine einzige Code-Zeile zu betrachten.

Unterstützte .NET-Versionen

Die unterstützten .NET-Versionen haben sich geändert. Beim Urahnen der .NET-Familie .NET Framework wurde die letzte unterstützte Version auf 4.6.2 angehoben. Außerdem bietet Visual Studio 2022 nun vollen Support für das neue .NET 6. Aber was bedeutet das, wenn die IDE eine Version nicht mehr oder nun vollständig unterstützt? Dazu findet man keine klaren Angaben seitens Microsoft. In der Doku über Framework Targeting lässt sich allerdings herauslesen, dass der Support hauptsächlich für die korrekte Kompilierung der jeweiligen .NET-Version relevant ist. Denn, wenn die IDE die Version unterstützt, wird auch die richtige Compiler-Version mit den richtigen Optionen angewandt. Weiters kann es sein, dass die Optionen im Kontext-Menü, in den Properties, in der Toolbox und anderen Menüs oder die Vorschläge von IntelliSense nicht an die Verfügbarkeit der jeweiligen .NET-Version angepasst sind. Das bedeutet, dass womöglich Vorschläge angeboten werden, die in der jeweiligen Version noch nicht/nicht mehr funktionieren.

Weitere allgemeine Änderungen

Weitere Änderungen sind der Multi-Repo-Support, wonach man nun mehrere Repositories in einer Solution konfigurieren kann. Außerdem verspricht das Visual Studio-Team einen bessere MacOS-Experience, verbesserte GIT-Tools zum Lösen von Konflikten und verbesserten C++-Support.

UI/Desing-Anpassungen

Änderung der Standardschriftart

Die Standardschriftart wurde von consolas auf cascadia code geändert. Die neue Schriftart unterstützt standardmäßig Code-Ligaturen. Dabei werden z.B. die beiden Zeichen ! und = automatisch zu einem Ungleich zusammengefügt. Wem die Schriftartanpassung nicht passt, kann die Schriftarten relativ einfach umstellen. Unter Tools –> Options –> Fonts and Colors lässt sich einiges personalisieren.

Consolas Regular
Consolas
Cascadia Code Regular free font
Cascadia Code

Night Light

Außerdem wurde das sogenannte night light-Feature eingeführt. Somit lässt sich nun das Design von Visual Studio an das derzeit eingestellte Design des Betriebssystems anpassen. Dazu muss in den Einstellungen unter Tools –> Options –> General –> Color Theme die Option “Use System Settings” gewählt werden. Visual Studio verspricht damit auch, dass es sich, wenn so im Betriebssystem konfiguriert, je nach Tageszeit automatisch von Light-Mode in den Dark-Mode umschaltet. Leider konnte ich dieses Feature weder in Windows 10 noch in Windows 11 testen, da ich das Timen zum Umschalten des Farbmodus nicht finden konnte. Von Seiten Visual Studio dürfte es funktionieren: Schaltet man den App-Modus von Windows manuell von Light-Theme auf Dark-Theme, passt sich auch Visual Studio dementsprechend an. Bei MacOS funktioniert dieses Feature laut eigenen Testungen einwandfrei.

Fokus auf Personalisierung

Generell wird bei der Entwicklung von Visual Studio 2022 vermehrt der Fokus auf die Personalisierung des Arbeitsplatzes gelegt. Dies gilt vor allem für die Roadmap von 2022, da viele dieser Ideen noch nicht verfügbar sind. Unter anderem ist die Sortierung der Files nicht nur nach Projekt, sondern nach eigener Ordnung geplant. Zudem, dass Tabs je nach Projekt eingefärbt sind und der aktive Tab fettgedruckt ist, dies soll die Verständlichkeit erleichtern. Außerdem soll man die Breite der Tabs anpassen können.

Code-Unterstützungen

IntelliCode

Ein bahnbrechendes Feature dürfte die Einführung von IntelliCode sein. Der Code-Editor bietet einem beim Beginn einer Code-Zeile KI-basierte Vorschläge an, diese Zeile fertigzustellen. Dabei wurde diese KI nicht nur an von Microsoft zur Verfügung gestelltem Code trainiert. Man kann sie auch an der eigenen Solution trainieren lassen, um die Vorschläge zu verbessern. Im Selbsttest erscheint das Feature als relativ zuverlässig und zeitsparend, jedoch ist es schnell “beleidigt”, wenn man die Ideen nicht annimmt und schlägt für derartige Zeilen dann nichts mehr vor. Gut veranschaulichen lässt es sich bei der Injection eines Services. Wenn man ein Property als Instanz des Services initialisiert und einen Übergabeparameter für dasselbe Service im Constructor angibt, so wird einem im Body des Constructors die Code-Zeile vorgeschlagen, die das Property auf die Referenz des Übergabeparameters setzt. In diesem Video wird das Feature ebenfalls vorgestellt.

Find in Files verbessert

Das Feature Find in Files, welches mit der Tastenkombination Strg + Shift + F aufgerufen werden kann, wurde um das Dreifache beschleunigt. In einer Test-Solution mit 28 Projekten konnte ich sogar eine 4-fache Beschleunigung feststellen. In der folgenden Tabelle wird es mit der neuesten Version von Visual Studio 2019 und den Such-Features der Visual Studio-Erweiterung Resharper verglichen:

Suche nach Begriff “xyz” in 28 Projekten einer SolutionVS 2019VS 2022
Strg + T (Resharper)4,66 s5,79 s
Strg + Shift + F43,87 s (davon 20 s “keine Rückmeldung”)10,05 s
Strg + T + T + T (Resharper)49,16 s52,66 s
Vergleich der Ladezeiten bei der Suche nach einem beliebigen Begriff in der gesamten Solution, kategorisiert nach Suchtyp per Tastenkombination und nach Visual Studio-Version

Rich Code Navigation

Unter den derzeitigen Preview Features ist ebenfalls eine tolle Neuerung zu finden, die das Entwickeln mit Visual Studio in Zukunft um einiges erleichtern könnte: die Rich Code Navigation lässt es zu, dass über die üblichen Shortcuts (wie z.B. Strg + Klick auf den Typ) durch Code navigiert werden kann, der sich nicht nur wie bisher in den bereits geklonten, sich in der Solution befindlichen Repositorys befindet, sondern aufgerufen werden kann, ohne ein Repository klonen zu müssen. Dieses Feature konnte ich an keinem persönlichen Projekt testen. Es stellt sich somit die Frage, ob die Repositorys dafür öffentlich oder auf einer gewissen Plattform (z.B. Microsofts Github) verfügbar sein müssen bzw. wie dieses Feature im Allgemeinen funktioniert.

Tipp: Preview Features einschalten

Die Preview-Features können unter Tools –> Options –> Environment –> Preview Features einzeln aktiviert und deaktiviert werden.

Dieses Thema soll laut Roadmap in Zukunft auch Verbesserungen beim Debuggen von dekompilierten Files bringen. Außerdem wurden generelle Verbesserungen der Performance des Debuggers angekündigt. Der Fokus der Weiterentwicklung von Visual Studio im Jahr 2022 liegt somit sowohl auf der Personalisierung des UIs wie oben erwähnt, als auch auf der Verbesserung der Diagnostics und des Debuggings.

Weitere Code-Features

Es besteht jetzt die Möglichkeit, dependent Breakpoints zu setzen, sprich Breakpoints, die nur aufgerufen werden, wenn eine gewisse Bedingung im Code eintritt bzw. ein gewisser Breakpoint davor erreicht wurde. Außerdem wurde ein Flame Chart präsentiert, in dem visualisiert werden kann, welcher Code wie oft läuft. Es wurde ein neuer Razor-Editor veröffentlicht, der unter anderem verbessertes Refactoring anbietet (z.B. “Add missing usings” in cshtml-Files).

Ein weiteres Feature ist die Möglichkeit, Hot Reload zu nutzen, wie bereits aus einigen anderen Entwicklungsumgebungen bekannt. Es funktioniert bis Version .NET 5 nur beim Ausführen der App im Debug-Mode (Shortcut F5), ab .NET 6 auch ohne Debugging (Shortcut Strg + F5). Weitere Infos dazu unter: Speed up your .NET and C++ development with Hot Reload in Visual Studio 2022 und Write and debug code by using Hot Reload.

Vielen Dank an Christian Lascsak für die gemeinsame Ausarbeitung und Testung in Projekten: Christian Lascsak auf Github

The comments are closed.