Stylecop は FXcop に取って代わりましたか? Visual Studio 2008 ではどの製品を使用する必要がありますか?
5 に答える
Stylecopは、ソースコードレベルで機能するスタイル分析ツールです。これは主に、マネージドプロジェクトがマネージドソフトウェアのより大きな世界で一貫性を保つために使用できる単一の共通スタイルを提供するために存在します。それは主に聖戦を避けるためにスタイルに関する決定を下します(結局のところ、スタイルはほとんどの場合本質的に主観的なものです)。StyleCopのすべてのルールが好きな人に会ったことはないと思いますが、大丈夫です。これは、StyleCopが、存在する膨大なスタイルガイドラインの中で一般的に適切な妥協点であることを意味します。(stylecopのルールが高度にカスタマイズ可能である場合、単にそれらを有効/無効にするだけでなく、ツールの目的全体が無効になります。)
一方、FxCopは、管理対象アセンブリのレベルで機能する静的分析ツールです。コード要素の属性を確認できるため、属性を介して指示を与えることができます。構文レベルではなく、(いわば)「バイナリ」レベルで見られる問題を検出します。
あなたの質問に答えるために、StyleCopはFxCopに取って代わりません、そしてFxCopはstylecopに取って代わりません。これらは2つの異なる目的を持つ2つの異なるツールであり、どちらもコードに真のメリットをもたらします。
(別名、私は両方で実行します。:))
一方が検出する可能性のあるものと他方が検出する可能性のあるもののいくつかの例:
StyleCop違反には、空白、フォーマット、xml-commentsを介したパブリックメソッドのドキュメント、クラス内のメソッド定義の順序に関連する警告が含まれる場合があります。
FxCop違反には、グローバリゼーション、密結合、循環的複雑度、潜在的なnull逆参照に関連する警告が含まれる場合があります。
stylecop は、C# ソース コードで動作します。fxcop は、任意の .net 言語からコンパイルされたコードを調べます。
FxCop/StyleCopの代替または適切な補完は、商用ツールNDependを使用することです。このツールを使用すると、LINQ クエリ (つまり CQLinq)に対してコード ルールを記述できます。免責事項: 私はツールの開発者の 1 人です。
デフォルトで200 以上のコード ルールが提案されています。これらには、設計、アーキテクチャ、コード品質、コード進化、命名規則、デッド コード、.NET Fx の使用法などがあります。
CQLinq は、Visual Studio でライブで検証できるコード ルール、またはビルド プロセス中に検証して HTML/javascript レポートでレポートできるコード ルールを記述することに専念しています。
FxCop や StyleCop に対する CQLinq の強みは、コード ルールを簡単に記述してすぐに結果を取得できることです。一致したコード要素を閲覧するための機能が提案されています。具体的には次のようになります。
FXCopは、マネージコードアセンブリの静的コード分析を行います。これは、実行時に問題を引き起こす問題、またはコードが実行されると開発者が信じる方法に影響を与える問題(到達不能コード)を見つけることと考えてください。
StyleCopは、テキストの観点からコードの構造を分析します。これは、開発と設計の経験に影響を与える問題と考えてください(フォーマット、命名規則、ドキュメント)
これらは両方とも非常に価値のあるツールであり、両方を使用する必要がありますが、さまざまな問題に焦点を当てています。
StyleCop はソース コード分析を実行しますが、あまり構成可能ではありません。実際には、コンパイルされたコードを分析する FxCop と同じことを行うわけではありません。
これらに関するウィキペディアの記事は、違いの優れた要約を提供します。