Novità di .NET 5

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

  • Sono stati ignorati i numeri di versione 4.x per evitare confusione con .NET Framework 4.x.
  • È stato eliminato "Core" dal nome per sottolineare che si tratta dell'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 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 supportata. Non sono previsti piani per convertire le tecnologie seguenti da .NET Framework a .NET 5, ma sono disponibili alternative in .NET:

Tecnologia Alternativa consigliata
Web Form ASP.NET Core Blazor o Razor Pages
flusso di lavoro Windows (WF) Flussi di lavoro di Elsa

Windows Communication Foundation

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

I componenti del server che integrano le librerie client precedenti sono disponibili tramite CoreWCF. A partire da aprile 2022, CoreWCF è ufficialmente supportato da Microsoft. Tuttavia, per un'alternativa a WCF, considerare gRPC.

.NET 5 non sostituisce .NET Standard

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

Per le app e le librerie .NET 5, il net5.0 Moniker (TFM) di Target Framework combina e sostituisce le netcoreapp vm e netstandard . Tuttavia, se si prevede di condividere il codice tra .NET Framework, .NET Core e carichi di lavoro .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 alcune evidenziazioni:

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

  • Criteri relazionali corrispondenti: estende le funzionalità di corrispondenza dei modelli agli operatori relazionali per valutazioni e espressioni comparative, inclusi i modelli logici - nuove parole chiave and, ore not.

  • Istruzioni di primo livello: come mezzo per accelerare l'adozione e l'apprendimento di C#, il Main metodo può essere omesso e applicazione come semplice come segue:

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

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

Generatori di origine

Oltre a 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 altre informazioni sui generatori di origine, vedere Introduzione ai generatori di origine C# e esempi di generatori di origine 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à è stringhe interpolate, simile alla stringa interpolata in C#, e anche 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."

È simile alla sprintf funzione che formatta una stringa in base agli input di tipo-safe.

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

Visual Basic aggiornamenti

Non sono disponibili nuove funzionalità del linguaggio per Visual Basic in .NET 5. Tuttavia, con .NET 5, Visual Basic supporto è 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 Forms (WinForms) winforms
libreria di classi Windows Forms (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 .NET, vedere dotnet new.

Nuove funzionalità di System.Text.Json

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

Vedi anche