.NET la piattaforma di sviluppo software Microsoft che offre un ambiente di esecuzione unificato per la creazione e l’esecuzione di applicazioni su diverse piattaforme. Essa offre un esteso insieme di librerie, framework e strumenti per lo sviluppo di applicazioni desktop, Web e mobile. Il .NET Framework, lanciato nel 2002, si proponeva come uno strumento completo per la realizzazione di applicazioni per Windows e il Web utilizzando linguaggi come C# e VB.NET.
Da allora la soluzione Microsoft ha subìto una continua evoluzione: dapprima con la presentazione di ASP.NET, poi con la versione più leggera progettata per i dispositivi mobili ed embedded (.NET Compact Framework) per passare nel 2016 a .NET Core, una delle evoluzioni più significative. .NET Core è infatti una versione modulare e multipiattaforma di .NET che ha consentito lo sviluppo e l’esecuzione di applicazioni su diverse piattaforme, inclusi Linux e macOS. Contemporaneamente nacque ASP .NET Core, per fornire un framework Web leggero, modulare e multipiattaforma.
In un nostro approfondimento, abbiamo visto come creare un’applicazione .NET senza Visual Studio, semplicemente installando .NET Core.
La storia recente di .NET
Dopo l’acquisizione di Xamarin, nel 2020 fu presentato .NET 5. Il software univa .NET Core, ASP.NET Core e Xamarin sotto un unico ombrello con l’obiettivo di sviluppare applicazioni native per iOS, Android e Windows, condividendo gran parte del codice tra le diverse piattaforme.
.NET 6 (2021) ha continuato il percorso di unificazione e ha introdotto nuove funzionalità, inclusa una maggiore integrazione con le soluzioni di intelligenza artificiale e la possibilità di sviluppare applicazioni per l’Internet delle Cose (IoT). A novembre 2022 è stata la volta di .NET 7 con il miglioramento delle prestazioni del runtime, il supporto per .NET MAUI (Multi-platform App UI) che ha messo nelle mani degli sviluppatori la possibilità di creare app multipiattaforma con un’unica base di codice.
.NET 7 ha inoltre migliorato il supporto per l’architettura ARM64 in modo da consentire la creazione di app ottimizzate per queste piattaforme, introdotto miglioramenti lato browser e server Web, migliorato il supporto per l’esecuzione di app .NET sui sistemi Linux, grazie anche a una partnership con Canonical per integrare .NET in Ubuntu.
Cosa si può fare con .NET 8
A metà novembre 2023, Microsoft ha annunciato la disponibilità della versione finale di .NET 8, pacchetto che si mette in evidenzia soprattutto per le nuove funzionalità cloud-oriented, per la presenza del full-stack Blazor, per le caratteristiche avanzate per realizzare app di intelligenza artificiale. La nuova versione di .NET rinsalda inoltre il legame con .NET MAUI.
Riassumiamo che cosa è possibile fare con .NET 8:
- Integrare modelli di linguaggio di grandi dimensioni (LLM) come GPT di OpenAI direttamente nelle app .NET.
- Sfruttare Blazor in modo da usare un singolo modello di componente per gestire tutte le esigenze dell’interfaccia utente Web.
- Distribuire le applicazioni mobili sulle più aggiornate versioni di iOS e Android con .NET MAUI.
- Scoprire, grazie a C# 12, nuovi miglioramenti del linguaggio che rendono il codice di programmazione più conciso ed espressivo.
Di particolare importanza per le aziende, .NET 8 è una release LTS (Long Term Support) – come avviene negli anni dispari -. Ciò significa che sarà supportata e aggiornata, anche con le correzioni di sicurezza, per ben 3 anni anziché per 18 mesi come avviene con le release standard.
Come conferma la pagina di download, Microsoft si impegna a supportare .NET 8 fino al 10 novembre 2026.
Le principali novità di .NET 8
Anni fa, i risultati di un sondaggio indicavano l’assenza di Native AOT in .NET Core come un ostacolo importante sulla strada dell’adozione della piattaforma di sviluppo. I tecnici Microsoft hanno quindi compiuto uno sforzo significativo nell’implementare questa caratteristica.
Native AOT (Native Ahead-of-Time Compilation) è una tecnica di compilazione che converte il codice sorgente di un’applicazione in linguaggio macchina nativo prima dell’esecuzione effettiva. Si tratta di un approccio opposto alla compilazione JIT (Just-In-Time) compilation, che traduce il codice sorgente in linguaggio macchina durante l’esecuzione dell’applicazione. In passato abbiamo parlato dei miglioramenti che Google ha apportato al suo compilatore JIT per rendere Chrome più veloce.
Con Native AOT, poiché il codice è già compilato in linguaggio macchina, le applicazioni tendono a evidenziare tempi di avvio più rapidi rispetto a quelle che utilizzano la compilazione JIT. Il miglioramento prestazionale è quindi tangibile perché il codice è già ottimizzato e pronto per l’esecuzione.
Miglioramenti delle performance
Partendo dall’approccio Native AOT, .NET 8 offre migliaia di miglioramenti delle performance, della stabilità e della sicurezza, ha spiegato Microsoft. Come ogni anno, Stephen Toub (Microsoft) ha messo sotto la lente le prestazioni di .NET: il tecnico ha affermato che se .NET 7 era velocissimo, .NET 8 lo è ancora di più.
.NET 8 introduce un nuovo generatore di codice e l’ottimizzazione dinamica guidata dal profilo (PGO), un meccanismo capace di ottimizzare il codice basandosi sull’utilizzo delle applicazioni nel mondo reale. Questa funzionalità può migliorare le performance fino al 20%.
Il set di istruzioni AVX-512, a suo tempo aspramente vituperato da Linus Torvalds, consente operazioni parallele su vettori di dati a 512 bit ed è adesso fattivamente supportato e utilizzato in .NET 8. In questo modo chi sviluppa applicazioni evolute, può approfittare di un’elaborazione ancora più veloce.
Inoltre, i tipi primitivi implementano ora un’interfaccia formattabile e analizzabile, consentendo la formattazione e l’analisi di dati in formato UTF-8 senza alcun overhead derivante dalla transcodifica.
.NET 8 punta tantissimo sul cloud
L’enfasi sul cloud è evidente sin dalle prime parole della presentazione tenuta dal personale Microsoft. Con questa release, si spiega, .NET ridisegna il modo in cui possiamo costruire applicazioni intelligenti, cloud-native e servizi ad alto traffico che sanno scalare automaticamente in base alla richiesta. .NET 8 semplifica lo sviluppo di queste applicazioni, indipendentemente dal fatto che esse debbano raggiungere sistemi Linux o Windows, che siano avviate all’interno di container o su qualsiasi piattaforma cloud.
Particolarmente rilevante è il debutto di .NET Aspire, uno stack che aiuta nella messa a punto di applicazioni cloud-native resilienti, osservabili e configurabili. La tecnologia proposta da Microsoft guida il programmatore proponendo convenzioni e assunzioni specifiche che aiutano a fare le cose nel modo migliore. .NET Aspire consta di un insieme di componenti avanzati che permettono di arricchire le proprie app cloud con strumenti di telemetria, a supporto della resilienza, per la configurazione granulare oltre a una serie di controlli di integrità.
Blazor come piattaforma di sviluppo Web
Con il rilascio di .NET 8, Blazor si afferma come un framework di sviluppo Web full-stack, dotato di nuove funzionalità volte a ottimizzare il tempo di caricamento delle pagine, la scalabilità e l’esperienza utente. Con il supporto per Blazor Server e Blazor WebAssembly nella stessa app, gli sviluppatori possono sfruttare la flessibilità offerta dalla tecnologia.
Blazor può ora gestire tutte le esigenze dell’interfaccia utente Web. Inoltre, l’introduzione di un runtime basato su ‘Jiterpreter‘ e nuovi componenti integrati, accelerano significativamente l’esecuzione del codice .NET mediante WebAssembly. In un altro articolo abbiamo visto nel dettaglio cos’è WASM (WebAssembly) e perché è una rivoluzione nello sviluppo delle applicazioni per il Web.
L’immagine in apertura è di Microsoft.