Microsoft-ը հրապարակել է բաց հարթակ .NET 9.0

Microsoft-ը ներկայացրել է բաց հարթակի .NET 9-ի թողարկումը, որը ստեղծվել է .NET Framework, .NET Core և Mono արտադրանքների միավորման շնորհիվ։ .NET 9-ի հիման վրա հնարավոր է ստեղծել բազմանդամային ծրագրեր բրաուզերի, ամպային համակարգերի, աշխատակա սեղանների, IoT սարքերի և շարժական հարթակների համար, օգտագործելով միասնական գրադարաններ և ընդհանուր կառուցման գործընթաց, առանց ծրագրի տեսակից կախվածության։ .NET SDK 9, .NET Runtime 9 և ASP.NET Core Runtime 9 հավաքված են Linux, macOS և Windows-ի համար։ .NET Desktop Runtime 9 տրամադրվում է միայն Windows-ի համար։ Այս նախագծին առնչվող զարգացումները տարածվում են MIT լիցենզիայով։

.NET-ը ներառում է RyuJIT JIT-կոմպիլատորով Runtime, API specification-ներ, WPF, Windows Forms, WinUI և Entity Framework գրադարաններ, dotnet հրահանգների интерфեյս և միկրոսերվիսների, գրադարանների, սերվային, գրաֆիկական և կոնսոլային ծրագրերի զարգացման գործիքներ։ Առանձին տրամադրվում է ASP.NET Core 9.0-ի web-ծրագրերի մշակման հարվածը, Entity Framework Core 9.0 ORM շերտը (վարորդներ կան, այդ թվում՝ SQLite և PostgreSQL), WPF 9 (Windows Presentation Foundation) գրադարանը, Windows Forms 9 GUI մշակման շրջանակը, Aspire 9 Cloud Native ծրագրեր ստեղծելու հարթակը, MAUI 9 բազմա հարթակային օգտագործողի ինտերֆեյսերի մշակման շրջանակը, ինչպես նաև C# 13 և F# 9 լեզուների թողարկումները։ .NET 9.0 և C# 13 աջակցությունը ներառված է Visual Studio Code-ի ազատ փաստաթղթի խմբագրումում։

Նոր թողարկման առանձնահատկությունները.

  • Ներգրավվել է ավելի քան հազար փոփոխություններ, որոնք վերաբերում են կատարողականի օպտիմիզացմանն ու ստեղծված կոդի որակի բարձրացմանը։ Նորացված աղբյուրի հավաքիչը, որը կիրառվում է ու ենթադրվում է որպես նախնական ռեժիմ, ունի դինամիկ կարգավորման մեխանիզմ, որը կապված չէ համակարգում հասանելի ռեսուրսների բաշխմամբ, այլ խոցելիության աղպյուրի պահանջած հիշողության չափի հետ։ Նոր ռեժիմը թույլ է տալիս բարձրացնել աշխատանքի արդյունավետությունը համակարգերում, որոնցում մեծ թվով գործընթացներ կան, եթե ծրագիրը օգտագործում է համեմատաբար քիչ հիշողություն կամ եթե հիշողության պահանջը զգալիորեն փոփոխվում է աշխատանքի ժամանակ։

    JIT կոմպիլատորին ավելացվել են նոր օպտիմացումներ՝ համապատասխան պրոֆիլավորման (PGO) հիման վրա, բարելավվել է ցիկլերի մշակումը, inline-հարակիցումը և սահմանների ստուգումը։ .NET runtime-ում ընդլայնել է վեկտորային հրամանների օգտագործումը և ավելացվել Arm64 SVE և Intel AVX10 ընդլայնումներին աջակցություն։ 50% արագացվել է բացառությունների մշակման կոդը։ Թիվերի փոխանցման գործողություններով, ինչպիսիք են «(IFoo)myFoo» և «myFoo is IFoo», արտադրողականությունը աճել է մինչև 70%։ LINQ (Language-Integrated Query) հարցերի մշակման լեզվի որոշ մեթոդների, ինչպիսիք են Take և DefaultIfEmpty, արտադրողականությունը բարձրացել է մինչև 10 անգամ՝ աշխատելով դատարկ զանգվածների և հավաքածուների հետ։

    System.Text.Json մեթոդի արտադրողականությունն ու արդյունավետությունը կարևորորեն բարելավվել է: JsonProperty.WriteTo մեթոդում ուղղակիություն արձագրման UTF8 տողերի գրելու հնարավորությունը, որը բացառեցնում է ավելորդ հիշողության հատկացումը: JsonObject-ի չափի փոփոխության գործողությունները լսվել են: TechEmpower-ի տակ ստեղծված փորձարկումների ժամանակ, որոնք գնահատում են կոդի արդյունավետությունը JSON հարցումների մշակման համար, .NET 8-ի համեմատ, տեսել ենք 15%-ով արտադրողականության բարձրացում և 93%-ով հիշողության սպառման նվազում:

  • Runtime-ում առաջարկվել է նոր ատրիբուտների մոդել գործառույթների ակտիվացման և կրճատման համար գրադարաններում:
  • C# 13 լեզվում ընդլայնվել են «params» մոդիֆիկատորի օգտագործման հնարավորությունները, որտեղ բացի զանգվածներից, նույնպես թույլատրվում է ցուցակների նշում: Զանգվածների ստացման ժամանակ, ինդեքսի արժեքի մեջ թույլատրվում է օգտագործել «^» օպերատորը, որպեսզի տողերի մեջ հաշվարկվի ինդեքսը զանգվածի վերջից (օրինակ, «buffer = { [^1] = 0, [^2] = 1,….}» կգրէ 0 վերջին տարրին, և 1 նախորդ վերջինին): Իրադարձային և async-մեթոդներում թույլատրվում է օգտագործել ref և unsafe արտահայտությունները: Ավելացվել է նոր escape-հաջորդականություն «\e»: Թույլատրվում է «ref struct» տիպերի համար ինտերֆեյսների սահմանումը և «ref struct» տիպերի օգտագործումը ընդհանուր ֆունկցիաների որպես արգումենտներ: Նոր Lock տիպ են առաջարկվել բազմաթիրախային ծրագրում կողպումների հաստատման համար. Lock myLock = new(); void Concat<T>(params List<T> items) { lock (myLock) Console.WriteLine(string.Join(«\e[1mItem: \e[0m», items)); }
  • F# 9 լեզվում աջակցություն է ստացել այն տիպերի, որոնք կարող են ընդունել null արժեք: Միացումներում իրականացվել են ինքնաբերաբար մասնակցող «.Is*» հատկությունները (օրինակ, person.contact.IsEmail), որոնք կարելի է օգտագործել արժեքի pertenance-ի ստուգման համար: Ավելացել է դատարկ հաշվարկվող արտահայտությունների աջակցությունը («let xs = seq { }»): «#» նշանով սկսվող հանձնարարանքներում թույլատրվում է ոչ-անդրադարձային արժեքների նշում (օրինակ, կարելի է գրել #nowarn 0070 բանաձևի փոխարեն #nowarn «0070»): List, Array և Seq մոդուլներին ավելացվել են սկսվող ցանկության կամ տարրերի Հարցումների համար ֆունկցիաներ: Ցանկերին (list և set) առնվում են հավաքածուներով գործողությունների կիրառման թույլատրելիություն:
  • .NET Aspire մուշտակության հնարավորությունները ընդլայնվել են, որը տրամադրում է բաղադրիչների հավաքածու, որ մարմիններ գործարկում են ամպային միջավայրում: Ավելացվել են նոր հնարավորություններ ռեսուրսների կառավարելու և ծրագրերի կյանքային ցիկլի համար: Տելեմետրիայի հավաքման միջոցները ավելացել են:
  • Ներկայացվել է C# նոր աբստրակցիաների հավաքածու AI-ծրագրեր մշակելու համար, մեծ լեզվաբառարանների օգտագործման, վեկտորային պահեստների հետ աշխատելու և AI-ծառայություններով փոխհարաբերություններ ունենալու համար: Ներկայացվել է «Tensor<T>» նոր տեսակ և բազմաչափ տվյալների հաշվարկման և մանիպուլյացիայի համար մեթոդների հավաքածու: AI հավելումներ են առկա System.Numerics.Tensors, Microsoft.Extensions.AI և Microsoft.Extensions.VectorData փաթեթների ձևաչափով: Ապահովվել է ML.NET շրջանակի թարմացում, որն ուղղված է մեքենայական ուսուցման մոդելների ինտեգրմանը ծրագրերում: Եւ Microsoft.ML.Tokenizers գրադարանը ավելացվել է տեքստը նշանների վերածելու և վերածիվելու համար:
  • ASP.NET Core-ի վեբ-ծրագրերի մշակման աշտարակում ընդլայնվել է առաջադեմ կոմպիլացիայի (ahead-of-time) աջակցության հնարավորությունները, մեծացվել է մոնիթորինգի և հետպատման հնարավորությունները, կրճատվել է մեկնարկման ժամանակը և նվազեցվել է հիշողության սպառումը, օպտիմիզացվել է ստատիկ ֆայլերի հետ աշխատելը: Ավելացվել է նոր API՝ аուտենտիկացման և թույլտվությունների համար: Blazor-ի մեջ, որը C# ծրագրերի համար վեբ-ծրագրեր մշակելու հարթակ է, իրականացվել են նոր շարահայսություններ հիբրիդային և վեբ-ծրագրերի համար:
  • Իրավասությունները MAUI շրջանակի համար, որը նպաստում է խաչաձև պլատֆորմային օգտագործողի ինտերֆեյսների մշակմանը, ընդլայնվել են: Մաքրություն և օպտիմիզացում են իրականացվել: Նոր ինտերֆեյսի տարրեր՝ TitleBar և HybridWebView, ավելացվել են:
  • WPF (Windows Presentation Foundation)-ում ընդլայնվել են թեմաների աջակցությունը և ավելացվել են ակցենտային գույների աջակցությունը:

Ընտանիք: opennet.ru

Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով 🔥 Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster