Compilers bouwen een gedetailleerd model van toepassingscode wanneer ze de syntaxis en semantiek van die code valideren. Ze gebruiken dit model om de uitvoerbare uitvoer van de broncode te bouwen. De .NET Compiler Platform SDK biedt toegang tot dit model. In toenemende mate vertrouwen we op IDE-functies (Integrated Development Environment), zoals IntelliSense, herstructureren, intelligente naamswijziging, 'Alle verwijzingen zoeken' en 'Ga naar definitie' om onze productiviteit te verhogen. We zijn afhankelijk van hulpprogramma's voor codeanalyse om onze codekwaliteit en codegeneratoren te verbeteren om te helpen bij de bouw van toepassingen. Naarmate deze hulpprogramma's slimmer worden, hebben ze toegang nodig tot meer en meer van het model dat alleen compilers maken tijdens het verwerken van toepassingscode. Dit is de kernmissie van de Roslyn-API's: het openen van de ondoorzichtige vakken en het toestaan van hulpprogramma's en eindgebruikers om te delen in de schat aan informatie compilers over onze code.
In plaats van ondoorzichtige broncode- en objectcode-outvertalers te zijn, worden compilers via Roslyn platformen: API's die u kunt gebruiken voor codegerelateerde taken in uw hulpprogramma's en toepassingen.
.NET Compiler Platform SDK-concepten
De .NET Compiler Platform SDK verlaagt de drempel voor het maken van programmacodegerichte hulpprogramma's en toepassingen aanzienlijk. Het creëert veel mogelijkheden voor innovatie op gebieden zoals metaprogrammering, het genereren en transformeren van code, interactief gebruik van de C#- en Visual Basic talen, en het insluiten van C# en Visual Basic in domeinspecifieke talen.
Met de .NET Compiler Platform SDK kunt u analyses en codecorrecties bouwen waarmee coderingsfouten worden gevonden en gecorrigeerd. Analysen begrijpen de syntaxis (structuur van code) en semantiek om procedures te detecteren die moeten worden gecorrigeerd. Codeoplossingen bieden een of meer voorgestelde oplossingen voor het oplossen van coderingsfouten die zijn gevonden door analyses of compilerdiagnose. Normaal gesproken worden een analyse en de bijbehorende codecorrecties in één project verpakt.
Analysen en codecorrecties gebruiken statische analyse om code te begrijpen. Ze voeren de code niet uit of bieden andere testvoordelen. Ze kunnen echter procedures aanwijzen die vaak leiden tot bugs, onbeheerbare code of standaardrichtlijnschending.
Naast analyses en codecorrecties kunt u met de .NET Compiler Platform SDK ook codeherstructureringen bouwen.
Het biedt ook één set API's waarmee u een C# of Visual Basic codebasis kunt onderzoeken en begrijpen. Omdat u deze individuele codebase kunt gebruiken, kunt u analyses en codecorrecties eenvoudiger schrijven door gebruik te maken van de syntactische en semantische analyse-API's van de .NET Compiler Platform SDK. Los van de grote taak van het repliceren van de analyse die door de compiler wordt uitgevoerd, kunt u zich concentreren op de meer gerichte taak om veelvoorkomende coderingsfouten voor uw project of bibliotheek te vinden en op te lossen.
Een kleiner voordeel is dat uw analyses en codecorrecties kleiner zijn en veel minder geheugen gebruiken wanneer ze in Visual Studio worden geladen dan wanneer u uw eigen codebasis hebt geschreven om de code in een project te begrijpen. Door gebruik te maken van dezelfde klassen die door de compiler en Visual Studio worden gebruikt, kunt u uw eigen statische analysehulpprogramma's maken. Dit betekent dat uw team analyse- en codecorrecties kan gebruiken zonder merkbare impact op de prestaties van de IDE.
Er zijn drie hoofdscenario's voor het schrijven van analyses en codecorrecties:
Veel teams hebben coderingsstandaarden die worden afgedwongen via codebeoordelingen met andere teamleden. Analyse en codecorrecties kunnen dit proces veel efficiënter maken. Codebeoordelingen vinden plaats wanneer een ontwikkelaar zijn of haar werk deelt met anderen in het team. De ontwikkelaar heeft alle tijd geïnvesteerd die nodig is om een nieuwe functie te voltooien voordat hij opmerkingen ontvangt. Weken kunnen voorbij gaan terwijl de ontwikkelaar de gewoonten versterkt die niet overeenkomen met de procedures van het team.
Analyzers worden uitgevoerd als ontwikkelaar schrijft code. De ontwikkelaar krijgt onmiddellijk feedback die het volgen van de richtlijnen aanmoedigt. De ontwikkelaar bouwt gewoonten om compatibele code te schrijven zodra ze beginnen met prototypen. Wanneer de functie gereed is voor mensen om te beoordelen, is alle standaardrichtlijnen afgedwongen.
Teams kunt analyse- en codecorrecties bouwen die zoeken naar de meest voorkomende procedures die in strijd zijn met teamcoderingsprocedures. Deze kunnen worden geïnstalleerd op de computer van elke ontwikkelaar om de standaarden af te dwingen.
Tip
Voordat u uw eigen analyse bouwt, bekijkt u de ingebouwde analyse. Zie Regels in codestijl voor meer informatie.
Richtlijnen bieden voor bibliotheekpakketten
Er is een schat aan bibliotheken beschikbaar voor .NET-ontwikkelaars in NuGet.
Sommige hiervan zijn afkomstig van Microsoft, sommige van externe bedrijven en andere van communityleden en vrijwilligers. Deze bibliotheken krijgen meer acceptatie en hogere beoordelingen wanneer ontwikkelaars kunnen slagen met deze bibliotheken.
Naast het verstrekken van documentatie kunt u analyses en codecorrecties bieden waarmee veelvoorkomende misgebruiken van uw bibliotheek worden gevonden en gecorrigeerd. Deze onmiddellijke correcties helpen ontwikkelaars sneller te slagen.
U kunt analyse- en codecorrecties verpakken met uw bibliotheek in NuGet. In dat scenario installeert elke ontwikkelaar die uw NuGet-pakket installeert, wordt ook het analyzer-pakket geïnstalleerd. Alle ontwikkelaars die uw bibliotheek gebruiken, krijgen onmiddellijk begeleiding van uw team in de vorm van directe feedback over fouten en voorgestelde correcties.
Algemene richtlijnen bieden
De .NET-ontwikkelaarscommunity heeft via ervaring patronen ontdekt die goed werken en patronen die het beste worden vermeden. Verschillende communityleden hebben analyses gemaakt die deze aanbevolen patronen afdwingen. Naarmate we meer leren, is er altijd ruimte voor nieuwe ideeën.
Deze analyses kunnen worden geüpload naar de Visual Studio Marketplace en door ontwikkelaars worden gedownload met behulp van Visual Studio. Nieuwkomers in de taal en het platform leren geaccepteerde procedures snel en worden productief eerder in hun .NET-traject. Naarmate deze veel meer worden gebruikt, neemt de community deze praktijken over.
Volgende stappen
De .NET Compiler Platform SDK bevat de nieuwste taalobjectmodellen voor het genereren, analyseren en herstructureren van code. Deze sectie biedt een conceptueel overzicht van de .NET Compiler Platform SDK. Meer informatie vindt u in de secties quickstarts, voorbeelden en zelfstudies.
In deze vijf onderwerpen vindt u meer informatie over de concepten in de .NET Compiler Platform SDK:
Er zijn twee verschillende manieren om de .NET Compiler Platform SDK te vinden in het Visual Studio-installatieprogramma:
Installeren met behulp van het Visual Studio-installatieprogramma - Weergave Workloads
De .NET Compiler Platform SDK wordt niet automatisch geselecteerd als onderdeel van de Visual Studio workload voor het ontwikkelen van extensies. U moet deze selecteren als een optioneel onderdeel.
Visual Studio Installer uitvoeren
Selecteer Wijzigen
Controleer de Visual Studio workload voor het ontwikkelen van extensies.
Open het Visual Studio uitbreidingsontwikkelingsknooppunt in de overzichtsstructuur.
Schakel het selectievakje in voor .NET Compiler Platform SDK. U vindt deze laatste onder de optionele onderdelen.
Desgewenst wilt u ook dat de DGML-editor grafieken weergeeft in de visualizer:
Open het knooppunt Afzonderlijke onderdelen in de overzichtsstructuur.
Schakel het selectievakje voor DGML-editor in
Installeren met behulp van het tabblad Visual Studio Installatieprogramma - Afzonderlijke onderdelen
Visual Studio Installer uitvoeren
Selecteer Wijzigen
Het tabblad Afzonderlijke onderdelen selecteren
Schakel het selectievakje in voor .NET Compiler Platform SDK. U vindt deze bovenaan in de sectie Compilers, buildhulpprogramma's en runtimes .
Desgewenst wilt u ook dat de DGML-editor grafieken weergeeft in de visualizer:
Schakel het selectievakje voor DGML-editor in. U vindt deze in de sectie Hulpprogramma's voor code .