Microsoft har presenterat en ny version av den öppna plattformen .NET 9, skapad genom en enhetlig sammanslagning av produkterna .NET Framework, .NET Core och Mono. Med .NET 9 kan man skapa plattformsoberoende applikationer för webblÀsare, molnsystem, skrivbord, IoT-enheter och mobilplattformar, med hjÀlp av en gemensam uppsÀttning bibliotek och en enhetlig byggprocess oavsett applikationstyp. .NET SDK 9, .NET Runtime 9 och ASP.NET Core Runtime 9 Àr tillgÀngliga för Linux, macOS och Windows. .NET Desktop Runtime 9 erbjuds endast för Windows. Relaterade projektresultat sprids under MIT-licensen.
.NET innehÄller ett Runtime med JIT-kompilatorn RyuJIT, API-specifikationer, bibliotek för WPF, Windows Forms, WinUI och Entity Framework, kommandoradsgrÀnssnittet dotnet, samt verktyg för utveckling av mikrotjÀnster, bibliotek, server-, grafik- och konsolapplikationer. Separat erbjuds en utvecklingsstack för web-applikationer ASP.NET Core 9.0, ORM-lagret Entity Framework Core 9.0 (drivrutiner finns Àven för SQLite och PostgreSQL), WPF 9-biblioteket (Windows Presentation Foundation), Windows Forms 9-ramverket för GUI-utveckling, Aspire 9-plattformen för skapande av Cloud Native-applikationer, MAUI 9-ramverket för utveckling av plattformsoberoende anvÀndargrÀnssnitt, samt utgÄvorna av sprÄken C# 13 och F# 9. Stödet för .NET 9.0 och C# 13 ingÄr i den kostnadsfria kodeditorn Visual Studio Code.
Nyhetsfunktioner:
- Ăver tusen Ă€ndringar har gjorts för att optimera prestanda och förbĂ€ttra kvaliteten pĂ„ den genererade koden. SoptjĂ€ningare har uppgraderats, och en mekanism för dynamisk anpassning till applikationens storlek har implementerats och aktiverats som standard (soptjĂ€ningaren kopplar inte till mĂ€ngden tillgĂ€ngliga resurser i systemet, utan till hur mycket minne applikationen krĂ€ver). Det nya lĂ€get möjliggör ökad effektivitet pĂ„ system med mĂ„nga processorkĂ€rnor, om applikationen anvĂ€nder relativt lite minne eller om minnesbehovet förĂ€ndras avsevĂ€rt under drift.
JIT-kompilatorn har fÄtt nya optimeringar baserade pÄ profilering (PGO), med förbÀttrad hantering av loopar, inline-utveckling och grÀnskontroller. I .NET-runtime har anvÀndningen av vektoriska instruktioner utökats och stöd för Arm64 SVE och Intel AVX10 har lagts till. Koden för hantering av undantag Àr nu 50% snabbare. För kod med typkonverteringsoperationer, som «(IFoo)myFoo» och «myFoo is IFoo», har prestationsökningen nÄtt upp till 70%. Prestandan för vissa metoder i sprÄk för hantering av frÄgestÀllningar LINQ (Language-Integrated Query), som Take och DefaultIfEmpty, har ökat upp till 10 gÄnger nÀr det gÀller tomma arrayer och samlingar.
Prestandan och effektiviteten i metoden System.Text.Json har ökats avsevÀrt. I metoden JsonProperty.WriteTo har direkt skrivning av UTF8-strÀngar möjliggjorts, vilket eliminerar onödig minnesallokering. Operationerna för att Àndra storlek pÄ JsonObject har optimerats. Vid tester av TechEmpower, som utvÀrderar kodens effektivitet för att hantera JSON-förfrÄgningar, har prestandan ökat med 15% och minnesanvÀndningen minskat med 93% jÀmfört med .NET 8.
- I Runtime föreslÄs en ny attributmodell för aktivering och nedskÀrning av funktionalitet i bibliotek.
- I C# 13 har möjligheterna med modifikatorn «params» utvidgats, sĂ„ att förutom arrayer Ă€ven samlingar kan anges. Vid initialisering av arrayer tillĂ„ts anvĂ€ndningen av operatorn «^» för indexering frĂ„n slutet av arrayen (till exempel «buffer = { [^1] = 0, [^2] = 1,âŠ.}» skriver 0 i det sista elementet och 1 i det nĂ€st sista). I iteratorer och async-metoder tillĂ„ts anvĂ€ndning av ref-uttryck och osĂ€kra operationer. En ny escape-sekvens «\e» har lagts till. Definition av grĂ€nssnitt för «ref struct»-typer och anvĂ€ndning av «ref struct»-typer som argument i generiska funktioner har tillĂ„tits. En ny typ Lock har föreslagits för att sĂ€tta lĂ„s i flertrĂ„dade 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 har stöd för typer som kan anta vÀrdet null. I unionerna finns automatiskt genererade egenskaper "Is*" (till exempel person.contact.IsEmail) som kan anvÀndas för att kontrollera medlemskap av vÀrdet i en mÀngd. Stöd för tomma berÀknade uttryck ("let xs = seq { }") har lagts till. I direktiv som börjar med tecknet "#" Àr det tillÄtet att ange icke-strÀngvÀrden (till exempel kan man skriva #nowarn 0070 istÀllet för #nowarn "0070"). I modulerna List, Array och Seq har funktioner lagts till för att slumpmÀssigt vÀlja eller blanda element. Operationer med samlingar Àr tillÄtna för listor (list och set).
- Funktionerna i .NET Aspire-stacken, som tillhandahÄller en uppsÀttning komponenter för att skapa applikationer som körs i molnmiljöer, har utvidgats. Nya funktioner för resurs- och applikationslivscykelhantering har tillkommit. Verktygen för att samla in telemetry har förbÀttrats.
- Ett nytt set av abstraktioner för C# har föreslagits för utveckling av AI-applikationer, anvÀndning av stora sprÄkliga modeller, Ätkomst till vektorlagring och interaktion med AI-tjÀnster. En ny typ "Tensor" har introducerats, samt en samling metoder för berÀkningar och manipuleror av flerdimensionella data. AI-tillÀgg distribueras i form av paketen System.Numerics.Tensors, Microsoft.Extensions.AI och Microsoft.Extensions.VectorData. Ramverket ML.NET har uppdaterats för att integrera maskininlÀrningsmodeller i applikationer. Biblioteket Microsoft.ML.Tokenizers har lagts till för kodning och avkodning av text till tokens.
- Stödet för förkompilering (ahead-of-time) har utvidgats i ASP.NET Core-stacken för webbutveckling, och övervaknings- och spÄrningsmöjligheterna har förbÀttrats. Tiden för uppstart har minskat och minnesanvÀndningen har sÀnkts, samtidigt som hanteringen av statiska filer har optimerats. Ett nytt API för autentisering och auktorisering har lagts till. I Blazor, plattformen för att skapa webbapplikationer pÄ C#, har nya mallar för hybrid- och webbapplikationer implementerats.
- Funktionerna i MAUI-ramverket för utveckling av plattformsoberoende anvÀndargrÀnssnitt har utvidgats. Prestandan har optimerats. Integrationen med desktop- och mobilapplikationer har förstÀrkts. Nya grÀnssnittselement TitleBar och HybridWebView har lagts till.
- I WPF (Windows Presentation Foundation) har stöden för teman utökats och stöd för accentfÀrger har lagts till.
KĂ€lla: opennet.ru
