A .NET 5 újdonságai

A .NET 5 a .NET Core következő fő kiadása a 3.1 után. Ezt az új kiadást .NET 5-nek neveztük el a .NET Core 4 helyett két okból:

  • Kihagytuk a 4.x verziószámokat, hogy elkerüljük a .NET-keretrendszer 4.x-es verzióval való összetévesztést.
  • Elvetettük a "Core" szót a névből, hogy hangsúlyozzuk, hogy ez a .NET fő implementációja. A .NET 5 több alkalmazástípust és több platformot támogat, mint a .NET Core vagy a .NET-keretrendszer.

ASP.NET Core 5.0 a .NET 5-en alapul, de megtartja a "Core" nevet, hogy ne keverje össze ASP.NET MVC 5-tel. Hasonlóképpen az Entity Framework Core 5.0 megtartja a "Core" nevet, hogy elkerülje az Entity Framework 5 és 6 közötti összetévesztést.

A .NET 5 a .NET Core 3.1-hez képest a következő fejlesztéseket és új funkciókat tartalmazza:

A .NET 5 nem helyettesíti .NET-keretrendszer

A .NET 5 és újabb verziói a .NET fő implementációi, de .NET-keretrendszer 4.x továbbra is támogatott. Nincsenek tervek a következő technológiák portálására a .NET-keretrendszer-ből a .NET 5-be, de a .NET-ben vannak alternatívák:

Technológia Ajánlott alternatíva
Web Forms ASP.NET Core Blazor vagy Razor Pages
Windows-munkafolyamat (WF) Elsa-Workflows

Windows Communication Foundation

A Windows Communication Foundation (WCF) eredeti implementációja csak Windows rendszeren támogatott. A .NET Foundationben azonban elérhető egy ügyfélport. Teljes mértékben nyílt forráskód, platformfüggetlen, és a Microsoft támogatja. Az alapvető NuGet-csomagok az alábbiakban találhatók:

A fent említett ügyfélkódtárakat kiegészítő kiszolgálóösszetevők a CoreWCF-n keresztül érhetők el. 2022 áprilisától a Microsoft hivatalosan is támogatja a CoreWCF-et. A WCF alternatív megoldásához azonban fontolja meg a gRPC-t.

A .NET 5 nem helyettesíti a .NET Standardot

Az új alkalmazásfejlesztés minden projekttípushoz megadhatja a net5.0 Target Framework Moniker (TFM) elemet, beleértve az osztálytárakat is. A .NET 5 számítási feladatok közötti kódmegosztás egyszerűbb: mindössze a net5.0 TFM-re van szüksége.

A .NET 5-alkalmazások és -kódtárak esetében a net5.0 TFM egyesíti és lecseréli a netcoreapp TFM-eket netstandard . Ha azonban kódot szeretne megosztani .NET-keretrendszer, .NET Core és .NET 5 számítási feladatok között, ezt TFM-ként megadva netstandard2.0 teheti meg. További információ: .NET Standard.

C#-frissítések

A .NET 5-alkalmazásokat író fejlesztők hozzáférhetnek a legújabb C# verzióhoz és funkciókhoz. A .NET 5 a C# 9-tel van párosítva, amely számos új funkciót kínál a nyelvhez. Íme néhány fontos elem:

  • Rekordok: Referenciatípusok értékalapú egyenlőségi szemantikával és nem destruktív mutációval, amelyeket egy új with kifejezés támogat.

  • Relációs mintaegyezés: Kiterjeszti a mintaegyeztetési képességeket a relációs operátorokra összehasonlító értékelésekhez és kifejezésekhez, beleértve a logikai mintákat – új kulcsszavakat andorés not.

  • Legfelső szintű utasítások: A C# Main bevezetésének és tanulásának felgyorsítására szolgáló eszközként a módszer kihagyható, és az alkalmazás olyan egyszerű, mint az alábbi példa:

    System.Console.Write("Hello world!");
    
  • Függvénymutatók: Olyan nyelvi szerkezetek, amelyek a következő köztes nyelv (IL) opcode-jait teszik elérhetővé: ldftn és calli.

A C# 9 elérhető funkcióiról további információt a C# 9 újdonságai című témakörben talál.

Forrásgenerátorok

A kiemelt új C#-funkciók mellett a forrásgenerátorok is bevetik magukat a fejlesztői projektekbe. A forrásgenerátorok lehetővé teszik, hogy a fordítás során futó kód megvizsgálja a programot, és további fájlokat állítson elő, amelyek a kód többi részével együtt vannak lefordítva.

A forrásgenerátorokról további információt a C#-forrásgenerátorok és a C# forrásgenerátorminták bemutatása című témakörben talál.

F#-frissítések

Az F# a .NET funkcionális programozási nyelv, és a .NET 5 használatával a fejlesztők hozzáférhetnek az F# 5-höz. Az új funkciók egyike az interpolált sztringek, hasonlóan a C#-ban lévő interpolált sztringekhez, és még a JavaScripthez is.

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

Az alapszintű sztringinterpoláció mellett van begépelt interpoláció is. A beírt interpolációval egy adott típusnak meg kell egyeznie a formátumkijelölővel.

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

Ez a formátum hasonló ahhoz a sprintf függvényhez, amely típusbiztos bemenetek alapján formáz egy sztringet.

További információ: Az F# 5 újdonságai.

Visual Basic-frissítések

A Visual Basic nem tartalmaz új nyelvi funkciókat a .NET 5-ben. A .NET 5 esetén azonban a Visual Basic támogatása a következőre terjed ki:

Leírás dotnet new Paraméter
Konzolalkalmazás console
Osztálytár classlib
WPF-alkalmazás wpf
WPF-osztálykódtár wpflib
WPF egyéni vezérlőtár wpfcustomcontrollib
WPF felhasználói vezérlőtár wpfusercontrollib
Windows Forms (WinForms) alkalmazás winforms
Windows Forms (WinForms) osztálytár winformslib
Egységteszt projekt mstest
NUnit 3 tesztprojekt nunit
NUnit 3 tesztelem nunit-test
xUnit tesztprojekt xunit

A .NET CLI-ből származó projektsablonokkal kapcsolatos további információkért lásd: dotnet new.

System.Text.Json új funkciók

A System.Text.Json és a következő új funkciókkal rendelkezik:

Lásd még