.NET 11 Preview 3: tutte le novità del terzo rilascio anticipato
.NET 11 è ancora in fase di sviluppo, ma il terzo Preview rilasciato il 14 aprile 2026 porta con sé una serie di novità concrete e già sperimentabili. Dalle librerie di sistema al runtime JIT, dall’SDK alla toolchain, questo rilascio intermedio offre uno sguardo chiaro su dove sta andando l’ecosistema .NET. Vediamo nel dettaglio cosa c’è di nuovo e cosa vale la pena testare subito nei propri progetti.
Novità nel Runtime e JIT
Il team del runtime ha rimosso il requisito del flag di opt-in per le API async previewed nelle versioni precedenti: alcune funzionalità asincrone del runtime sono ora accessibili senza annotazioni speciali. Sul fronte delle prestazioni, il JIT compiler è stato ottimizzato in tre aree chiave:
- Switch statement: migliorata la generazione di codice macchina per costrutti switch complessi
- Bounds check: eliminati controlli ridondanti sugli array in scenari comuni
- Type cast: ridotta la latenza nelle operazioni di cast tra tipi gerarchicamente correlati
Sul fronte WebAssembly, .NET 11 introduce il formato WebCIL, un nuovo formato di packaging per i moduli .wasm, insieme a miglioramenti al debugging in ambiente browser. Chi sviluppa applicazioni Blazor WebAssembly beneficerà di esperienze di debug più fluide.
Librerie di Sistema: JSON, Compressione e Regex
System.Text.Json riceve controllo più granulare sulla naming strategy e sulla gestione dei valori di default. Sarà possibile configurare i serializzatori per ignorare specifiche proprietà con valori predefiniti in modo più preciso rispetto a quanto offriva il parametro DefaultIgnoreCondition.
La novità più interessante lato compressione è l’aggiunta di Zstandard (zstd) in System.IO.Compression. Zstandard è l’algoritmo di compressione sviluppato da Meta, noto per offrire un ottimo trade-off tra velocità e rapporto di compressione — spesso superiore a gzip e deflate. Esempio di utilizzo:
using System.IO.Compression;
// Compressione con Zstandard
using var input = File.OpenRead("dati.json");
using var output = File.Create("dati.json.zst");
using var compressor = new ZstandardStream(output, CompressionMode.Compress);
await input.CopyToAsync(compressor);
In aggiunta, la lettura di file ZIP ora valida i checksum CRC32 automaticamente, rendendo più robusta la gestione degli archivi corrotti o manomessi.Per le espressioni regolari, il motore riconosce ora tutte le sequenze Unicode di newline, migliorando la portabilità del parsing testuale cross-platform.
SDK: Nuove Funzionalità da CLI
L’SDK riceve alcune aggiunte molto pratiche per chi lavora da terminale:
Passare variabili d’ambiente con dotnet run -e
# Passare una variabile d'ambiente al processo durante lo sviluppo
dotnet run -e ASPNETCORE_ENVIRONMENT=Development -e ConnectionStrings__Default="Server=..."
Finalmente si può sovrascrivere variabili d’ambiente senza toccare launchSettings.json o esportare variabili nello shell corrente.
Top-level programs multi-file
I programmi con top-level statements (introdotti in C# 9) potranno ora distribuirsi su più file sorgente. Questo alleggerisce il vincolo di avere tutto in un unico Program.cs per i progetti di tipo file-based, come script o tool CLI leggeri.
dotnet watch migliorato
Lo strumento dotnet watch ha ricevuto tre miglioramenti rilevanti: supporto ai progetti .NET Aspire, crash recovery automatico e miglioramenti specifici per applicazioni Windows desktop (WPF/WinForms).
C# 14: Union Types in Anteprima
Preview 3 include un’anteprima degli union types in C# 14. Questa funzionalità, molto attesa, consente di dichiarare tipi che possono contenere uno tra un insieme definito di tipi, avvicinando C# a pattern già presenti in F#, TypeScript e Rust:
// Sintassi ipotetica - ancora in preview, soggetta a variazioni
union Result<T>
{
T Value,
Exception Error
}
var result = GetData();
var output = result switch
{
Result<string>.Value(var v) => $"Successo: {v}",
Result<string>.Error(var e) => $"Errore: {e.Message}"
};
Attenzione: la sintassi è ancora sperimentale e potrebbe cambiare nelle release successive.
ASP.NET Core in .NET 11 Preview 3
Tre aggiornamenti principali per il framework web:
Compressione Zstandard per le risposte HTTP
ASP.NET Core ora supporta la compressione zstd nelle risposte HTTP e la decompressione delle richieste in arrivo. Da configurare in Program.cs:
builder.Services.AddResponseCompression(options =>
{
options.Providers.Add<ZstandardCompressionProvider>();
options.EnableForHttps = true;
});
Blazor Virtualize con altezze variabili
Il componente <Virtualize> di Blazor ora si adatta a elementi di altezza variabile a runtime, risolvendo un limite storico che richiedeva di specificare un’altezza fissa per gli elementi della lista virtualizzata.
HTTP/3 più reattivo
L’avvio dell’elaborazione delle richieste HTTP/3 è anticipato, riducendo la latenza percepita nelle prime connessioni su protocollo QUIC.
Entity Framework Core: GetEntriesForState()
EF Core in .NET 11 introduce ChangeTracker.GetEntriesForState(), un metodo che consente di interrogare le entry per stato (Added, Modified, Deleted) senza scatenare un cycle di change detection — operazione potenzialmente costosa in grafi di oggetti complessi:
// Prima: scatenava change detection su tutto il grafo
var modified = context.ChangeTracker.Entries()
.Where(e => e.State == EntityState.Modified)
.ToList();
// Ora: accesso diretto per stato, senza overhead di detection
var modified = context.ChangeTracker
.GetEntriesForState(EntityState.Modified)
.ToList();
Container Images Firmati
Le immagini container ufficiali di .NET sono ora firmate digitalmente, permettendo la verifica della catena di custodia prima del deployment. Questo è un passo importante per le pipeline DevSecOps che richiedono provenance verificabile dei componenti software.
Come Provare .NET 11 Preview 3
# Scaricare il SDK da https://dotnet.microsoft.com/download/dotnet/11.0
dotnet --version
# Output atteso: 11.0.0-preview.3.xxxxx
# Creare un progetto di test
dotnet new console -n test-dotnet11 --framework net11.0
Conclusione
.NET 11 Preview 3 è un rilascio ricco, che tocca trasversalmente runtime, SDK, ASP.NET Core ed EF Core. Le novità più impattanti per la produzione futura sono il supporto a Zstandard, gli union types in C# 14 e le ottimizzazioni JIT. Si consiglia di testare le nuove funzionalità dell’SDK — in particolare dotnet run -e — già ora, poiché entreranno probabilmente stabili con il rilascio di novembre 2026.
Fonte: devblogs.microsoft.com — .NET 11 Preview 3 is now available!, 14 aprile 2026
Find out about the new features in .NET 11 Preview 3 across the .NET runtime, SDK, libraries, ASP.NET Core, .NET MAUI, C#, Entity Framework Core, container images, and more!
.NET Team (.NET Blog)
Otttoz
in reply to macfranc • • •Fluffgar 🏴
in reply to macfranc • • •macfranc
in reply to Fluffgar 🏴 • • •