StylecopとFXcop


回答:


170

Stylecopは、ソースコードレベルで機能するスタイル分析ツールです。これは主に、管理されたプロジェクトが、管理されたソフトウェアのより広い世界で一貫性を保つために使用できる単一の共通スタイルを提供するために存在します。それは主に聖戦を避けるためにスタイルに関する決定をします(結局のところ、スタイルはほとんど常に本質的に主観的なものです)。StyleCopのルールをすべて気に入った人に会ったことはないと思いますが、大丈夫ですです。つまり、StyleCopは、存在する膨大な一連のスタイルガイドラインの中で、一般的に適切な妥協案です。(stylecopのルールが高度にカスタマイズ可能である場合、単にそれらを有効化/無効化するだけでなく、ツールの目的全体を無効にします。)

一方、FxCopは、マネージアセンブリのレベルで機能する静的分析ツールです。コード要素の属性を見ることができるため、属性を介して方向を指定できます。構文レベルとは対照的に、「バイナリ」レベル(以前のレベル)で見られる問題を検出します。

あなたの質問に答えるために、StyleCopはFxCopに取って代わりません、そしてFxCopはstylecopに取って代わりません。これらは、2つの異なる目的を持つ2つの異なるツールであり、どちらもコードに真の利益をもたらします。

(別名、私は両方で実行します。:))


一方が検出する可能性のあるものと、他方が検出する可能性のあるもののいくつかの例:

StyleCop違反には、空白、フォーマット、xml-commentsを介したパブリックメソッドドキュメント、クラス内のメソッド定義の順序に関連する警告が含まれる場合があります。

FxCop違反には、グローバリゼーション、密結合、循環的複雑度、null逆参照の可能性に関する警告が含まれる場合があります。


1
はい、2つを比較する以前の答えはすべての点で間違っています。StyleCopとFxCopは2つの非常に異なるタスクを実行します。それぞれがコードベースに提供する値と、それらを実行する理由を調査する価値があります。
Jedidja、2009

3
すべてのStyleCopルールが適切であるとは限らないことに同意しますが、不要なルールは無効にすることができます。私たちはStyleCopを使用しています-プレーンな愚かなルールを無効にした後、それは私たちに良い価値を提供しています-低コストで。オススメです。(私たちは一見それを嫌っていたことに注意してください。)
stiank81

@ stiank81:ええ、私は誰もが最初はStyleCopを嫌っていると思います。ただし、しばらくすると、利点が実際に確立され、ソースの一貫性を維持するための非常に便利なツールであることが証明されます。:)
グレッグD

1
私が探していたものの素晴らしい答え:)
GibboK

16

stylecopはC#ソースコードで動作します。fxcopは、.net言語からコンパイルされたコードを調べます。


Stylecopを使用している場合、FXCopは何らかの価値を追加できますか?
JL。

本当に、あなたはFxCopを使うほうがいいです。
アンドリュー・ローリングス

少なくとも今のところ、より構成可能になるまでは。:)
Andrew Rollings、

1
stylecopが大幅に構成可能になるとは考えられません。stylecopのはるかに重要な機能は、スタイル違反の自動修正です。
グレッグD

Resharperを使用して、コードを自動的にstylecopルールに準拠させます。それだけでも購入価格の価値があります。そして、あなたはその上に他のすべての利点を得る。
返金不可返品不可

11

の代替または優れた補完 FxCop / StyleCopは、商用ツールNDependを使用することです。このツールを使用すると、LINQクエリ (つまりCQLinq)を介したコードルールを記述できます免責事項:私はツールの開発者の1人です

以上の200個のコードのルールは、デフォルトで提案され、これらは、デザイン建築コード品質コードの進化命名規則をデッドコード.NET Fxの使用量を ...

CQLinqは、 、Visual Studioライブ検証、またはビルドプロセス中検証してHTML / JavaScriptレポートで報告

FxCopやStyleCopよりもCQLinqが優れている点は、コードルールを記述して、すぐに結果を取得できることです。一致したコード要素を閲覧する機能が提案されています。具体的には、次のようになります。

CQLinqコード規則


6

FXCopは、マネージコードアセンブリの静的コード分析を行います。実行時に問題を引き起こす、または開発者がコードの実行を信じる方法に影響を与える問題(到達不能コード)を見つけることと考えてください。

StyleCopは、コードの構造をテキストの観点から分析します。これは、開発と設計のエクスペリエンスに影響を与える問題と考えてください(フォーマット、命名規則、ドキュメント)

どちらも非常に貴重なツールであり、両方を使用する必要がありますが、異なる問題に焦点を当てています。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.