.NET 9.0: Erste kleine Preview und schwammige Visionen (2024)

Die erste Preview für die kommende .NET-Version 9.0 steht seit dem 13. Februar 2024 im .NET-Downloadbereich bei Microsoft bereit. Anders als in der Vergangenheit gibt es keinen Blogeintrag, der die Neuerungen vorstellt. Dies ist Teil einer seit diesem Jahr veränderten Strategie bezüglich des .NET-Blogs. Er soll sich laut einer Ankündigung von .NET Program Manager Rich Lander auf Beiträge über stabile Versionen von .NET konzentrieren.

Die Neuerungen in den Preview-Versionen will man nun primär über einen neuen Diskussionsbereich auf GitHub verkünden. Zudem will das .NET-Entwicklungsteam den "What's New"-Bereich in der Dokumentation aktueller halten. Wie bisher soll es zudem Release Notes (wie zu .NET 9.0 Preview 1) und eine kurze Ankündigung im Repository "dotnet/announcements" geben.

Nur Kleinigkeiten in .NET 9.0 Preview 1

In die erste Vorschauversion von .NET 9.0 hat Microsoft nur kleinere Neuerungen gepackt. In der Basisklassenbibliothek gibt es die neuen LINQ-Operatoren CountBy() und AggregateBy(). Eine neue Remove()-Methode in der in .NET 6.0 eingeführten Mengenklasse PriorityQueue entfernt Elemente, auch wenn diese nicht an der Reihe sind. Beim Debugging von Dictionary-Klassen zeigen die Debugger nun die Inhalte deutlich übersichtlicher an:

Bei den kryptographischen Funktionen liefert Microsoft ab .NET 9.0 eine Implementierung des KECCAK Message Authentication Code (KMAC) des US-amerikanischen National Institute of Standards and Technology (NIST).

.NET 9.0 erlaubt nun auch wieder das Persistieren zur Laufzeit erzeugter Assemblies im Dateisystem mit der Methode Save() in der Klasse AssemblyBuilder. Diese Möglichkeit gab es schon im klassischen .NET Framework (vgl. Dokumentation zu Save()). Im modernen .NET konnte man bisher zur Laufzeit erzeugte Assemblies nur im RAM halten.

Die neueste Version der JSON-Bibliothek System.Text.Json erlaubt die Anpassung der Einrückung in den JsonSerializerOptions. Dazu gibt es dort neue Einstellungen IndentCharacter und IndentSize. Mit JsonSerializerOptions.Web können Entwicklerinnen und Entwickler nun auf einfache Weise dieselben Einstellungen für die JSON-Serialisierung und -Deserialisierung wählen, die in ASP.NET Core WebAPI voreingestellt ist.

Lesen Sie auch

Microsoft packt deutsche KI mit 3,2 Milliarden an, Kanzler Scholz freut sich
Visual Studio 2022 Version 17.9: GitHub Copilot erstellt Git Commit Messages

In ASP.NET Core 9.0 Preview 1 ist Polymorphismus in ASP.NET Core SignalR Hubs möglich. Der objektrelationale Mapper Entity Framework Core hat Verbesserungen bei der Übersetzung von LINQ nach SQL implementiert. Bei der Übersetzung von Abfragen, die sich auf JSON-Spalten beziehen, werden nun bei OPENJSON…WITH keine nicht für die Bedingung oder die Ergebnismenge notwendigen Teile der JSON-Zeichenkette ausgewertet. Wenn das Zieldatenbanksystem ein Microsoft SQL Server in der neuesten Version 2022 ist, nutzt Entity Framework Core 9.0 nun die dort neu eingeführten T-SQL-Funktionen LEAST() und GREATEST() bei der Übersetzung von Math.Min() und Math.Max().

Mit den .NET-Funktionen EF.Parameter() und EF.Constant() können Entwicklerinnen und Entwickler nun erzwingen, dass bei der Übersetzung von LINQ nach SQL ein Wert in der SQL-Abfrage als Parameter beziehungsweise als Konstante übergeben wird. Bisher lag die Entscheidung für die Parametrisierung allein beim objektrelationalen Mapper. Nun ist dies beeinflussbar in Hinblick auf die Optimierung der Nutzung des Query Cache des Datenbankmanagementsystems.

EF.Constant() ist auch als ein Nachtrag zu .NET 8.0 verfügbar, der in Version 8.0.2 erschienen ist. Dies ist ungewöhnlich, da Microsoft behauptet, bei dem modernen .NET dem Semantic Versioning zu folgen, das bei neuen Funktionen eine Änderung der Versionsnummer an der zweiten Stelle vorsieht.

Die Methode ExecuteUpdate() bietet nun eine verkürzte Syntax in Verbindung mit komplexen Typen:

var newAddress = new Address("www.IT-Visions.de", 45257, "Essen");await context.Stores .Where(e => e.Region == "Germany") .ExecuteUpdateAsync(s => s.SetProperty(b => b.ShippingAddress, newAddress));

Die Umwandlung einer normalen Tabelle in eine temporäre Tabelle ist nun mit einer stark verkürzten Befehlsfolge in den Schemamigrationen möglich.

Weitere Pläne für .NET 9.0 bleiben oberflächlich

Microsoft hat im .NET-Blog nicht die Neuerungen in .NET 9.0 Preview 1 beschrieben, sondern aus der Vogelflugperspektive einen Überblick über die Pläne für .NET 9.0 gegeben. Übergeordnete Ziele für .NET 9.0 sind demnach – wenig überraschend – Verbesserungen für Cloud- und KI-Anwendungen. Wie zuvor angekündigt, will Microsoft den Ahead-of-Time-Compiler, der bisher nur mit Konsolenanwendungen, Minimal WebAPIs, gRPC-Diensten und Worker Services funktioniert, auf weitere Anwendungstypen ausweiten, wobei der Blogeintrag offen lässt, welche Anwendungstypen dies sein werden. Noch schwammiger sind die Aussagen im Bereich KI: Man will es einfacher machen, KI-Funktionen in eigene Anwendungen zu integrieren und dabei Dienste von OpenAI und Azure zu nutzen.

Der Blogbeitrag verlinkt auch auf eine GitHub-Seite ".NET 9 Project Backlog", die allerdings noch wenig enthält. Zu Entity Framework Core findet man nur ein "Coming soon". Das Projektbacklog zu "Visual Basic" verlinkt auf ein Repository "Visual Basic .NET Language Design", in dem es den letzten Eintrag vor rund zwei Jahren gab. Einige konkrete Pläne findet man aber zur C#-Sprachsyntax sowie ASP.NET Core und Blazor.

Bei Blazor will Microsoft eine Möglichkeit einbauen, auf einfache Weise den aktuellen Render-Modus abzufragen, was bisher nicht direkt möglich ist. Die in Blazor WebAssembly zwar seit .NET 7.0 vorhandene, aber lückenhafte Unterstützung für echtes Multithreading soll verbessert werden. In der Projektvorlage "Blazor Web App" will Microsoft die in .NET 8.0 fehlende Authentifizierung mit der Microsoft Identity Platform (etwa zur Authentifizierung gegen EntraID, ehemals Azure Active Directory) nachrüsten.

Das Cross-Platform-UI-Framework .NET MAUI soll eine Interoperabilität zur auf Apple-Betriebssystemen zunehmend beliebten Programmiersprache Swift erhalten. Außerdem sollen Entwicklerinnen und Entwickler auf Desktop-Betriebssystemen die Gestaltung des Cursors anpassen können.

(mai)

.NET 9.0: Erste kleine Preview und schwammige Visionen (2024)

FAQs

When was .NET 9 released? ›

NET 9, released February 13th, 2024, and share in-depth release notes that provide varied and impressive improvements for the first preview out of the gate. We also published Our Vision for . NET 9, which describes some of the broad areas we intend to deliver on by the final November 2024 release.

What is new dotnet 9? ›

The .NET 9 runtime includes a new attribute model for feature switches with trimming support. The new attributes make it possible to define feature switches that libraries can use to toggle areas of functionality. The runtime also includes numerous performance improvements in the following areas: Loop optimizations.

What is .net used for? ›

. NET is an open-source platform for building desktop, web, and mobile applications that can run natively on any operating system. The . NET system includes tools, libraries, and languages that support modern, scalable, and high-performance software development.

What does ASP.NET stand for? ›

It was developed by Microsoft to allow programmers to build dynamic web sites, applications and services. The name stands for Active Server Pages Network Enabled Technologies.

Is .NET 8 released? ›

. NET 8, was released on November 14, 2023, along with C# 12 and Visual Studio 17.8. It is the latest version of the . NET development platform, which delivers performance, stability, and security as well as platform, and tooling improvements.

When was .NET 6 released? ›

NET 6, released on November 8, 2021, and . NET 8, released on November 14, 2023, are both additions to . NET that introduced a multitude of new features and improvements.

Is .NET being discontinued? ›

In spite of it's lack of “trendy” appeal, . Net has been growing and thriving in enterprises since it's inception, and shows no sign of stopping.

Is dotnet owned by Microsoft? ›

The . NET Framework (pronounced as "dot net") is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until being superseded by the cross-platform . NET project.

Is dotnet a frontend or backend? ›

Dot NET framework is a versatile software framework that contains both front-end and back-end languages. For example, Dot NET developers can use ASP.NET for backend and C# & VB.NET for front-end development.

What does .NET stand for? ›

The . net domain name extension stands for “network” and was originally meant to be used by umbrella websites acting as a portal for smaller sites. You should use a . net extension for businesses that provides services like internet, website hosting, databases or collaboration tools.

What is the best NET framework? ›

NET Core to create web applications that run on desktops, mobiles, and even the cloud. ASP . NET Core offers a unified approach to building web apps and web APIs which is one of the many reasons why ASP . NET Core is the best web framework.

Which is better, .NET or Python? ›

NET or Python in 2023-24 depends on your career goals and the type of projects you're interested in. If you want to work on enterprise-level applications, games, or cloud-based solutions, C# and . NET are excellent choices. For data science, machine learning, and scripting, Python remains a top pick.

Is ASP.NET outdated? ›

ASP.NET is not outdated per se. It's still a competent . NET framework.

What is difference between .NET and .NET framework? ›

.NET and .NET Framework share many of the same components and you can share code across the two. Some key differences include: .NET is cross-platform and runs on Linux, macOS, and Windows. . NET Framework only runs on Windows.

Are web forms obsolete? ›

Web Forms is NOT deprecated, the framework support is limited to critical updates, but all ASP.NET full . NET Framework projects are fully supported. While we are not investing in the Web Forms framework, we still need to ensure that Web Forms developers can successfully develop their apps in Visual Studio.

What does dotnet new do? ›

Description. The dotnet new command creates a . NET project or other artifacts based on a template. The command calls the template engine to create the artifacts on disk based on the specified template and options.

What does dotnet update do? ›

Description. The dotnet tool update command provides a way for you to update . NET tools on your machine to the latest stable version of the package.

Does C# 9 work with .NET Framework? ›

C# 9 works great for . NET Framework targeted projects. It has guard rails to keep you from using the couple language features that require newer runtimes. So much to gain by setting LangVersion=9 in your projects, folks!

Top Articles
Latest Posts
Article information

Author: Sen. Emmett Berge

Last Updated:

Views: 5998

Rating: 5 / 5 (60 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Sen. Emmett Berge

Birthday: 1993-06-17

Address: 787 Elvis Divide, Port Brice, OH 24507-6802

Phone: +9779049645255

Job: Senior Healthcare Specialist

Hobby: Cycling, Model building, Kitesurfing, Origami, Lapidary, Dance, Basketball

Introduction: My name is Sen. Emmett Berge, I am a funny, vast, charming, courageous, enthusiastic, jolly, famous person who loves writing and wants to share my knowledge and understanding with you.