既存のソリューションでのリバース エンジニアリングに関する考慮事項
更新 : 2007 年 11 月
Visual Studio Team System Architecture Edition では、分散システム デザイナを使用して、既存の Visual Studio ソリューションでアプリケーションを定義したり、アプリケーション システムをデザインしたりできます。このタスクを実行するには、ソリューションにアプリケーション ダイアグラムまたはシステム ダイアグラムを追加します。このタスクを実行すると、Visual Studio によってソリューションがリバース エンジニアリングされ、ソリューション内の適切なプロジェクトのアプリケーション ダイアグラムにアプリケーション定義が追加されます。その後、アプリケーション デザイナを使用して、アプリケーションの視覚化、定義、構成、および実装を行うことができます。システム デザイナを使用してアプリケーション システムをデザインできます。詳細については、「方法 : ソリューションにアプリケーション ダイアグラムを追加する」および「方法 : ソリューションにシステム ダイアグラムを追加する」を参照してください。
以下のセクションでは、既存のソリューション内の項目をリバース エンジニアリングすることによって行われる変更について説明します。リバース エンジニアリングでサポートされない項目についても説明します。
既存のソリューションでのリバース エンジニアリング
リバース エンジニアリングでサポートされない項目
以前のバージョンの Architecture Edition からソリューションをアップグレードすることもできます。ただし、このリリースでは、Visual J# プロジェクトはサポートしていません。詳細については、「Architecture Edition の以前のバージョンをアップグレードする」を参照してください。
既存のソリューションでのリバース エンジニアリング
アプリケーション ダイアグラムをソリューションに追加すると、ソリューションやソリューション内のプロジェクトに加えた特定の変更が、Visual Studio によってリバース エンジニアリングされます。これらの変更は、ダイアグラムが開いている間、またはダイアグラムをもう一度開くときに、ダイアグラムに反映されます。
アプリケーション ダイアグラムでサポートされるアプリケーションの種類に対応するプロジェクトを追加する場合。
アプリケーション ダイアグラムでサポートされるアプリケーションの種類に対応するプロジェクトは、すべてリバース エンジニアリングできます。そのプロジェクトのアプリケーション定義の形状は、アプリケーション ダイアグラムに表示されます。
プロジェクトのリバース エンジニアリングを行う場合には、次の考慮事項に注意してください。
IIS メタベースへのアクセスに十分な権限を持っていない場合、これらの ASP.NET Web プロジェクトをアプリケーション ダイアグラムでリバース エンジニアリングすることはできません。
リバース エンジニアリングされたアプリケーションの [ターゲット フレームワーク] プロパティは、読み取り専用の空のプロパティとして表示されます。プロジェクトのプロパティで、ターゲット フレームワークのバージョンを表示したり変更したりできます。Visual Studio では、作成されたアプリケーションの [ターゲット フレームワーク] 設定は、既定で .NET Framework 3.5 に設定されます。この設定を確認し、必要に応じて更新します。この設定を変更する場合は、特定の考慮事項に注意してください。詳細については、「方法 : アプリケーション用の .NET Framework のバージョンを選択する」を参照してください。
Office プロジェクトのリバース エンジニアリングを行う場合、作成されたアプリケーションの [テンプレート] プロパティは読み取り専用の空のプロパティとして表示されます。ただし、アプリケーションの [Office バージョン] 設定には、そのプロジェクトが使用する Office のバージョンが反映されます。詳細については、「方法 : アプリケーションのプロジェクト テンプレートを変更する」を参照してください。
アプリケーション ダイアグラムを含むソリューション内の WSE (Web Services Enhancement) 設定で有効にされた Web サービス プロジェクトを、リバース エンジニアリングするか開いたときに、WSE がインストールされていないとアプリケーション ダイアグラムがロックされます。
この状況を解決するには、ダイアグラムを閉じ、WSE をインストールし、ダイアグラムを再度開きます。詳細については、「アプリケーション ダイアグラムのトラブルシューティング」を参照してください。
詳細については、次のトピックを参照してください。
リバース エンジニアリングでサポートされない項目
アプリケーション ダイアグラムで ASP.NET アプリケーションに関連付けられたプロジェクトに Web サービスを追加する場合。
Visual Studio により、アプリケーション ダイアグラム上で、対応するアプリケーション定義に .NET Web サービス プロバイダ エンドポイントが追加されます。また、Visual Studio は、ソリューションのプロジェクトに .asmx ファイルと Web サービス クラス ファイルを追加する処理も行います。詳細については、「アプリケーション ダイアグラムでの ASP.NET アプリケーションの概要」を参照してください。
ASP.NET アプリケーション プロジェクトの Web サービス クラス ファイルに Web メソッドを追加する場合。
Visual Studio により、アプリケーション ダイアグラム上で、ASP.NET アプリケーション定義の対応する .NET Web サービス プロバイダ エンドポイントに操作が追加されます。その後、[Web サービスの詳細情報] ウィンドウで操作を表示したり編集したりできます。
詳細については、次のトピックを参照してください。
ASP.NET アプリケーション定義の .NET Web サービス プロバイダ エンドポイント内部の Web サービス クラス ファイルで、Web メソッド、Web サービス、または WSDL に関連した属性やプロパティを追加、変更、または削除する場合。
Visual Studio により、[Web サービスの詳細情報] ウィンドウ内の対応する操作と適切なプロパティが更新されます。詳細については、「方法 : ASP.NET Web サービスの操作を編集する」を参照してください。
アプリケーション構成ファイルのエントリを追加、編集、または削除する場合。
Visual Studio により、システム定義モデル ドキュメント (SDM: System Definition Model) や設定および制約エディタに保存された設定が更新されます。詳細については、「システム定義モデル (SDM) の概要」および「設定および制約エディタ」を参照してください。
カスタム Web サービス クライアント プロキシ クラスまたは Web 参照とカスタム Web サービス クライアント プロキシ クラスを格納しているクラス ライブラリのアプリケーション プロジェクト内の構成ファイルに、エントリを追加する場合。
カスタム Web サービス クライアント プロキシ クラスは手動で作成したプロキシ クラスで、アプリケーション プロジェクト内の Web 参照には関連付けられません。各 Web 参照またはカスタム プロキシ クラスの Web サービス コンシューマ エンドポイントは、適切なエントリがアプリケーションの構成ファイルに追加された場合にだけ、対応するアプリケーション定義に表示されます。
メモ : 適切な .NET Web サービス プロバイダ エンドポイントがアプリケーション ダイアグラム上にある場合は、Web サービス コンシューマ エンドポイントとプロバイダ エンドポイントの間に接続が表示されます。それ以外の場合は、新しい外部 Web サービスが表示され、Web サービス コンシューマ エンドポイントに接続されます。
詳細については、次のトピックを参照してください。
ソリューション内のアプリケーション プロジェクトに Web 参照を追加する場合。
アプリケーションのプロジェクトに Web 参照を追加すると、Visual Studio は、そのアプリケーションの種類と Web 参照で指定された Web サービス URL がアプリケーション ダイアグラムでサポートされているかどうかに応じて、既存の ASP.NET Web サービス、新しい外部 Web サービス、または既存の外部 Web サービスにアプリケーションを接続します。
詳細については、次のトピックを参照してください。
データベース接続エントリをアプリケーションの構成ファイルに追加する場合。
たとえば、データベース接続エントリは ASP.NET アプリケーションの Web.config ファイル、または Microsoft Windows アプリケーションや Office アプリケーションの App.config ファイルに追加できます。
Visual Studio により、データベース コンシューマ エンドポイントがアプリケーション ダイアグラムのアプリケーションに追加されます。このコンシューマ エンドポイントを既存の外部データベースに接続したり、ダイアグラムに追加する新しい外部データベースに接続したりできます。データベース コンシューマ エンドポイントのデータベース接続文字列を表示したり編集したりできます。詳細については、「方法 : 外部データベースへの接続を構成する」を参照してください。
リバース エンジニアリングでサポートされない項目
アプリケーション デザイナでは、次に示すカテゴリの項目についてのリバース エンジニアリングは制限されるか、サポートされません。
アプリケーション プロジェクト
アプリケーション デザイナは、クラス ライブラリのデザインまたは直接表現をサポートしていません。
クラス ライブラリが実装する機能のファサードとして ASP.NET Web サービスを使用できます。これによって、ASP.NET アプリケーションで参照されるクラス ライブラリと実装をサポートするアプリケーションの間の対話をアプリケーション ダイアグラムで表すことができます。詳細については、「方法 : アプリケーション ダイアグラムでアプリケーションからクラス ライブラリを参照する」を参照してください。また、コンシューマ アプリケーションの構成ファイルに適切なエントリを追加することにより、クラス ライブラリ内の Web サービスおよび Web サービス クライアント プロキシ クラスへの Web 参照を、Web サービス コンシューマ エンドポイントとして視覚化することもできます。詳細については、「クラス ライブラリ内の Web 参照とカスタム Web サービス クライアント プロキシ クラス」を参照してください。
アプリケーション デザイナは、FTP または Microsoft SharePoint に基づく Web サイト プロジェクトのリバース エンジニアリングをサポートしていません。アプリケーション デザイナでは、インターネット インフォメーション サービス (IIS: Internet Information Services) または ASP.NET 開発サーバー上で実行する Web サイト プロジェクトについてのみ、リバース エンジニアリングをサポートします。
ASP.NET Web サービス
.asmx ファイルのインラインで定義されている Web サービス クラス定義。
ASP.NET Web サービスに関連付けられている Web メソッドが、別のコード ファイルまたは "分離コード" ファイル内の単一のクラス定義で完全に宣言されていない場合、対応する操作は [Web サービスの詳細情報] ウィンドウに表示されません。ASP.NET アプリケーションで Web サービスを .NET Web サービス プロバイダ エンドポイントとして視覚化し、それにコンシューマ アプリケーションを接続することはできます。この場合、.NET Web サービス プロバイダ エンドポイントに警告を示すアイコン (!) が表示されます。詳細については、「アプリケーション ダイアグラムのトラブルシューティング」を参照してください。
メモ : 分離コード ファイルはプログラミング言語に固有のクラス ファイルで、通常は、ASP.NET アプリケーションに関連するプロジェクトのアプリケーション コード フォルダにあります。
Web サービス クラスが実装するインターフェイスのメソッドで、属性によって宣言されている Web メソッド。
または
Web メソッドを定義する基本クラスを拡張するクラス。
このような場合は、.asmx ファイルが参照するクラスで宣言されている Web メソッドに対応する操作だけが [Web サービスの詳細情報] ウィンドウに表示されます。[Web サービスの詳細情報] ウィンドウにすべての Web サービスの操作が表示されなくても、.asmx ファイルがアプリケーション プロジェクト内に存在していれば、.NET Web サービス プロバイダ エンドポイントは ASP.NET アプリケーション上に正しく表示されます。また、Web サービス エンドポイントへの接続も正しく実装されて構成されます。
複数のバインディングを含む Web サービスを定義しているコード。
分離コード ファイルが、複数のバインディングに関連付けられた Web メソッドを使用する Web サービスを定義する場合、[Web サービスの詳細情報] ウィンドウには最初のバインディングに関連付けられた操作だけが表示されます。
メモ : WebServiceBinding 属性は Web サービス レベルでバインディングを宣言します。SoapDocumentMethod 属性または SoapRPCMethod 属性を設定して、これらのバインディングを Web メソッド レベルで使用できます。詳細については、オンラインの MSDN ライブラリを参照してください。
複数の WSDL バインディングを格納している WSDL ファイル、または複数の Web サービスを参照する DISCO ファイル。
分散システム デザイナは、1 つの WSDL バインディングを格納している WSDL ファイル、および 1 つの Web サービスを参照する DISCO ファイルだけをサポートします。
詳細については、「アプリケーション ダイアグラムでの ASP.NET アプリケーションの概要」を参照してください。
Active Template Library (ATL) サーバー
WSE (Web Services Enhancements) SOAP メッセージング スタック。
これらの項目の詳細については、オンラインの MSDN ライブラリを参照してください。
参照
処理手順
方法 : アプリケーション ダイアグラムでアプリケーションを定義する
チュートリアル : アプリケーション ダイアグラムでのアプリケーションの定義