Dela via


.NET-kompilatorplattformens programvaruutvecklingskit

Kompilatorer skapar en detaljerad modell av programkod när de validerar syntaxen och semantiken för koden. De använder den här modellen för att skapa körbara utdata från källkoden. .NET Compiler Platform SDK ger åtkomst till den här modellen. I allt högre grad förlitar vi oss på funktioner för integrerad utvecklingsmiljö (IDE), till exempel IntelliSense, refaktorisering, intelligent namnbyte, "Hitta alla referenser" och "Gå till definition" för att öka vår produktivitet. Vi förlitar oss på kodanalysverktyg för att förbättra kodkvaliteten och kodgeneratorer för att underlätta programkonstruktionen. När de här verktygen blir smartare behöver de åtkomst till mer och mer av den modell som endast kompilatorer skapar när de bearbetar programkod. Det här är huvuduppdraget för Roslyn-API:erna: att öppna de ogenomskinliga rutorna och låta verktyg och slutanvändare dela med sig av den mängd information som kompilatorer har om vår kod. I stället för att vara opaque source-code-in och object-code-out translators, via Roslyn, blir kompilatorer plattformar: API:er som du kan använda för kodrelaterade uppgifter i dina verktyg och program.

Koncept för .NET Compiler Platform SDK

.NET Compiler Platform SDK sänker avsevärt inträdesbarriären för att skapa kodfokuserade verktyg och program. Det skapar många möjligheter till innovation inom områden som metaprogrammering, kodgenerering och transformering, interaktiv användning av C# och Visual Basic-språk samt inbäddning av C# och Visual Basic på domänspecifika språk.

Med .NET Compiler Platform SDK kan du skapa analysverktyg och kodkorrigeringar som hittar och korrigerar kodfel. Analyserare förstår syntaxen (kodstrukturen) och semantiken för att identifiera metoder som ska korrigeras. Kodkorrigeringar innehåller en eller flera föreslagna korrigeringar för att åtgärda kodningsfel som hittas av analysatorer eller kompilatordiagnostik. Vanligtvis paketeras en analysator och tillhörande kodkorrigeringar tillsammans i ett enda projekt.

Analysverktyg och kodkorrigeringar använder statisk analys för att förstå kod. De kör inte koden eller ger andra testfördelar. De kan dock peka på metoder som ofta leder till buggar, ouppnåelig kod eller standardanvisningsöverträdelser.

Förutom analysverktyg och kodkorrigeringar kan du även skapa kodrefaktoriseringar med .NET Compiler Platform SDK. Den innehåller också en enda uppsättning API:er som gör att du kan undersöka och förstå en C#- eller Visual Basic-kodbas. Eftersom du kan använda den här enda kodbasen kan du skriva analysverktyg och kodkorrigeringar enklare genom att utnyttja api:erna för syntaktisk och semantisk analys som tillhandahålls av .NET Compiler Platform SDK. Befriad från den stora uppgiften att replikera analysen som görs av kompilatorn kan du koncentrera dig på den mer fokuserade uppgiften att hitta och åtgärda vanliga kodfel för projektet eller biblioteket.

En mindre fördel är att dina analysverktyg och kodkorrigeringar är mindre och använder mycket mindre minne när de läses in i Visual Studio än om du skrev en egen kodbas för att förstå koden i ett projekt. Genom att använda samma klasser som används av kompilatorn och Visual Studio kan du skapa egna statiska analysverktyg. Det innebär att ditt team kan använda analysverktyg och kodkorrigeringar utan någon märkbar inverkan på IDE:s prestanda.

Det finns tre huvudsakliga scenarier för att skriva analysverktyg och kodkorrigeringar:

  1. Tillämpa kodningsstandarder för laget
  2. Ge vägledning med bibliotekspaket
  3. Ge allmän vägledning

Genomdriva teamets kodningsstandarder

Många team har kodningsstandarder som tillämpas via kodgranskningar med andra teammedlemmar. Analysverktyg och kodkorrigeringar kan göra den här processen mycket effektivare. Kodgranskningar sker när en utvecklare delar sitt arbete med andra i teamet. Utvecklaren har investerat all tid som krävs för att slutföra en ny funktion innan de får några kommentarer. Veckor kan gå medan utvecklaren förstärker vanor som inte matchar teamets metoder.

Analysverktyg körs medan utvecklare skriver kod. Utvecklaren får omedelbar feedback som uppmuntrar till att följa vägledningen omedelbart. Utvecklaren skapar vanor för att skriva kompatibel kod så snart de påbörjar prototyper. När funktionen är redo för människor att granska har all standardvägledning tillämpats.

Teams kan skapa analysverktyg och kodkorrigeringar som letar efter de vanligaste metoderna som bryter mot teamkodningsmetoder. Dessa kan installeras på varje utvecklares dator för att tillämpa standarderna.

Tips/Råd

Innan du skapar en egen analysator kan du kolla in de inbyggda analysatorerna. Mer information finns i Regler i kodformat.

Ge vägledning med bibliotekspaket

Det finns en mängd bibliotek tillgängliga för .NET-utvecklare på NuGet. Några av dessa kommer från Microsoft, vissa från tredjepartsföretag och andra från communitymedlemmar och volontärer. De här biblioteken får mer implementering och högre granskningar när utvecklare kan lyckas med dessa bibliotek.

Förutom att tillhandahålla dokumentation kan du tillhandahålla analysverktyg och kodkorrigeringar som hittar och korrigerar vanliga felaktig användning av biblioteket. Dessa omedelbara korrigeringar hjälper utvecklare att lyckas snabbare.

Du kan paketera analysverktyg och kodkorrigeringar med ditt bibliotek på NuGet. I det scenariot installerar alla utvecklare som installerar ditt NuGet-paket även analyspaketet. Alla utvecklare som använder ditt bibliotek får omedelbar vägledning från ditt team i form av omedelbar feedback om misstag och föreslagna korrigeringar.

Ge allmän vägledning

.NET-utvecklarcommunityn har med erfarenhet upptäckt mönster som fungerar bra och mönster som bäst undviks. Flera communitymedlemmar har skapat analysverktyg som framtvingar de rekommenderade mönstren. När vi lär oss mer finns det alltid plats för nya idéer.

Dessa analysverktyg kan laddas upp till Visual Studio Marketplace och laddas ned av utvecklare med hjälp av Visual Studio. Nybörjare till språket och plattformen lär sig accepterade metoder snabbt och blir produktiva tidigare i sin .NET-resa. I takt med att dessa används i större utsträckning antar communityn dessa metoder.

Källgeneratorer

Källgeneratorer syftar till att aktivera kompileringstidsmetaprogrammering, dvs. kod som kan skapas vid kompileringstid och läggas till i kompilering. Källgeneratorer kan läsa innehållet i kompilering innan de körs, samt komma åt ytterligare filer. Med den här möjligheten kan de introspekta både C#-kod för användare och generatorspecifika filer. Du kan lära dig hur du skapar inkrementella källgeneratorer med hjälp av källgeneratorns kokbok.

Nästa steg

.NET Compiler Platform SDK innehåller de senaste språkobjektmodellerna för kodgenerering, analys och refaktorisering. Det här avsnittet innehåller en konceptuell översikt över .NET Compiler Platform SDK. Mer information finns i avsnitten snabbstarter, exempel och självstudier.

Du kan lära dig mer om begreppen i .NET Compiler Platform SDK i följande fem avsnitt:

För att komma igång måste du installera .NET Compiler Platform SDK:

Installationsinstruktioner – Visual Studio Installer

Det finns två olika sätt att hitta .NET Compiler Platform SDK i Visual Studio Installer:

Installera med vyn Arbetsbelastningar i Visual Studio Installer

.NET Compiler Platform SDK väljs inte automatiskt som en del av arbetsbelastningen för utveckling av Visual Studio-tillägget. Du måste välja den som en valfri komponent.

  1. Starta Visual Studio Installer
  2. Välj Ändra
  3. Kontrollera arbetsuppgiften Visual Studio-tilläggsutveckling.
  4. Öppna noden Visual Studio-tilläggsutveckling i översiktsträdet.
  5. Markera kryssrutan för .NET Compiler Platform SDK. Du hittar den sist under de valfria komponenterna.

Du vill också att DGML-redigeraren ska visa grafer i visualiseraren:

  1. Öppna noden Enskilda komponenter i sammanfattningsträdet.
  2. Markera kryssrutan för DGML-redigeraren

Installera med hjälp av fliken Installationsprogram för Visual Studio – enskilda komponenter

  1. Starta Visual Studio Installer
  2. Välj Ändra
  3. Välj fliken Enskilda komponenter
  4. Markera kryssrutan för .NET Compiler Platform SDK. Du hittar den längst upp under avsnittet Kompilatorer, byggverktyg och körning.

Du vill också att DGML-redigeraren ska visa grafer i visualiseraren:

  1. Markera kryssrutan för DGML-redigeraren. Du hittar den under avsnittet Kodverktyg .