174

C# コードに対する静的分析に使用できるツールは何ですか? FxCop と StyleCop については知っています。他にもありますか?私は以前に NStatic に出くわしたことがありますが、それは永遠のように見えるもののために開発中でした.

同じように (これは主に静的解析に対する私の関心事です)、マルチスレッドの問題 (デッドロック、競合状態など) についてコードをテストするためのツールも少し不足しているようです。Typemock Racer がポップアップしたので、それを見ていきます。これ以上何か?

使用したツールに関する実際の意見を歓迎します。

4

9 に答える 9

353

コード違反検出ツール:

  • FxCop、Microsoftによる優れたツール。.NETFrameworkガイドラインへの準拠を確認してください。

    2010年10月の編集:スタンドアロンダウンロードとして利用できなくなりました。これは現在WindowsSDKに含まれており、インストール後は次の場所にあります。Program Files\Microsoft SDKs\Windows\ [v7.1] \Bin\FXCop\FxCopSetup.exe

    2018年2月の編集:この機能は、コード分析としてVisualStudio2012以降に統合されました。

  • Clocksharp、コードソース分析に基づく(C#2.0へ)

  • Mono.Gendarme、FxCopに似ていますが、オープンソースライセンス(Mono.Cecilに基づく)があります

  • FxCopやGendarmeに似た、 Mono.CecilをベースにしたSmokey。開発は終了し、メインの開発者は現在Gendarmeチームと協力しています。

  • CoverityPrevent™forC#、商用製品

  • PRQA QA・C#、商用製品

  • PVS-Studio、商用製品

  • CAT.NET、セキュリティ上の欠陥の特定に役立つVisual Studioアドイン2019年11月編集:リンクが無効になっています。

  • CodeIt.Right

  • スペック#

  • ペックス

  • よりクリーンで安全なコードの記述をサポートするSonarQube 、FOSS、および商用オプション。

品質メトリックツール:

  • NDepend、素晴らしいビジュアルツール。コードメトリック、ルール、差分、結合、および依存関係の調査に役立ちます。
  • Nitriqは無料で、独自のメトリック/制約、優れた視覚化を簡単に記述できます。2018年2月の編集:ダウンロードリンクが無効になりました。2019年6月17日編集:リンクは死んでいない。
  • RSM Squared、コードソース分析に基づく
  • C#メトリック、C#の完全な解析を使用
  • SourceMonitor、時々更新を取得する古いツール
  • コードメトリクスリフレクターアドイン
  • Vil、.NET2.0をサポートしていない古いツール。2018年1月の編集:リンクが無効になりました

スタイルツールの確認:

重複の検出:

  • Simian、ソースコードに基づいています。たくさんの言語で動作します。
  • CloneDRは、言語境界でのみパラメーター化されたクローンを検出します(C#以外の多くの言語も処理します)
  • Visual Studioプラグイン(内部でConQATを使用)のクローン検出
  • Atomiq、ソースコード、豊富な言語、クールな「ホイール」の視覚化に基づく

一般的なリファクタリングツール

  • ReSharper-主にクールなC#コード分析とリファクタリング機能
于 2008-09-19T07:55:39.417 に答える
8

ツールNDependはQuality Metric Toolsとして引用されていますが、コード違反検出ツールでもあります。免責事項: 私はツールの開発者の 1 人です。

NDepend を使用すると、LINQ クエリ (CQLinq と呼ばれるもの) に対してコード ルールを記述できます。デフォルトでは、200を超えるCQLinq コード ルールが提案されています。CQLinq の強みは、簡単にコード ルールを記述してすぐに結果を取得できることです。一致したコード要素を閲覧するための機能が提案されています。例えば:

CQLinq コード規則

それに加えて、NDepend には、機能のような他の多くの静的分析が付属しています。これらには以下が含まれます:

于 2008-12-18T16:32:46.203 に答える
1

CAT.NETを見たことがありますか?

宣伝文句から -

CAT.NET は、クロスサイト スクリプティング (XSS)、SQL インジェクション、XPath インジェクションなどの一般的な攻撃ベクトルを引き起こす可能性がある、一般的な特定の脆弱性の一般的な亜種を特定するのに役立つバイナリ コード分析ツールです。

私は初期のベータ版を使用しましたが、注目に値するいくつかのことが明らかになったようです。

于 2009-05-26T09:10:23.123 に答える
1
  • Gendarmeは、オープン ソースのルール ベースの静的アナライザーです (FXCop に似ていますが、さまざまな問題を検出します)。
  • Clone Detectiveは、重複コードを検出する Visual Studio 用の優れたプラグインです。
  • また、Mono について言えば、Mono コンパイラでコンパイルする行為 (コードがそれを実行するのに十分なほどプラットフォームに依存しない場合、とにかく努力したい目標である場合) は、Visual Studio が完全に見逃している参照されていない変数やその他の警告を大量に見つけます。 (警告レベルが 4 に設定されていても)。
于 2008-09-02T17:11:07.043 に答える
0

madgnome による優れたリストとは別に、コマンド ラインに基づく (ただし無料の) 重複コード検出器を追加します。

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

于 2009-04-19T02:07:51.870 に答える
-1

Optimyth Software は、クラウドwww.checkinginthecloud.comで静的分析サービスを開始しました。コードを安全にアップロードして分析を実行し、結果を取得してください。面倒なことはありません。

C# を含むいくつかの言語をサポートしています。詳細については、wwww.optimyth.comを参照してください。

于 2011-10-07T13:22:41.530 に答える
-1

Klocwork には、C# 用の静的解析ツールがあります: http://www.klocwork.com

于 2010-05-01T02:13:52.510 に答える
-1

Axivion Bauhaus Suiteは、C# (および C、C++、Java) で動作する静的分析ツールです。

次の機能を提供します。

  • ソフトウェア アーキテクチャの視覚化 (依存関係を含む)
  • 階層化、サブシステム、呼び出しルールなどのアーキテクチャ ルールの実施
  • クローン検出 - コピーと貼り付け (および変更されたコード) の強調表示
  • デッドコード検出
  • サイクル検出
  • ソフトウェア メトリック
  • コード スタイル チェック

これらの機能は、1 回限りで実行することも、継続的インテグレーション プロセスの一部として実行することもできます。システムがソース コード管理システムと統合されている場合、問題はプロジェクト単位または開発者単位で強調表示できます。

于 2009-11-17T18:50:09.627 に答える
-1

ReflectorのCode MetricsおよびDependency Structure Matrixアドインは非常に便利です。

于 2008-09-23T20:25:23.360 に答える