Roslyn-Analysatoren. So schreiben Sie schnell und genau Code

Roslyn, die .NET-Compilerplattform, hilft dabei, Fehler zu erkennen, noch bevor Code ausgeführt wird. Ein Beispiel ist die Roslyn-Rechtschreibprüfung, die in Visual Studio integriert ist. Angenommen, Sie erstellen eine statische Methode und schreiben versehentlich das Wort static als statc. Sie können diesen Rechtschreibfehler bereits sehen, bevor Sie Ihren Code ausführen, da Roslyn eine Warnung in Ihrem Code ausgibt, wenn Sie Text eingeben, noch bevor Sie eine Zeile eingeben. Mit anderen Worten, Sie müssen den Code nicht erstellen, um herauszufinden, dass Sie einen Fehler gemacht haben.

Bild

Roslyn-Analysegeräte können auch die automatische Codekorrektur mithilfe des Glühbirnen-Symbols von Visual Studio anzeigen, mit dem Sie den Code sofort korrigieren können.

Bild

Aber was wäre, wenn Sie noch mehr Fehler machen könnten?


Lassen Sie mich Ihnen die Roslyn-Analysatorpakete vorstellen. Diese Analysatorsammlungen bieten detailliertere Analysen, werden jedoch nicht mit den Standardwerkzeugen von Visual Studio geliefert. Um mehr über unsere bevorzugten Roslyn-Analysatoren zu erfahren, besuchen Sie das Roslyn-Analysator-Repository auf GitHub . Dieses Repository enthält FxCop-Regeln, die weiterhin für die moderne Softwareentwicklung gelten, jetzt jedoch für unsere moderne Roslyn-basierte Code-Analyseplattform vorgesehen sind. Lassen Sie uns fortfahren und dieses Paket installieren, um die Produktivität und Geschwindigkeit beim Schreiben von großartigem Code zu erhöhen!

Installieren von FxCop-Analysatoren:

  1. Ich gehe davon aus, dass Sie Visual Studio 2017 Version 15.8 oder höher verwenden. Wählen Sie in diesem Fall die neueste Version von Microsoft.CodeAnalysis.FxCopAnalyzers aus .
  2. Installieren Sie das Paket in Visual Studio über die Benutzeroberfläche des Paketmanagers.

Bild

Nach der Installation des Pakets können Sie die Analysatordiagnose einfach im Projektmappen-Explorer konfigurieren. Der Analysatorknoten wird im Projektmappen-Explorer unter dem Knoten Referenzen oder Abhängigkeiten angezeigt. Wenn Sie zuerst Analysatoren und dann eine der Analysatorbaugruppen bereitstellen, werden alle verfügbaren Diagnosen in der Baugruppe angezeigt.

Bild

Sie können Diagnoseeigenschaften, einschließlich Elemente wie Beschreibung und Standardschweregrad, im Eigenschaftenfenster anzeigen. Um die Eigenschaften anzuzeigen, klicken Sie mit der rechten Maustaste auf die Regel und wählen Sie Eigenschaften oder wählen Sie die Regel aus. Drücken Sie dann Alt + Eingabetaste .

Bild

Die Symbole neben den einzelnen Diagnosetypen im Projektmappen-Explorer entsprechen den Symbolen, die beim Öffnen im Editor im Regelsatz angezeigt werden:

  • "I" in einem Kreis zeigt einen Info-Parameter an
  • "!" in einem Dreieck gibt den Parameter Warnung an
  • "X" im Kreis zeigt den Fehlerparameter an
  • "I" im Kreis zeigt den Parameter "Hidden" an
  • "↓" in einem Kreis zeigt eine unterdrückte Diagnose an.

Bild

Anschließend können Sie die Schweregradeinstellungen im Projektmappen-Explorer festlegen. Dazu müssen Sie zunächst im Projektmappen-Explorer Abhängigkeiten > Analysatoren erweitern und dann die Assembly bereitstellen, die die Regel enthält, für die Sie die Schweregradparameter festlegen möchten. Danach sollten Sie mit der rechten Maustaste auf die Regel klicken, den Schweregrad des Regelsatzes auswählen und einen der Schweregradparameter im Popup-Menü auswählen.

Bild

Wenn Sie Warnung festlegen, erhalten Sie in Ihrem Code Warnungen für diesen bestimmten Regelsatz.

Bild

Jetzt, da Sie wissen, wie Analysatoren funktionieren, können Sie die Produktivität steigern und schneller großartigen Code schreiben!

FAQ:


F : Bei der Arbeit in Visual Studio ist folgende Warnung aufgetreten: „Die Code-Analyse wurde zugunsten von FxCop-Analysatoren, die während der Erstellung ausgeführt werden, nicht mehr unterstützt. Informationen zur Migration auf FxCop-Analysatoren finden Sie unter aka.ms/fxcopanalyzers . “ Was bedeutet das
A : FxCop ist ein Code-Analyse-Tool, das Roslyn fast ein Jahrzehnt vorausging. So wie wir unseren Compiler portiert haben (zum Beispiel Roslyn eingeführt), haben wir auch unsere Code-Analyse-Technologie auf die Roslyn-Plattform portiert. Da es auf der .NET Compiler-Plattform ausgeführt wird, werden während der Eingabe möglicherweise Warnungen in Ihrem Code generiert. Mit anderen Worten, es ist nicht erforderlich, den Code zu erstellen, um den Fehler herauszufinden.

F : Was ist der Unterschied zwischen älteren FxCop- und FxCop-Analysatoren?
A : FxCop-Analysatoren analysieren den Quellcode in Echtzeit und zur Kompilierungszeit, während Legacy-FxCop eine statische Code-Analyse ist und Binärdateien nach Abschluss des Builds analysiert. Weitere Informationen finden Sie unter Roslyn-Analysegeräte vs. statische Code-Analyse und die FAQ zu FxCop-Analysatoren .

F : Kann ich meine eigenen Analysegeräte schreiben?
A : Natürlich! Die Dokumentation zum Schreiben von Analysegeräten finden Sie hier .

F : Soll ich Roslyn- oder .editorconfig-Parser für den Codestil verwenden?
A : Roslyn-Analysatoren und .editorconfig-Dateien arbeiten Hand in Hand. Wenn Sie Codestile in der Datei .editorconfig oder auf der Seite mit den Optionen des Texteditors definieren , konfigurieren Sie die in Visual Studio integrierten Roslyn-Analysatoren.

F : Arbeiten Analysatoren in CI-Baugruppen (Continuous Integration)?
A : Ja, als NuGet-Pakete installierte Analysatoren können in CI-Assemblys verwendet werden.

F : Wo kann ich weitere Analysegeräte anfordern oder Fehler melden?
A : Sie können weitere Analysatoren anfordern und Fehler im Roslyn-Repository auf GitHub melden.

Source: https://habr.com/ru/post/de459982/


All Articles