Neuer C#-Compiler, besserer Garbage Collector und mehr Details zu Microsoft .NET Core 3.0

Redakteur: Stephan Augsten |

Microsoft hat einige Produkt-Updates für Entwickler bereitgestellt: .NET Core 3.0 ist als finales Release erhältlich. Compiler-seitig werden die neuen Versionen der Programmiersprachen C# 8.0 sowie F# 4.7 unterstützt.

Anbieter zum Thema

Eine .NET-App mit WPF-Darstellung in der neuen Designer-Oberfläche.
Eine .NET-App mit WPF-Darstellung in der neuen Designer-Oberfläche.
(Bild: Microsoft)

Mit .NET Core 3.0 preist Microsoft einige Verbesserungen an, darunter neue JSON APIs, Windows Forms und Windows Presentation Foundation (WPF) sowie Unterstützung von ARM64-Architekturen. Enthalten ist auch der C#-Compiler in Version 3.3. Im gleichen Atemzug wurden auch Visual Studio 2019 16.3 und Visual Studio für Mac 8.3 bereitgestellt.

Die beiden Microsoft-IDEs müssen zwangsläufig aktualisiert werden, um .NET Core 3.0 mit Visual Studio zu verwenden. Nur so lassen sich auch Code nach den neuen C#- und F#-Spezifikationen kompilieren. .NET Core 3.0 ist mit früheren Versionen kompatibel, was die Aktualisierung vereinfacht. Im klassischen .NET Framework stehen einige neue Sprachfeatures hingegen nicht zur Verfügung.

Mit C# 8 kommen Async Streams, Range/Index, mehr Pattern und „Nullable“-Referenztypen hinzu. Entwickler können mit „Nullable“ Fehler im Code, die zu NullReferenceException führen, direkt ansprechen. F# 4.7 soll insbesondere die Arbeit mit impliziten Yield-Ausdrücken erleichtern und die Syntax vereinfachen.

.NET Standard 2.1 nicht mehr für das klassische .NET Framework angeboten, aber zumindest weiterhin gepflegt. So wurde die Anzahl der Typen für Code erhöht, der sowohl mit .NET Core als auch Xamarin verwendet werden kann. .NET Standard 2.1 enthält nun Typen ab .NET Core 2.1.

Die Core-Version 3.0 unterstützt nun auch Desktop-Anwendungen für Windows, sowohl mit Windows-Forms- als auch mit WPF-Darstellung. Der WPF-Designer ist Teil von Visual Studio 2019 16.3. Der Windows Forms Designer ist noch in der Preview-Phase, er steht als VSIX-Download zur Verfügung.

Standardmäßig besitzen .NET Core Apps nun ausführbare Dateien. In früheren Versionen mussten Apps über den Befehl dotnet gestartet werden, wie beispielsweise dotnet myapp.dll. Apps können nun je nach Betriebssystem mit einer App-spezifischen ausführbaren Datei wie myapp oder ./myapp gestartet werden.

Hinsichtlich der Leistung soll der Garbage Collector mit der neuen Core-Version teils deutlich weniger Speicherplatz verbrauchen. Dies ist von Vorteil, wenn viele Anwendungen auf demselben Server gehostet werden. Darüber hinaus wurde die Nutzung einer großen Anzahl von Prozessorkernen optimiert, wovon Computer mit über 64 Kernen profitieren sollen.

Damit .NET-Anwendungen auch in Container-Umgebungen zuverlässig und effizient laufen, wurde .NET Core außerdem für Docker gehärtet. Garbage Collector und Thread Pool wurden aktualisiert, um besser zu arbeiten, wenn ein Container für begrenzten Speicher oder CPU konfiguriert wurde. Docker-Images sind mit .NET Core 3.0 kleiner, insbesondere das SDK-Abbild.

(ID:46153610)