コードのモデリングと解析 (Visual C#)

更新 : 2007 年 11 月

ソフトウェア開発者にとって、基本アーキテクチャがよくわからないソース コードで作業することは珍しくありません。たとえば、他人が記述したソース コードの場合や、かなり以前に記述されたために、元の作成者でも機能を完全に思い出すことができない場合などです。また、バイナリ形式でのみ使用できるライブラリの内容を理解する必要がある、という場合もよくあります。Visual C# には、ソース コードとバイナリのアセンブリに含まれる型と型の関係のモデリング、解析、および理解に役立つツールがあります。

  • クラス デザイナ。型の継承と関連付けの関係を視覚的に表します。

  • オブジェクト ブラウザ。.NET Framework アセンブリでエクスポートされた型、メソッド、およびイベントと、COM オブジェクトなどのネイティブ DLL を確認します。

  • メタデータをソース形式で表示する。マネージ アセンブリの型情報を、自分で作成したプロジェクトのソース コードのように表示します。

上記のツール以外に、コードに含まれるさまざまな問題を検査するマネージ コードのコード分析ツールがVisual Studio Team Systemにあります。

クラス デザイナ

クラス デザイナは、ソフトウェア アプリケーションまたはコンポーネントに含まれる型どうしの関係を、視覚的にモデリングするグラフィカル ツールです。新しい型をデザインするとき、既存の型をリファクタリングしたり削除したりするときにも使用できます。単純なクラス デザインを次の図に示します。

クラス デザイナ ダイアグラム

プロジェクトにクラス ダイアグラムを追加するには、[プロジェクト] メニューの [新しい項目の追加] をクリックし、[クラス ダイアグラムの追加] をクリックします。

詳細については、「クラスと型のデザインおよび表示」を参照してください。

オブジェクト ブラウザ

オブジェクト ブラウザを使用すると、ネイティブ DLL とマネージ DLL (COM オブジェクトなど) の型情報を表示できます。オブジェクト ブラウザに表示される情報は、[クラス ビュー] で表示されるものと似ていますが、オブジェクト ブラウザでは、プロジェクトで参照されている DLL だけでなく、システム上にある任意の DLL を検査できます。さらに、オブジェクト ブラウザでは、選択した型の XML ドキュメントのコメントも表示されます。バイナリ ファイルの型情報が表示されているオブジェクト ブラウザを次の図に示します。

System.Timer を示すオブジェクト ブラウザ

詳細については、「オブジェクト ブラウザ」を参照してください。

メタデータをソース形式で表示する

メタデータをソース形式で表示する機能を使用すると、マネージ アセンブリのクラスでも、自分で作成したプロジェクトのソース コードであるかのように型情報を表示できます。この機能は、実際のソース コードにアクセスできないときに、クラスのすべてのパブリック メソッドについて、シグネチャをすぐに表示するときに便利です。

たとえば、コード エディタでステートメント System.Console.WriteLine() を入力し、Console にカーソルを移動し、右クリックして [定義へ移動] を選択すると、Console クラスの宣言を含むソース コード ファイルと同様の内容が表示されます。この宣言は、リフレクション を使用してアセンブリのメタデータから構築されます。また、どのメソッドの実装も公開されませんが、XML ドキュメントのコメントがあれば、表示されます。

メタデータをソース形式で表示する機能は、オブジェクト ブラウザでマネージ型を選択し、[表示] メニューの [コード定義ウィンドウ] をクリックしても使用できます。

詳細と図については、「ソースとして使用するメタデータ」を参照してください。

マネージ コードのコード分析

マネージ コードのコード分析ツールでは、マネージ アセンブリが解析され、セキュリティ問題が発生する可能性などがレポートされます。また、Microsoft .NET Framework デザイン ガイドラインのプログラミング規則とデザイン規則に違反している部分について説明されます。この情報は警告として表示されます。プロジェクト デザイナのツールにアクセスするには、ソリューション エクスプローラの [プロパティ] を右クリックし、[開く] を選択します。

詳細については、「コード分析 (プロジェクト デザイナ)」および「マネージ コードに対するコード分析の概要」を参照してください。

参照

概念

コードの編集 (Visual C#)

参照

リフレクション (C# プログラミング ガイド)

その他の技術情報

Visual C# IDE の使用

クラス ライブラリ開発のデザイン ガイドライン

例外のデザインのガイドライン

メンバのデザインのガイドライン

型のデザインのガイドライン