Réponses:
Stylecop est un outil d'analyse de style qui fonctionne au niveau du code source. Il existe principalement pour fournir un style commun unique que les projets gérés peuvent utiliser pour rester cohérents dans le monde plus large des logiciels gérés. Il prend des décisions concernant le style principalement pour éviter les guerres saintes (après tout, le style est presque toujours une chose intrinsèquement subjective). Je ne pense pas que j'ai jamais rencontré quelqu'un qui aimait toutes les règles de StyleCop, mais c'est ok . Cela signifie que StyleCop est généralement un bon compromis parmi le vaste ensemble de directives de style qui existent. (Si les règles de stylecop étaient hautement personnalisables, au-delà de leur simple activation / désactivation, cela irait à l'encontre de l'objectif de l'outil.)
FxCop, d'autre part, est un outil d'analyse statique qui fonctionne au niveau de l'assemblage géré. Il peut recevoir des directions via des attributs car il peut voir des attributs sur des éléments de code, par exemple. Il détecte les problèmes qui peuvent être vus au niveau "binaire" (pour ainsi dire) par opposition au niveau syntaxique.
Pour répondre à votre question, StyleCop ne remplace pas FxCop et FxCop ne remplace pas stylecop. Ce sont deux outils différents avec deux objectifs différents qui peuvent tous deux fournir un réel avantage pour votre code.
(AKA, je cours avec les deux. :))
Quelques exemples des choses que l'un pourrait détecter par rapport aux choses que l'autre pourrait détecter:
Les violations de StyleCop peuvent inclure des avertissements liés à: les espaces blancs, le formatage, la documentation des méthodes publiques via des commentaires xml, l'ordre de définition des méthodes dans une classe.
Les violations de FxCop peuvent inclure des avertissements liés à: la mondialisation, le couplage étroit, la complexité cyclomatique, les déréférences nulles potentielles.
stylecop fonctionne sur votre code source C #. fxcop examine votre code compilé à partir de n'importe quel langage .net.
Une alternative ou un bon complément à FxCop / StyleCop serait d'utiliser l'outil commercial NDepend . Avec cet outil, on peut écrire une règle de code sur les requêtes LINQ (à savoir CQLinq) . Clause de non-responsabilité: je suis l'un des développeurs de l'outil
Plus de 200 règles de code sont proposées par défaut, ceux - ci comprennent la conception , l' architecture , la qualité du code , l' évolution du code , les conventions de nommage , code mort , utilisation .NET Fx ...
CQLinq est dédié à l'écriture de règles de code qui peuvent être vérifiées en direct dans Visual Studio , ou qui peuvent être vérifiées pendant le processus de génération et rapportées dans un rapport HTML / javascript .
La force de CQLinq par rapport à FxCop ou StyleCop 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. Concrètement cela ressemble à ça:
FXCop effectue une analyse de code statique de vos assemblys de code managé. Considérez cela comme la recherche de problèmes qui causeront des problèmes au moment de l'exécution ou qui affecteront la façon dont le développeur pense que le code fonctionnera (code inaccessible).
StyleCop analyse la structure de votre code du point de vue du texte. Considérez cela comme des problèmes qui affecteront votre expérience de développement et de conception (formatage, conventions de dénomination, documentation)
Ce sont tous deux des outils TRÈS précieux et vous devriez utiliser les deux, mais ils se concentrent sur des problèmes différents.
StyleCop effectue l'analyse du code source n'est pas très configurable. Il ne fait pas vraiment la même chose que FxCop, qui analyse le code compilé.
Les articles de wikipedia sur ceux-ci fournissent de bons résumés des différences: