174 votes

Quels outils d'analyse statique sont disponibles pour C# ?

Quels sont les outils disponibles pour l'analyse statique du code C# ? Je connais FxCop et StyleCop. Y en a-t-il d'autres ? J'ai déjà rencontré NStatic, mais il est en cours de développement depuis ce qui semble être une éternité - il a l'air assez génial d'après le peu que j'en ai vu, donc ce serait bien s'il pouvait un jour voir la lumière du jour.

Dans le même ordre d'idées (c'est principalement mon intérêt pour l'analyse statique), les outils permettant de tester le code pour les problèmes de multithreading (blocages, conditions de course, etc.) semblent également un peu rares. Typemock Racer vient d'apparaître, je vais donc m'y intéresser. Quelque chose d'autre ?

Les avis concrets sur les outils que vous avez utilisés sont appréciés.

0 votes

@IraBaxter J'ai commencé un discussion sur cette question sur Meta et je vous invite à faire part de vos arguments pour expliquer pourquoi cette question ne devrait pas être supprimée, si vous le souhaitez.

362voto

Julien Hoarau Points 23987

Outils de détection des violations de code :

  • Fxcop un excellent outil de Microsoft. Vérifiez la conformité avec les directives du cadre .net.

    Editer octobre 2010 : Il n'est plus disponible en téléchargement autonome. Il est maintenant inclus dans le SDK Windows et après l'installation, il se trouve dans Program Files \Microsoft SDKs \Windows\ [v7.1] \Bin\FXCop\FxCopSetup.exe

    Edition février 2018 : Cette fonctionnalité a maintenant été intégrée dans Visual Studio 2012 et les versions ultérieures en tant que Analyse du code

  • Horlogerie sur la base de l'analyse du code source (jusqu'à C# 2.0)

  • Mono.Gendarme similaire à Fxcop mais avec une licence opensource (basé sur Mono.Cecil )

  • Smokey similaire à Fxcop et Gendarme, basée sur Mono.Cecil . Il n'est plus en développement, le développeur principal travaille maintenant avec l'équipe de Gendarme.

  • Coverity Prevent™ pour C# produit commercial

  • PRQA QA-C# produit commercial

  • PVS-Studio produit commercial

  • CAT.NET Visual Studio Addin qui aide à identifier les failles de sécurité. Édition novembre 2019 : Le lien est mort.

  • CodeIt.Right

  • Spec#

  • Pex

  • SonarQube des options FOSS et commerciales pour aider à écrire un code plus propre et plus sûr.

Outils métriques de qualité :

  • NDepend Un grand outil visuel. Utile pour les métriques de code, les règles, les diff, les études de couplage et de dépendance.
  • Nitriq gratuit, vous pouvez facilement écrire vos propres mesures/contraintes, belles visualisations. Édition février 2018 : Les liens de téléchargement sont maintenant morts. Editer le 17 juin 2019 : Les liens ne sont pas morts.
  • RSM au carré basé sur l'analyse du code source
  • Métriques C# en utilisant une analyse complète du langage C#
  • SourceMonitor un vieil outil qui est occasionnellement mis à jour
  • Code Metrics , a Réflecteur add-in
  • Vil un vieil outil qui ne supporte pas .NET 2.0. Édition janvier 2018 : Lien maintenant mort

Vérification des outils de style :

  • StyleCop Outil Microsoft (exécuté à l'intérieur de Visual Studio ou intégré dans un projet MSBuild). Egalement disponible en tant qu'extension pour Visual Studio 2015 et C#6.0
  • Agent Smith le plugin de validation du style de code pour ReSharper

Détection des doublons :

  • Simian sur la base du code source. Fonctionne avec de nombreux langages.
  • CloneDR détecte les clones paramétrés uniquement aux frontières du langage (gère également de nombreux langages autres que C#).
  • Détective des clones un plugin Visual Studio. (Il utilise ConQAT interne)
  • Atomiq basé sur le code source, de nombreux langages, une visualisation cool de la "roue".

Outils généraux de refactoring

  • ReSharper - Fonctions d'analyse et de refactoring du code C# très intéressantes

4 votes

Voir la page MSDN sur FxCop : msdn.microsoft.com/fr/us/library/bb429476%28VS.80%29.aspx "FxCop est une application qui analyse les assemblages de code géré (code qui cible le runtime du langage commun .NET Framework) et rapporte des informations sur les assemblages, telles que les améliorations possibles en matière de conception, de localisation, de performance et de sécurité."

0 votes

Le lien FxCop a été supprimé du site de Microsoft. Voici le "téléchargement" de FxCop 10.0 : microsoft.com/downloads/

0 votes

Est-ce que c'est Simian : harukizaemon.com/simian/index.html ? (le lien est cassé). De plus, il semble que ce ne soit que .NET 1.1.

7voto

L'outil NDepend est cité comme Outils de mesure de la qualité mais c'est aussi un Détection des violations de code outil. Clause de non-responsabilité : Je suis l'un des développeurs de l'outil.

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

CQLinq code rule

En plus de cela, NDepend est livré avec de nombreux autres éléments l'analyse statique comme caractéristiques. Il s'agit notamment de :

1 votes

J'ai eu l'occasion de tester NDepend au cours des dernières semaines - je suis un grand fan et je vais obtenir une licence de développement dès que je le pourrai.) Merci pour votre travail !

1voto

Kris Erickson Points 16204
  • Gendarme est un analyseur statique open source basé sur des règles (similaire à FXCop, mais qui trouve beaucoup de problèmes différents).
  • Détective des clones est un sympathique plug-in pour Visual Studio qui trouve le code dupliqué.
  • En parlant de Mono, je trouve que le fait de compiler avec le compilateur Mono (si votre code est suffisamment indépendant de la plate-forme pour le faire, un objectif que vous pourriez vouloir atteindre de toute façon) trouve des tonnes de variables non référencées et d'autres avertissements que Visual Studio manque complètement (même avec le niveau d'avertissement fixé à 4).

1voto

markdevilliers Points 76

Avez-vous vu CAT.NET ?

D'après le texte de présentation -

CAT.NET est un outil d'analyse de code binaire qui aide à identifier les variantes communes de certaines vulnérabilités dominantes qui peuvent donner lieu à des vecteurs d'attaque communs vecteurs d'attaque courants tels que le Cross-Site Scripting (XSS), SQL Injection et XPath Injection.

J'ai utilisé une première version bêta et il semble qu'elle ait mis en évidence quelques éléments qui méritent d'être examinés.

0voto

Hamish Smith Points 5961

Je trouve le Code Metrics et Matrice de la structure des dépendances Les modules complémentaires pour Reflector sont très utiles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X