Quels outils sont disponibles pour l'analyse statique par rapport au code C #? Je connais FxCop et StyleCop. Y en a-t-il d'autres? J'ai déjà rencontré NStatic, mais il est en développement depuis ce qui semble être une éternité - il a l'air assez élégant d'après le peu que j'en ai vu, donc ce serait bien s'il verrait un jour le jour.
Dans le même ordre d'idées (c'est avant tout mon intérêt pour l'analyse statique), les outils de test de code pour les problèmes de multithreading (blocages, conditions de concurrence, etc.) semblent également un peu rares. Typemock Racer vient d'apparaître alors je vais regarder ça. Quelque chose au-delà de ça?
Les opinions réelles sur les outils que vous avez utilisés sont appréciées.
c#
code-analysis
static-analysis
Paul Mrozowski
la source
la source
Réponses:
Outils de détection de violation de code:
Fxcop , excellent outil de Microsoft. Vérifiez la conformité avec les directives du framework .net.
Edit Octobre 2010: n'est plus disponible en téléchargement autonome. Il est maintenant inclus dans le SDK Windows et après l'installation, se trouve dans Program Files \ Microsoft SDKs \ Windows \ [v7.1] \ Bin \ FXCop \ FxCopSetup.exe
Edit février 2018 : cette fonctionnalité a maintenant été intégrée dans Visual Studio 2012 et versions ultérieures en tant qu'analyse de code
Clocksharp , basé sur l'analyse de la source du code (vers C # 2.0)
Mono.Gendarme , similaire à Fxcop mais avec une licence open source (basée sur Mono.Cecil )
Smokey , similaire à Fxcop et Gendarme, basé sur Mono.Cecil . Plus sur le développement, le développeur principal travaille maintenant avec l'équipe Gendarme.
Coverity Prevent ™ pour C # , produit commercial
PRQA QA · C # , produit commercial
PVS-Studio , produit commercial
CAT.NET , complément de studio visuel qui aide à identifier les failles de sécurité Edit novembre 2019: Link is dead.
CodeIt.Right
N ° de spécification
Pex
Options SonarQube , FOSS et commerciales pour prendre en charge l'écriture de code plus propre et plus sûr.
Outils métriques de qualité:
Vérification des outils de style:
Détection de duplication:
Outils de refactoring généraux
la source
L'outil NDepend est cité sous le nom de Quality Metric Tools, mais c'est à peu près aussi un outil de détection de violation de code . Clause de non-responsabilité: je suis l'un des développeurs de l'outil
Avec NDepend, on peut écrire une règle de code sur des requêtes LINQ (ce que nous appelons CQLinq) . Plus de 200 règles de code CQLinq sont proposées par défaut. La force de CQLinq est qu'il est simple d'écrire une règle de code et d'obtenir immédiatement des résultats. Les installations sont proposées pour parcourir les éléments de code correspondants. Par exemple:
En plus de cela, NDepend est fourni avec de nombreuses autres fonctionnalités d'analyse statique . Ceux-ci inclus:
la source
la source
Avez-vous vu CAT.NET ?
Du texte de présentation -
J'ai utilisé une version bêta précoce et il semble que certaines choses méritent d'être examinées.
la source
En plus de l'excellente liste de madgnome, j'ajouterais un détecteur de code en double basé sur la ligne de commande (mais gratuit):
http://sourceforge.net/projects/duplo/
la source
Klocwork dispose d'un outil d'analyse statique pour C #: http://www.klocwork.com
la source
Je trouve les compléments Code Metrics et Dependency Structure Matrix pour Reflector très utiles.
la source
Optimyth Software vient de lancer un service d'analyse statique dans le cloud www.checkinginthecloud.com . Téléchargez simplement votre code en toute sécurité, exécutez l'analyse et obtenez les résultats. Pas de soucis.
Il prend en charge plusieurs langues, y compris C # plus d'informations peuvent être trouvées sur wwww.optimyth.com
la source
Axivion Bauhaus Suite est un outil d'analyse statique qui fonctionne avec C # (ainsi que C, C ++ et Java).
Il offre les fonctionnalités suivantes:
Ces fonctionnalités peuvent être exécutées de manière ponctuelle 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 de code source.
la source