L'azienda Microsoft ha presentato una nuova versione significativa della piattaforma open source .NET 6, creata grazie all'unificazione dei prodotti .NET Framework, .NET Core e Mono. Sulla base di .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. I pacchetti .NET SDK 6, .NET Runtime 6 e ASP.NET Core Runtime 6 sono stati formati per Linux, macOS e Windows. .NET Desktop Runtime 6 è disponibile solo per Windows. Le risorse relative al progetto sono distribuite con licenza MIT.
.NET 6 include 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 il layer ORM Entity Framework Core 6.0 (driver inclusi per SQLite e PostgreSQL), oltre 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 dell'input/output dei file.
- Nel linguaggio C# 10 è stato implementato il supporto per le strutture nella forma di record (record struct), le direttive 'global using' collegate ai file degli spazi dei nomi e nuove funzionalità per le espressioni lambda. Il compilatore ha aggiunto il supporto per la generazione incrementale del codice sorgente.
- Nel linguaggio F# 6 è stato introdotto il supporto per il meccanismo di esecuzione asincrona delle attività async e la debug pipeline.
- È disponibile la funzione Hot Reload, che fornisce strumenti per modificare il codice al volo durante l'esecuzione del programma, consentendo di apportare modifiche senza fermare manualmente l'esecuzione e senza dover attaccare punti di interruzione. Lo sviluppatore può eseguire l'applicazione sotto il controllo di 'dotnet watch', dopo di che le modifiche al codice vengono automaticamente applicate all'applicazione in esecuzione, permettendo di osservare immediatamente il risultato.
- È stata aggiunta l'utilità 'dotnet monitor' per accedere alle informazioni diagnostiche del processo dotnet.
- È stata proposta una nuova sistema di ottimizzazione dinamica basata sui risultati del profiling del codice (PGO - ottimizzazione guidata dal profilo), che consente di generare codice più ottimizzato attraverso l'analisi delle caratteristiche di esecuzione. L'uso del PGO ha permesso di aumentare le prestazioni del benchmark TechEmpower JSON "MVC" del 26%.
- In ASP.NET Core, HttpClient e gRPC è stata aggiunta la supporto per il protocollo HTTP/3.
- È stata ampliata l'API relativa al formato JSON. È stato aggiunto un nuovo generatore di codice System.Text.Json e un sistema di serializzazione dei dati nel formato JSON.
- In Blazor, la piattaforma per la creazione di applicazioni web in C#, è stata aggiunta la supporto per il rendering dei componenti Razor da JavaScript e per l'integrazione con le esistenti applicazioni JavaScript.
- È stata aggiunta la supporto per la compilazione di codice .NET in modo che venga visualizzato su WebAssembly.
- Nell'API File IO è stata introdotta la supporto per i collegamenti simbolici. È stato completamente riscritto FileStream.
- È stata aggiunta la supporto per la libreria OpenSSL 3 e 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).
- È stata aggiunta la supporto sperimentale per iOS e Android come piattaforme TFM (Target Framework Moniker).
- È stata notevolmente migliorata la supporto per i sistemi Arm64. È stata aggiunta la supporto per i dispositivi Apple basati sul chip ARM M1 (Apple Silicon).
- È stato reso possibile il processo di costruzione del .NET SDK dai sorgenti, semplificando il lavoro di creazione di pacchetti .NET per distribuzioni Linux.
Fonte: opennet.ru
