Microsoft ha annunciato il rilascio della piattaforma aperta .NET 8, creata unificando i prodotti .NET Framework, .NET Core e Mono. .NET 8 consente la creazione di applicazioni multipiattaforma per browser, cloud, desktop, dispositivi IoT e piattaforme mobili, utilizzando librerie unificate e un processo di compilazione comune, indipendente dal tipo di applicazione. .NET SDK 8, .NET Runtime 8 e gli assembly ASP.NET Core Runtime 8 sono disponibili per Linux, macOS e Windows. .NET Desktop Runtime 8 è disponibile solo per Windows. Il lavoro di sviluppo del progetto è concesso in licenza con licenza MIT. Il ramo .NET 8 è classificato come LTS e sarà supportato per tre anni, fino a novembre 2026.
.NET 8 include un runtime con il compilatore just-in-time (JIT) RyuJIT, specifiche API, librerie WPF, Windows Forms, WinUI, Entity Framework, l'interfaccia a riga di comando dotnet e strumenti per lo sviluppo di microservizi, librerie e applicazioni server, grafiche e console. Le release separate includono lo stack di sviluppo di applicazioni web ASP.NET Core 8.0, il livello ORM di Entity Framework Core 8.0 (sono disponibili driver, tra gli altri, per SQLite e PostgreSQL), la libreria WPF 8 (Windows Presentation Foundation), il framework Windows Forms 8 per lo sviluppo di GUI, la piattaforma Aspire 8 per la creazione di applicazioni cloud native, il framework MAUI 8 per lo sviluppo di interfacce utente multipiattaforma e le release dei linguaggi C# 12 e F# 8. Il supporto per .NET 8.0 e C# 12 è incluso nell'editor di codice open source Visual Studio Code.
Caratteristiche della nuova versione:
- Sono state implementate importanti ottimizzazioni delle prestazioni. Un nuovo generatore di codice che supporta l'ottimizzazione dinamica basata sulla profilazione dell'esecuzione del codice (Dynamic Profile-Guided Optimization) è abilitato di default. L'utilizzo del nuovo generatore di codice garantisce un aumento delle prestazioni fino al 20%. Inoltre, la nuova versione aggiunge il supporto per le istruzioni AVX-512, che migliorano le prestazioni delle operazioni parallele sui dati vettoriali. È stata implementata una nuova interfaccia per i tipi primitivi, che consente l'analisi e la formattazione diretta dei dati UTF-8 senza ricodifica. Nei test TechEmpower, le prestazioni con l'API JSON sono aumentate del 18% e con Fortunes del 24%.

- È stato aggiunto un nuovo stack .NET Aspire, progettato per lo sviluppo di applicazioni cloud-native utilizzando le tecnologie .NET. .NET Aspire fornisce un'ampia gamma di componenti necessari per creare applicazioni eseguite in ambienti cloud, inclusi strumenti per la raccolta di dati di telemetria, la configurazione, il controllo dello stato e la tolleranza agli errori.
- Gli strumenti per il packaging delle applicazioni in container isolati sono stati ampliati. Le immagini dei container possono ora essere pubblicate per impostazione predefinita senza un Dockerfile o un utente root. Le dimensioni base delle immagini dei container per i componenti della piattaforma .NET sono state ridotte. È stata aggiunta un'immagine minimalista per l'esecuzione di applicazioni compilate in eseguibili (AOT nativo). È stata aggiunta un'opzione di immagine più sicura basata su Ubuntu Chiseled.
- Maggiore efficienza nella compilazione in eseguibili autonomi (AOT nativo), in cui l'intero progetto viene inizialmente compilato nel codice macchina della piattaforma di destinazione senza utilizzare codice intermedio e senza JIT.

- Le funzionalità delle API utilizzabili nei sistemi di apprendimento automatico sono state ampliate. Ad esempio, la libreria System.Numerics è stata migliorata per garantire la compatibilità con i sistemi di intelligenza artificiale generativa. Sono stati aggiunti esempi per la consapevolezza dei chatbot, la generazione di contenuti e l'accesso ai servizi di intelligenza artificiale di Azure.
- Blazor, una piattaforma per la creazione di applicazioni web in C#, ha ridotto i tempi di caricamento delle pagine, migliorato la scalabilità e consentito l'utilizzo di Blazor Server e Blazor WebAssembly nella stessa applicazione per creare programmi che combinano funzionalità. server e il client. È stato aggiunto Jiterpreter, un nuovo runtime WebAssembly più veloce, che ha migliorato il rendering dell'interfaccia utente del 20%. Sono state ampliate le funzionalità di autenticazione, autorizzazione e identificazione.
- Il framework MAUI per lo sviluppo di interfacce utente multipiattaforma è stato ampliato, consentendo agli utenti di utilizzare un'unica base di codice per creare interfacce per Windows, macOS, iOS e Android. È stato aggiunto il supporto sperimentale per la compilazione AOT nativa. È stato aggiunto il supporto per Xcode 15 e Android API 34. Gli elementi grafici e i pulsanti sono stati modernizzati e la gestione dei clic del mouse e degli eventi della tastiera è stata migliorata.
- C# 12 aggiunge il supporto per una sintassi semplificata per la creazione di costruttori primari in qualsiasi classe o struttura, nonché per la creazione semplificata di array, span e altri tipi di raccolta. Sono disponibili strumenti per specificare i valori predefiniti per i parametri delle espressioni lambda. L'elaborazione degli argomenti opzionali è semplificata. La possibilità di creare alias per qualsiasi tipo è ora disponibile tramite la direttiva "alias". // Creazione di un elenco a = [1, 2, 3, 4, 5, 6, 7, 8]; // Crea array span Span b = ['a', 'b', 'c', 'd', 'e', 'f', 'h', 'i']; // Usa l'operatore di diffusione per concatenare int[] array1 = [1, 2, 3]; int[] array2 = [4, 5, 6]; int[] array3 = [7, 8, 9]; int[] fullArray = [..array1, ..array2, ..array3]; // il contenuto sarà [1, 2, 3, 4, 5, 6, 7, 8, 9]
- ASP.NET Core supporta ora l'autenticazione basata su cookie e token per applicazioni a pagina singola (SPA) e app web (Blazor). È stata introdotta una nuova interfaccia utente per l'autenticazione. È stata rafforzata la protezione contro gli attacchi XSRF/CSRF.
- Entity Framework Core introduce nuovi tipi complessi che possono essere utilizzati come oggetti. È stato aggiunto il supporto per i dati gerarchici in SQL Server.
- Il gestore dei pacchetti NuGet ha semplificato il controllo dei pacchetti nei progetti e ha fornito informazioni sulla presenza di vulnerabilità note.
- .NET Runtime ora include la compilazione anticipata (AOT) per le piattaforme WebAssembly (WASM) e Android.
- WPF ha aggiunto una finestra di dialogo OpenFolderDialog e ha abilitato il supporto dell'accelerazione hardware in RDP.
- Supporto notevolmente migliorato per l'architettura ARM64 e qualità del codice migliorata per ARM.
- Il debugger fornisce una visualizzazione riepilogativa dei dati di debug e implementa livelli di debug semplificati per i tipi .NET comunemente utilizzati.
Fonte: opennet.ru


