Dela via


Nyheter i .NET 5

.NET 5 är nästa större version av .NET Core efter 3.1. Den här versionen hette .NET 5 i stället för .NET Core 4 av två skäl:

  • Versionsnummer 4.x hoppades över för att undvika förvirring med .NET Framework 4.x.
  • "Core" togs bort från namnet för att betona att detta är huvudimplementeringen av .NET framöver. .NET 5 stöder fler typer av appar och fler plattformar än .NET Core eller .NET Framework.

ASP.NET Core 5.0 baseras på .NET 5 men behåller namnet "Core" för att undvika att förväxla det med ASP.NET MVC 5. På samma sätt behåller Entity Framework Core 5.0 namnet "Core" för att undvika att förväxla det med Entity Framework 5 och 6.

.NET 5 innehåller följande förbättringar och nya funktioner jämfört med .NET Core 3.1:

.NET 5 ersätter inte .NET Framework

.NET 5 och senare versioner är huvudimplementeringen av .NET framöver, men .NET Framework 4.x stöds fortfarande. Det finns inga planer på att portera följande tekniker från .NET Framework till .NET 5, men det finns alternativ i .NET:

Teknik Rekommenderat alternativ
Webbformulär ASP.NET Core Blazor eller Razor Pages
Windows-arbetsflöde (WF) Elsa-Workflows

Windows Communication Foundation

Den ursprungliga implementeringen av Windows Communication Foundation (WCF) stöds endast i Windows. Det finns dock en tillgänglig klientport från .NET Foundation. Det är helt open source, plattformsoberoende och stöds av Microsoft. Kärnpaketen för NuGet visas nedan:

Serverkomponenterna som kompletterar ovan nämnda klientbibliotek är tillgängliga via CoreWCF-. Från och med april 2022 stöds CoreWCF officiellt av Microsoft. För ett alternativ till WCF bör du dock överväga gRPC-.

.NET 5 ersätter inte .NET Standard

Ny programutveckling kan ange net5.0 Target Framework Moniker (TFM) för alla projekttyper, inklusive klassbibliotek. Att dela kod mellan .NET 5-arbetsbelastningar är förenklat: allt du behöver är net5.0 TFM.

För appar och bibliotek i .NET 5 kombinerar och ersätter net5.0 TFM både netcoreapp och netstandard TFM. Men om du planerar att dela kod mellan .NET Framework-, .NET Core- och .NET 5-arbetsbelastningar kan du göra det genom att ange netstandard2.0 som TFM. Mer information finns i .NET Standard.

C#-uppdateringar

Utvecklare som skriver .NET 5-appar har åtkomst till den senaste C#-versionen och funktionerna. .NET 5 är parat med C# 9, vilket ger många nya funktioner till språket. Här är några höjdpunkter:

  • Records: Referenstyper med värdebaserad likhetssemantik och icke-destruktiv mutation som stöds av ett nytt with uttryck.

  • Relationsmönstermatchning: Utökar funktioner för mönstermatchning till relationsoperatorer för jämförande utvärderingar och uttryck, inklusive logiska mönster – nya nyckelord and, oroch not.

  • instruktioner på toppnivå: Som ett sätt att påskynda implementeringen och inlärningen av C# kan Main-metoden utelämnas och ett program så enkelt som följande exempel är giltigt:

    System.Console.Write("Hello world!");
    
  • Funktionspekare: Språkkonstruktioner som exponerar följande IL-opkoder (mellanliggande språk): ldftn och calli.

Mer information om tillgängliga C# 9-funktioner finns i Nyheter i C# 9.

Källgeneratorer

Förutom några av de markerade nya C#-funktionerna tar sig källgeneratorer in i utvecklarprojekt. Källgeneratorer tillåter kod som körs under kompilering för att inspektera programmet och skapa ytterligare filer som kompileras tillsammans med resten av koden.

Mer information om källgeneratorer finns i Introduktion till C#-källgeneratorer och C#-källgeneratorexempel.

F#-uppdateringar

F# är det funktionella programmeringsspråket för .NET och med .NET 5 har utvecklare åtkomst till F# 5. En av de nya funktionerna är interpolerade strängar, ungefär som interpolerade strängar i C#, och till och med JavaScript.

let name = "David"
let age = 36
let message = $"{name} is {age} years old."

Förutom grundläggande stränginterpolering finns det även typad interpolering. Med typinterpolation måste en viss typ matcha formatspecificeraren.

let name = "David"
let age = 36
let message = $"%s{name} is %d{age} years old."

Det här formatet liknar funktionen sprintf som formaterar en sträng baserat på typsäkra indata.

Mer information finns i Vad är nytt i F# 5.

Visual Basic-uppdateringar

Det finns inga nya språkfunktioner för Visual Basic i .NET 5. Men med .NET 5 utökas Visual Basic-stödet till att:

Beskrivning dotnet new-parametern
Konsolprogram console
Klassbibliotek classlib
WPF-applikation wpf
WPF-klassbibliotek wpflib
Anpassad WPF-kontrollbibliotek wpfcustomcontrollib
WPF-användarkontrollbibliotek wpfusercontrollib
Windows Forms-applikation (WinForms) winforms
Windows Forms-klassbibliotek (WinForms) winformslib
Projekt för enhetstest mstest
NUnit 3-testprojekt nunit
NUnit 3-testobjekt nunit-test
xUnit-testprojekt xunit

Mer information om projektmallar från .NET CLI finns i dotnet new.

System.Text.Json nya funktioner

Det finns nya funktioner i och för System.Text.Json:

Se även