Q 質問 ASP(Active Server Pages)の後継として「ASP.NET」がありますが,VBScriptで開発した従来のASPアプリケーションは,ASP.NETの環境で稼働するのでしょうか。

A 回答 ASP.NET上で稼働しません。ただしASPとASP.NETの共存は可能です


図1●ASP上で稼働していたVBScriptプログラムは,ASP.NET上で稼働しない
ASPとASP.NETは実行形式が異なり,また,プログラム開発言語も違うため,ASP上で動いていたVBScriptプログラムはASP.NET上では稼働しない。ただし,IIS 5.0/5.1上にASPとASP.NETの2つのエンジンを共存させることは可能である
 「ASP.NET」は「ASP(Active Server Pages)」の後継という位置付けではあるものの,それぞれの上で稼働するアプリケーションに互換性はありません。従来のASPアプリケーションはASP.NET上では動きません(図1[拡大表示])。

 ただ,同一OS上にASPとASP.NETを共存させることは可能です。Windows 2000/XPを使っている場合,「.NET Framework」をインストールすると,WWWサーバー「IIS(Internet Information Services)」上にASPとASP.NETの両方のエンジンが搭載されます。それぞれのプログラムでデータを共有することなどはできませんが,同じサーバー上で動かすことは可能です。

ASP.NETとASPは全く別もの

 ASP.NETは,米Microsoftが提供するアプリケーションの開発実行基盤「.NET Framework」の一部で,Webアプリケーション用のライブラリなどから構成されます。.NET Frameworkは,同社のWebサイトからダウンロードしてWindows NT/2000/XP上で利用できます。

 ASP.NETは,従来のWebアプリケーション開発基盤「ASP」の後継であり,ASP同様,同社製WWWサーバーIISとのインタフェースを備えています。しかし,実行形式や開発言語などは異なり(表1[拡大表示]),アプリケーション上の互換性はありません。

表1●ASPとASP.NETの相違点
*1コンパイル後中間形式に変換され,.NET Frameworkの実行エンジンCLR(Common Language Runtime)上で稼働する

 ASPプログラムのファイルの拡張子は「asp」でしたが,ASP.NETプログラムの拡張子は「aspx」となります。実行形式は,ASPがプログラム・コードを1行ずつ解釈するインタプリタ方式であったのに対し,ASP.NETはコンパイラ方式です。ソース・コードを中間言語「MSIL(Microsoft Intermediate Language)」にコンパイルし,実行時に中間言語プログラムを実行エンジン「CLR(Common Language Runtime)」上で稼働します。これは.NET Frameworkに共通する仕組みで,ASP.NETにも適用されているのです。

 ASP.NETのアプリケーション開発言語は,Visual BasicやC#などです。残念ながら,ASPのアプリケーション開発でよく使われるVBScriptはサポートしていません。VBScriptの開発者がASP.NETに移行するには,プログラム言語の変更が必要になります。

共存可能だがASPの将来性は低い

 前述したように,既存のASPアプリケーションをASP.NETのアプリケーションと共存させることは可能です。とはいえASPのアプリケーションが,ASP.NETの仕組みで稼働しているわけではありません。従来通り,インタプリタ方式で稼働しています。同一OS上にASPアプリケーションとASP.NETアプリケーションを共存させても,それらは別々のプロセス空間で稼働します。そのため,ASPのプログラムから.NET Frameworkが提供するライブラリを利用することはできませんし,ASPのプログラムとASP.NETのプログラムでデータを共有することもできません。

 また,米Microsoftが.NET Frameworkに投資を集中している現状では,.NET Frameworkに含まれないASPの将来性は低いと言わざるを得ません。今後,ASPに対して新機能の追加などは行われないでしょう。となれば,既存のASPプログラムは,いつかはASP.NETへの移行を迫られることになります。また,新規に開発するアプリケーションは,将来性を考慮すればASPを使って開発するのは得策ではありません。

移行よりも再構築の方が簡単

写真1●ASP.NET上で稼働するアプリケーションを,Visual Basic .NETで開発している画面
Visual Basicらしい開発スタイルで,ASP.NET向けのWebアプリケーションが開発できる

 ASPからASP.NETへの移行が不可避ではあるものの,移行は簡単ではありません。VBScriptはASP.NETではサポートされないため,VBScriptで開発したASPアプリケーションには何らかの手を入れる必要があります。Visual Basic .NETに変換するのが最も簡単ですが,それでも注意すべき点がたくさんあります(詳しくはマイクロソフトのWebサイト,http://www.microsoft.com/japan/developer/net/aspdefault.asp/を参照)。

 プログラムを修正して移行するよりも,むしろ,ASP.NETの開発ツールを使って再構築した方が簡単な場合もあるでしょう。VBScriptの時はコード・ベースで開発することが多かったのですが,ASP.NETのアプリケーション開発で利用するVisual Basic .NETやVisual C# .NETでは,ビジュアル開発が可能だからです(写真1[拡大表示])。

 もちろん,一から再構築するのであれば,J2EEベースのWebアプリケーション・サーバーへ移行する,なども選択肢の一つに入るでしょう。

(本誌)