Microsoft har offentliggjort den åbne platform .NET 9.0

Microsoft har præsenteret udgivelsen af den åbne platform .NET 9, der er udviklet gennem en sammensmeltning af .NET Framework, .NET Core og Mono. Med .NET 9 kan man skabe tværplatforms applikationer til browsere, cloud-systemer, desktop, IoT-enheder og mobile platforme ved hjælp af fælles biblioteker og en ensartet build-proces, uafhængigt af applikationstypen. .NET SDK 9, .NET Runtime 9 og ASP.NET Core Runtime 9 er tilgængelige for Linux, macOS og Windows. .NET Desktop Runtime 9 leveres kun til Windows. Relaterede projekter distribueres under MIT-licensen.

.NET inkluderer et runtime med JIT-kompilatoren RyuJIT, API-specifikationer, biblioteker til WPF, Windows Forms, WinUI og Entity Framework, kommandolinjegrænsefladen dotnet samt værktøjer til udvikling af mikrotjenester, biblioteker, serverbaserede, grafiske og konsolapplikationer. Separat leveres stakken til udvikling af webapplikationer ASP.NET Core 9.0, ORM-laget Entity Framework Core 9.0 (drivere er tilgængelige, herunder til SQLite og PostgreSQL), WPF 9-biblioteket (Windows Presentation Foundation), Windows Forms 9-rammen til udvikling af GUI, Aspire 9-platformen til oprettelse af cloud-native applikationer, MAUI 9-rammen til udvikling af tværplatforms brugergrænseflader samt udgivelserne af sprog C# 13 og F# 9. Understøttelsen af .NET 9.0 og C# 13 er inkluderet i den gratis kode editor Visual Studio Code.

Funktioner i den nye udgave:

  • Der er foretaget mere end tusinde ændringer for at optimere ydeevnen og forbedre kvaliteten af den genererede kode. Affaldsindsamleren er blevet moderniseret, og der er implementeret en mekanisme til dynamisk tilpasning til applikationens størrelse som standard (affaldsindsamleren er ikke bundet til de tilgængelige systemressourcer, men til hvor meget hukommelse applikationen kræver). Den nye tilstand gør det muligt at forbedre effektiviteten på systemer med mange processorkerner, hvis applikationen bruger relativt lidt hukommelse, eller hvis behovet for hukommelse ændrer sig betydeligt under kørslen.

    JIT-kompilatoren har fået nye optimeringer baseret på profilering (PGO), forbedret behandling af løkker, inline-udrulning og grænsekontrol. I .NET-runtime er brugen af vektorinstruktioner udvidet, og der er tilføjet støtte til Arm64 SVE- og Intel AVX10-erweiterungen. Koden til håndtering af undtagelser er blevet 50% hurtigere. For kode med typekonverteringsoperationer, såsom «(IFoo)myFoo» og «myFoo is IFoo», er der registreret en ydeevneforbedring på op til 70%. Ydeevnen for nogle metoder i forespørgselssproget LINQ (Language-Integrated Query), såsom Take og DefaultIfEmpty, er steget med op til 10 gange, når der arbejdes med tomme arrays og samlinger.

    Ydeevnen og effektiviteten af metoden System.Text.Json er markant forbedret. I JsonProperty.WriteTo metoden er muligheden for direkte skrivning af UTF8-strenge implementeret, hvilket eliminerer unødvendig hukommelsesallokering. Operationer til ændring af størrelsen af JsonObject er optimeret. Under testene TechEmpower, der vurderer ydeevnen for koden til behandling af JSON-forespørgsler, observeres der en ydeevneforbedring på 15% og et fald i hukommelsesforbruget på 93% i sammenligning med .NET 8.

  • I Runtime er der foreslået en ny attributmodel til aktivering og trimming af funktionalitet i biblioteker.
  • I C# 13 er anvendelsen af modifikatoren «params» udvidet, således at der udover arrays også kan angives samlinger. Ved initialisering af arrays kan man bruge operatoren «^» til at tælle indekser fra slutningen af arrayet (for eksempel vil «buffer = { [^1] = 0, [^2] = 1,….}» indskrive 0 i det sidste element og 1 i det næstsidste). I iteratorer og async-metoder er brugen af ref- og unsafe-udtryk tilladt. En ny escape-sekvens «\e» er tilføjet. Definition af grænseflader for typerne «ref struct» og brug af «ref struct»-typer som argumenter i generiske funktioner er nu tilladt. En ny Lock-type er blevet foreslået til opsætning af låse i multitrådede applikationer. Lock myLock = new(); void Concat<T>(params List<T> items) { lock (myLock) Console.WriteLine(string.Join(«\e[1mItem: \e[0m», items)); }
  • I F# 9 er der kommet support for typer, der kan have null-værdier. I unioner er der implementeret automatisk genererede egenskaber “.Is*” (f.eks. person.contact.IsEmail), som kan bruges til at kontrollere, om en værdi tilhører et sæt. Der er tilføjet support for tomme beregnede udtryk (“let xs = seq { }”). I direktiver, der starter med symbolen “#”, er det tilladt at angive ikke-strenge værdier (f.eks. kan man skrive #nowarn 0070 i stedet for #nowarn “0070”). Der er tilføjet funktioner til at vælge tilfældige elementer eller blande elementer i modulerne List, Array og Seq. Der tillades anvendelse af kollektionsoperationer på lister (list og set).
  • Mulighederne i .NET Aspire-stakken er udvidet, der tilbyder et sæt komponenter til oprettelse af applikationer, der kan køre i cloud-miljøer. Der er tilføjet nye funktioner til administration af ressourcer og livscyklussen for applikationer. Værktøjer til indsamling af telemetri er blevet forbedret.
  • Der er foreslået et nyt sæt C#-abstraktioner til udvikling af AI-applikationer, brug af store sproglige modeller, adgang til vektorlager og interaktion med AI-tjenester. En ny type “Tensor” og en samling af metoder til beregning og manipulation af multidimensionale data er blevet præsenteret. AI-udvidelser distribueres i form af pakker som System.Numerics.Tensors, Microsoft.Extensions.AI og Microsoft.Extensions.VectorData. ML.NET-rammen, der er designet til at integrere maskinlæringsmodeller i applikationer, er blevet opdateret. Microsoft.ML.Tokenizers-biblioteket er tilføjet til kodning og dekodning af tekst til tokens.
  • I ASP.NET Core-stakken til udvikling af webapplikationer er understøttelsen af forudgående kompilering (ahead-of-time) udvidet, mulighederne for overvågning og tracing er forbedret, opstartstiden er reduceret, og hukommelsesforbruget er nedsat, samtidig med at arbejdet med statiske filer er optimeret. Der er tilføjet et nyt API til autentifikation og autorisation. I Blazor, platformen til at oprette webapplikationer i C#, er der implementeret nye skabeloner til hybride og webapplikationer.
  • Mulighederne i MAUI-rammen til udvikling af tværplatforme brugergrænseflader er udvidet. Ydelsen er blevet optimeret. Integration med desktop- og mobilapplikationer er styrket. Der er tilføjet nye brugergrænsefladeelementer, TitleBar og HybridWebView.
  • I WPF (Windows Presentation Foundation) er understøttelsen af temaer udvidet, og der er tilføjet understøttelse af accentfarver.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster