.NET 10 ist da

.NET 10 ist da

- Matt

Seit heute ist .NET 10 verfügbar, und zwar als LTS-Version mit drei Jahren Support. Das ist die Nummer, die zählt, wenn man entscheiden muss, worauf ein Projekt für die nächste Zeit stehen soll.

Der Umstieg

Bei drei Projekten hier war es jeweils eine Zeile:

<TargetFramework>net10.0</TargetFramework>

Danach dotnet restore, bauen, Tests laufen lassen. In zwei Fällen ohne jede Warnung, im dritten drei Meldungen zu Aufrufen, die schon unter .NET 9 als überholt markiert waren.

Das ist inzwischen die Regel und nicht mehr die Ausnahme. Wer noch von .NET 6 oder 7 kommt, sollte trotzdem eine Version nach der anderen nehmen statt in einem Sprung.

Was ankommt

Sprachseitig ist C# 14 dabei, unter anderem mit dem field-Schlüsselwort, über das ich vor ein paar Wochen geschrieben habe. Dazu Extension Members, mit denen sich nicht mehr nur Methoden, sondern auch Eigenschaften erweitern lassen:

public static class ListExtensions
{
    extension<T>(List<T> list)
    {
        public bool IstLeer => list.Count == 0;
    }
}

Ob sich das durchsetzt, weiß ich noch nicht. Erweiterungsmethoden sind schon heute die Stelle, an der Codebasen unübersichtlich werden, weil man beim Lesen nicht sieht, woher ein Aufruf stammt. Mit Eigenschaften wird das eher schlimmer.

Praktischer finde ich die impliziten Span-Konvertierungen. Ein buffer[..8] wird jetzt ohne AsSpan() zu einem ReadOnlySpan<T>, was den Code an genau den Stellen entrümpelt, an denen er vorher am unleserlichsten war.

Was ich mir gespart habe

Der ganze Block rund um KI-Integration, den Microsoft prominent bewirbt. Nicht weil er schlecht wäre, sondern weil das über die Extensions-Pakete ohnehin schon seit dem Frühjahr läuft und mit dem Framework-Release wenig zu tun hat.

Für mich ist .NET 10 vor allem eines: die Version, auf der man die nächsten drei Jahre stehenbleiben kann, ohne dass es jemand rechtfertigen muss.