Web ソリューションとプロジェクト ファイル変換
更新 : 2007 年 11 月
Visual Studio 2005 では Web プロジェクト モデルにさまざまな変更が加えられました。たとえば、Web アプリケーション フォルダ内のすべてのファイルは Web プロジェクトの一部と見なされるため、プロジェクト ファイルは不要になりました。
新しい Web プロジェクト モデルは、ASP.NET Web フォーム ページ (.aspx ファイル)、ASP.NET ユーザー コントロール (.asxc ファイル)、Global.asax ファイル、および Web.config ファイルなどのファイル変換に影響を与えます。具体的な差異の内容は、変換されるプロジェクトのプログラミング言語によって異なります。
Visual Studio 2005 では、分離コード モデルが部分クラスを使用できるように変更され、これによりクラスが複数のファイルにまたがることができます。以前の分離コード モデルでは、.aspx ファイルは、対応する分離コード ファイル (.aspx.vb または .aspx.cs) から作成された、コンパイルされたクラス ファイルから継承します。新しい分離コード モデルでは、.aspx ファイルは、対応する .aspx.vb ファイルまたは .aspx.cs ファイルで構成されるコンパイルされたクラスから継承するだけでなく、aspx ファイルで使用されるコントロールのフィールド宣言を定義する、aspx ファイルから生成されたスタブ ファイルからも継承します。この変更により、自動生成されたコードを、ユーザーのコードとは区別できるようになります。ユーザー コントロール (.ascx) とユーザー コントロール用の分離コード ファイルは、同様に取り扱われます。分離コード モデルの詳細については、「ASP.NET Web ページのコード モデル」を参照してください。
Visual Studio 2005 では、1 つのアセンブリしか作成できなかったコンパイル モデルが、多くのアセンブリを作成できるように変更されました。各 ASP.NET Web ページとユーザー コントロールは、それぞれのアセンブリにコンパイルできます。この変更により、必要に応じて、ソース コードをサーバーに発行し、それに Web アプリケーションの一部を動的にコンパイルするなど、配置方法がより豊富になります。
分離コード ファイル
新しい ASP.NET バージョン 2.0 の分離コード モデルへの変換時に、ASP.NET Web ページとユーザー コントロールに次の変更が行われます。
@ Page ディレクティブにある CodeBehind 属性が CodeFile 属性に変更されます。
関連付けられた、同梱してコンパイルするクラス ファイルを指す @ Page ディレクティブに Inherits 属性が追加されます。
すべての分離コード クラス定義が Partial キーワードを実装するよう変更されます。
ユーザー コントロールのメンバ宣言は、分離コード ページから削除されます。同梱してコンパイルするモデルでは、ユーザー コントロールのインスタンスが、宣言コードから自動的に作成されます。
イベントは、宣言構文によりコントロールにバインドされます。たとえば、Button コントロールの Click イベントは、宣言コードで OnClick 属性を asp:button 要素に追加することにより、このコントロールにバインドされます。デリゲートと Visual Basic の Handles キーワードは、メソッドから削除されます。動的に作成されるコントロールのデリゲートのように、宣言コードで表されないメンバについては、デリゲートは削除されません。
クラス ファイルに含まれ、ページ クラスには含まれず、Friend または Internal と指定されているメンバ宣言は Public に変更されます。
デバッガのブレークポイントは変換されず、変換ファイルに含まれません。
メモ : @ Page ディレクティブに CodeBehind 属性がない Web ページまたはユーザー コントロールは、変換されません。同様に、Src 属性を持つ Web ページまたはコントロールは影響を受けません。
スタンドアロン コード ファイル
スタンドアロン コード ファイルへの変更点は次のとおりです。
スタンドアロン コード ファイルは App_Code ディレクトリに移動されます。
Friend または Internal としてマークされたメンバ宣言は、Public に変更されます。この変更が必要なのは、アセンブリが複数ある場合、アクセス レベルを、コンパイル済みスタンドアロン コード ファイルを含むアセンブリ以外のアセンブリからメンバを参照できるように指定する必要があるためです。
Type.GetType メソッドの呼び出しは、BuildManager.GetType メソッドの呼び出しに変更されます。BuildManager.GetType メソッドは、最上位アセンブリで型を検索します。
デバッガのブレークポイントは変換されず、変換ファイルに含まれません。
デザイナの設定
ページの中の、デザイナに関連する設定は、変換中に違った方法で処理されます。
MS_POSITIONING 属性 (フロー レイアウトまたはグリッド レイアウト) は、そのまま保持されます。Visual Studio は、この設定を、個々のコントロールの絶対位置属性と共に保持します。ただし、既定では、Visual Studio 内の新しいページには、フロー レイアウトが適用され、MS_POSITIONING 属性は含まれません。
既定のクライアント スクリプト言語の <meta> タグは、影響を受けません。
Global.asax ファイル
Global.asax ファイルを変換すると、その分離コード ファイルは App_Code ディレクトリに移動されます。変換プロセスにより、次の変更が行われます。
CodeBehind 属性と Inherits 属性が、@ Application - Global.asax ディレクティブから削除されます。
Language 属性が既に指定されていなければ、この属性が @ Page ディレクティブに追加されます。
Visual Basic では、Namespace ステートメントがクラス ファイルに追加されます。名前空間は、Web プロジェクトのルート名前空間によって定義されます。
Web.config ファイル
Visual Studio 2005 では、Visual Studio .NET に比べて、Web.config ファイルが多様な要素をサポートするようになります。たとえば、引き続き Visual Studio に適用されるプロジェクト設定の多くは、Web.config ファイルに変換されます。詳細については、「Web プロジェクト設定の変換」を参照してください。
参照
概念
Visual Studio .NET からの Web プロジェクト変換