• George Dan Ciobanu

Ce este nou în .NET 6 și C# 10




.NET 6 a fost lansat recent și a fost supranumit cel mai rapid .NET de până acum. Vine cu o multitudine de noi funcționalități si cu îmbunătățiri pe partea de performanță și de sintaxă.

Dacă folosiți Visual Studio 2019 va fi nevoie să faceți upgrade la Visual Studio 2022 (primul VS pe 64 bit). Mai jos puteți găsi un sumar al principalelor schimbări in .NET 6 și C# 10.



Principalele noutăți în .NET 6:


  • Unificare – platforma îmbunătățită și unificată pentru aplicații de browser, cloud, desktop, IoT si aplicații mobile iOS și Android, folosind aceleași librării .NET



  • Performanța – este simțitor îmbunătățită si în particular pentru File I/O; per ansamblu se micșorează timpul de execuție, latența si memoria folosită.

Dintre cele mai importante îmbunătățiri:

- Dynamic Profile-Guided Optimization (PGO) – într-unul dintre teste s-a observat o îmbunătățire de 26% în request-uri/secundă

- File IO Improvements – FileStream complet refăcut in .NET 6 – în teste s-au observat viteze de 4 ori mai mari față de .NET 5

- Faster Interface checking and casting - îmbunătățire de 16-38% față de .NET 5

- System.Text.Json Source Generators – în testele de serializare s-au observat performanțe cu cel puțin 40% mai bune decât .NET 5


  • Hot Reload – este o caracteristică a VS 2022 și poate fi folosită și pentru .NET 5, .NET Core. Ne permite să modificăm aplicația în timp ce rulează și să vedem instant schimbările, fără a mai pierde timp cu rebuild, restart, re-navigarea în același loc unde eram înainte să modificăm codul. Hot Reload ne ajută enorm să dezvoltăm rapid aplicații, să economisim timpul și să avem o productivitate sporită.



  • Minimal API – .NET 6 ne permite să creăm API cu dependințe minime și cu un număr minimalist de linii de cod



  • JSON API - mai performante și mai capabile; in .NET 6 este un nou source generator pentru a ajuta la îmbunătățirea performanțelor aplicațiilor care folosesc System.Text.Json


  • Cloud diagnostics - îmbunătățite cu OpenTelemetry și dotnet monitor. OpenTelemetry este un nou standard în telemetria de observabilitate a aplicațiilor construite în .NET, format din fuziunea a două unelte populare OpenTracing și OpenCensus. Dotnet monitor este o unealtă pentru a accesa informații diagnostice într-un proces dotnet. Ne poate ajuta să diagnosticăm ce este în neregulă cu aplicația noastră .NET


  • Blazor - componentele pot fi randate dinamic din JavaScript și integrate în aplicații bazate pe JavaScript; s-au adus îmbunătățiri precum Ahead of Time Compilation, Error boundaries


  • WebAssembly AOT – se poate compila codul .NET direct în WebAssembly. Rezultă în îmbunătățiri de performanță în timpul de rulare prin compilarea înaintea Timpului (AheadOfTime) a codului unei aplicații .NET, direct în WebAssembly pentru o execuție nativă a codului de către browser


  • MAUI - .NET Multi-platform App UI este amânat pentru începutul lui 2022 - framework cross-platform, urmașul lui Xamarin.Forms; permite crearea de aplicații cross-platform scrise în C# si XAML, dintr-un singur cod partajat în Visual Studio




  • File IO - s-a îmbunătățit mult performanța, s-a introdus un nou FileStream și acum există suport pentru legături (links) simbolice. Pentru informații în detaliu și teste de viteză, găsiți postarea de blog oficială aici.



Cele mai importante schimbări in C# 10:


  • Usings globale si implicite – Nu mai este nevoie să adaugăm usings la începutul fiecărui fișier din proiect. Usings globale pot fi adăugate în proiect o singură dată și vor fi valabile în tot proiectul; prin activarea de usings implicite nu mai este nevoie de declararea unor usings des folosite, care fac deja parte din .NET 6



  • File-Scoped Namespaces - se schimbă sintaxa declarării de namespace: acum se renunță la acolade și tot ceea ce va fi definit în fișierul curent va aparține de namespace-ul respectiv; permite astfel reducerea spațiului orizontal și vertical



  • Interpolated strings - în C# 10 se permite adăugarea de sintaxă de tipul string interpolation unor constante (inclusiv atribute)



  • Expresii Lambda - se simplifică și se ușurează sintaxa, se decongestionează codul; acum expresiile lambda au un tip natural, adică în multe cazuri compilatorul poate deduce tipul expresiei lambda



  • Extended property patterns - se extinde funcționalitatea proprietăților și se ușurează sintaxa permițând aceeași funcționalitate cu mai puțin cod; în esență scăpăm de acolade în situațiile când avem obiecte în obiecte (subobiecte)




  • Record structs - record a fost introdus în C# 9, acum este permisă folosirea de record struct, pe lângă record class



  • Struct – În C# 10 se permite folosirea de funcționalități cum ar fi constructori fără parametri, inițializatori de câmp sau folosirea expresiei “with”




  • Null Parameter Checks - în C# 10 se poate face verificarea parametrilor dacă sunt nuli mai ușor și mai rapid






În concluzie, sunt destule motive pentru a fi entuziasmat de .Net 6, C# 10 și de Visual Studio 2022. Pentru informații în detaliu despre toate noutățile și schimbările puteți vizita postarea oficială de blog .Net 6 aici.



Referințe:

https://devblogs.microsoft.com/dotnet/announcing-net-6/

https://devblogs.microsoft.com/dotnet/welcome-to-csharp-10/