Microsoft, .NET Framework, .NET Core və Mono məhsullarını birləşdirərək yaradılan .NET 9 açıq platformasını təqdim etdi. .NET 9 ilə, vahid kitabxanalardan və tətbiq növündən asılı olmayaraq ümumi bir qurma prosesindən istifadə edərək brauzer, bulud, masaüstü, IoT cihazları və mobil platformalar üçün platformalararası tətbiqlər qura bilərsiniz. .NET SDK 9, .NET Runtime 9 və ASP.NET Core Runtime 9 yığımları aşağıdakılar üçün nəzərdə tutulmuşdur Linux, macOS и Windows.NET Desktop Runtime 9 yalnız aşağıdakılar üçün mövcuddur WindowsBu layihə ilə əlaqəli işlər MIT lisenziyası altında paylanır.
.NET, RyuJIT JIT kompilyatoru, API spesifikasiyaları, WPF kitabxanaları ilə bir Runtime ehtiva edir. Windows Forms, WinUI və Entity Framework, dotnet əmr sətri interfeysi, eləcə də mikroservislər, kitabxanalar, server, qrafik və konsol tətbiqləri hazırlamaq üçün alətlər mövcuddur. Ayrı-ayrılıqda ASP.NET Core 9.0 veb tətbiqi inkişaf dəsti, Entity Framework Core 9.0 ORM təbəqəsi (digər şeylər arasında SQLite və PostgreSQL üçün drayverlər mövcuddur) və WPF 9 kitabxanası (Windows Təqdimat Fondu (TF) çərçivəsi Windows GUI inkişafı üçün Forms 9, Cloud Native tətbiqlərinin qurulması üçün Aspire 9 platforması, çoxplatformalı istifadəçi interfeyslərinin hazırlanması üçün MAUI 9 çərçivəsi və C# 13 və F# 9 dillərinin buraxılışları. Pulsuz Visual Studio Code kod redaktoruna .NET 9.0 və C# 13 dəstəyi daxildir.
Yeni buraxılışın xüsusiyyətləri:
- Performansı optimallaşdırmaq və yaradılan kodun keyfiyyətini artırmaq üçün mindən çox dəyişiklik edilmişdir. Tətbiqin ölçüsünə dinamik uyğunlaşma mexanizminin tətbiq olunduğu və defolt olaraq işə salındığı zibil kollektoru modernləşdirilmişdir (zibil toplayıcı sistemdə mövcud resursların mövcudluğuna deyil, tətbiqin nə qədər yaddaşa bağlıdır). tələb edir). Tətbiq nisbətən az yaddaş istifadə edərsə və ya əməliyyat zamanı yaddaşa tələbat əhəmiyyətli dərəcədə dəyişərsə, yeni rejim çox sayda prosessor nüvəsi olan sistemlərdə performansı yaxşılaşdırır.
JIT kompilyatoru yeni profilləşdirməyə əsaslanan optimallaşdırmalar (PGO), təkmilləşdirilmiş döngə idarəetməsi, inline çıxarma və sərhədlərin yoxlanılması əlavə etdi. .NET işləmə vaxtı vektor təlimatlarının istifadəsini genişləndirdi və Arm64 SVE və Intel AVX10 genişləndirmələri üçün dəstək əlavə etdi. İstisna ilə işləmə kodu 50% sürətləndirildi. "(IFoo)myFoo" və "myFoo is IFoo" kimi yayım operatorları ilə kod 70%-ə qədər performans təkmilləşməsini gördü. LINQ (Language-Integrated Query) sorğu emal dilində Take və DefaultIfEmpty kimi bəzi metodların performansı boş massivlər və kolleksiyalarla işləyərkən 10 dəfəyə qədər artıb.
System.Text.Json metodunun performansını və səmərəliliyini əhəmiyyətli dərəcədə yaxşılaşdırdı. JsonProperty.WriteTo metodu lazımsız yaddaş ayrılmasını aradan qaldıraraq birbaşa UTF8 sətirlərini yazmaq qabiliyyətini həyata keçirir. Optimallaşdırılmış JsonObject ölçüsünü dəyişmə əməliyyatları. JSON sorğularının işlənməsi üçün kodun səmərəliliyini qiymətləndirən TechEmpower testlərində, .NET 8 ilə müqayisədə, performansda 15% artım və yaddaş istehlakında 93% azalma var.
- Runtime kitabxanalarda funksionallığı aktivləşdirmək və söndürmək üçün yeni atribut modeli təklif edir.
- C# 13-də “params” modifikatorundan istifadə imkanları genişləndirilib ki, burada massivlərə əlavə olaraq kolleksiyaları da müəyyən etmək mümkündür. Massivləri işə salarkən, indeks dəyəri "^" operatorunun istifadəsinə serialın sonundan indeksi bildirməyə imkan verir (məsələn, "bufer = { [^1] = 0, [^2] = 1,.. ..}" sonuncu elementə 0, sondan əvvəlki elementə isə 1 yazacaq). İteratorlar və asinxron üsullar ref və təhlükəli ifadələrin istifadəsinə imkan verir. Yeni "\e" qaçış ardıcıllığı əlavə edildi. "ref struct" növləri üçün interfeyslərin müəyyən edilməsinə və ümumi funksiyalarda arqumentlər kimi "ref struct" növlərinin istifadəsinə imkan verir. Çox yivli proqramlarda kilidlərin qurulması üçün yeni Kilid növü təklif edilmişdir. myLock-u kilidlə = new(); boş Concat (param siyahısı maddələr) { lock (myLock) Console.WriteLine(string.Join("\e[1mItem: \e[0m", maddələr)); }
- F# 9 null dəyəri qəbul edə bilən növlər üçün dəstəyi təqdim etdi. Birliklər avtomatik olaraq yaradılan ".Is*" xassələrini (məsələn, person.contact.IsEmail) həyata keçirir ki, bu da dəyərin çoxluğa aid olub-olmadığını yoxlamaq üçün istifadə edilə bilər. Boş hesablanmış ifadələr üçün əlavə dəstək (“xs = seq { }”). "#" simvolu ilə başlayan direktivlərdə qeyri-sətir dəyərlərinə icazə verilir (məsələn, #nowarn "0070" əvəzinə #nowarn 0070 yaza bilərsiniz). Elementləri təsadüfi seçmək və ya qarışdırmaq üçün List, Array və Seq modullarına funksiyalar əlavə edilmişdir. Siyahılar (siyahı və dəst) üçün yığım əməliyyatlarına icazə verilir.
- .NET Aspire yığınının imkanları genişləndirilmiş, bulud mühitlərində işləyən proqramların yaradılması üçün komponentlər dəsti təmin edilmişdir. Resurs və tətbiqin həyat dövrünün idarə edilməsi üçün yeni imkanlar əlavə edilmişdir. Telemetriya toplama vasitələri genişləndirildi.
- Süni intellekt tətbiqlərinin işlənib hazırlanması, böyük dil modellərindən istifadə, vektor mağazalara daxil olmaq və AI xidmətləri ilə qarşılıqlı əlaqə üçün yeni C# abstraksiya dəsti təklif olunur. Yeni tip "Tensor" təqdim edildi və çoxölçülü məlumatların hesablanması və manipulyasiyası üçün metodlar toplusu. Süni intellekt üçün əlavələr System.Numerics.Tensors, Microsoft.Extensions.AI və Microsoft.Extensions.VectorData paketləri şəklində paylanır. Maşın öyrənmə modellərinin tətbiqlərə inteqrasiyası üçün nəzərdə tutulmuş ML.NET çərçivəsi yeniləndi. Mətni tokenlərə kodlaşdırmaq və deşifrə etmək üçün Microsoft.ML.Tokenizers kitabxanası əlavə edildi.
- ASP.NET Core veb proqramlarını inkişaf etdirmək üçün stek vaxtından əvvəl kompilyasiya üçün genişləndirilmiş dəstəyi, genişləndirilmiş monitorinq və izləmə imkanlarını, azaldılmış başlanğıc vaxtını və yaddaş istehlakını və statik fayllarla optimallaşdırılmış işi təmin etdi. Doğrulama və avtorizasiya üçün yeni API əlavə edildi. C# dilində veb proqramlar yaratmaq üçün platforma olan Blazor hibrid və veb proqramlar üçün yeni şablonlar təqdim edib.
- MAUI çərçivəsinin imkanları çox platformalı istifadəçi interfeyslərinin inkişafı üçün genişləndirilmişdir. Performansın optimallaşdırılması həyata keçirilib. Masaüstü və mobil proqramlarla təkmilləşdirilmiş inteqrasiya. TitleBar və HybridWebView yeni interfeys elementləri əlavə edildi.
- WPF-də (Windows Təqdimat Fondu mövzular üçün dəstəyi genişləndirib və vurğu rəngləri üçün əlavə dəstək əlavə edib.
Mənbə: opennet.ru
