Programmering

C # Source Generators for at øge ydeevnen i .NET 5

Microsoft har introduceret en forhåndsvisning af en C # -compilerfunktion kaldet Source Generators, der kan inspicere et program og generere kildefiler, der kan føjes til en kompilering. Microsoft siger, at Source Generators kan forbedre ydeevnen i en række scenarier.

Introduceret 29. april er en Source Generator et stykke kode (en .NET Standard 2.0-samling), der kører under kompilering og kan inspicere et program for at producere yderligere filer, der er kompileret sammen med resten af ​​koden.

Source Generators lader C # -udviklere gøre følgende:

  • Hent en samling, der repræsenterer al brugerkode, der kompileres. Dette objekt kan inspiceres, og udviklere kan skrive kode, der fungerer med syntaks og semantiske modeller til kode, der kompileres, som med analysatorer.
  • Generer C # -kildefiler, der skal føjes til et kompileringsobjekt under kompilering, med yderligere kildekode angivet som input, mens koden kompileres.

Microsoft sagde, at brugerkode kan inspiceres sammen med rige metadata, som compileren bygger op under kompilering, med C #-kode, der udsendes tilbage til den samme kompilering baseret på de analyserede data. Kildegeneratorer er beslægtet med Roslyn Analyzers, der inspicerer C # eller Visual Basic-kode og fungerer som analysatorer, der kan udsende C # kildekode.

Source Generators skal sendes som en del af C # 9. Virksomheden har stillet en Source Generators Cookbook og et Source Generators design dokument til rådighed for at hjælpe udviklere med at komme i gang.

Scenarier, der drager fordel af kildegeneratorer, inkluderer:

  • At udføre reflektion af runtime. Ved at analysere kode, når en app starter, kan en controller-opdagelsesfase f.eks. Ske på kompileringstidspunktet, hvilket resulterer i hurtigere opstartstider.
  • For at undgå brugen af ​​“strengt typede” API'er, såsom hvordan ASP.NET Core-routing mellem controllere og Razor-sider fungerer. Routing kunne være stærkt skrevet, og de nødvendige strenge kunne genereres som en kompileringstidsdetalje.
  • At hjælpe med at fjerne barrierer for link-baserede og tidlige kompilationsoptimeringer.

For at få adgang til kildegeneratorer skal udviklere installere den nyeste .NET 5-forhåndsvisning og den seneste Visual Studio-forhåndsvisning.