Microsoft ha presentato una nuova versione significativa della piattaforma open source .NET 6, realizzata attraverso l'unificazione dei prodotti .NET Framework, .NET Core e Mono. Con .NET 6 è possibile sviluppare applicazioni multipiattaforma per browser, sistemi cloud, desktop, dispositivi IoT e piattaforme mobili, utilizzando librerie unificate e un processo di build comune, indipendentemente dal tipo di applicazione. Le build .NET SDK 6, .NET Runtime 6 e ASP.NET Core Runtime 6 sono state create per Linux, macOS e Windows. .NET Desktop Runtime 6 è disponibile solo per Windows. I materiali relativi al progetto sono distribuiti con licenza MIT.
In .NET 6 è incluso il runtime CoreCLR con il compilatore JIT RyuJIT, librerie standard, librerie CoreFX, WPF, Windows Forms, WinUI, Entity Framework, l'interfaccia a riga di comando dotnet, oltre a strumenti per lo sviluppo di microservizi, librerie, applicazioni server, grafiche e console. È stato pubblicato separatamente il framework per lo sviluppo di applicazioni web ASP.NET Core 6.0 e la libreria ORM Entity Framework Core 6.0 (driver inclusi per SQLite e PostgreSQL), insieme alle versioni dei linguaggi C# 10 e F# 6. Il supporto per .NET 6.0 e C# 10 è incluso nell'editor di codice gratuito Visual Studio Code.
Caratteristiche della nuova versione:
- Le prestazioni sono state notevolmente migliorate, inclusa l'ottimizzazione della lettura/scrittura dei file.
- Nel linguaggio C# 10 è stata introdotta la supporto per le strutture in forma di record (record struct), le direttive "global using", i namespace associati ai file e nuove funzionalità per le espressioni lambda. Il compilatore ha ora il supporto per la generazione incrementale del codice sorgente.
- Nel linguaggio F# 6 è stata introdotta la supporto per la meccanismo di esecuzione asincrona delle attività async e il debug pipeline.
- È disponibile la funzione Hot Reload, che fornisce strumenti per la modifica del codice in tempo reale durante l'esecuzione del programma, consentendo di apportare modifiche senza interrompere manualmente l'esecuzione e senza dover impostare i punti di interruzione. Lo sviluppatore può avviare l'applicazione utilizzando "dotnet watch", dopo di che le modifiche apportate al codice vengono applicate automaticamente all'applicazione in esecuzione, permettendo di vedere immediatamente i risultati.
- È stato aggiunto lo strumento "dotnet monitor" per accedere alle informazioni diagnostiche del processo dotnet.
- È stata proposta una nuova sistema di ottimizzazione dinamica basata sui risultati della profilazione del codice (PGO - Profile-guided optimization), che consente di generare codice più ottimizzato sulla base dell'analisi delle caratteristiche di esecuzione. L'uso del PGO ha consentito di migliorare le prestazioni del set TechEmpower JSON "MVC" del 26%.
- In ASP.NET Core, HttpClient e gRPC è stato aggiunto il supporto per il protocollo HTTP/3.
- L'API relativa al formato JSON è stata ampliata. È stato aggiunto un nuovo generatore di codice System.Text.Json e un sistema di serializzazione dei dati in formato JSON.
- In Blazor, la piattaforma per la creazione di applicazioni web in C#, è stato aggiunto il supporto per il rendering di componenti Razor da JavaScript e l'integrazione con le applicazioni JavaScript esistenti.
- È stato aggiunto il supporto per la compilazione di codice .NET in WebAssembly.
- Nell'API File IO è stato aggiunto il supporto per i link simbolici. FileStream è stato completamente riscritto.
- È stata introdotta la supporto per la libreria OpenSSL 3 e per gli algoritmi crittografici ChaCha20/Poly1305.
- Nel runtime sono stati implementati meccanismi di protezione W^X (Write XOR Execute, divieto di accesso simultaneo in scrittura ed esecuzione) e CET (Control-flow Enforcement Technology, protezione contro l'esecuzione di exploit basati su tecniche di programmazione orientata al ritorno).
- È stato aggiunto il supporto sperimentale per iOS e Android come piattaforme TFM (Target Framework Moniker).
- Il supporto per i sistemi Arm64 è stato notevolmente migliorato. È stato aggiunto il supporto per i dispositivi Apple basati sul chip ARM M1 (Apple Silicon).
- È stato garantito un processo di build del .NET SDK dai sorgenti, semplificando la creazione di pacchetti con .NET per distribuzioni Linux.
Fonte: opennet.ru
