Kompania Microsoft prezantoi lëshimin e platformës së hapur .NET 9, e cila u krijua falë unifikimit të produkteve .NET Framework, .NET Core dhe Mono. Me .NET 9 mund të krijoni aplikacione shumëpalëshe për shfletuesin, sistemet cloud, desktop, pajisjet IoT dhe platformat celulare, duke përdorur biblioteka të përbashkëta dhe një proces ndërtimi të përbashkët, të pa varur nga lloji i aplikacionit. Ndërtimet .NET SDK 9, .NET Runtime 9 dhe ASP.NET Core Runtime 9 janë formuar për Linux, macOS dhe Windows. .NET Desktop Runtime 9 ofrohet vetëm për Windows. Materialet e lidhura me projektin shpërndahen nën licencën MIT.
.NET përfshin Runtime me kompiluesin JIT RyuJIT, specifikimet e API, bibliotekat WPF, Windows Forms, WinUI dhe Entity Framework, ndërfaqen e komandës dotnet, si dhe mjete për zhvillimin e mikroshërbimeve, bibliotekave, aplikacioneve server, grafike dhe konsolë. Veç e veç ofrohen staku për zhvillimin e aplikacioneve web ASP.NET Core 9.0, ORM-në Entity Framework Core 9.0 (me drejtues që përfshijnë, midis të tjerash, për SQLite dhe PostgreSQL), biblioteka WPF 9 (Windows Presentation Foundation), korniza Windows Forms 9 për zhvillimin e GUI-ve, platforma Aspire 9 për krijimin e aplikacioneve Cloud Native, korniza MAUI 9 për zhvillimin e ndërfaqeve përdoruesi shumëplatformatike, si dhe lëshimet e gjuhëve C# 13 dhe F# 9. Mbështetje për .NET 9.0 dhe C# 13 është përfshirë në redaktorin e lirë të kodit Visual Studio Code.
Karakteristikat e lëshimit të ri:
- JanĂ« bĂ«rĂ« mĂ« shumĂ« se njĂ« mijĂ« ndryshime qĂ« lidhen me optimizimin e performancĂ«s dhe pĂ«rmirĂ«simin e cilĂ«sisĂ« sĂ« kodit tĂ« gjeneruar. ĂshtĂ« modernizuar mbledhĂ«si i mbetjeve, nĂ« tĂ« cilin Ă«shtĂ« implementuar dhe aktivizuar automatikisht mekanizmi i adapit dinamik nĂ« madhĂ«sinĂ« e aplikacionit (mbledhĂ«si i mbetjeve lidhĂ«t jo me disponueshmĂ«rinĂ« e burimeve nĂ« sistem, por me sasinĂ« e memories qĂ« kĂ«rkon aplikacioni). Reagimi i ri lejon tĂ« rritet efikasiteti i punĂ«s nĂ« sisteme me numĂ«r tĂ« madh bĂ«rthama procesori, nĂ«se aplikacioni pĂ«rdor relativisht pak memorie ose nĂ«se nevoja pĂ«r memorie ndryshon ndjeshĂ«m gjatĂ« funksionimit.
JIT kompilatorit ka pĂ«rfshirĂ« optimizime tĂ« reja tĂ« bazuara nĂ« profilizimin (PGO), pĂ«rmirĂ«simin e trajtimit tĂ« cikleve, zgjidhjen inline dhe verifikimin e kufijve. NĂ« .NET runtime Ă«shtĂ« zgjeruar pĂ«rdorimi i instruksioneve vektoriale dhe Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r zgjerime Arm64 SVE dhe Intel AVX10. Kodi pĂ«r pĂ«rpunimin e pĂ«rjashtimeve Ă«shtĂ« pĂ«rshpejtuar me 50%. PĂ«r kodin me operacione pĂ«rmirĂ«simi tĂ« tipeve si â(IFoo)myFooâ dhe âmyFoo is IFooâ, Ă«shtĂ« arritur njĂ« rritje e performancĂ«s deri nĂ« 70%. Performanca e disa metodave nĂ« gjuhĂ«n e pĂ«rpunimit tĂ« kĂ«rkesave LINQ (Language-Integrated Query), si Take dhe DefaultIfEmpty, Ă«shtĂ« rritur deri nĂ« 10 herĂ« kur punoni me matricat dhe koleksionet e zbrazĂ«ta.
Ka pasur një rritje të dukshme të performancës dhe efikasitetit të metodës System.Text.Json. Në metodën JsonProperty.WriteTo është realizuar mundësia e shkruarjes së drejtpërdrejtë të vargjeve UTF8, duke eliminuar ndarje të tepërta të memories. Operacionet e ndryshimit të madhësisë së JsonObject janë optimizuar. Gjatë testeve TechEmpower, të cilat vlerësojnë efikasitetin e kodit për përpunimin e kërkesave JSON, krahasuar me .NET 8, bëhet e qartë se ka një rritje të performancës prej 15% dhe një zvogëlim të përdorimit të memories prej 93%.
- Në Runtime është propozuar një model i ri atributesh për aktivizimin dhe kufizimin e funksionaliteteve në biblioteka.
- NĂ« gjuhĂ«n C#, mundĂ«sitĂ« e pĂ«rdorimit tĂ« modifikatorit "params" janĂ« zgjeruar, ku pĂ«rveç dysheve Ă«shtĂ« lejuar pĂ«rcaktimi i koleksioneve. GjatĂ« inicializimit tĂ« dysheve, lejohen operatorĂ«t "^" pĂ«r tĂ« raportuar indekset nga fundi i dysheve (pĂ«r shembull, "buffer = { [^1] = 0, [^2] = 1,....}" do tĂ« shĂ«nojĂ« 0 nĂ« elementin e fundit dhe 1 nĂ« atĂ« para fundit). NĂ« iteratorĂ« dhe metoda async, Ă«shtĂ« e lejuar pĂ«rdorimi i shprehjeve ref dhe unsafe. ĂshtĂ« shtuar njĂ« sekuencĂ« e re escape "\e". ĂshtĂ« e lejuar pĂ«rcaktimi i interface-ve pĂ«r tipet "ref struct" dhe pĂ«rdorimi i tipave "ref struct" si argumento nĂ« funksionet e pĂ«rgjithshme. ĂshtĂ« propozuar njĂ« tip i ri Lock pĂ«r vendosjen e bllokimeve nĂ« aplikacionet shumĂ«procese. Lock myLock = new(); void Concat<T>(params List<T> items) { lock (myLock) Console.WriteLine(string.Join("\e[1mItem: \e[0m", items)); }
- Në gjuhën F# 9 u shtua mbështetje për tipet që mund të kenë vlerën null. Në bashkëngjitje janë realizuar automatikisht të gjeneruara pronat «.Is*» (p.sh., person.contact.IsEmail), të cilat mund të përdoren për të kontrolluar përkatësinë e vlerës në një shumësi. U shtua mbështetje për shprehje të lira kalkuluese («let xs = seq { }»). Në drejtoritë që fillojnë me simbolin «#», lejohet specifikimi i vlerave që nuk janë vargje (p.sh., mund të shkruhet #nowarn 0070 në vend të #nowarn «0070»). Në modulet List, Array dhe Seq u shtuan funksione për zgjedhjen rastësore ose përzierjen e elementeve. Operacionet me koleksionet janë lejuar për lista (list dhe set).
- Aftësitë e stack-ut .NET Aspire janë zgjeruar, duke ofruar një grup komponentësh për krijimin e aplikacioneve që punojnë në mjedise cloud. U shtuan mundësi të reja për menaxhimin e burimeve dhe ciklit të jetës së aplikacioneve. U zgjeruan mjetet për mbledhjen e telemetrisë.
- Një set i ri abstraksionesh C# për zhvillimin e aplikacioneve AI, përdorimin e modeleve të mëdha gjuhësore, aksesimin e depozitave vektoriale dhe ndërveprimin me shërbimet AI është propozuar. Një lloj i ri "Tensor" është prezantuar dhe një koleksion metodash për llogaritje dhe manipulimin e të dhënave multidimensionale. Shtesat për AI shpërndahen në formën e paketave System.Numerics.Tensors, Microsoft.Extensions.AI dhe Microsoft.Extensions.VectorData. Framework-u ML.NET është përditësuar, i dedikuar për integrimin e modeleve të mësimit të makinerive në aplikacione. Biblioteka Microsoft.ML.Tokenizers është shtuar për kodimin dhe dekodimin e teksteve në tokene.
- Në stekën për zhvillimin e aplikacioneve web ASP.NET Core, është zgjeruar mbështetja për kompilim paraprak (ahead-of-time), janë zgjeruar mundësitë e monitorimit dhe gjurmimit, është reduktuar koha e nisjes dhe është ulur konsumi i memories, duke optimizuar funksionimin me skedarët statikë. Një API i ri për autentifikimin dhe autorizimin është shtuar. Në Blazor, platformën për krijimin e aplikacioneve web në gjuhën C#, janë realizuar modele të reja për aplikacione hibride dhe web.
- Kapacitetet e framework-ut MAUI për zhvillimin e ndërfaqeve të përdoruesit multi-platformë janë zgjeruar. Performanca është optimizuar. Integrimi me aplikacionet desktop dhe mobile është forcuar. Elementet e reja të ndërfaqes TitleBar dhe HybridWebView janë shtuar.
- Në WPF (Windows Presentation Foundation), mbështetje për temat është zgjeruar dhe mbështetje për ngjyrat akcentuese është shtuar.
Burimi: opennet.ru
