Question

Quels sont les outils disponibles pour l'analyse statique à l'encontre de code C#?Je sais à propos de FxCop et StyleCop.Il y a d'autres?J'ai couru à travers NStatic avant, mais il a été en développement pour ce qui semble une éternité - c'est un regard assez lisse du peu que j'ai vu de lui, donc ce serait bien si l'on pourra jamais voir la lumière du jour.

Le long de ces mêmes lignes (c'est surtout mon intérêt pour l'analyse statique), des outils de test de code pour le multithreading questions (les blocages, des conditions de course, etc.) aussi sembler un peu rares.Typemock Racer juste sauté vers le haut donc je vais être à la recherche à l'.Rien au-delà de cela?

De la vie réelle des opinions sur les outils que vous avez utilisés sont appréciés.

Était-ce utile?

La solution

Violation du Code des Outils de détection:

  • Fxcop, excellent outil par Microsoft.Vérifier la conformité .net framework lignes directrices.

    Edition Octobre 2010: N'est plus disponible en téléchargement autonome.Il est maintenant inclus dans le Windows SDK et après l'installation Program Files\Microsoft SDKs\Windows\ [v7.1] \Bin\FXCop\FxCopSetup.exe

    Modifier Février 2018:Cette fonctionnalité a été intégrée à Visual Studio 2012 et, plus tard, comme L'Analyse De Code

  • Clocksharp, basé sur le code source de l'analyse (C# 2.0)
  • Mono.Gendarme, semblable à Fxcop, mais avec une licence de logiciel libre (basé sur Mono.Cecil)
  • Smokey, semblable à Fxcop et Gendarme, basé sur Mono.Cecil.N'est plus sur le développement, le principal développeur travaille avec le Gendarme de l'équipe maintenant.
  • Coverity Empêcher™ pour C#, produit commercial
  • PRQA QA·C#, produit commercial
  • PVS-Studio, produit commercial
  • CAT.NET , visual studio add-in qui permet 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 métriques de code, des règles, la diff de couplage et de la dépendance des études.
  • Nitriq, gratuit, peut facilement écrire vos propres critères et des contraintes, de belles visualisations. Modifier Février 2018: liens de téléchargement maintenant morts.
  • RSM au Carré, basé sur le code source de l'analyse
  • C# Métriques, à l'aide d'un plein d'analyser de C#
  • SourceMonitor, un outil ancien occasionnellement des mises à jour
  • Les Métriques De Code, un Réflecteur ajoutez-en
  • Vil, outil ancien ne prend pas en charge .NET 2.0. Edition Janvier 2018: Lien mort

La Vérification De Style, D'Outils:

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

La Détection Des Doublons:

  • Simien, basé sur le code source.Fonctionne avec de nombreuses langues.
  • CloneDR, détecte paramétrée clones seulement sur les limites du langage (gère également de nombreuses autres langues que le C#)
  • Clone Detective un Visual Studio plugin.(Il utilise ConQAT à l'interne)
  • Atomiq, basé sur le code source, beaucoup de langues, cool "roue" de la visualisation

Général le Refactoring

  • ReSharper - Majorly cool C# d'analyse de code et les fonctionnalités de refactoring

Autres conseils

L'outil NDepend est cité comme De Mesure De La Qualité Des Outils mais c'est à peu près aussi une Violation du Code de détection outil de. Avertissement:Je suis l'un des développeurs de l'outil

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

CQLinq code rule

A côté de cela, NDepend est livré avec de nombreux autres l'analyse statique comme les fonctionnalités.Elles comprennent:

  • Gendarme est un open source basé sur des règles analyseur statique (similaire à FXCop, mais trouve un grand nombre 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 vouloir s'efforcer de toute façon) trouve des tonnes de non référencées variables et autres Avertissements que Visual Studio complètement à côté (même avec le niveau d'alerte fixé à 4).

Avez-vous vu CAT.NET?

À partir du 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 en vigueur qui peut donner lieu à une attaque commune vecteurs, telles que le Cross-Site Scripting (XSS, Injection SQL, et XPath L'Injection.

J'ai utilisé un début de la bêta, et il me semble tourner quelques choses d'intéressant de regarder.

Outre l'excellente liste par madgnome, je voudrais ajouter un code en double détecteur est basé sur la ligne de commande (mais gratuite):

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

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

Je trouve l' Les Métriques De Code et La Dépendance De La Structure De La Matrice add-ins pour Réflecteur très utile.

Optimyth Logiciel vient de lancer une analyse statique du service 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, notamment en C# plus d'informations peuvent être trouvées à l' wwww.optimyth.com

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

Il offre les fonctionnalités suivantes:

  • L'Architecture logicielle de Visualisation (y compris les dépendances)
  • L'application des règles d'architecture par exemplela superposition, la sous-systèmes, l'appel de règles
  • Clone de Détection de mise en évidence de copier-collé (et code modifié)
  • Détection Du Code Mort
  • Cycle De Détection
  • Les Indicateurs Logiciels
  • Code Chèques De Style

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top