チュートリアル : 複数のプログラミング言語を使用した Web サイトの開発

更新 : 2007 年 11 月

既定で、App_Code フォルダに複数のプログラミング言語は使用できません。ただし、Web アプリケーションの構造と構成設定を変更することで、Visual Basic と C# など、複数のプログラミング言語をサポートできます。こうすることで、ASP.NET で複数のアセンブリ (各言語に付き 1 つのアセンブリ) を作成できるようになります。詳細については、「ASP.NET Web サイト内の共有コード フォルダ」を参照してください。一般に、開発者は Web アプリケーションに複数のプログラミング言語を含めて、独立して運営され、異なるプログラミング言語を使用する複数の開発チームに対応します。

このチュートリアルでは、複数のプログラミング言語を ASP.NET アプリケーションに追加する方法について説明します。

Web サイトの作成

既に「チュートリアル : Visual Web Developer での基本的な Web ページの作成」を終了し、Visual Web Developer を使用して Web サイトを作成している場合は、その Web サイトを使用して、次のセクションに進むことができます。それ以外の場合は、次の手順に従って、新しい Web サイトおよびページを作成します。

ファイル システム Web サイトを作成するには

  1. Visual Web Developer を開きます。

  2. [ファイル] メニューの [新規作成] をポイントし、[Web サイト] をクリックします。Visual Web Developer Express を使用している場合は、[ファイル] メニューの [新しい Web サイト] をクリックします。

    [新しい Web サイト] ダイアログ ボックスが表示されます。

  3. [Visual Studio にインストールされたテンプレート][ASP.NET Web サイト] をクリックします。

  4. 最初の [場所] ボックスで、[ファイル システム] をクリックし、次に、Web サイトのページを格納するフォルダの名前を入力します。

    たとえば、「C:\WebSites\BulkUpdate」というフォルダ名を入力します。

  5. [言語] ボックスの一覧で、作業に使用するプログラミング言語をクリックします。

  6. [OK] をクリックします。

    Visual Web Developer によりフォルダが作成され、Default.aspx という名前の新しいページが作成されます。

言語固有のクラスの作成

チュートリアルのこの部分では、Visual Basic と C# という 2 つの言語で単純なクラスを作成します。

言語固有のクラス ファイルを App_Code フォルダに追加するには

  1. Web サイトに App_Code フォルダがない場合は、次の手順を実行します。

    1. ソリューション エクスプローラで、Web サイト名を選択します。

    2. [Web サイト] メニューの [ASP.NET フォルダの追加] をクリックし、[App_Code] をクリックします。

  2. ソリューション エクスプローラで、[App_Code] フォルダを右クリックし、[新しいフォルダ] をクリックします。

  3. 新しいフォルダに「CSCode」という名前を付けます。

  4. CSCode フォルダを選択します。

  5. [Web サイト] メニューの [新しい項目の追加] をクリックします。

    [新しい項目の追加] ダイアログ ボックスが表示されます。

  6. [新しい項目の追加] ダイアログ ボックスの [クラス] を選択し、クラスに「CSExample」と名前を付けます。次に、言語として [C#] を選択し、[追加] をクリックします。

  7. ソリューション エクスプローラで、CSExample.cs ファイルをダブルクリックして開きます。

  8. 次のコードを CSExample.cs ファイルに追加し、ファイルに存在する CSExample クラスを上書きします。

    public class CSExample
    {
        private string teamString;
        public CSExample()
        {
            TeamString = "C# Code";
        }
        public string TeamString 
        {
          get {
            return teamString;
          }
          set {
            teamString = value;
          }
        }
    }
    
  9. 次の値を使用して手順 2. から 7. を繰り返し、Visual Basic 用のフォルダとクラスを作成します。

    • 新しいフォルダ : VBCode

    • 新しいクラス ファイル : VBExample

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

      新しい Visual Basic クラス ファイルを作成するときに、言語を Visual Basic に設定します。

  10. 次のコードを VBExample.vb ファイルに追加し、ファイルに存在する VBExample クラスを上書きします。

    Public Class VBExample
        Private teamStr As String
        Public Sub New()
            TeamString = "Visual Basic Code"
        End Sub
        Public Property TeamString() As String
            Get
                Return teamStr
            End Get
            Set(ByVal Value As String)
                teamStr = Value
            End Set
        End Property
    End Class
    

Web.config ファイルの変更

プログラミング言語ごとに個別のサブフォルダを作成してから、ASP.NET が各サブフォルダを個別にコンパイルするように Web サイト構成を変更する必要があります。

複数のプログラミング言語をサポートするように Web.config ファイルを変更するには

  1. ソリューション エクスプローラで、Web サイト名を右クリックします。

  2. Web サイトに Web.config ファイルがない場合は、次の手順で Web.config ファイルを作成します。

    1. [Web サイト] メニューの [新しい項目の追加] をクリックします。

    2. [Web 構成ファイル] を選択し、[追加] をクリックします。

  3. Web.config ファイルをダブルクリックして開きます。

  4. 次のセクションをコピーして <compilation> セクションの子ノードとして貼り付けることで、<compilation> セクションを変更して <codeSubDirectories> ノードを含めます。

    <codeSubDirectories>
      <add directoryName="CSCode"/>
      <add directoryName="VBCode"/>
    </codeSubDirectories>
    
    ms366714.alert_note(ja-jp,VS.90).gifメモ :

    Machine.config のこのセクションの定義は、Web.config ファイルの設定でオーバーライドされます。また、構成エントリの順序は、そのエントリが作成およびリンクされた順序です。

クラスのテスト

これで Web サイトで両方のプログラム言語のクラスを使用できることをテストできるようになりました。

複数のプログラミング言語の使用結果を表示するには

  1. Web サイトに Default.aspx ページがない場合は、次の手順を実行します。

    1. ソリューション エクスプローラで、Web サイト名を右クリックし、[新しい項目の追加] をクリックします。

    2. [Web フォーム] を選択し、ページに「Default.aspx」と名前を付けて [追加] をクリックします。

  2. ソリューション エクスプローラで Default.aspx ページをダブルクリックします。

  3. Button コントロールを Default.aspx ページに追加します。

  4. Button コントロールのテキストを「Class Language」に設定し、ボタンの ID を「classLanguage」に設定します。

  5. Label コントロールを Default.aspx ページに追加し、ID プロパティを「classLabel」に設定して、Text プロパティをクリアします。

  6. デザイン ビューの Button コントロールをダブルクリックし、Click イベントのイベント ハンドラを作成します。

  7. 次のコードを classLanguage_Click ハンドラに追加します。

    CSExample CSCode = new CSExample();
    VBExample VBCode = new VBExample();
    if (classLabel.Text == CSCode.TeamString.ToString())
    {
        classLabel.Text = VBCode.TeamString.ToString();
    }
    else
    {
        classLabel.Text = CSCode.TeamString.ToString();
    }
    
    Dim CSCode As CSExample =  New CSExample() 
    Dim VBCode As VBExample =  New VBExample() 
    If classLabel.Text = CSCode.TeamString.ToString() Then
        classLabel.Text = VBCode.TeamString.ToString()
    Else 
        classLabel.Text = CSCode.TeamString.ToString()
    End If
    
  8. ソリューション エクスプローラで、Default.aspx を右クリックし、[スタート ページに設定] をクリックします。

  9. Web サイトを実行し、[Class Language] ボタンを押すと、2 つの異なる言語クラスが切り替わります。

参照

概念

ASP.NET Web サイト内の共有コード フォルダ

IIS 5.0 および 6.0 における ASP.NET アプリケーションのライフ サイクルの概要

ASP.NET のプリコンパイルの概要

参照

compilation 要素 (ASP.NET 設定スキーマ)