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.
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
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:
en plus de cela, NDepend vient avec beaucoup d'autres analyse statique comme caractéristiques.
- Smart Technical Estimation De La Dette
- Graphique De Dépendance
- Matrice De Dépendance
- capacités de diff de Code
- NDepend.API qui vous permet d'écrire votre propre outil d'analyse statique. Avec NDepend.APi nous avons même développé un outil pour détecter le code dupliquer (détails dans ce billet de blog: un algorithme Original pour Trouver le code .NET dupliquer ).
- 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).
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.
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):
Klocwork a un outil d'analyse statique pour C#: http://www.klocwork.com
je trouve les paramètres de Code et matrice de structure de dépendance add-ins pour Réflecteur très utile.
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
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.