Neuigkeiten in Visual Studio 2022, .NET6 und C# 10

Anfang November war es soweit und Microsoft hat die nächste Version der beliebten Entwicklungsumgebung Visual Studio veröffentlicht, welche auf den Namen Visual Studio 2022 hört. Nur einen Tag später wurde dann im Rahmen der .NET Conf auch noch .NET6 und C# 10 veröffentlicht. In diesem Beitrag möchte ich jetzt auf einige Neuerungen sowohl in Visual Studio 2022, als auch in .NET6 und C# 10 vorstellen, so dass ihr einen Eindruck habt, worauf ihr euch freuen könnt. Diese Liste erhebt natürlich keinen Anspruch auf Vollständigkeit, sondern zeigt nur einige Highlights auf. Außerdem unterscheiden sich die Features je nach verwendeter Projektvorlage ebenfalls.

Auf der Webseite visualstudio.com könnt ihr euch die neuste Visual Studio herunterladen. Dabei steht neben der kostenlosen Community-Edition auch die Versionen Professional und Enterprise zur Verfügung. Sobald ihr ein bestehendes Projekt oder ein neues Projekt in Visual Studio 2022 öffnet, so fallen einem direkt die neuen Icons auf. Zwar wird weiterhin die Diskette als Symbol für das Speichern verwendet, aber alles wirkt ein bisschen modernen und frischer.

Ich habe bereits in einem Beitrag GitHub Copilot vorgestellt. Auch Visual Studio 2022 beinhaltet ein neues Features, nämlich AI IntelliCode. IntelliCode ist nicht neu, aber die Funktionalität wurde nun um eine künstliche Intelligenz erweitert. Sobald man eine Codezeile schreibt, versucht AI IntelliCode diese automatisch zu vervollständigen. Schauen wir uns das ganze doch mal an einem kleinen Beispiel an.

Wir wollen eine zufällige Zahl erhalten. Zunächst erstellen wir unser Random-Object, welches wir in der Variablen random speichern wollen. Anschließend wollen wir uns über die Methode Next die passende Zahl holen und anschließend noch über ein Console.WriteLine ausgeben. Dieses Feature unterscheidet sich ein wenig von GitHub CoPilot, welches ich in meinem Blog bereits vorgestellt habe. CoPilot generiert ganze Code-Snippets und funktioniert am besten für kleine enthaltene Funktionen mit einer klaren Lösung. Bei AI IntelliCode wird nur die jeweilige Code-Zeile vorgeschlagen. Das beste ist auch noch, dass dieses Feature sogar vollständig offline funktioniert.

Einigen wird beim Stichwort Hot Reload bereits an Xamarin-Entwicklung denken, denn hier was es möglich zur Laufzeit Änderungen am Code vorzunehmen, welche dann direkt übernommen werden. Dies ist nun für weitere .NET Projekte verfügbar, wie WPF, WinForms, .NET MAUI, ASP.NET Core oder auch WinUI3 und beschränkt sich nicht mehr nur auf XAML-, sondern auch auf Code-Dateien.

Bei Visual Studio 2022 handelt es sich um die erste Version der beliebten Entwicklungsumgebung, welche in 64-Bit zur Verfügung steht. Damit entfällt nun nach langer Zeit die Beschränkung des Hauptprozesses auf 4 GB RAM. Microsoft hat Projekte mit 1600 Projekten und 300 Dateien getestet und es war alles weiterhin flüssig. Diese Neuerung heißt jetzt übrigens nicht, dass keine klassischen 32-Bit Anwendungen mehr geschrieben werden können.

Ich habe hier bereits eine leere Konsolen-App mit .NET6 als Framework angelegt und auf dem ersten Blick lassen sich direkt Änderungen erkennen, denn die leere Vorlage besteht nur noch aus einer einzelnen Code-Zeile. Es werden also keine usings, kein Namespace, keine Klasse und auch keine Main-Methode mehr benötigt, aber das Ergebnis ist das gleiche.

Die statische Klasse Console stammt aus dem Namespace System, aber ihr seht, dass keine usings angegeben werden. Dies wird durch die Verwendung von implizierten usings ermöglicht. Die Namespaces System, System.IO, System.Collections.Generic, System.Linq, System.Net.Http, System.Threading und System.Threading.Tasks sind in einer Konsolenanwendung nun standardmäßig vorhanden und müssen nicht weiter importiert werden. Sollte ihr darauf verzichten wollen, so könnt ihr in der Projektdatei den Knoten ImplicitUsings ändern.

Wo wir schon einmal beim Thema usings sind, schließe ich gleich das Konzept von globalen usings an. Hiermit habt ihr die Möglichkeit durch die Nutzung des Schlüsselworts global vor einer using-Deklaration dieses für die gesamte App zur Verfügung zu stellen. Ihr braucht dieses also einfach nur an einer Stelle hinzufügen und könnt es dann dann überall verwenden. Somit habt ihr die Möglichkeit die impliziten usings durch eure eigenen usings zu erweitern.

Ihr habt bei dieser Vorlage ja schon gesehen, dass die Angabe eines Namespaces gar nicht mehr nötig ist. Natürlich besteht weiterhin die Option zur Angabe von einem Namespace. Der folgende Code muss dann aber nicht mehr in geschweiften Klammern und eingerückt sein, sondern ihr könnt die Namespacedeklaration per Semikolon abschließen und dann befindet sich der gesamte Code in entsprechend diesem Namespace.

In diesem Beitrag habe ich euch nun einige Neuerungen von Visual Studio 2022, .NET6 und C# 10 vorgestellt, welche das Entwickeln von Programmen bzw. Apps vereinfachen sollen. Was ist denn euer Highlight?

Higher/Lower Game in C# Visual Studio: Ältere Versionen installieren URL Shortener als minimale API