■ Windows アプリケーション

  • Windows アプリケーションは .NET でも作成可能
  • Windows フォームに自動的にアップグレード

変更ポイント

Windows アプリケーションは、Windows フォームをベースに作成します。ユーザーインターフェイスは、Windows コントロールや GDI+ を利用して整えます。.NET コンポーネント (クラスライブラリやコントロール) を利用することもできますし、XML Web サービスを利用することもできます。

また、従来の COM コンポーネント (コードコンポーネントや ActiveX コントロール) を利用することもできます。ただし、COM と .NET の相互運用にはその境界を越えるためのオーバーヘッドが生じることを考慮に入れる必要があります。

なお、フォームおよびコントロールの変更の詳細は、第 5 章を参照してください。

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

Visual Basic 6.0 で作成された Windows アプリケーションは、アップグレードウィザードによってアップグレードすることができます。アップグレードするためには、Visual Basic 6.0 のプロジェクトであることが必要です。それ以前のバージョンの Visual Basic で作成されたプロジェクトは、あらかじめ Visual Basic 6.0 にアップグレードしておきます。

Visual Basic のフォームは Windows フォームに、また、フォーム上に配置されたコントロールも、可能な限り対応する Windows コントロールにアップグレードされます。対応するものがないときには、アップグレードレポートとコメントに従って修正を行なう必要があります。これらの詳細は、第 5 章を参考にしてください。

COM コンポーネント (コードコンポーネントや ActiveX コントロール) を利用しているアプリケーションもアップグレード可能です。このとき、相互運用のためのラッパーが作成され、必要な参照設定が自動的に追加されます。なお、COM コンポーネント自体のアップグレードについては、本章の 「コンポーネント」 を参照してください。

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

Visual Basic 6.0 では、簡単にリッチなユーザーインターフェイスを備えた Windows アプリケーションを作成することができました。これらを、ウィザードを利用して容易に Visual Basic .NET にアップグレードできます。また、COM コンポーネントを利用していても問題はありません。簡単にアップグレードできるからです。問題がないどころか、COM コンポーネントをできるだけ利用することをお勧めします。COM コンポーネントなどを利用して、ユーザーインターフェイスとビジネスロジックをできるだけ分けて、アプリケーションを作成しておきましょう。そうすれば、.NETにアップグレードする時、COM コンポーネントを対応する .NET コンポーネントに部分的に置き換えたり、あるいはコンポーネントはそのままで、それを利用する側のプログラムを置き換えたりするなど、柔軟に対応することができます。

PlusOne

Visual Basic .NET では、Windows アプリケーションと同じくらい簡単に、Web アプリケーションを作成できます。残念ながら、既存の Windows アプリケーションを自動で Web アプリケーションにアップグレードするツールは Visual Studio .NET にはありません。しかし、Windows アプリケーションをアップグレードすることで、コードが .NET に対応するよう書き直されるので、これをコピー & ペーストして新しい Web アプリケーションのプロジェクトで活用するという方法は有効でしょう。

もちろん、すべてを Web アプリケーションにする必要はありませんし、Web アプリケーションに向かない場合や、移植が非常に困難な場合があります。以下にその例を示します。

複雑なユーザーインターフェイスを持つアプリケーション

ラベルやテキストボックスなど、標準コントロールを利用した簡単なユーザーインターフェイスを持つアプリケーションは Web アプリケーションへの移行も簡単に行なえます。しかし、複雑なインターフェイスや、サードパーティ製のコントロールを利用したアプリケーションはアップグレードが困難な場合が多く、また、Web アプリケーションに向かない場合も多いでしょう。

イベントを継続して利用するアプリケーション

Web フォームは、サーバーコントロールを利用するため、マウスの移動やドラッグなど継続的にイベントを取り続けたいアプリケーションなどは、向いているとはいえません。このような場合、DHTML などを利用することも可能ですが、この変更は簡単にはできません。

以上のようなアプリケーションは、そのまま Windows アプリケーションとして利用することをお勧めします。

また、このアップグレードをできるだけ簡単にするために、Visual Basic 6.0 のプロジェクトにおいて、ユーザーインターフェイスとビジネスロジックを分けて作成しておくこと、また、できるだけユーザーインターフェイスを薄く作っておくことをお勧めします。