Condividi tramite


Novità di .NET 5

.NET 5 è la prossima versione principale di .NET Core successiva alla 3.1. Questa versione è stata denominata .NET 5 anziché .NET Core 4 per due motivi:

  • I numeri di versione 4.x sono stati ignorati per evitare confusione con .NET Framework 4.x.
  • "Core" è stato eliminato dal nome per sottolineare che questa è l'implementazione principale di .NET in futuro. .NET 5 supporta più tipi di app e più piattaforme rispetto a .NET Core o .NET Framework.

ASP.NET Core 5.0 si basa su .NET 5, ma mantiene il nome "Core" per evitare confusione con ASP.NET MVC 5. Analogamente, Entity Framework Core 5.0 mantiene il nome "Core" per evitare confusione con Entity Framework 5 e 6.

.NET 5 include i miglioramenti seguenti e le nuove funzionalità rispetto a .NET Core 3.1:

.NET 5 non sostituisce .NET Framework

.NET 5 e versioni successive sono l'implementazione principale di .NET in futuro, ma .NET Framework 4.x è ancora supportato. Non sono previsti piani per convertire le tecnologie seguenti da .NET Framework a .NET 5, ma esistono alternative in .NET:

Tecnologia Alternativa consigliata
Web Forme ASP.NET Core Blazor o Razor Pages
Flusso di lavoro di Windows (WF) Elsa-Workflows

Windows Communication Foundation

L'implementazione originale di windows Communication Foundation (WCF) era supportata solo in Windows. Tuttavia, è disponibile una porta client da .NET Foundation. È interamente open source, multipiattaforma e supportato da Microsoft. I pacchetti NuGet principali sono elencati di seguito:

I componenti server che completano le librerie client indicate sopra sono disponibili tramite CoreWCF. A partire da aprile 2022, CoreWCF è ufficialmente supportato da Microsoft. Tuttavia, per un'alternativa a WCF, prendere in considerazione gRPC.

.NET 5 non sostituisce .NET Standard

Lo sviluppo di nuove applicazioni può specificare il moniker del framework di destinazione net5.0 (TFM) per tutti i tipi di progetto, incluse le librerie di classi. La condivisione del codice tra carichi di lavoro .NET 5 è semplificata: è sufficiente usare net5.0 TFM.

Per le app e le librerie .NET 5, il TFM net5.0 combina e sostituisce i TFM netcoreapp e netstandard. Tuttavia, se si prevede di condividere il codice tra carichi di lavoro .NET Framework, .NET Core e .NET 5, è possibile specificare netstandard2.0 come TFM. Per altre informazioni, vedere .NET Standard.

Aggiornamenti C#

Gli sviluppatori che scrivono app .NET 5 avranno accesso alla versione e alle funzionalità C# più recenti. .NET 5 è associato a C# 9, che offre molte nuove funzionalità al linguaggio. Ecco alcuni punti salienti:

  • Record: tipi di riferimento con semantica di uguaglianza basata su valori e mutazioni non distruttive supportate da una nuova espressione with.

  • Corrispondenza del modello relazionale: estende le funzionalità di corrispondenza dei modelli agli operatori relazionali per valutazioni ed espressioni comparative, inclusi i modelli logici e le nuove parole chiave and, ore not.

  • istruzioni di primo livello: come mezzo per accelerare l'adozione e l'apprendimento di C#, il metodo Main può essere omesso e un'applicazione semplice come l'esempio seguente è valida:

    System.Console.Write("Hello world!");
    
  • Puntatori di funzione: costrutti di linguaggio che espongono i seguenti opcode del linguaggio intermedio (IL): ldftn e calli.

Per altre informazioni sulle funzionalità di C# 9 disponibili, vedere Novità di C# 9.

Generatori di origine

Oltre ad alcune delle nuove funzionalità C# evidenziate, i generatori di origine stanno facendo il loro modo nei progetti di sviluppo. I generatori di origine consentono l'esecuzione del codice durante la compilazione per controllare il programma e produrre file aggiuntivi compilati insieme al resto del codice.

Per ulteriori informazioni sui generatori di codice sorgente, vedere Introduzione ai generatori di codice C# e Esempi di generatori di codice C#.

Aggiornamenti F#

F# è il linguaggio di programmazione funzionale .NET e con .NET 5 gli sviluppatori hanno accesso a F# 5. Una delle nuove funzionalità è costituita da stringhe interpolate, simili alle stringhe interpolate in C# e anche a JavaScript.

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

Oltre all'interpolazione di stringhe di base, è disponibile l'interpolazione tipizzata. Con l'interpolazione tipizzata, un determinato tipo deve corrispondere all'identificatore di formato.

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

Questo formato è simile alla funzione sprintf che formatta una stringa in base agli input con controllo del tipo.

Per altre informazioni, vedere Novità in F# 5.

Aggiornamenti di Visual Basic

Non sono disponibili nuove funzionalità del linguaggio per Visual Basic in .NET 5. Tuttavia, con .NET 5, il supporto di Visual Basic viene esteso a:

Descrizione parametro dotnet new
Applicazione console console
Libreria di classi classlib
Applicazione WPF wpf
Libreria di classi WPF wpflib
Libreria di controlli personalizzati WPF wpfcustomcontrollib
Libreria di controlli utente WPF wpfusercontrollib
Applicazione Windows Form (WinForms) winforms
Libreria di classi Windows Form (WinForms) winformslib
Progetto unit test mstest
Progetto di test NUnit 3 nunit
Elemento di test NUnit 3 nunit-test
Progetto di test xUnit xunit

Per altre informazioni sui modelli di progetto dall'interfaccia della riga di comando di .NET, vedere dotnet new.

Nuove funzionalità di System.Text.Json

Sono disponibili nuove funzionalità in e per System.Text.Json:

Vedere anche