.NET 11.0 steht ab sofort frisch zum Download bereit, wie üblich mit drei Runtime-Varianten und einem SDK, das sich nach der Installation mit Version 11.0.100-preview.1.26104.118 meldet.
|
12.02.2026 08:30 Uhr |

.NET 11.0 steht ab sofort frisch zum Download bereit, wie üblich mit drei Runtime-Varianten und einem SDK, das sich nach der Installation mit Version 11.0.100-preview.1.26104.118 meldet.
Parallel sind auch Aktualisierungen von Visual Studio erschienen: Die Visual Studio 2022 hat Version 17.14.26 erreicht, Visual Studio 2026 kommt auf Version 18.3.0 und die Insiders-Version auf 11506.43.
Keine dieser Visual Studio-Versionen liefert .NET 11.0 mit, aber nach der getrennten Installation des .NET 11.0 SDKs steht in der Insider-Version .NET 11.0 zur Auswahl. Der Schnelltest ergab: In den anderen Visual-Studio-Versionen lassen sich .NET 11.0-Anwendungen nicht übersetzen.
In Blazor hat Microsoft drei neue Komponenten eingebaut: Zum Ersten ermöglicht die Komponente <EnvironmentBoundary> HTML-Ausgaben abhängig von der Host-Umgebung (Development, Staging und Production). Über die Parameter Include und Exclude steuern Entwicklerinnen und Entwickler, in welchen Umgebungen eine Ausgabe stattfindet. In ASP.NET MVC und Razor Pages gab es dafür bisher schon einen Tag Helper. In Blazor musste man mit @if-Bedingungen arbeiten.
Folgender Code nutzt die neue Blazor-Komponente <EnvironmentBoundary>:
Die beiden weiteren neuen Blazor-Komponenten heißen <Label> und <DisplayName>. Auch sie sind Pendants zu bestehenden Funktionen in den älteren Webframeworks. Bei beiden Komponenten geht es um die Beschriftung von Formularfeldern. In Blazor-Formularen mussten Entwicklerinnen und Entwickler bisher die Beschriftungen manuell per HTML-Tags erfassen:
Auch wenn es Datenannotationen im Objektmodell gab wie:
Nun kann sich Blazor mit <DisplayName> den passenden Anzeigenamen aus dem Objektmodell holen:
Die Komponente <Label> erlaubt eine weitere Verkürzung auf
Auch ein Einbetten eines Eingabesteuerelements in <Label> ist möglich:
Zudem kann man mit Blazor nun auch die Mathematical Markup Language (MathML) zum Darstellen mathematischer Formeln im Browser interaktiv rendern. Zuvor konnte man mit Blazor nur HTML und SVG erzeugen.
Das bestehende Blazor-Steuerelement <QuickGrid> bekommt in .NET 11.0 Preview 1 das neue Ereignis OnRowClick():
Dieses Ereignis kann man per synchroner oder asynchroner Methode behandeln:
OnRowClick() sorgt dafür, dass beim Überfahren der Zeilen mit der Maus der Cursor Pointer (in der Regel eine Hand) angezeigt wird.
Die eingebaute Komponente <NavLink> und die Hilfsklasse NavigationManager bieten nun neben der absoluten auch eine relative Navigation vom aktuellen Standort aus an:
und
Die ebenfalls neue Methode GetUriWithHash() hängt einen Fragment-Bezeichner an die aktuelle URL an. NavigationManager.GetUriWithHash("Kapitel2") ergänzt beispielsweise #Kapitel2.
Bei Blazor Server lassen sich die Eigenschaften der SignalR-Verbindung nun im Startcode Program.cs einfacher setzen als bisher:
Auch bei dem JavaScript-basierten Teil der Blazor-Konfiguration gibt es neue Verbesserungen für ältere Projekte, die noch blazor.server.js und blazor.webassembly.js als Clientbibliothek nutzen. Hier können Entwicklerinnen und Entwickler jetzt die gleiche Syntax wie bei der in .NET 8.0 eingeführten Clientbibliothek blazor.web.js verwenden, siehe den zugehörigen Abschnitt in den Release Notes.
Blazor WebAssembly unterstützt jetzt auch die Schnittstelle IHostedService für Hintergrunddienste im Webbrowser sowie die Schnittstelle IConfiguration zum Zugriff auf Umgebungsvariablen.
Auch in der Basisklassenbibliothek gibt es Neuerungen, von denen alle .NET-Anwendungsarten profitieren. Bereits seit .NET Core 3.0 gibt es die Klasse System.Text.Rune zur vereinfachten Handhabung von Unicode-Zeichen außerhalb der Basic Multilingual Plane (BMP). Neu in .NET 11.0 ist, dass die Methoden der Klassen System.String und System.Text.StringBuilder sowie System.IO.TextWriter auch Instanzen der Klasse Rune als Parameter akzeptieren, beispielsweise bei IndexOf() und Replace():
Mit der neuen Klasse RunePosition kann man die einzelnen Runen in einer Zeichenkette auflisten:
Diese Zeilen liefern in Bezug auf „Hello 🌍 World“ folgende Ausgabe:
In der neuen Assembly System.IO.Compression.Zstandard.dll liefert Microsoft Klassen für die verlustfreie Komprimierung mit dem beim Facebook entwickelten Komprimierungsverfahren Zstandard (zstd). Zu den neuen Klassen gehören System.IO.Compression.ZstandardStream und System.IO.Compression.ZstandardEncoder sowie System.IO.Compression.ZstandardCompressionOptions. Laut Microsoft gilt: „Zstandard komprimiert auf der optionalen Stufe 2- bis 7-mal schneller als Brotli und Deflate und dekomprimiert auf der schnellsten Stufe 2- bis 14-mal schneller, wobei vergleichbare Kompressionsraten erzielt werden.“ Zstandard kann in .NET 11.0 auch bereits für die HTTP-Antwortkomprimierung zum Einsatz kommen.
Bei den Dateisystemklassen im Namensraum System.IO bietet die Klasse File nun die neuen Methoden File.CreateHardLink() und FileInfo.CreateAsHardLink() an, um Hard Links anzulegen. Zuvor konnten Entwicklerinnen und Entwickler seit .NET 6.0 nur symbolische Links mit File.CreateSymbolicLink() anlegen, was aber immer Administratorrechte erforderte.
Einige weitere neue Funktionen in der Basisklassenbibliothek beschreiben die Release Notes, darunter der neue Fließkommatyp System.Numerics.BFloat16 und alternative Rundung bei Divisionen mit den Optionen Truncate, Floor, Ceiling, AwayFromZero und Euclidean sowie eine neue Methode Verify() bei einigen Klassen für Hashverfahren.
Entity Framework Core unterstützt jetzt komplexe Typen einschließlich JSON-Mapping auch in Entitätsklassen, die Vererbung verwenden, wie in der Dokumentation zu EF Core 11.0 steht. Davon ausgenommen ist aber noch die Table-per-Hierarchy-Vererbung (TPH).
Zu .NET 11.0 gehört wie üblich auch eine neue C#-Version, dieses Mal mit der Versionsnummer 15.0. In .NET 11.0 Preview 1 gibt es allerdings bisher nur ein neues Sprachfeature für C# 15.0: Collection Expression Arguments. Seit C# 12.0 gibt es in C# die Collection Expressions zur vereinfachten Initialisierung von Objektmengen, beispielsweise mit
Diese Syntax mit den eckigen Klammern war aber nicht möglich, wenn man bei der Initialisierung der Menge Konstruktor-Parameter wie die Kapazität einer Objektmenge setzen wollte:
oder sprechender
Diesen Sonderfall kann man in C# 15.0 mit Collection Expression Arguments nun wie folgt ausdrücken, was die Syntax aber nicht wesentlich verkürzt:
In Arbeit bei Microsoft für C# 15.0 ist eine weitere Verbesserung der Collection Expressions: Diese sollen nun auch für Dictionaries nutzbar sein, beispielsweise mit:
Wenn in einem Projekt mehrere Target-Frameworks angegeben sind wie in
<TargetFrameworks>net10.0-windows;net11.0-windows</TargetFrameworks>
fragt der .NET-Kommandozeilenbefehl dotnet run nun, welches Framework für den Start verwendet werden soll;
Alternativ kann man das Framework wie bisher per Parameter angeben:
Für .NET MAUI gibt es für iOS und Android bei dotnet run zwei neue Parameter: --list-devices und --device. Mit dem ersten Parameter listet man alle Geräte auf, mit dem zweiten wählt man das Gerät beim Start. Auch hier fragt dotnet run nun interaktiv nach, falls es keine Angabe gibt.
Bei den Kommandozeilenbefehlen für Entity Framework Core gibt es nun bei Update-Database beziehungsweise dotnet ef database update jeweils den neuen Flag-Parameter -add. Er sorgt dafür, dass ein Schemamigrationsschritt angelegt und sofort ausgeführt wird. Zuvor musste man erst Add-Migration beziehungsweise dotnet ef migrations add aufrufen.
Das Hot Reloading mit dotnet watch hat Microsoft verbessert: Entwicklerinnen und Entwickler können nun ohne Neustart der Anwendung auch Projekt- und NuGet-Paketreferenzen ergänzen. Für die Aktualisierung von Browserfenstern beim Hot Reloading kann man nun den Port frei wählen via Umgebungsvariable DOTNET_WATCH_AUTO_RELOAD_WS_PORT.
In den Projekteinstellungen lässt sich jetzt mit <PublishReferenceSymbols>true|false</PublishReferenceSymbols> steuern, ob .pdb-Dateien erzeugt werden.
Weitere Informationen zu .NET 11.0 Preview 1 finden sich in einem Blogeintrag von Microsoft. Dazu gehört, dass .NET-basierte WebAssembly-Anwendungen nun alternativ zur Mono Runtime auch die .NET Core Runtime verwenden können. Es heißt aber, dass diese Option erst in .NET 12.0 als stabil gelten wird.
Wie in jeder .NET-Version der letzten Jahre üblich, wird es auch in .NET 11.0 wieder Breaking Changes gegenüber der Vorgängerversion 10.0 geben. Einige wenige Breaking Changes sind bereits in Preview 1 enthalten.
.NET 11.0 soll im November 2026 erscheinen und einen Standard-Term-Support von zwei Jahren erhalten. Bis dahin ist mit insgesamt sechs weiteren Preview-Versionen von März bis August sowie jeweils einer Release-Candidate-Version im September und Oktober zu rechnen.
(rme)