Was ist statische Analyse-tools gibt es für C#?[geschlossen]
-
09-06-2019 - |
Frage
Welche tools gibt es für die statische Analyse mit C# - code?Ich weiß über FxCop und StyleCop.Gibt es andere?Ich habe laufen über NStatic vor, aber es war in der Entwicklung für das, was scheint wie eine Ewigkeit - es sieht ziemlich glatt aus, was wenig ich habe gesehen, also wäre es schön, wenn es jemals das Licht des Tages sehen.
Entlang diesen gleichen Linien (dies ist in Erster Linie mein Interesse für die statische Analyse) tools zum testen von code für multithreading-Probleme (deadlocks, race conditions, etc.) scheinen auch ein bisschen knapp.Typemock Racer nur aufgetaucht ist, so werde ich suchen, dass.Alles, was darüber hinaus?
Real-life Meinungen über die tools, die Sie verwendet haben, geschätzt werden.
Lösung
Code-Verletzung-Erkennung-Tools:
Fxcop, hervorragendes tool von Microsoft.Überprüfen Sie die Einhaltung .net framework-Richtlinien.
Edit Oktober 2010: Nicht mehr als standalone-download.Es ist nun in der Windows SDK und nach der installation finden Sie in Program Files\Microsoft SDKs\Windows\ [v7.1] \Bin\FXCop\FxCopSetup.exe
Edit Februar 2018:Diese Funktionalität wurde nun integriert in Visual Studio 2012 und höher als Code-Analyse
- Clocksharp, basierend auf code-Analyse (C# 2.0)
- Mono.Gendarme, ähnlich Fxcop aber mit einer opensource-Lizenz (basierend auf Mono.Cecil)
- Smokey, ähnlich Fxcop und Gendarm, basierend auf Mono.Cecil.Nicht mehr auf der Entwicklung, der Haupt-Entwickler arbeitet mit Gendarm-team jetzt.
- Coverity Verhindern™ für C#, kommerzielles Produkt
- PRQA QA·C#, kommerzielles Produkt
- PVS-Studio, kommerzielles Produkt
- CAT.NET visual studio add-in, das hilft, die Identifizierung von Sicherheitslücken
- CodeIt.Rechts
- Spec#
- Pex
Quality Metric Tools:
- NDepend, große visual-tool.Nützlich für code-Metriken, Regeln, diff, Kupplung und Abhängigkeit Studien.
- Nitriq, kostenloser, leicht zu schreiben Ihre eigenen Maße/Einschränkungen, schöne Visualisierungen. Edit Februar 2018: download-links jetzt tot ist.
- RSM-Squared, basierend auf code-Analyse
- C# Metriken, mit einer vollständigen Parsen von C#
- SourceMonitor, ein altes Werkzeug, dass wird gelegentlich updates
- Code Metriken, ein Reflektor add-in
- Vil, alte tool nicht unterstützt .NET 2.0. Edit January 2018: Link ist jetzt tot
Überprüfen Stil Werkzeuge:
- StyleCop, Microsoft tool ( run aus innerhalb von Visual Studio oder integriert in ein MSBuild-Projekt).Auch verfügbar als Erweiterung für Visual Studio 2015 und C#6.0
- Agent Smith, code-Stil-plugin für die Validierung ReSharper
Die Vervielfältigung Erkennung:
- Simian, basierend auf dem source-code.- Arbeiten mit vielen Sprachen.
- CloneDR, erkennt parametrisierte Klone nur auf die Sprache Grenzen (behandelt auch viele andere Sprachen als C#)
- Clone Detective ein Visual Studio-plugin.(Es verwendet ConQAT intern)
- Atomiq, basierend auf dem source-code, viele Sprachen, cool "Rad" - Visualisierung
Allgemeine Refactoring-tools
- ReSharper - Majorly cool C# - code-Analyse-und refactoring-Funktionen
Andere Tipps
Das Werkzeug NDepend zitiert Quality Metric Tools aber es ist ziemlich viel, auch ein Code-Verletzung-Erkennung Werkzeug. Haftungsausschluss:Ich bin einer der Entwickler des Tools
Mit NDepend kann man schreiben Code Herrschaft über LINQ-Abfragen (was wir nennen CQLinq).Mehr als 200 CQLinq-code-Regeln sind standardmäßig vorgeschlagen.Die Stärke der CQLinq ist, dass es ist einfach, um den code schreibt Regel -, und erhalten sofort Ergebnisse.Einrichtungen vorgeschlagen, zu durchsuchen abgestimmt-code-Elemente.Zum Beispiel:
Neben, dass, NDepend kommt mit viele andere statische Analyse wie features.Dazu gehören:
- Smart Technical Debt Estimation
- Abhängigkeitsdiagramm
- Dependency Matrix
- Code Diff-Funktionen
- NDepend.API können Sie schreiben eigene statische Analyse-tool.Mit NDepend.APi wir haben sogar ein tool entwickelt, um zu erkennen, code zu duplizieren (details in diesem blog-post: Ein Original-Algorithmus zu Finden .NET-Code zu Duplizieren).
- Gendarme ist ein open-source-basierende Regeln der statischen Analyse (ähnlich wie FXCop, sondern findet viele verschiedene Probleme).
- Clone Detective ist ein nettes plug-in für Visual Studio, der Sie findet, doppelten code.
- Auch das sprechen von Mono -, finde ich die Tat des Kompilierens mit den Mono-compiler (wenn Ihr code ist Plattform-unabhängig genug, um zu tun, ein Ziel, das Sie vielleicht wollen, Streben sowieso) findet Tonnen nicht referenzierte Variablen und andere Warnungen, dass Visual Studio komplett verfehlt (auch mit der Warnung auf Stufe 4 gesetzt).
Haben Sie gesehen, CAT.NET?
Aus dem Klappentext -
CAT.NET ist ein binärer code-Analyse-tool das hilft bei der Identifizierung gemeinsamer Varianten bestimmte vorherrschende Schwachstellen das kann Anlass zu gemeinsamen Angriff Vektoren wie Cross-Site-Scripting (XSS), SQL Injection und XPath Injektion.
Ich verwendete einen frühen beta-Version und es schien zu drehen, bis ein paar Dinge, die zu betrachten sich lohnt.
Abgesehen von der hervorragenden Liste von madgnome, ich würde das hinzufügen doppelter code-Detektor, die ist basierend auf der Kommandozeile (aber kostenlos):
Klocwork ist ein statisches Analyse-tool für C#: http://www.klocwork.com
Ich finde die Code Metriken und Dependency Structure Matrix add-ins für Reflektor sehr nützlich.
Optimyth Software hat soeben eine statische Analyse-Dienst in der cloud www.checkinginthecloud.com.Nur sicher hochladen Ihres Codes ausführen, die Analyse und die Ergebnisse zu erhalten.Keine Probleme.
Es unterstützt mehrere Sprachen, einschließlich C# mehr Infos finden Sie unter wwww.optimyth.com
Axivion Bauhaus Suite ist eine statische Analyse-tool, das funktioniert mit C# (wie auch in C, C++ und Java).
Es bietet die folgenden Funktionen:
- Software-Architektur-Visualisierung (mit Abhängigkeiten)
- Durchsetzung des architektonischen Regeln z.B.Schichtung, Subsysteme, aufrufen von Regeln
- Clone Detection - Hervorhebung kopieren und einfügen (und geänderten code)
- Tote Code-Erkennung
- Zyklus-Erkennung
- Software-Metriken
- Code Style Checks
Diese Funktionen können ausgeführt werden, auf einem one-off-basis oder als Teil einer Continuous Integration-Prozess.Fragen markiert werden können auf einer pro-Projekt-basis oder pro-Entwickler-basis, wenn das system integriert ist, mit einer source-code-control-system.