Programmēšana

C # avotu ģeneratori, lai uzlabotu veiktspēju .NET 5

Microsoft ir ieviesis priekšskatījumu C # kompilatora spējai ar nosaukumu Source Generators, kas var pārbaudīt programmu un ģenerēt avota failus, kurus var pievienot kompilācijai. Microsoft saka, ka avotu ģeneratori var uzlabot veiktspēju vairākos scenārijos.

Iepazīstināja ar 29. aprīli. Source Generator ir koda gabals (.NET Standard 2.0 montāža), kas darbojas kompilēšanas laikā un var pārbaudīt programmu, lai izveidotu papildu failus, kas tiek apkopoti kopā ar pārējo kodu.

Avotu ģeneratori ļauj C # izstrādātājiem rīkoties šādi:

  • Iegūstiet kompilāciju, kas atspoguļo visu kompilējamo lietotāja kodu. Šo objektu var pārbaudīt, un izstrādātāji var rakstīt kodu, kas darbojas ar sastādāmā koda sintakses un semantiskajiem modeļiem, piemēram, ar analizatoriem.
  • Ģenerējiet C # avota failus, kas kompilācijas objektam jāpievieno kompilēšanas laikā, un papildu avota kods tiek ievadīts kā ievade koda kompilēšanas laikā.

Microsoft teica, ka lietotāja kodu var pārbaudīt kopā ar bagātīgiem metadatiem, kurus kompilators izveido kompilēšanas laikā, un C # kods atkal tiek emitēts tajā pašā kompilācijā, pamatojoties uz analizētajiem datiem. Avotu ģeneratori ir līdzīgi Roslyn Analyzers, kas pārbauda C # vai Visual Basic kodu, kalpojot kā analizatori, kas var izstarot C # avota kodu.

Avotu ģeneratori tiks piegādāti kā daļa no C # 9. Uzņēmums ir izveidojis avotu ģeneratoru pavārgrāmatu un avotu ģeneratoru dizaina dokumentu, kas palīdz izstrādātājiem sākt darbu.

Scenāriji, kas gūst labumu no avotu ģeneratoriem, ietver:

  • Veikt izpildlaika atspoguļojumu. Piemēram, analizējot kodu, kad tiek palaista lietotne, kompilēšanas laikā var notikt kontroliera atrašanas fāze, kā rezultātā tiek palaistāki startēšanas laiki.
  • Lai novērstu “strikti ievadītu” API izmantošanu, piemēram, kā darbojas ASP.NET Core maršrutēšana starp kontrolieriem un Razor lapām. Maršrutēšanu varēja stingri ierakstīt un nepieciešamās virknes ģenerēt kā apkopošanas laika detaļu.
  • Lai palīdzētu novērst šķēršļus uz saitēm balstītas un pirms laika apkopošanas optimizācijas.

Lai piekļūtu avotu ģeneratoriem, izstrādātājiem jāinstalē jaunākais .NET 5 priekšskatījums un jaunākais Visual Studio priekšskatījums.