Microsoft har lansert en betydelig ny utgave av den åpne plattformen .NET 6, utviklet gjennom en enhetlig tilnærming til .NET Framework, .NET Core og Mono. Med .NET 6 kan man lage flerplattformsapplikasjoner for nettlesere, skybaserte systemer, arbeidsstasjoner, IoT-enheter og mobile plattformer, ved å bruke felles biblioteker og en felles byggeprosess, uavhengig av applikasjonstype. .NET SDK 6, .NET Runtime 6 og ASP.NET Core Runtime 6 er tilgjengelig for Linux, macOS og Windows. .NET Desktop Runtime 6 tilbys kun for Windows. Prosjektrelaterte bidrag distribueres under MIT-lisens.
.NET 6 inkluderer runtime CoreCLR med JIT-kompilatoren RyuJIT, standardbiblioteker, CoreFX-biblioteker, WPF, Windows Forms, WinUI, Entity Framework, kommandolinjegrensesnittet dotnet, samt verktøy for utvikling av mikrotjenester, biblioteker, serverbaserte, grafiske og konsollapplikasjoner. Det er også publisert et eget rammeverk for utvikling av webapplikasjoner, ASP.NET Core 6.0, og ORM-laget Entity Framework Core 6.0 (med drivere, inkludert for SQLite og PostgreSQL), samt utgivelser av språkene C# 10 og F# 6. Støtte for .NET 6.0 og C# 10 er inkludert i den gratis kodeditoren Visual Studio Code.
Funksjoner i den nye utgaven:
- Ytelsen er betydelig forbedret, inkludert optimalisering av filinn- og utdata.
- Språket C# 10 har fått støtte for strukturer i form av records (record struct), direktivet «global using», filbundne navnerom og nye muligheter for lambda-uttrykk. Kompilatoren har fått støtte for inkrementell generering av kildekode.
- Språket F# 6 har fått støtte for mekanismen for asynkron oppgaveutførelse (async) og pipeline-feilsøking.
- Funksjonen Hot Reload er tilgjengelig, noe som gir muligheter for å redigere kode i sanntid under programkjøringen, slik at endringer kan gjøres uten å måtte stoppe programmet manuelt eller sette opp stoppunkter. Utvikleren kan starte applikasjonen under «dotnet watch», og deretter blir endringer gjort i koden automatisk anvendt på den kjørende applikasjonen, noe som gjør det mulig å se resultatet umiddelbart.
- Verktøyet «dotnet monitor» er lagt til for å få tilgang til diagnostisk informasjon fra dotnet-prosessen.
- Det ble foreslått et nytt system for dynamisk optimalisering basert på resultater fra kodeprofilering (PGO — Profile-guided optimization), som gjør det mulig å generere mer optimal kode basert på analyse av utførelsesegenskaper. Bruken av PGO har økt ytelsen til TechEmpower JSON "MVC" med 26%.
- ASP.NET Core får støtte for HTTP/3-protokollen i HttpClient og gRPC.
- API-en relatert til JSON-formatet er utvidet. En ny kodegenerator, System.Text.Json, og et system for datserialisering i JSON-formatet er lagt til.
- I Blazor, plattformen for å utvikle webapplikasjoner med C#, er støtte for gjengivelse av Razor-komponenter fra JavaScript og integrasjon med eksisterende JavaScript-applikasjoner lagt til.
- Støtte for kompilering av .NET-kode til WebAssembly-format er lagt til.
- API-en for fil I/O får støtte for symboliske lenker. FileStream er skrevet om helt.
- Støtte for OpenSSL 3-biblioteket og kryptografiske algoritmer som ChaCha20/Poly1305 er lagt til.
- I runtime er beskyttelsesmekanismer som W^X (Write XOR Execute, forbud mot samtidig skriving og utførelse) og CET (Control-flow Enforcement Technology, beskyttelse mot utnyttelse gjennom tilnærminger som Return-Oriented Programming) implementert.
- Eksperimentell støtte for iOS og Android som TFM-plattformer (Target Framework Moniker) er lagt til.
- Støtten for Arm64-systemer er betydelig forbedret. Støtte for Apple-enheter med ARM-brikken M1 (Apple Silicon) er lagt til.
- Prosessen med å bygge .NET SDK fra kildekoder er sikret, noe som forenkler arbeidet med å pakke .NET for Linux-distribusjoner.
Kilde: opennet.ru
