Freigeben über


.NET Compiler Platform-SDK

Compiler erstellen ein detailliertes Modell von Anwendungscode, während sie die Syntax und Semantik dieses Codes überprüfen. Sie verwenden dieses Modell, um die ausführbare Ausgabe aus dem Quellcode zu erstellen. Das .NET Compiler Platform SDK bietet Zugriff auf dieses Modell. Zunehmend verlassen wir uns auf integrierte Entwicklungsumgebungsfeatures wie IntelliSense, Umgestaltung, intelligente Umbenennung, "Alle Verweise suchen" und "Zur Definition wechseln", um unsere Produktivität zu steigern. Wir setzen auf Codeanalysetools, um unsere Codequalität zu verbessern, und Codegeneratoren zur Unterstützung bei der Anwendungserstellung. Da diese Tools intelligenter werden, benötigen sie Mehr und mehr Zugriff auf das Modell, das nur Compiler beim Verarbeiten von Anwendungscode erstellen. Dies ist die Kernaufgabe der Roslyn-APIs: Das Öffnen der undurchsichtigen Boxen und das Ermöglichen, dass Tools und Endbenutzer an dem Reichtum der Informationen, die Compiler über unseren Code haben, teilhaben. Anstatt undurchsichtige Übersetzer von Quellcode zu Objektcode zu sein, verwandeln sich Compiler durch Roslyn in Plattformen: APIs, die Sie für codebezogene Aufgaben in Ihren Tools und Anwendungen verwenden können.

.NET Compiler Platform SDK-Konzepte

Das .NET Compiler Platform SDK senkt die Einstiegsbarriere für die Erstellung codeorientierter Tools und Anwendungen erheblich. Es schafft viele Möglichkeiten für Innovationen in Bereichen wie Metaprogrammierung, Codegenerierung und Transformation, interaktive Verwendung der C#- und Visual Basic-Sprachen und Einbettung von C# und Visual Basic in domänenspezifische Sprachen.

Mit dem .NET Compiler Platform SDK können Sie Analyse- und Codekorrekturen erstellen, die Fehler beim Codieren finden und korrigieren. Analyzer verstehen die Syntax (Struktur des Codes) und die Semantik, um Praktiken zu erkennen, die korrigiert werden sollten. Codefixes bieten eine oder mehrere vorgeschlagene Korrekturen für die Behandlung von Codierungsfehlern, die von Analysegeräten oder Compilerdiagnosen gefunden wurden. In der Regel werden ein Analyzer und die zugehörigen Codefixes in einem einzigen Projekt gepackt.

Analysegeräte und Codefixes verwenden statische Analysen, um Code zu verstehen. Sie führen den Code nicht aus oder bieten andere Testvorteile. Sie können jedoch auf Praktiken hinweisen, die häufig zu Fehlern, nicht wartbarem Code oder Standardrichtlinienverstößen führen.

Zusätzlich zu Analyzern und Codefixes ermöglicht ihnen das .NET Compiler Platform SDK auch das Erstellen von Codeumgestaltungen. Sie stellt außerdem einen einzelnen Satz von APIs bereit, mit denen Sie eine C#- oder Visual Basic-Codebasis untersuchen und verstehen können. Da Sie diese einzelne Codebasis verwenden können, können Sie Analyzer und Codefixes einfacher schreiben, indem Sie die syntaktischen und semantischen Analyse-APIs nutzen, die vom .NET Compiler Platform SDK bereitgestellt werden. Frei von der großen Aufgabe, die vom Compiler durchgeführte Analyse zu replizieren, können Sie sich auf die fokussiertere Aufgabe konzentrieren, allgemeine Codierungsfehler für Ihr Projekt oder Ihre Bibliothek zu finden und zu beheben.

Ein kleinerer Vorteil ist, dass Ihre Analysegeräte und Codefixes kleiner sind und viel weniger Arbeitsspeicher verwenden, wenn sie in Visual Studio geladen werden, als wenn Sie Ihre eigene Codebasis geschrieben haben, um den Code in einem Projekt zu verstehen. Indem Sie die gleichen Klassen nutzen, die vom Compiler und Visual Studio verwendet werden, können Sie eigene statische Analysetools erstellen. Dies bedeutet, dass Ihr Team Analyzer und Codefixes ohne spürbare Auswirkungen auf die Leistung der IDE verwenden kann.

Es gibt drei Hauptszenarien für das Schreiben von Analyzern und Codefixes:

  1. Erzwingen von Teamcodierungsstandards
  2. Bereitstellen von Anleitungen für Bibliothekspakete
  3. Allgemeine Hinweise

Erzwingen von Teamcodierungsstandards

Viele Teams verfügen über Codierungsstandards, die durch Codeüberprüfungen mit anderen Teammitgliedern erzwungen werden. Analysatoren und Codefixes können diesen Prozess wesentlich effizienter gestalten. Codeüberprüfungen treten auf, wenn ein Entwickler seine Arbeit mit anderen im Team teilt. Der Entwickler wird alle erforderliche Zeit investiert haben, um ein neues Feature abzuschließen, bevor er Kommentare erhält. Wochen können gehen, während der Entwickler Gewohnheiten verstärkt, die nicht den Praktiken des Teams entsprechen.

Analysatoren laufen, während ein Entwickler Code schreibt. Der Entwickler erhält sofortiges Feedback, das dazu ermutigt, den Richtlinien sofort zu folgen. Der Entwickler erstellt Gewohnheiten, um kompatiblen Code zu schreiben, sobald sie mit der Prototyperstellung beginnen. Wenn das Feature für die Menschen zur Überprüfung bereitgestellt ist, wurden alle Standardleitlinien umgesetzt.

Teams kann Analysen und Codekorrekturen erstellen, die nach den am häufigsten verwendeten Methoden suchen, die gegen Teamcodierungsmethoden verstoßen. Diese können auf jedem Entwicklercomputer installiert werden, um die Standards zu erzwingen.

Tipp

Bevor Sie Ihr eigenes Analysetool erstellen, prüfen Sie die integrierten Tools. Weitere Informationen finden Sie unter Codestilregeln.

Anleitung zu Bibliothekspaketen geben

Es gibt eine Fülle von Bibliotheken für .NET-Entwickler auf NuGet. Einige davon stammen von Microsoft, einige von Drittanbieterunternehmen und andere von Communitymitgliedern und Freiwilligen. Diese Bibliotheken erhalten mehr Akzeptanz und höhere Rezensionen, wenn Entwickler mit diesen Bibliotheken erfolgreich arbeiten können.

Zusätzlich zur Bereitstellung von Dokumentationen können Sie Analysegeräte und Codekorrekturen bereitstellen, die häufig verwendete Verwendungen Ihrer Bibliothek finden und korrigieren. Diese sofortigen Korrekturen helfen Entwicklern, schneller erfolgreich zu sein.

Sie können Analysen und Codefixes mit Ihrer Bibliothek auf NuGet packen. In diesem Szenario installiert jeder Entwickler, der Ihr NuGet-Paket installiert, auch das Analysepaket. Alle Entwickler, die Ihre Bibliothek verwenden, erhalten sofort Anleitungen von Ihrem Team in Form von sofortigem Feedback zu Fehlern und vorgeschlagenen Korrekturen.

Bereitstellen von allgemeinen Codierungsleitfäden

Die .NET-Entwicklercommunity hat durch Erfahrung Muster entdeckt, die am besten geeignet sind, und Muster, die am besten vermieden werden. Mehrere Communitymitglieder haben Analysetools erstellt, die die empfohlenen Mustern durchsetzen. Während wir mehr erfahren, gibt es immer Platz für neue Ideen.

Diese Analyzer können in visual Studio Marketplace hochgeladen und von Entwicklern mit Visual Studio heruntergeladen werden. Neulinge in der Sprache und auf der Plattform lernen schnell akzeptierte Praktiken und werden früher in ihrer .NET-Reise produktiv. Da diese häufiger genutzt werden, übernimmt die Community diese Praktiken.

Quellgeneratoren

Source Generators zielen darauf ab, Kompilierzeit-Metaprogrammierung zu ermöglichen, d. h. Code, der zur Kompilierungszeit erstellt und der Kompilierung hinzugefügt werden kann. Quellgeneratoren können den Inhalt der Kompilierung lesen, bevor sie ausgeführt werden, sowie auf alle zusätzlichen Dateien zugreifen. Mit dieser Möglichkeit können sie sowohl C#-Code als auch generatorspezifische Dateien introspektieren. Sie erfahren, wie Sie inkrementelle Quellgeneratoren mit dem Quellgenerator-Cookbook erstellen.

Nächste Schritte

Das .NET Compiler Platform SDK enthält die neuesten Sprachobjektmodelle für die Codegenerierung, Analyse und Umgestaltung. Dieser Abschnitt enthält eine konzeptionelle Übersicht über das .NET Compiler Platform SDK. Weitere Details finden Sie in den Abschnitten "Schnellstarts", "Beispiele" und "Lernprogramme".

Weitere Informationen zu den Konzepten im .NET Compiler Platform SDK finden Sie in den folgenden fünf Themen:

Zunächst müssen Sie das .NET Compiler Platform SDK installieren:

Installationsanweisungen – Visual Studio Installer

Es gibt zwei verschiedene Möglichkeiten, das .NET Compiler Platform SDK im Visual Studio Installer zu finden:

Installieren mit dem Visual Studio Installer – Arbeitslastenansicht

Das .NET Compiler Platform SDK wird nicht automatisch als Teil der Visual Studio-Erweiterungsentwicklungslast ausgewählt. Sie müssen sie als optionale Komponente auswählen.

  1. Ausführen des Visual Studio-Installationsprogramms
  2. Wählen Sie Ändern aus.
  3. Überprüfen Sie die Arbeitsauslastung der Visual Studio-Erweiterungsentwicklung .
  4. Öffnen Sie den Knoten Visual Studio-Extensionentwicklung in der Zusammenfassungsstruktur.
  5. Aktivieren Sie das Kontrollkästchen für .NET Compiler Platform SDK. Sie finden sie unter den optionalen Komponenten zuletzt.

Optional möchten Sie auch, dass der DGML-Editor Diagramme in der Visualisierung anzeigt:

  1. Öffnen Sie den Knoten „Einzelne Komponenten“ im Zusammenfassungsbaum.
  2. Aktivieren Sie das Kontrollkästchen für den DGML-Editor.

Installieren mit dem Visual Studio Installer – Registerkarte "Einzelne Komponenten"

  1. Ausführen des Visual Studio-Installationsprogramms
  2. Wählen Sie Ändern aus.
  3. Registerkarte "Einzelne Komponenten " auswählen
  4. Aktivieren Sie das Kontrollkästchen für .NET Compiler Platform SDK. Sie finden sie oben im Abschnitt "Compiler", "Buildtools" und "Laufzeiten" .

Optional möchten Sie auch, dass der DGML-Editor Diagramme in der Visualisierung anzeigt:

  1. Aktivieren Sie das Kontrollkästchen für den DGML-Editor. Sie finden sie im Abschnitt "Codetools ".