チュートリアル : Visual Studio .NET 2003 Web プロジェクトの Visual Studio Web アプリケーション プロジェクトへの変換

更新 : 2007 年 11 月

Visual Studio .NET 2003 Web プロジェクトを Visual Studio 2008 Web アプリケーション プロジェクトに変換すると、Visual Studio 2008 の機能を利用できるようになります。たとえば、リファクタリング、クラス ダイアグラム、テスト開発、ジェネリックなどです。また、Web アプリケーション プロジェクト モデルでは、ASP.NET 2.0 以上のすべての機能を使用できます。このような機能として、マスタ ページ、データ コントロール、メンバシップとログオン コントロール、ロール管理、Web パーツ、パーソナル化、サイト ナビゲーション、テーマなどがあります。

Visual Studio 2008 Web アプリケーション プロジェクト モデルは、Visual Studio .NET 2003 アプリケーションで使用可能なプロジェクト モデルとより緊密に対応しています。これは、Visual Studio .NET 2003 Web プロジェクトを Visual Studio 2008 に変換する場合に便利です。新しい機能の詳細については、「ASP.NET および Web 開発の新機能」を参照してください。

Aa983456.alert_note(ja-jp,VS.90).gifメモ :

ASP.NET Web アプリケーションは、Visual Studio または Visual Web Developer Express Edition を使用して作成できます。

このチュートリアルでは、既存の Visual Studio .NET 2003 Web プロジェクトを Visual Studio 2008 の Web アプリケーション プロジェクトに変換する方法について説明します。Web アプリケーション プロジェクト モデルは、Visual Studio .NET 2003 の Web プロジェクトと概念的アプローチは同じです。たとえば、プロジェクト ファイルを使用してファイルの追加や除外を行う点や、単一のアセンブリにコンパイルされる点が共通しています。詳細については、「Visual Studio .NET からの Web プロジェクト変換」を参照してください。

Aa983456.alert_note(ja-jp,VS.90).gifメモ :

Microsoft Office FrontPage 2003 を使用している Web サイトを Web アプリケーション プロジェクトに変換するには、最初に FrontPage Web サイトを Visual Studio 2008 Web サイト プロジェクトに変換します。次に、この Web サイト プロジェクトを Web アプリケーション プロジェクトに変換します。詳細については、「チュートリアル : Visual Studio の Web サイト プロジェクトから Web アプリケーション プロジェクトへの変換」を参照してください。

このチュートリアルでは、以下のタスクを行います。

  • Visual Studio .NET 2003 Web プロジェクトを開いて検証する。

  • Visual Studio .NET 2003 Web プロジェクトをバックアップする。

  • Visual Studio .NET 2003 Web プロジェクトを Visual Studio 2008 に変換する。

  • Visual Studio 2008 で Web アプリケーション プロジェクトを検証する。

  • 分離コード クラスを部分クラスに変換する。

  • XHTML 準拠の問題を調査し、解決する。

前提条件

このチュートリアルを実行するための要件は次のとおりです。

  • Visual Studio .NET 2003

  • Visual Studio 2008、Visual Studio 2005 Service Pack 1 (SP1)、または Visual Web Developer Express Edition

  • .NET Framework version 2.0

Visual Studio .NET 2003 Web プロジェクトを開いて検証する

プロジェクトを変換する前に、それが正常に動作していることを検証する必要があります。これによって、変換中のエラーを防止できます。

Visual Studio .NET 2003 Web プロジェクトを開いて検証するには

  1. Visual Studio .NET 2003 を開きます。

  2. [ファイル] メニューの [ファイルを開く] をクリックし、検証するソリューション ファイル (.sln) 名を入力するか、画面から選択します。

    Aa983456.alert_note(ja-jp,VS.90).gifメモ :

    Visual Studio .NET 2003 では、プロジェクトを構成するファイルは単一のソリューション ファイル (.sln) にまとめられています。

  3. [プロジェクト] メニューの [ソリューションのビルド] をクリックします。

  4. [デバッグ] メニューの [開始] をクリックします。

  5. プロジェクトが問題なく実行されることを確認します。

Visual Studio .NET 2003 Web プロジェクトをバックアップする

変換処理を開始する前に、Visual Studio .NET 2003 のソリューション ファイルとプロジェクト ファイルのバックアップを作成することをお勧めします。バックアップを作成しておくと、変換時に問題が発生した場合に、元の Visual Studio .NET 2003 ソリューションに戻すことができます。

プロジェクトをバックアップするには、Visual Studio .NET 2003 のプロジェクトをコピーします。

変換前に Visual Studio .NET 2003 Web プロジェクトをバックアップするには

  1. Visual Studio .NET 2003 を開きます。

  2. [ファイル] メニューの [ファイルを開く] をクリックし、バックアップするソリューション ファイル (.sln) 名を入力するか、画面から選択します。

  3. [プロジェクト] メニューの [プロジェクトのコピー] をクリックします。

  4. [プロジェクトのコピー] ボックスで、[ターゲット プロジェクト フォルダ] をクリックします。

  5. [Web のアクセス方法] のオプションを選択します。ファイルをコピーするには、[FrontPage] または [ファイルの共有] を使用できます。

  6. [ソース プロジェクト フォルダのすべてのファイル] をクリックし、[OK] をクリックします。

Visual Studio .NET 2003 Web プロジェクトを Visual Studio 2008 に変換する

Visual Studio 2008 では Visual Studio .NET 2003 のソリューション ファイルとプロジェクト ファイルを変換して、Visual Studio 2008 で導入された新しいプロジェクト ファイル形式である Microsoft Build Engine (MSBuild) を使用できるようにします。

Visual Studio 2008 による変換時には、変換の概要情報、変換時の問題などを含む XML ベースのログ ファイルが生成されます。既定では、この変換ログ ファイルは .sln ファイルと同じディレクトリに保存されます。変換後のプロジェクトのコンパイルで問題が発生した場合は、この変換ログ ファイルを参照できます。

Web プロジェクトを Visual Studio 2008 に変換するには

  1. Visual Studio .NET 2003 でソリューション ファイルを閉じます。

  2. Visual Studio 2008 を起動します。

  3. [ファイル] メニューの [ファイルを開く] をクリックし、変換するソリューション ファイル (.sln) 名を入力するか、画面から選択します。

    Visual Studio 変換ウィザードが起動します。

  4. ウィザードの [次へ] をクリックし、画面の指示に従って操作して、[完了] をクリックします。

Visual Studio 2008 で Web アプリケーション プロジェクトを検証する

ソリューション ファイルとプロジェクト ファイルを Visual Studio 2008 形式に変換した後、アプリケーションを問題なく構築して実行できるかどうかを確認します。

Visual Studio 2008 で Web アプリケーション プロジェクトを検証するには

  1. Visual Studio 2008 で、[ファイル] メニューの [ファイルを開く] をクリックし、検証するソリューション ファイル (.sln) 名を入力するか、画面から選択します。

  2. [プロジェクト] メニューの [ソリューションのビルド] をクリックします。

  3. [デバッグ] メニューの [開始] をクリックします。

  4. Web アプリケーション プロジェクトが問題なく実行されることを検証します。

よくあるエラーと警告

変換処理中に発生する最も一般的なエラーと警告は次のとおりです。

  • .NET Framework version 2.0 で追加された名前との競合。

  • 互換性のために残されているメンバに関する警告。

  • Web アプリケーションの実行時に発生する問題。

名前の競合を解消するには、名前空間を含む完全修飾名を指定してあいまい性を解消します。または、競合している型とメンバの名前を変更して競合しないようにします。名前の競合の詳細については、「ASP.NET 2.0 への移行の概要」および「Namespace Naming Guidelines」を参照してください。

互換性のために残されているメンバに関する警告には、通常、代わりに使用できる推奨メンバの情報も含まれています。この場合は、互換性のために残されているメンバを引き続き使用できます。ただし、それらのメンバは、.NET Framework の次のメジャー リリースでは削除されます。したがって、そのようなメンバを削除し、推奨された別のメンバで置き換えることをお勧めします。

Web アプリケーションを実行するときに、ディレクトリの一覧表示が拒否されたことを示すエラー メッセージが表示される場合は、Web アプリケーションの仮想ディレクトリに関して、内容表示が許可されていない可能性があります。この問題を修正するには、ソリューション エクスプローラで、アプリケーションのスタート ページを右クリックし、[スタート ページの設定] をクリックします。これによって、アプリケーションの実行時に正しいページが呼び出されるかどうかを確認します。

分離コード クラスを部分クラスに変換する

Visual Studio 2008 では、Web アプリケーション プロジェクトは Visual Studio で生成されたコードの部分クラスを使用します。これらのクラスは、分離コード ファイルとは別のファイルに格納されます。Visual Studio 2008 変換ウィザードの既定では、Web ページ (.aspx ファイル) やユーザー コントロール (.ascx ファイル) に対応する *.designer.cs ファイルまたは *.designer.vb ファイルは生成されません。コードの外観も動作も、Visual Studio .NET 2003 の場合とまったく同じになります。

Aa983456.alert_note(ja-jp,VS.90).gifメモ :

Visual Studio 2008 変換ウィザードで、変換処理時にコード ファイルに対して行われる変更は最小限です。このことは、Visual Studio 2008 の Web アプリケーション プロジェクトへの変換作業をスムーズするために役立ちます。

コードは Visual Studio .NET 2003 形式のまま保存しておくこともできます。この場合は、Visual Studio .NET 2003 を使用している場合と同様に、分離コード ファイル内のコントロール フィールドの宣言を手動で更新する必要があります。生成されたコード内でフィールドの宣言を維持する機能を利用するには、部分クラス モデルが使用されるように、ページとコントロールを更新してください。部分クラスを使用すると、分離コード ファイル用の生成されたコードやカスタム コードを整理しやすくなります。詳細については、「Partial (Visual Basic)」および「partial (型) (C# リファレンス)」を参照してください。

部分クラス モデルを使用するようにコードを変換するには

  1. コードを問題なくコンパイルできることを確認します。

  2. ソリューション エクスプローラでプロジェクト名を右クリックし、[Web アプリケーションに変換] をクリックします。

    このコマンドでは、プロジェクト内の各ページおよび各ユーザー コントロールが反復処理され、すべてのコントロール宣言が .designer.cs ファイルまたは designer.vb ファイルに移動されます。また、.aspx ファイルや .ascx ファイル内のサーバーコントロール マークアップに、イベント ハンドラ宣言が追加されます。

    Aa983456.alert_note(ja-jp,VS.90).gifメモ :

    ページごとに [Web アプリケーションに変換] コマンドを実行する方法があります。アプリケーション全体に変更を適用する前に、いくつかのページでこのコマンドを実行して、変更結果を確認できます。

    [Web アプリケーションに変換] コマンドを実行した場合、元に戻すことはできません。元に戻す必要がある場合は、Visual Studio .NET 2003 プロジェクトのバックアップを復元する方法をお勧めします。その後、前の説明のように Visual Studio 2008 変換を再実行してください。

  3. 処理が完了したら、[タスク一覧] ウィンドウで変換エラーがないかどうかを確認します。

  4. [タスク一覧] にエラーが表示された場合は、該当するページをソリューション エクスプローラで右クリックし、[コードの表示][Code Gen ファイルの表示] をクリックして、コードを調べ、問題を修正します。

    Aa983456.alert_note(ja-jp,VS.90).gifメモ :

    [タスク一覧] ウィンドウ内のエラーや警告は、次の Visual Studio セッションまで保持されます。ただし、表示されたエラーを修正した後、タスク一覧内の項目を消去することもできます。

  5. プロジェクトを再コンパイルして、問題なくコンパイルできることを確認します。

この時点からは、Web プロジェクトに新しいページを追加した場合、既定で部分クラス テンプレートがこれらのページに使用されます。詳細については、「ASP.NET 2.0 への移行の概要」を参照してください。

XHTML 準拠に関連する問題を調査し、解決する

Visual Studio 2008 の既定では、XHTML 準拠マークアップの生成後、その妥当性が検証されます。この機能は、標準に準拠した Web アプリケーションを構築するうえで役立つだけでなく、ブラウザ固有のレンダリングの問題を最小限に抑える意味でも効果的です。Visual Studio .NET 2003 の既定では、XHTML 準拠マークアップは生成されませんでした。このため、Web アプリケーションを Visual Studio 2008 に変換した後、Visual Studio .NET 2003 で作成されたページの妥当性やレンダリングの面で問題が発生する可能性があります。

Aa983456.alert_note(ja-jp,VS.90).gifメモ :

検証エラーは情報表示のみの目的で、警告として通知されます。検証エラーにより、ページの実行が妨げられることはありません。

Visual Studio .NET 2003 の場合と同じように HTML の検証エラーを確認したい場合は、HTML 検証の設定を [XHTML 1.0 Transitional] から [Internet Explorer 6.0] に変更します。[Internet Explorer 6.0] は、Visual Studio .NET 2003 の HTML 検証の既定値です。詳細については、「方法 : Visual Web Developer で HTML 編集用検証スキームを選択する」を参照してください。

プロジェクトの Web.config ファイルに次のセクションを追加して、ASP.NET によりサーバー コントロールからレガシ マークアップ (XHTML 準拠でないマークアップ) がレンダリングされるように設定することもできます。

<system.Web>
  <xhtmlConformance mode="Legacy" />
</system.Web>

これにより、ASP.NET 1.1 の使用時と ASP.NET 2.0 の使用時で、表示されたページのレンダリング結果に差異が生じるのを防ぐことができます。ただし、xhtmlConformance モードの変更は、変換の問題を解決する目的でのみ使用してください。Web アプリケーション プロジェクトが正しく実行されたら、変更した構成設定を削除します。詳細については、「ASP.NET と XHTML」および「ASP.NET 2.0 への移行の概要」を参照してください。

参照

処理手順

方法 : Visual Studio .NET 2002 または 2003 で作成されたプロジェクトをアップグレードする

概念

Visual Studio .NET からの Web プロジェクト変換

ASP.NET 2.0 への移行の概要

ASP.NET Web ページのコード モデル

ASP.NET と XHTML

参照

Partial (Visual Basic)

partial (型) (C# リファレンス)

部分クラスと部分メソッド (C# プログラミング ガイド)

Visual Studio 変換ウィザード

その他の技術情報

Namespace Naming Guidelines