Tehnoloģijas

.NET 11.0 Preview 6: Lielāka brīvība ar Union tipiem un asinhrono validāciju

okei.lv redakcija
Dalīties

Kas jauns .NET 11.0 Preview 6?

Microsoft ir izlaidis .NET 11.0 Preview 6, kas nes būtiskus uzlabojumus un paplašinājumus izstrādātājiem. Viens no galvenajiem jaunumiem ir plašāka Union Type integrācija visā .NET ekosistēmā, kas nodrošina lielāku elastību un drošību koda rakstīšanā. Šī priekšskatījuma versija paplašina iespējas arī asinhronajā validācijā un procesu pārvaldībā, padarot izstrādi efektīvāku un mazāk kļūdainu.

Union Tipi visā .NET ekosistēmā

Union Tipi, kas ieviesti ar jauno C# atslēgvārdu union, tagad ir kļuvuši par neatņemamu .NET bibliotēku sastāvdaļu. Tas nozīmē, ka izstrādātāji tos var izmantot daudz plašākā kontekstā:

  • System.Text.Json: Tagad ir iespējams serializēt un deserializēt Union Tipus, kas ievērojami atvieglo darbu ar JSON datiem.
  • ASP.NET Core Minimal Web-APIs: Union Tipi var tikt izmantoti kā parametru un atgriešanas vērtību veidi, ja tiek izmantota JSON serializācija.
  • OpenAPI dokumenti: Union Tipiem tiek izmantots anyOf shēmas ieraksts, uzlabojot API dokumentācijas precizitāti. Jāņem vērā, ka esošās kopienas bibliotēkas (piemēram, Swashbuckle un NSwag) vēl neatbalsta šo funkcionalitāti.
  • ASP.NET Core MVC un Razor Pages: Union Tipi ir atļauti pieprasījuma ķermenī (request body) un atbildēs.
  • ASP.NET Core SignalR: Hubos Union Tipi var darboties kā parametri, atgriešanas vērtības un straumēs, ja protokols ir JSON.
  • Blazor: Papildus komponentu parametriem un Persistent Component State, Union Tipi tagad atbalsta arī sadarbību starp C# un JavaScript.

C# valodas papildinājumi: jaunas iespējas indekseriem

C# 15.0 ievieš būtisku uzlabojumu paplašinājuma blokos (extension blocks), kas ļauj pievienot indekserus jau esošām klasēm. Agrāk ar atslēgvārdu extension varēja pievienot tikai metodes, īpašības un operatorus. Tagad, piemēram, var pievienot indekseri tipam List<T>, kas pieņem virknes kā parametru, nevis tikai veselus skaitļus, kā tas ir noklusējuma implementācijā.

Asinhronā validācija - vienkāršāk un jaudīgāk

Asinhronā validācija vairs nav pieejama tikai Blazor. Ar Preview 6 Microsoft ir paplašinājis System.ComponentModel.DataAnnotations.Validator klasi ar jaunām asinhronām metodēm: ValidateObjectAsync(), TryValidateObjectAsync(), ValidatePropertyAsync() un ValidateValueAsync(). Ir ieviesta arī jauna bāzes klase AsyncValidationAttribute asinhroniem validācijas noteikumiem. Tas sniedz lielāku kontroli un elastību datu validācijā ārpus Blazor ietvara.

Asinhronā validācija Minimal Web-APIs

Arī ASP.NET Core Minimal Web-APIs ir ieguvušas asinhronās validācijas iespējas. Lai to izmantotu, starta kodā ir jāizsauc builder.Services.AddValidation(). Pēc tam objekti ar asinhroniem validatoriem, piemēram, kādā datu klasē definēti validācijas noteikumi, tiks automātiski apstrādāti. Jāuzmanās, ja AddValidation() netiek izsaukts, validācija nenotiks un netiks izmests paziņojums par kļūdu. Klasiskie uz kontrolieriem balstītie Web-APIs šajā Preview 6 versijā vēl neatbalsta asinhrono validāciju un Union Tipus.

Optimizācija un standarti: ātrāki API un jaunākais OpenAPI

Lai uzlabotu veiktspēju, .NET 8.0 ieviesa ShortCircuit() un MapShortCircuit() metodes, kas ļauj API galapunktiem apiet noteiktas starpprogrammatūras (middleware) komponentes. Tagad .NET 11.0 Preview 6 ļauj deklarēt šo funkciju ar jaunu atribūtu [ShortCircuit] gan Minimal Web-APIs, gan uz kontrolieriem balstītos Web-APIs, vēl vairāk vienkāršojot veiktspējas optimizāciju.

Vēl viens svarīgs jaunums ir tas, ka OpenAPI Specification 3.2 tagad ir noklusējuma standarts ASP.NET Core balstītām Web-APIs. Iepriekš tas bija manuāli jāaktivizē, bet tagad izstrādātāji var strādāt ar jaunāko specifikāciju bez papildu konfigurācijas. Ja nepieciešams, ir iespējams atgriezties pie vecākās 3.1 versijas.

Procesu vadība un SignalR uzlabojumi

.NET 11.0 Preview 6 turpina uzlabot arī procesu pārvaldību. Tagad ir iespējams palaist procesus apturētā stāvoklī (Suspended) ar jaunu ProcessStartInfo īpašību StartSuspended. Klase SafeProcessHandle ir papildināta ar Resume() metodi apturētu procesu atsākšanai, kā arī Open() un TryOpen() metodes procesu atvēršanai pēc ID. Klase Process ieguvusi jaunu metodi TryGetProcessById(), kas atgriež false, ja process ar norādīto ID neeksistē, nevis izmet izņēmumu, padarot koda apstrādi drošāku.

ASP.NET Core SignalR ir ieguvis atbalstu savienojumu atcelšanai (cancellation), pat ja tie neizmanto straumēšanu. Izmantojot CancellationToken, klienti var tagad atcelt ilgstošas operācijas, uzlabojot lietojumprogrammu atsaucību un resursu pārvaldību.

Kopumā .NET 11.0 Preview 6 demonstrē Microsoft apņemšanos nepārtraukti attīstīt platformu, piedāvājot izstrādātājiem jaudīgus rīkus un funkcijas. Šie uzlabojumi ne tikai vienkāršo koda rakstīšanu, bet arī uzlabo veiktspēju un padara lietojumprogrammas stabilākas. Kuras no šīm jaunajām funkcijām tu gaidi visvairāk, lai izmantotu savos projektos?

✎Kļūda rakstā?
Iezīmē tekstu un spied ziņot par kļūdu.

Seko okei.lv

Tehnoloģiju jaunumi latviski. Izvēlies sev ērto tīklu.

Līdzīgi raksti