Microsoft esitles avatud platvormi .NET 9, mis on loodud .NET Frameworki, .NET Core'i ja Mono toodete ĂŒhtlustamise tulemusena. .NET 9 baasil on vĂ”imalik luua platvormidevahelisi rakendusi veebibrauseritele, pilvesĂŒsteemidele, töölaudadele, IoT-seadmetele ja mobiilsete platvormide jaoks, kasutades ĂŒhtseid raamatukogu ja ĂŒhist kogu protsessi, mis ei sĂ”ltu rakenduse tĂŒĂŒbist. .NET SDK 9, .NET Runtime 9 ja ASP.NET Core Runtime 9 on koostatud Linuxi, macOS-i ja Windowsi jaoks. .NET Desktop Runtime 9 on saadaval ainult Windowsile. Projektiga seotud arendused levitatakse MIT litsentsi alusel.
.NET-i koosseisu kuulub RyuJIT JIT-kompilaatoriga Runtime, API spetsifikatsioonid, WPF, Windows Forms, WinUI ja Entity Framework raamatukogud, kÀsurea liides dotnet ning tööriistad mikroteenuste, raamatukogude, serveri-, graafika- ja konsoolirakenduste arendamiseks. Eraldi on saadaval ASP.NET Core 9.0 veebirakenduste arendamise komplekt, ORM-kiht Entity Framework Core 9.0 (draiverid on saadaval, sealhulgas SQLite ja PostgreSQL jaoks), WPF 9 raamatukogu (Windows Presentation Foundation), Windows Forms 9 fookus GUI arendamiseks, Aspire 9 platvorm Cloud Native rakenduste loomiseks, MAUI 9 raamistiku platvorm platvormidevaheliste kasutajaliideste arendamiseks ning C# 13 ja F# 9 keelte vÀljaanded. .NET 9.0 ja C# 13 tugi on lisatud tasuta koodiredaktorisse Visual Studio Code.
Uue vÀljaande omadused:
- On tehtud rohkem kui tuhat muudatust, mis on seotud jĂ”udluse optimeerimise ja genereeritud koodi kvaliteedi parandamisega. On moderniseeritud prĂŒgikoristaja, milles on juurutatud ja vaikimisi kasutusele vĂ”etud dĂŒnaamilise kohandamise mehhanism rakenduse suurusele (prĂŒgikoristaja ei sĂ”ltu sĂŒsteemis saadaval olevatest ressurssidest, vaid sellest, kui palju mĂ€lu rakendus vajab). Uus reĆŸiim vĂ”imaldab parandada töö efektiivsust suure arvu protsessorituumadega sĂŒsteemides, kui rakendus kasutab suhteliselt vĂ€he mĂ€lu vĂ”i kui mĂ€lu vajadus muutub töö kĂ€igus oluliselt.
JIT-kompilaatorisse on lisatud uusi optimeerimisi, mis pĂ”hinevad profiliseerimisel (PGO), parandatud on silmuste töötlemist, inline-lahtimuutmise ja piiri kontrollimist. .NET runtime'is on laiendatud vektorite instruktsioonide kasutamist ning lisatud tugi Arm64 SVE ja Intel AVX10 laiendustele. Erakordne on kood, mis on 50% kiiremini, kui kĂ€ideldakse erandeid. TĂŒĂŒpi konverteerimise operatsioonide, nagu "(IFoo)myFoo" ja "myFoo is IFoo", korral on tĂ”hususe suurenemine kuni 70%. MĂ”nede meetodite, nagu Take ja DefaultIfEmpty, jĂ”udlus LINQ (Language-Integrated Query) keeles on tĂŒhjade massiivide ja kogumite kĂ€itlemisel paranenud kuni 10 korda.
System.Text.Json meetodi jÔudlust ja efektiivsust on oluliselt parendatud. JsonProperty.WriteTo meetodis on sisse viidud vÔimalus otse kirjutada UTF8 stringe, vÀlistades liigse mÀlu eraldamise. JsonObject'i suuruse muutmise operatsioonid on optimeeritud. TechEmpower'i testide kÀigus, mis hindasid JSON-pÀringute töötlemiseks mÔeldud koodi efektiivsust, tÀheldati .NET 8 suhtes jÔudluse tÔusu 15% ja mÀlu tarbimise vÀhenemist 93%.
- Runtime'is on pakutud uut atribuutide mudelit, et aktiveerida ja kÀrpida funktsionaalsust teekides.
- C# 13 keeles on laiendatud "params" modifikaatori kasutamise vĂ”imalusi, kus lisaks massiividele on lubatud ka kollektsioonide nĂ€itamine. Massiivide initsialiseerimisel on lubatud kasutada indeksi "^" operaatorit, et lugeda indeksit massiivi lĂ”pust (nĂ€iteks "buffer = { [^1] = 0, [^2] = 1,âŠ.}" kirjutab 0 viimasesse elemendis ja 1 eelviimasesse). Ititeraatorites ja async-meetodites on lubatud kasutada ref ja unsafe vĂ€ljendeid. Uus escape-jĂ€rjestus "\e" on lisatud. Lubatakse liideste mÀÀramine "ref struct" tĂŒĂŒpide jaoks ning kasutada "ref struct" tĂŒĂŒpide argumendina genereeritud funktsioonides. Uus Lock tĂŒĂŒp on renditud, et kasutada lukustusi mitme lĂ”ime rakendustes. Lock myLock = new(); void Concat(params List items) { lock (myLock) Console.WriteLine(string.Join("\e[1mItem: \e[0m", items)); }
- F# 9 keeles on lisatud tugi tĂŒĂŒpidele, mis vĂ”ivad vĂ”tta vÀÀrtuse null. Ăhinemistel on rakendatud automaatselt genereeritud omadused â.Is*â (nĂ€iteks person.contact.IsEmail), mida saab kasutada vÀÀrtuse kuuluvuse kontrollimiseks hulka. Lisatud tugi tĂŒhi arvutatud vĂ€ljenditele (âlet xs = seq { }â). Direktiivides, mis algavad sĂŒmboliga â#â, on lubatud mitte-stringiliste vÀÀrtuste mÀÀramine (nt #nowarn 0070 asemel #nowarn â0070â). Moodulitesse List, Array ja Seq on lisatud funktsioonid elementide juhuslikuks valimiseks vĂ”i segamiseks. Loenditele (list ja set) on lubatud kohaldada kogumite operatsioone.
- On laiendatud .NET Aspire'i, mis pakub komplekti komponente pilvekeskkondades töötavate rakenduste loomiseks. On lisatud uusi vĂ”imalusi ressursside ja rakenduste elutsĂŒkli haldamiseks. On laiendatud telemeetriakogumise vahendeid.
- On esitatud uus abstraktsioonide kogum C# jaoks tehisintellekti rakenduste arendamiseks, suurte keelemudelite kasutamiseks, vektorladuudele juurdepÀÀsuks ja AI-teenustega suhtlemiseks. Esitatud on uus tĂŒĂŒp âTensorâ ja kogum meetodeid multidimensionaalsete andmete arvutamiseks ja manipuleerimiseks. Tehisintellekti tĂ€iustused jaotatakse pakettidena System.Numerics.Tensors, Microsoft.Extensions.AI ja Microsoft.Extensions.VectorData. On uuendatud raamistikku ML.NET, mis on mĂ”eldud masinĂ”ppemudelite integreerimiseks rakendustesse. On lisatud Microsoft.ML.Tokenizers teek tekstide kodeerimiseks ja dekodeerimiseks tokeniteks.
- ASP.NET Core veebirakenduste arendusstackis on laiendatud ettekompileerimise (ahead-of-time) tuge, laiendatud on jĂ€lgimise ja tĂ”rkevaba jĂ€lgimise vĂ”imalusi, lĂŒhendatud kĂ€ivitusaega ja vĂ€hendatud mĂ€lu tarbimist, optimeeritud on staatiliste failidega töötamine. On lisatud uus API autentimise ja autoriseerimise jaoks. Blazor, C# keeles veebirakenduste loomiseks mĂ”eldud platvorm, on rakendatud uusi malle hĂŒbriidsete ja veebirakenduste jaoks.
- MAUI raamistikku, mis on mÔeldud mitme platvormiga kasutajaliideste arendamiseks, on laiendatud. On tehtud jÔudluse optimeerimine. Suurenenud on integreerumine lauaarvuti ja mobiilirakendustega. On lisatud uusi kasutajaliidese elemente TitleBar ja HybridWebView.
- WPF-is (Windows Presentation Foundation) on laiendatud teemapaneelide toetust ja lisatud aktsentvÀrvide tugi.
Allikas: opennet.ru
