Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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. Steeds vaker 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 het bouwen 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 informatiecompilers 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 talen C# en Visual Basic, 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. Analyzers begrijpen de syntaxis (structuur van code) en semantiek om praktijken 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 samen in één project verpakt.
Analyses en codecorrecties maken gebruik van 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 schending van de standaardrichtlijn.
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 codebasis kunt gebruiken, kunt u eenvoudiger analyses en codecorrecties 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 voor het vinden en oplossen van veelvoorkomende coderingsfouten voor uw project of bibliotheek.
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 analyses en codecorrecties kan gebruiken zonder merkbare invloed op de prestaties van de IDE.
Er zijn drie hoofdscenario's voor het schrijven van analyses en codecorrecties:
- Teamcoderingsstandaarden afdwingen
- Hulp bieden bij bibliotheekpakketten
- Algemene richtlijnen opgeven
Teamcoderingsstandaarden afdwingen
Veel teams hebben coderingsstandaarden die worden afgedwongen via codebeoordelingen met andere teamleden. Analyses en codecorrecties kunnen dit proces veel efficiënter maken. Codebeoordelingen vinden plaats wanneer een ontwikkelaar zijn 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 de ontwikkelaars code schrijven. 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 om door mensen te worden beoordeeld, zijn alle standaardrichtlijnen toegepast.
Teams kan analyses en codecorrecties bouwen die zoeken naar de meest voorkomende procedures die teamcoderingsprocedures schenden. Deze kunnen worden geïnstalleerd op de computer van elke ontwikkelaar om de standaarden af te dwingen.
Aanbeveling
Bekijk de ingebouwde analyse voordat u uw eigen analyse gaat bouwen. Zie Regels voor codestijl voor meer informatie.
Hulp bieden bij bibliotheekpakketten
Er is een schat aan bibliotheken beschikbaar voor .NET-ontwikkelaars op NuGet. Sommige van deze 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 fouten in uw bibliotheek worden gevonden en gecorrigeerd. Deze onmiddellijke correcties helpen ontwikkelaars sneller te slagen.
U kunt analyse- en codecorrecties verpakken met uw bibliotheek op NuGet. In dat scenario installeert elke ontwikkelaar die uw NuGet-pakket installeert ook het analyzer-pakket. Alle ontwikkelaars die uw bibliotheek gebruiken, krijgen onmiddellijk hulp van uw team in de vorm van directe feedback over fouten en voorgestelde correcties.
Algemene richtlijnen opgeven
De .NET-ontwikkelaarscommunity heeft via ervaring patronen ontdekt die goed werken en patronen die het beste worden vermeden. Verschillende communityleden hebben analyzers gemaakt die deze aanbevolen patronen toepassen. Naarmate we meer leren, is er altijd ruimte voor nieuwe ideeën.
Deze analyses kunnen worden geüpload naar Visual Studio Marketplace en worden gedownload door ontwikkelaars 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 meer worden gebruikt, neemt de community deze praktijken aan.
Brongeneratoren
Brongeneratoren streven ernaar om compilatietijdmetaprogrammering mogelijk te maken, dat wil zeggen, code die tijdens het compilatieproces kan worden gemaakt en toegevoegd aan de compilatie. Brongeneratoren kunnen de inhoud van de compilatie lezen voordat ze worden uitgevoerd, evenals toegang krijgen tot eventuele extra bestanden. Met deze mogelijkheid kunnen ze zowel C#-code van gebruikers als generatorspecifieke bestanden introspecteren. U kunt leren hoe u incrementele brongeneratoren bouwt met behulp van het kookboek voor de brongenerator.
Volgende stappen
De .NET Compiler Platform SDK bevat de nieuwste taalobjectmodellen voor het genereren, analyseren en herstructureren van code. Deze sectie bevat 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:
- Code verkennen met de syntaxis visualiseren
- Inzicht in het API-model voor compileren
- Werken met syntaxis
- Werken met semantiek
- Werken met een werkruimte
Om aan de slag te gaan, moet u de .NET Compiler Platform SDK installeren:
Installatie-instructies - Visual Studio Installer
Er zijn twee verschillende manieren om de .NET Compiler Platform SDK te vinden in het Installatieprogramma van Visual Studio:
Installeren met de Visual Studio Installer - Workloads-weergave
De .NET Compiler Platform SDK wordt niet automatisch geselecteerd als onderdeel van de ontwikkelworkload van de Visual Studio-extensie. U moet het selecteren als een optioneel onderdeel.
- Visual Studio Installer uitvoeren
- Selecteer Wijzigen
- Controleer de ontwikkelworkload van de Visual Studio-extensie .
- Open het ontwikkelknooppunt van de Visual Studio-extensie in de overzichtsstructuur.
- Schakel het selectievakje voor .NET Compiler Platform SDK in. U vindt deze laatste onder de optionele onderdelen.
Desgewenst wilt u ook dat de DGML-editor grafieken weergeeft in de visualisatie:
- Open het knooppunt Afzonderlijke onderdelen in de overzichtsstructuur.
- Schakel het selectievakje voor DGML-editor in
Installeren met behulp van het tabblad Afzonderlijke onderdelen van Visual Studio Installer
- Visual Studio Installer uitvoeren
- Selecteer Wijzigen
- Het tabblad Afzonderlijke onderdelen selecteren
- Schakel het selectievakje voor .NET Compiler Platform SDK in. Je vindt het bovenaan in de sectie Compilers, bouwtools en runtimes.
Desgewenst wilt u ook dat de DGML-editor grafieken weergeeft in de visualisatie:
- Schakel het selectievakje voor DGML-editor in. U vindt deze in de sectie Codehulpprogramma's .