Spring til indhold
cd /languages
Langlivet .NETProgrammeringFuld grafunderstøttelse

C#-understøttelse i Maguyva: Sikrere refaktorering til .NET-kodebaser

Maguyva understøtter C# med AST-parsing og symboludtræk, så AI-agenter kan arbejde på tværs af .NET-tjenester, LINQ-tung forretningslogik, delte biblioteker og langlivede enterprise-repositorier.

Hvad der betyder noget i modne .NET-kodebaser

Mange teams, der bruger AI-værktøjer, lever i .NET, ikke i greenfield JavaScript. De har API’er, worker-processer, delte modeller, interne biblioteker og års forretningslogik. Spørgsmålet er ikke, om en LLM kan generere C#-syntaks. Spørgsmålet er, om den kan forblive forankret i et repository, hvor én forkert ændring kan brede sig gennem services, modeller og delte abstraktioner.

Derfor skal en C#-side være mere præcis end “understøttet.”

Hvad Maguyva rent faktisk udtrækker i C#

Maguyva normaliserer using-imports, fjerner nullable- og array-suffikser som ? og [] fra definitioner og behandler konstruktørlignende kaldeknuder som instantieringer, mens generiske klammer fjernes. Det er nyttige detaljer i klassetunge C#-repositorier, fordi de gør grafen renere omkring de reelle domænetyper.

Konfigurationen filtrerer også en stor mængde BCL- og LINQ-støj fra. Det betyder mere, end det lyder som. I modne .NET-kodebaser er en graf domineret af framework-kald ikke særlig nyttig. Den nyttige graf er den, hvor repository-specifikke controllere, services, DTO’er og hjælpeklasser stadig træder tydeligt frem.

Nyttige MCP-arbejdsgange til .NET-kodebaser

Det praktiske flow starter som regel med:

  • find_symbol, når du kender navnet på controlleren, servicen, DTO’en eller modellen.
  • dependency_search, før du redigerer en delt service eller type, der kan have bred indgående brug.
  • get_task_context til prompts som “følg denne request fra controller til repository”, når stien strækker sig over flere lag.

Hvornår denne side er nyttig

Denne side er til teams, der ønsker AI-assistance inde i en reel .NET-kodebase, ikke bare et legetøjsprojekt. Hvis det omgivende system er mere JVM end .NET, så sammenlign med Java. Hvis dit C#-lag kun er én del af et større polyglot-system, er den tilstødende TypeScript-side som regel også relevant.

Bedst egnet til

  • >ASP.NET-, worker-service- og interne platformsrepositorier, der blander webendpoints, jobs og delte biblioteker.
  • >Teams, der vedligeholder modne .NET-bestande, hvor LINQ, async-flows og framework-abstraktioner skjuler den reelle eksekveringssti.
  • >Teams, der tester, om en agent kan forblive forankret i lagdelt .NET-kode, før forretningslogik omskrives.

Agent-arbejdsgange

  • >Følg en sti gennem controller, service og repository, før forretningslogik redigeres.
  • >Undersøg hvor en model, DTO eller delt hjælpefunktion instantieres på tværs af repositoriet.
  • >Forstå de omgivende LINQ- eller async-mønstre, før agenten får lov til at omskrive noget som helst.

Motordetaljer

  • >`using`-præfikser normaliseres på imports, og nullable- eller array-suffikser som `?` og `[]` fjernes fra symboldefinitioner.
  • >Instantiering bruger call-noder med fjernelse af generiske parenteser, hvilket hjælper med at holde konstruktørlignende brug læsbar i grafen.
  • >Konfigurationen filtrerer eksplicit store mængder BCL- og LINQ-støj, så repo-specifikke services og modeller er lettere at fremhæve.

Nyttige MCP-indgange

  • find_symbol

    Brug det, når du kender navnet på den controller, service, DTO eller delte type, du er ved at røre.

  • dependency_search

    Brug indgående traversering, før du retter en kerneservice eller model, der bruges på tværs af applikationen.

  • get_task_context

    Nyttigt til prompts som "follow this request from controller to repository" i lagdelte .NET-kodebaser.