■ Web アプリケーション

  • ASP.NET を利用した Web アプリケーションの開発
  • 使い慣れた開発環境と言語で実現可能
  • 移行が簡単なのは ASP+COM コンポーネント

変更ポイント

これまでは、Visual Basic 6.0 だけでは、 Web アプリケーションを作ることが難しかったので、Visual Basic 6.0 でコンポーネントを作り、それを ASP から呼び出して利用したり、ユーザーインターフェイスは DHTML を利用したりしていました。つまり、Visual Basic の活躍の場が、中間層の作成のみに限定されていました。

これからは、Visual Basic 開発者は、いつもの使い慣れた開発環境と言語を使って Web アプリケーションを開発することができます。

Visual Basic に限らず、.NET では、Web フォームを利用することができます。Web フォームには、「HTML ベースのユーザーインターフェイス定義」 と 「イベント処理などのロジック」 の両方が含まれます。これを同じファイルに記述することも、ロジック (コード) を別のファイルに記述して、「ページの背後のコード (コードビハインド) 」として提供することもできます。

Visual Basic .NET で、「ASP.NET Web アプリケーション」 プロジェクトを作成すると、あらかじめ 「WebForm1.aspx」 と、コード用のファイル「WebForm1.aspx.vb」 が作成されます (図 1)。.asp ファイル内の 「runat="Server"」 の記述のあるフォームやコントロールと、.vb ファイル内のコードは、ASP.NET ランタイムエンジン、つまりサーバーサイドのエンジンにより実行されます。このように、Web フォームを利用したアプリケーションは、基本的にサーバーベースのアーキテクチャを採用しています。とはいえ、Visual Basic .NET では、フォームにコントロールを貼り付け、それにイベントプロシージャを実装する感覚でデザインしていくことができます。

図 1:「ASP.NET Web アプリケーション」 プロジェクトの作成

図 1:「ASP.NET Web アプリケーション」 プロジェクトの作成

Visual Basic .NET では以下の 3 種類のコントロールを利用できます。

  • HTMLクライアントコントロール
  • HTMLサーバーコントロール
  • Webサーバーコントロール

HTML クライアントコントロールは従来からある、いわゆるタグに 1 対 1 で対応する、ブラウザ (クライアントサイド) で実現されるコントロールです。

HTML サーバーコントロールも、いわゆるタグに 1 対 1 で対応するコントロールですが、サーバーサイドで実現されます。そのためサーバー側のコードと連携することが可能です。また、HTML で実現している既存のページをサーバーベースに移行するためにも利用できます。

Web サーバーコントロールは、HTML コントロールより多くの機能を提供し、以下のような特徴を持ちます。

  • Visual Basic 開発者にとって使い慣れたオブジェクトモデル
  • ブラウザを検出し、ブラウザに最適の出力を調整する
  • 適切な HTML を生成し、ユーザーインターフェイスを実現する

これらにより、強力な Web アプリケーションのプレゼンテーション部分を Visual Basic で作ることができるようになったというわけです。

ASP.NET を利用した Web アプリケーションを作成するためには、Visual Basic のアプリケーション開発のノウハウだけでなく、Web の開発知識 (HTML、DHTML、XML の基礎知識、セッション管理の考え方、クライアントサイドスクリプトなど) も必要です。もちろん、ASP.NET の技術習得も必要です。これにはかなりのページを費やすのでここでは解説できません。

アップグレードウィザードによる変更点

Visual Basic 6.0 では、Web アプリケーションを作成するためのプロジェクトタイプがいくつかありました。しかしそれらのほとんどは、アップグレードウィザードによって簡単にアップグレードできるというわけではありません。

アップグレードされないプロジェクトは、

  • DHTML アプリケーション (DHTML + クライアントサイド DLL)
  • ActiveX ドキュメント

です。これらは、クライアントベースのアーキテクチャを使っているため、根本的にサーバーベースのアーキテクチャを持つ ASP.NET に、自動でアップグレードされません。また、手動での変更も簡単ではありません。

また、

  • IIS アプリケーション

は、ウィザードによって Web クラスが ASP.NET にアップグレードされます。しかし、手動での修正が必要となるでしょう。

今、何をしておくべきか?

Visual Basic 6.0 を利用して Web アプリケーションを作成するときの技術として、

  • クライアントサイド
    HTML とクライアントサイドスクリプト
  • サーバーサイド
    ASP、COM コンポーネント (ここを Visual Basic 6.0 で作成)

を利用していれば、スムーズな移行が可能です。

移行の段階には、ASP から .NET コンポーネントを利用することもできますし、COM コンポーネントを ASP.NET から利用することもできます。

結論として、Visual Basic .NET への移行を意識して Web アプリケーションを作成するなら、 Windows アプリケーションの時と同様、できるだけ COM コンポーネントなどを活用し、機能を分割して作成しておくとよいでしょう。そして、ユーザーインターフェイスを DHTML と ASP、コンポーネントの呼び出しを ASP、ビジネスロジックを COM コンポーネントで作成しておくことをお勧めします。これにより、既存の資産を活用し、スムーズな移行を実現することができます。