Delen via


Nieuw in .NET 5

.NET 5 is de volgende belangrijke release van .NET Core na 3.1. Deze release heet .NET 5 in plaats van .NET Core 4 om twee redenen:

  • Versienummers 4.x zijn overgeslagen om verwarring met .NET Framework 4.x te voorkomen.
  • 'Core' is verwijderd uit de naam om te benadrukken dat dit de belangrijkste implementatie van .NET is. .NET 5 ondersteunt meer typen apps en meer platforms dan .NET Core of .NET Framework.

ASP.NET Core 5.0 is gebaseerd op .NET 5, maar behoudt de naam Core om verwarrend te voorkomen met ASP.NET MVC 5. Op dezelfde manier behoudt Entity Framework Core 5.0 de naam Core om verwarrend te voorkomen met Entity Framework 5 en 6.

.NET 5 bevat de volgende verbeteringen en nieuwe functies vergeleken met .NET Core 3.1:

.NET 5 vervangt .NET Framework niet

.NET 5 en latere versies zijn de belangrijkste implementatie van .NET, maar .NET Framework 4.x wordt nog steeds ondersteund. Er zijn geen plannen om de volgende technologieën van .NET Framework naar .NET 5 te overzetten, maar er zijn alternatieven in .NET:

Technologie Aanbevolen alternatief
Webformulieren ASP.NET Core Blazor of Razor Pages
Windows Workflow (WF) Elsa-Workflows

Windows Communication Foundation

De oorspronkelijke implementatie van WCF - (Windows Communication Foundation) werd alleen ondersteund in Windows. Er is echter een clientpoort beschikbaar via de .NET Foundation. Het is volledig open source, platformoverschrijdend en ondersteund door Microsoft. Hieronder vindt u de kernpakketten van NuGet:

De serveronderdelen die de bovengenoemde clientbibliotheken aanvullen, zijn beschikbaar via CoreWCF-. Vanaf april 2022 wordt CoreWCF officieel ondersteund door Microsoft. Overweeg voor een alternatief voor WCF echter gRPC-.

.NET 5 vervangt .NET Standard niet

Nieuwe toepassingsontwikkeling kan de net5.0 Target Framework Moniker (TFM) opgeven voor alle projecttypen, inclusief klassebibliotheken. Het delen van code tussen .NET 5-workloads is vereenvoudigd: alles wat u nodig hebt, is de net5.0 TFM.

Voor .NET 5-apps en -bibliotheken combineert en vervangt de net5.0 TFM de netcoreapp en netstandard TFM's. Als u echter van plan bent om code te delen tussen .NET Framework-, .NET Core- en .NET 5-workloads, kunt u dit doen door netstandard2.0 op te geven als uw TFM. Zie .NET Standard-voor meer informatie.

C#-updates

Ontwikkelaars die .NET 5-apps schrijven, hebben toegang tot de nieuwste C#-versie en -functies. .NET 5 is gekoppeld aan C# 9, wat veel nieuwe functies aan de taal biedt. Hier volgen enkele hoogtepunten:

  • Records: Referentietypen met op waarde gebaseerde gelijkheidssemantiek en niet-destructieve mutatie die wordt ondersteund door een nieuwe with expressie.

  • Relationeel patroon dat overeenkomt met: breidt patroonkoppelingsmogelijkheden uit naar relationele operatoren voor vergelijkende evaluaties en expressies, waaronder logische patronen, nieuwe trefwoorden and, oren not.

  • instructies op topniveau: Als een manier om de acceptatie en het leren van C# te versnellen, kan de methode Main worden weggelaten en is een toepassing zo eenvoudig als het volgende voorbeeld geldig.

    System.Console.Write("Hello world!");
    
  • Functie-aanwijzers: Taalconstructies die de volgende opcodes van de intermediaire taal (IL) beschikbaar maken: ldftn en calli.

Zie Wat is er nieuw in C# 9voor meer informatie over de beschikbare C# 9-functies.

Brongeneratoren

Naast enkele van de gemarkeerde nieuwe C#-functies maken brongeneratoren hun weg naar ontwikkelaarsprojecten. Broncodegeneratoren staan code toe die tijdens de compilatie wordt uitgevoerd om uw programma te inspecteren en extra bestanden te produceren die samen met de rest van uw code worden gecompileerd.

Zie Introductie van C#-brongeneratoren en C#-brongeneratorvoorbeeldenvoor meer informatie over brongeneratoren.

F#-updates

F# is de functionele programmeertaal van .NET en met .NET 5 hebben ontwikkelaars toegang tot F# 5. Een van de nieuwe functies is geïnterpoleerde tekenreeksen, vergelijkbaar met geïnterpoleerde tekenreeksen in C# en zelfs JavaScript.

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

Naast eenvoudige tekenreeksinterpolatie is er een getypte interpolatie. Bij getypte interpolatie moet een bepaald type overeenkomen met de notatieaanduiding.

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

Deze indeling is vergelijkbaar met de sprintf functie waarmee een tekenreeks wordt opgemaakt op basis van invoer die veilig is.

Zie Wat is er nieuw in F# 5voor meer informatie.

Visual Basic updates

Er zijn geen nieuwe taalfuncties voor Visual Basic in .NET 5. Met .NET 5 wordt visual Basic-ondersteuning echter uitgebreid naar:

Beschrijving parameter dotnet new
Console toepassing console
Klassebibliotheek classlib
WPF-toepassing wpf
WPF Class-bibliotheek wpflib
Aangepaste bibliotheek voor WPF-besturingselementen wpfcustomcontrollib
WPF User Control Library wpfusercontrollib
Windows Forms (WinForms)-applicatie winforms
Windows Forms -klassebibliotheek (WinForms) winformslib
Eenheidstestproject mstest
Testproject NUnit 3 nunit
Testitem NUnit 3 nunit-test
xUnit-testproject xunit

Zie dotnet newvoor meer informatie over projectsjablonen vanuit de .NET CLI.

System.Text.Json nieuwe functies

Er zijn nieuwe functies in en voor System.Text.Json-:

Zie ook