Microsoft ha presentato il rilascio della piattaforma aperta .NET 8, creata grazie all'unificazione dei prodotti .NET Framework, .NET Core e Mono. Con .NET 8 è possibile sviluppare applicazioni multi-piattaforma per browser, sistemi cloud, desktop, dispositivi IoT e piattaforme mobili, utilizzando librerie comuni e un processo di compilazione universale, indipendente dal tipo di applicazione. Le build di .NET SDK 8, .NET Runtime 8 e ASP.NET Core Runtime 8 sono disponibili per Linux, macOS e Windows. .NET Desktop Runtime 8 è disponibile solo per Windows. I risultati del progetto sono distribuiti con licenza MIT. La versione .NET 8 è categorizzata come LTS e sarà supportata per tre anni fino a novembre 2026.
.NET 8 include un Runtime con il compilatore JIT RyuJIT, specifiche API, librerie WPF, Windows Forms, WinUI, Entity Framework, interfaccia della riga di comando dotnet, oltre a strumenti per lo sviluppo di microservizi, librerie, applicazioni server, grafiche e console. È stata pubblicata separatamente la stack per lo sviluppo di applicazioni web ASP.NET Core 8.0, l'ORM Entity Framework Core 8.0 (i driver sono disponibili anche per SQLite e PostgreSQL), la libreria WPF 8 (Windows Presentation Foundation), il framework Windows Forms 8 per lo sviluppo di interfacce 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 versioni dei linguaggi C# 12 e F# 8. Il supporto per .NET 8.0 e C# 12 è incluso nell'editor di codice gratuito Visual Studio Code.
Caratteristiche della nuova versione:
- È stata effettuata una significativa ottimizzazione delle prestazioni. È stato incluso di default un nuovo generatore di codice che supporta l'ottimizzazione dinamica basata sul profiling dell'esecuzione del codice (Dynamic Profile-Guided Optimization). L'utilizzo del nuovo generatore di codice garantisce un aumento delle prestazioni delle applicazioni fino al 20%. Inoltre, nella nuova versione è stato aggiunto il supporto per le istruzioni AVX-512, che consentono di migliorare le prestazioni delle operazioni parallele sui dati vettoriali. Per i tipi primitivi è stato implementato un nuovo interfaccia, che permette di analizzare e formattare direttamente i dati in formato UTF-8 senza riconversione. Nei test di TechEmpower, le prestazioni di lavoro con API JSON sono aumentate del 18%, mentre con Fortunes del 24%.

- È stata aggiunta una nuova stack .NET Aspire, progettata per lo sviluppo di applicazioni cloud-native, utilizzando le tecnologie .NET. In .NET Aspire è disponibile un ampio insieme di componenti necessari per la creazione di applicazioni eseguite in ambienti cloud, inclusi strumenti per la raccolta di telemetria, configurazione, verifica dello stato e garantire la resilienza.
- Sono stati ampliati gli strumenti per confezionare le applicazioni in contenitori isolati. Per impostazione predefinita, è garantita la pubblicazione di immagini dei contenitori senza Dockerfile e senza un utente root. È stata ridotta la dimensione dell'immagine di base del contenitore con i componenti della piattaforma .NET. È stata aggiunta un'opzione minimalista dell'immagine per eseguire applicazioni compilate in file eseguibili (Native AOT). È stato aggiunto un'opzione di immagine più sicura basata su Chiseled Ubuntu.
- È stata aumentata l'efficienza della compilazione in file eseguibili autonomi (Native AOT), nei quali l'intero progetto è inizialmente compilato in codice macchina per la piattaforma target senza utilizzare codice intermedio e senza applicare JIT.

- Sono state ampliate le capacità delle interfacce software utilizzabili nei sistemi di apprendimento automatico. Ad esempio, nella libreria System.Numerics è stata migliorata la compatibilità con i sistemi di AI generativa. Sono stati aggiunti esempi per la creazione di chatbot, generazione di contenuti e accesso ai servizi Azure AI.
- In Blazor, la piattaforma per la creazione di applicazioni web in C#, è stato ridotto il tempo di caricamento delle pagine, migliorata la scalabilità, e consentito l'uso combinato in un'applicazione di Blazor Server e Blazor WebAssembly per sviluppare applicazioni che uniscono le funzionalità di cliente. сервера È stato aggiunto Jiterpreter, un nuovo runtime WebAssembly più veloce, che ha consentito di accelerare il rendering dell'interfaccia del 20%. Sono state ampliate le possibilità di autenticazione, autorizzazione e identificazione.
- Il framework MAUI per lo sviluppo di interfacce utente multipiattaforma è stato ampliato, offrendo la possibilità di utilizzare un'unica base di codice per costruire interfacce per Windows, macOS, iOS e Android. È stato aggiunto il supporto sperimentale per la compilazione (Native AOT). È stato introdotto il supporto per le piattaforme Xcode 15 e Android API 34. Gli elementi grafici e i pulsanti sono stati modernizzati, migliorando la gestione dei clic del mouse e degli eventi da tastiera.
- Nel linguaggio C# 12 è stata introdotta la supporto per una sintassi semplificata per la creazione di costruttori primari in qualsiasi classe e struttura, rendendo anche più facile la creazione di array, span e altri tipi di collezioni. Sono stati forniti strumenti per impostare valori predefiniti per i parametri delle espressioni lambda. È stata semplificata la gestione degli argomenti facoltativi. È stata aggiunta la possibilità di creare alias per qualsiasi tipo utilizzando la direttiva "alias". // Creazione di una lista List a = [1, 2, 3, 4, 5, 6, 7, 8]; // Creazione di array span Span b = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘h’, ‘i’]; // Usa l'operatore di spread 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]
- In ASP.NET Core è stato implementato il supporto per l'autenticazione basata su Cookie e token per applicazioni a pagina singola (SPA) e web (Blazor). È stata proposta una nuova interfaccia utente per l'autenticazione. È stata rinforzata la protezione contro attacchi XSRF/CSRF.
- In Entity Framework Core sono stati introdotti nuovi tipi complessi che possono essere utilizzati come oggetti. È stato aggiunto il supporto per dati gerarchici in SQL Server.
- Nel gestore pacchetti NuGet è stato semplificato l'audit dei pacchetti nei progetti e fornita notifica della presenza di vulnerabilità conosciute.
- Nel .NET Runtime è stata aggiunta la modalità di compilazione anticipata (AOT) per le piattaforme WebAssembly (WASM) e Android.
- In WPF è stata aggiunta una finestra di dialogo per l'apertura della cartella (OpenFolderDialog) e è stato incluso il supporto per l'accelerazione hardware in RDP.
- È stato notevolmente migliorato il supporto per l'architettura ARM64 e la qualità del codice per ARM è stata aumentata.
- Nel debugger è stata implementata la visualizzazione di sintesi dei dati di debug e sono state realizzate interfacce di debug semplificate per i tipi .NET comunemente utilizzati.
Fonte: opennet.ru


