とりこらぼ。

Learn from yesterday,
live for today,
hope for tomorrow.

目次

Blog 利用状況

ニュース

プロフィール

  • 名前:とりこびと
    とるに足らない人間です。

  • Wankuma MVP
    for '平々凡々'

Web Site

  • Memo(Of T)

もうひとつの Blog

おもちゃ

  • あわせて読みたい
  • track feed

広告っぽい

書庫

日記カテゴリ

ASP.NET Web サイトで、複数のプログラミング言語を使用する。

とりこびとです。おはようございます。

タイトルの通り「ASP.NET Web サイトで、複数のプログラミング言語を使用する」ってことが書いてあるところを発見したのでメモです。

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

以下、引用。

App_Code フォルダのプログラミング言語の推定

App_Code フォルダは、格納されているファイルがどのプログラミング言語で記述されているかが明示的にマークされていません。代わりに、ASP.NET は、格納されているファイルに基づいて、App_Code フォルダのために起動するコンパイラを推定します。App_Code フォルダに .vb ファイルが存在する場合、ASP.NET は Visual Basic コンパイラを使用し、また .cs ファイルが存在する場合は C# コンパイラを使用します。

.wsdl ファイルなど、プログラミング言語が判然としないファイルだけが App_Code フォルダに格納されている場合、ASP.NET は、Web アプリケーションの compilation 要素やマシン構成ファイルで設定されている、Web アプリケーションの既定のコンパイラを使用します。
App_Code フォルダでの複数のプログラミング言語

App_Code フォルダのソース コードは単一のアセンブリにコンパイルされるため、App_Code フォルダ内のすべてのファイルは共通のプログラミング言語で記述する必要があります。たとえば、App_Code フォルダには、Visual Basic と C# の両方で記述されたソース コードを格納できません。

ただし、Web アプリケーションは、App_Code フォルダの各サブフォルダを個別にコンパイルが可能な単位として取り扱うように設定できます。そのように設定すると、各サブフォルダには、それぞれ別々のプログラミング言語で記述されたソース コードを格納できます。フォルダの構成を指定するには、Web.config ファイルの compilation 要素で codeSubDirectories 要素を作成し、サブフォルダへの参照を追加します。次の例は、VBCode と CSCode という名前のサブフォルダが、それぞれ別個のアセンブリにコンパイルされるように設定する方法を示しています。
<COMPILATION debug="false">
    <CODESUBDIRECTORIES>
        <ADD directoryName="VBCode" />
        <ADD directoryName="CSCode" />
    </CODESUBDIRECTORIES>
</COMPILATION>
VBCode サブフォルダと CSCode サブフォルダへの参照には、サブフォルダに格納されているプログラミング言語に関する情報を含める必要はありません。App_Code フォルダ自体と同様に、ASP.NET は、サブフォルダのファイルに基づいて使用するコンパイラを推定します。

投稿日時 : 2008年10月1日 11:40

Feedback

# re: ASP.NET Web サイトで、複数のプログラミング言語を使用する。 2008/10/01 12:07 小野@どっとねっとふぁん

App_Codeというところからわかるとは思うけど。
これ、Webサイトプロジェクトでしか使えなくてWebアプリケーションプロジェクトではこんなことできないのでその点だけ注意してね。

# re: ASP.NET Web サイトで、複数のプログラミング言語を使用する。 2008/10/01 12:19 naoki

書こうとしたら小野さんに先を越されてた!!!
Tech・EdのLTの時に小野さんが話した内容の1つがこの部分でした。
MSDNのタイトルにあるように、小野さんが言うようにWeb プロジェクトではどちらかしか使えないですよ。

# re: ASP.NET Web サイトで、複数のプログラミング言語を使用する。 2008/10/01 16:21 刈歩 菜良 CTP

Visual Studio2005のWebサイトでWCFする時にはプロキシクラスをコマンドで生成して手作業でプロジェクトに追加するのですが、コマンドが生成するコードがデフォルトでC#でした(オプションでVBに変更可能)。

うっかりVBのWebサイトにC#のプロキシクラスを貼りつけて、そのまま気付かず実行して問題なく動いたので、気づいた時にへぇ~と思いました。

Webプロジェクトだとだめなんですねぇ。

# re: ASP.NET Web サイトで、複数のプログラミング言語を使用する。 2008/10/01 16:44 はつね

Webプロジェクトじゃなくて、Webアプリケーションプロジェクト~。

このWebサイトはまだしもWebアプリって混乱しますよね、プロジェクト構成名。

タイトル  
名前  
Url
コメント