L'azienda Microsoft ha presentato il rilascio della piattaforma aperta .NET 8, creata grazie all'unificazione dei prodotti .NET Framework, .NET Core e Mono. Sulla base di .NET 8 è possibile sviluppare applicazioni multipiattaforma per browser, sistemi cloud, desktop, dispositivi IoT e piattaforme mobili, utilizzando librerie uniche e un processo di build comune, indipendentemente 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 è fornito solo per Windows. I materiali associati al progetto sono distribuiti con licenza MIT. Il ramo .NET 8 è classificato come LTS e verrà supportato per tre anni fino a novembre 2026.
.NET 8 comprende Runtime con compilatore JIT RyuJIT, specifiche API, librerie WPF, Windows Forms, WinUI, Entity Framework, interfaccia della riga di comando dotnet e strumenti per lo sviluppo di microservizi, librerie, applicazioni server, grafiche e console. È stato pubblicato separatamente lo stack per lo sviluppo di applicazioni web ASP.NET Core 8.0, il layer 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 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 eseguita una grande ottimizzazione delle prestazioni. È inclusa per impostazione predefinita una nuova generazione di codice, che supporta ottimizzazioni dinamiche basate sul profiling dell'esecuzione di codice (Dynamic Profile-Guided Optimization). L'utilizzo della nuova generazione di codice garantisce un incremento delle prestazioni delle applicazioni fino al 20%. Inoltre, nella nuova versione è stata aggiunta la 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 consente di analizzare e formattare direttamente i dati in formato UTF-8 senza ricodifica. Nei test TechEmpower, le prestazioni della gestione delle API JSON sono aumentate del 18%, mentre quelle di Fortunes del 24%.

- È stato aggiunto un nuovo stack .NET Aspire, progettato per lo sviluppo di applicazioni cloud-native, utilizzando tecnologie .NET. In .NET Aspire è fornito un ampio set di componenti che potrebbero essere necessari per la creazione di applicazioni eseguite in ambienti cloud, inclusi strumenti per la raccolta di telemetria, configurazione, verifica delle prestazioni e garanzia di resilienza.
- Sono stati ampliati gli strumenti per l'imballaggio delle applicazioni in contenitori isolati. Per impostazione predefinita, è garantita la pubblicazione di immagini dei contenitori senza Dockerfile e senza utente root. È stata ridotta la dimensione dell'immagine di base del contenitore con i componenti della piattaforma .NET. È stata aggiunta una variante minimalista dell'immagine per l'esecuzione di applicazioni compilate in eseguibili (Native AOT). È stata introdotta una variante più sicura delle immagini basate su Chiseled Ubuntu.
- È stata aumentata l'efficienza della compilazione in eseguibili autonomi (Native AOT), in cui l'intero progetto è originariamente compilato in codice macchina per la piattaforma di destinazione senza l'uso di codice intermedio e senza applicare JIT.

- Le capacità delle interfacce di programmazione sono state ampliate per l'uso nei sistemi di machine learning. Ad esempio, nella libreria System.Numerics è stata migliorata la compatibilità con i sistemi AI generativi. Sono stati aggiunti esempi per la consapevolezza dei chatbot, generazione di contenuti e accesso ai servizi Azure AI.
- In Blazor, la piattaforma per la creazione di web app in C#, sono stati ridotti i tempi di caricamento delle pagine, migliorata la scalabilità e consentito l'uso di Blazor Server e Blazor WebAssembly in una singola applicazione per creare programmi che combinano funzionalità di server client. È stato aggiunto Jiterpreter, un nuovo runtime WebAssembly più veloce, che ha permesso di accelerare il rendering dell'interfaccia del 20%. Sono state ampliate le capacità di autenticazione, autorizzazione e identificazione.
- Il framework MAUI per lo sviluppo di interfacce utente multipiattaforma è stato ampliato, fornendo la possibilità di utilizzare una singola base di codice per compilare interfacce per Windows, macOS, iOS e Android. È stata aggiunta un'esperienza supporto alla compilazione (Native AOT). È stato aggiunto il supporto per le piattaforme Xcode 15 e Android API 34. Gli elementi grafici e i pulsanti sono stati modernizzati, migliorata l'elaborazione dei clic del mouse e degli eventi da tastiera.
- Nel linguaggio C# 12 è stata aggiunta la supporto per una sintassi semplificata per la creazione di costruttori primari in qualsiasi classe e struttura, e semplificata la creazione di array, span e altri tipi di collezioni. Sono stati forniti strumenti per impostare valori predefiniti per i parametri delle espressioni lambda. Semantico è stata semplificata la gestione degli argomenti facoltativi. È stata aggiunta la possibilità di creare alias di qualsiasi tipo utilizzando la direttiva «alias». // Creazione di un elenco 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 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 è stata implementata la supporto per l'autenticazione basata su Cookie e token per applicazioni single-page (SPA) e web (Blazor). È stata proposta una nuova interfaccia utente per il processo di autenticazione. È stata rafforzata la protezione contro gli attacchi XSRF/CSRF.
- In Entity Framework Core sono stati forniti nuovi tipi complessi che possono essere utilizzati come oggetti. È stato aggiunto il supporto per dati gerarchici in SQL Server.
- Nel gestore pacchetti NuGet è stata semplificata l'audit dei pacchetti nei progetti e garantita l'informazione sulla disponibilità di vulnerabilità note.
- Nel .NET Runtime è stata aggiunta la modalità di compilazione anticipata (AOT) per le piattaforme WebAssembly (WASM) e Android.
- In WPF è stata aggiunta la finestra di dialogo per l'apertura di directory (OpenFolderDialog) e è stato attivato il supporto per l'accelerazione hardware in RDP.
- È stato notevolmente migliorato il supporto per l'architettura ARM64 e aumentata la qualità del codice per ARM.
- Nel debugger è stata garantita la visualizzazione di sintesi dei dati di debug e implementati strati di debug semplificati per i tipi comunemente usati in .NET.
Fonte: opennet.ru


