Quels sont les outils d'analyse statique disponibles pour C#? [fermé]

Quels sont les outils disponibles pour l'analyse statique par rapport au code C#? Je connais FxCop et StyleCop. Il y a d'autres? J'ai déjà traversé NStatic, mais il est en développement depuis une éternité - il a l'air assez lisse d'après le peu que j'ai vu de lui, il serait donc agréable si jamais il voit la lumière du jour.

dans le même sens (ceci est principalement mon intérêt pour l'analyse statique), des outils pour tester le code pour les questions de multithreading (blocages, conditions de course, etc.) semblent aussi un peu rares. La moto de course vient de faire son apparition, donc je vais regarder ça. Rien au-delà de cela?

les opinions réelles sur les outils que vous avez utilisés sont appréciées.

174
demandé sur Kris Erickson 2008-09-02 03:54:02

9 réponses

outils de détection des infractions au Code:

  • Fxcop , excellent outil de Microsoft. Vérifier la conformité avec les lignes directrices du cadre.net.

    modifier octobre 2010: plus disponible en téléchargement autonome. Il est maintenant inclus dans le Windows SDK et après l'installation peut être trouvé dans les fichiers de programme\Microsoft SDKs\Windows\ [v7.1] \Bin\FXCop\FxCopSetup.exe

    modifier février 2018 : cette fonctionnalité a maintenant été intégrée dans Visual Studio 2012 et plus tard comme analyse de Code

  • Clocksharp , d'après une analyse des sources de code (à C# 2.0)
  • Mono.Gendarme , similaire à Fxcop mais avec une licence opensource (basé sur Mono.Cecil )
  • Smokey , similaire à Fxcop et Gendarme, basé sur Mono.Cecil . N'étant plus en développement, le principal développeur travaille désormais avec L'équipe Gendarme.
  • Coverity Empêcher™ pour C# , produit commercial
  • PRQA QA·c# , produit commercial
  • PVS-Studio , produit commercial
  • CAT.NET , addin studio visuel qui aide à l'identification des failles de sécurité
  • CodeIt.Droit
  • Spec#
  • Pex

De Mesure De La Qualité Des Outils:

  • NDepend , grand outil visuel. Utile pour les mesures de code, les règles, les diff, les couplages et les études de dépendances.
  • Nitriq , gratuit, peut facilement écrire vos propres paramètres/contraintes, belles visualisations. Modifier février 2018: les liens de téléchargement maintenant morts.
  • RSM au carré , d'après une analyse des sources de code
  • C# Metrics , à l'aide d'un plein d'analyser de C#
  • SourceMonitor , un vieil outil qui reçoit occasionnellement des mises à jour
  • les Métriques de Code , un Réflecteur add-in
  • Vil , vieil outil qui ne supporte pas .NET 2.0. Modifier janvier 2018: Lien mort

Vérification Des Outils De Style:

  • StyleCop , outil de Microsoft ( exécuter à partir de l'intérieur de Visual Studio ou intégré dans un projet MSBuild). Également disponible comme extension pour Visual Studio 2015 et C#6.0
  • Agent Smith , Code style validation plugin for ReSharper

Détection De Duplication:

  • Simian , basé sur le code source. Fonctionne avec beaucoup de langues.
  • CloneDR , détecte les clones paramétrisés uniquement sur les limites de la langue (traite également de nombreuses langues autres que C#)
  • Clone Detective a Visual Studio plugin. (Il utilise ConQAT interne)
  • Atomiq , basé sur le code source, beaucoup de langues, "roue" cool de visualisation

"151910920 Général" Refactoring

  • ReSharper - Majorly cool C# d'analyse de code et les fonctionnalités de refactoring
318
répondu Julien Hoarau 2018-02-21 17:39:21

L'outil NDepend est cité comme de mesure de la Qualité des Outils de mais c'est à peu près aussi un violation du Code de détection de l'outil. avertissement: je suis un des développeurs de l'outil

Avec NDepend, on peut écrire Code de la Règle sur les Requêtes LINQ (ce que nous appelons CQLinq) . Plus de 200 règles du code CQLinq sont proposées par défaut. La force de CQLinq est que il est simple d'écrire une règle de code , et obtenir immédiatement résultats. Des installations sont proposées pour parcourir les éléments de code appariés. Par exemple:

CQLinq code rule

en plus de cela, NDepend vient avec beaucoup d'autres analyse statique comme caractéristiques.

8
répondu Patrick from NDepend team 2017-06-12 13:28:09
  • Gendarme est un analyseur statique basé sur des règles de source ouverte (similaire à FXCop, mais trouve beaucoup de problèmes différents).
  • Clone Detective est un joli plug-in pour Visual Studio qui trouve le code dupliqué.
  • parlant Aussi de Mono, je trouve l'acte de compiler avec le compilateur Mono (si votre code est indépendant de la plateforme suffisamment pour le faire, un but, vous pourriez viser quoi qu'il en soit) trouve des tonnes de variables non référencées et D'autres avertissements que Visual Studio rate complètement (même avec le niveau d'avertissement fixé à 4).
2
répondu Kris Erickson 2008-09-02 17:11:07

avez-vous vu CAT.NET ?

Dans le texte de présentation -

CAT.NET est un outil d'analyse de code binaire qui permet d'identifier les variantes communes de certaines vulnérabilités dominantes qui peut donner lieu à une attaque commune vecteurs tels que les scripts intersites (XSS), injection SQL et XPath Injection.

j'ai utilisé un bêta tôt et il ne semble pas trouver quelques choses de valeur en la regardant.

2
répondu markdevilliers 2011-09-24 17:37:29

mis à part l'excellente liste de madgnome, je voudrais ajouter un détecteur de code dupliqué qui est basé hors de la ligne de commande (mais est libre):

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

1
répondu torial 2009-04-19 02:07:51

Klocwork a un outil d'analyse statique pour C#: http://www.klocwork.com

0
répondu Alen 2010-05-01 02:13:52

je trouve les paramètres de Code et matrice de structure de dépendance add-ins pour Réflecteur très utile.

0
répondu Hamish Smith 2011-04-13 05:47:13

Optimyth Software vient de lancer un service d'analyse statique dans le cloud www.checkinginthecloud.com . Juste en toute sécurité, télécharger votre code d'exécuter l'analyse et d'obtenir les résultats. Pas de tracas.

il prend en charge plusieurs langues, y compris C# plus d'informations peuvent être trouvées à wwww.optimyth.com

0
répondu Javier Salado 2011-10-07 13:22:41

Axivion Bauhaus Suite est un outil d'analyse statique qui fonctionne avec C# (ainsi que C, C++ et Java).

il fournit les capacités suivantes:

  • Architecture Logicielle de Visualisation (y compris les dépendances)
  • "151970920 de" l'Application des règles d'architecture par exemple, la superposition, la sous-systèmes, l'appel de règles
  • Clone de Détection de mise en évidence de copier-collé (et modifié code)
  • Détection De Code Mort
  • Détection De Cycle
  • Métriques
  • Contrôle De Style De Code

Ces fonctions peuvent être exécutées sur un seul ou dans le cadre d'un processus d'Intégration Continue. Les problèmes peuvent être mis en évidence par projet ou par développeur lorsque le système est intégré à un système de contrôle du code source.

0
répondu Mark Dalgarno 2017-07-06 13:56:10