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.

War es hilfreich?

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:

CQLinq code rule

Neben, dass, NDepend kommt mit viele andere statische Analyse wie features.Dazu gehören:

  • 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):

http://sourceforge.net/projects/duplo/

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top