.NET 8, la prossima versione prevista della piattaforma di sviluppo software open source di Microsoft, è destinata a potenziare il supporto a Linux, lo sviluppo cloud e i container. Una prima anteprima di .NET 8 è disponibile per il download per Windows, Linux e macOS. Release LTS che sarà supportata per tre anni, .NET 8 sarà disponibile in produzione a novembre, un anno dopo l’uscita del predecessore .NET 7.

Questa nuova versione potrà essere compilata su Linux direttamente dal repository dotnet/dotnet, utilizzando dotnet/source-build per costruire runtime, strumenti e SDK di .NET. Si tratta della stessa build utilizzata da Red Hat e Canonical per compilare .NET. Nel corso del tempo, questa funzionalità verrà estesa per supportare Windows e macOS. In precedenza, .NET poteva essere compilato dai sorgenti, ma era necessario un “tarball dei sorgenti” da dotnet/installer.

.NET 8 includerà anche le immagini Ubuntu Chiseled per l’appliance computing. Inoltre, le linee di base minime per Linux sono state aggiornate e il prodotto .NET sarà realizzato con Ubuntu 16.04, per tutte le architetture. Per quanto riguarda Red Hat Enterprise Linux, .NET 8 supporterà RHEL 8 e abbandonerà RHEL 7.

Per lo sviluppo cloud-native, .NET 8 presenta miglioramenti nel modo in cui le immagini dei container possono essere utilizzate per le applicazioni .NET, compresa la pubblicazione delle immagini dei container come non root-capable. Microsoft ha spiegato che, sebbene le immagini container di base siano solitamente configurate per essere eseguite con l’utente root, non è sempre la soluzione migliore. Le immagini container di .NET 8 utilizzeranno Debian 12 (Bookworm), in arrivo a metà anno.

Le anteprime e le release candidate di .NET 8 saranno pubblicate mensilmente. Altre funzionalità previste per .NET 8 includono:

  • La compilazione NativeAOT (ahead-of-time), che offre vantaggi come la riduzione dell’ingombro di memoria e il miglioramento dei tempi di avvio, viene estesa a più scenari applicativi. In .NET 7, NativeAOT si rivolgeva alle applicazioni per console
  • I miglioramenti apportati a JSON nella Preview 1 includono la gestione dei membri mancanti: .NET è in grado di configurare il comportamento di deserializzazione degli oggetti quando il payload JSON sottostante include proprietà che non possono essere mappate ai membri del tipo POCO deserializzato. Inoltre, il generatore di sorgenti JSON ora supporta la serializzazione di tipi con proprietà required e init e System.Text.Json ora supporta la serializzazione di proprietà da gerarchie di interfacce
  • Sono stati aggiunti nuovi tipi alle librerie principali per consentire agli sviluppatori di migliorare le prestazioni del codice in scenari comuni. Il namespace System.Collections.Frozen, ad esempio, offre FrozenDictionary<TKey, TValue> e FrozenSet. Questi tipi forniscono una superficie immutabile in cui non sono consentite modifiche alle chiavi o ai valori. Sono stati aggiunti anche degli algoritmi di hashing che puntano alle prestazioni, tra cui i tipi XxHash3 e XxHash128.
  • Per l’SDK .NET, dotnet publish e dotnet pack producono asset Release per impostazione predefinita

I piani per il framework di sviluppo multipiattaforma .NET MAUI (Multi-platform App UI) per il periodo di sviluppo di .NET 8 prevedono il miglioramento del percorso di aggiornamento da Xamarin a .NET, la velocizzazione del rendering dell’interfaccia utente e la riduzione dei tempi di sviluppo interni. Con .NET MAUI, gli sviluppatori possono creare applicazioni native per dispositivi mobili e desktop con C# e XAML.