特集

Visual Basic 2005へ移行する理由(前編)

VB2005は.NETへの移行を加速できるのか!?

om (takanao)(Microsoft MVP Oct 2005 - Oct 2006 Visual C#)
2005/12/21
Page1 Page2

 2000年、マイクロソフトは.NET構想を発表した。続けて、.NET構想を実現する開発環境として「Visual Studio .NET」(以下、VS.NET)が、またVS.NETで利用できる新生Visual Basicとして「Visual Basic .NET」(以下、VB.NET)が発表された。

 VB.NETは、.NETの実行エンジンであるCLR(共通言語ランタイム)上で動作する.NETアプリケーションを作成可能な新しいBASIC系言語で、.NETの開発基盤である.NET Frameworkが提供するアプリケーション開発フレームワークや豊富なクラス・ライブラリをフルに利用できる。さらにVB.NETは、オブジェクト指向を全面的に採用するなど、開発言語として大きな変化を遂げた。

 しかしそのような大きな仕様変更の一方で、従来のVisual Basic 6.0(以下、VB6)の関数が継続して使用できるなど、VB6との互換性も極力維持された。このため、当初VB.NETはVB6開発者にすんなりと受けられると予想されていた。ところが実際には、VB6開発者の多くは.NET環境へ移行しなかった。それはなぜか。

1. なぜVB6開発者はVB.NETに移行しなかったか?

 その理由は、VB.NETが従来のVB6とはあまりにも違いすぎたからだ。確かにVB.NETは、前述したようにVB6との互換性が意識された設計とはなっているが、しかしそれでは不十分だった。

 VB.NETにはVB6が持っていた重要な機能が含まれていない。例えばVB.NETでは、VB6で利用できるエディット&コンティニュー機能が搭載されていないし、VB6なら不要な明示的な型指定やフォームのインスタンス化処理などを行わなければならない。これらの違いを克服しない限りは、VB6開発者は.NET開発になかなか移行しないだろう。

 そこでマイクロソフトは、VB6開発者が既存の知識と開発テクニックのままでスムーズに移行できるように、次期VB.NETであるVisual Basic 2005(以下、VB2005)で、さらなるVB6互換を進めたのだ(2005年12月15日から日本語RTM版がMSDNでダウンロード提供されている。パッケージ版は2006年2月から店頭に並ぶ予定)。

 このため最近では、「VB2005によりVB6から.NETへの移行が本格化するのではないか!?」という意見がちらほらと聞こえるようになっている。本稿ではそれが真実であるかどうかを読者に提示しよう。

 本稿では「VB2005で.NETへの移行が本格化するだろう」と予測させる材料を、次のように3回に分けて解説する予定だ。

(1) 開発環境、IDEの進化(今回)
(2) 言語仕様、クラス・ライブラリの進化
(3) データ・アクセス、デプロイメント、移行ウィザードの進化

 ちなみにVB.NETの製品名「Visual Basic 2005」では、(もうお気付きだろうが)従来の名称の「Visual Basic .NET 2002」「Visual Basic .NET 2003」にはあった「.NET」というキーワードが外された。これは恐らく、マーケティング的な意味合いが強い。1つは、.NETという言葉に付いてしまった「Webサービスのプラットフォーム」であるという印象を払しょくするという理由だが、VB6開発者に対してこれまで以上にVB6に近づいたことをアピールするという意味合いもあると予想できる。

 なお本稿(全3回)では、先日開発者向けに公開されたVisual Studio 2005 Professional Edition日本語版 RTMのVB2005を使用している。VB2005 Express Editionを使った場合とは若干異なる部分があるので注意してほしい。

 また、本稿では章の見出しの末尾に以下のようなマークを付けてVB6からの変化の具合を示している。

    ……VB6開発者が移行しやすくなっている部分
    ……相変わらずVB6から移行しにくいと思われる部分
    ……どちらともいえない部分

 それではまず次章では、開発環境がVB6開発者に向けてどのように変化したかを解説していこう。

2. 互換性が高まった開発環境

 1996年にVisual Studioという名称が発表されたとき、当時主流だったVBやVisual C++(以下、VC++)の開発環境が統合されるのではないかといううわさがあった。また、一部の開発者の中にはそれを期待する声も多かった。だが、実際に製品がリリースされてみるとVisual Studioという名称で統合されてはいたが、開発環境はVB、VC++、Visual InterDev(以下、InterDev)などバラバラであった。

 2002年にVS.NETがリリースされて、ようやく開発環境が統合されて1つの開発環境に変わった。だが、その開発環境はInterDevがベースになっていたため、VB6の開発環境とはかなり違ったユーザー・インターフェイスに変わってしまった。そのため、分かりにくいと感じるVB6開発者も多かった。

■2.1 開発環境の初期設定

 Visual Studio 2005(以下、VS2005)になっても開発環境の操作性はVS.NETから変更されていない。そのため、VB6開発者の多くは相変わらず戸惑うことも多いと思う。

 ただし、VS2005の初回起動時には[既定の環境設定の選択]というダイアログが表示されるので、ここで「Visual Basic開発設定」を選択すると、[オプション]ダイアログの表示がVBの設定だけの表示になったり、プロジェクト作成時にファイルを保存しなくなるなど、VB6に近い操作性・開発環境の設定が採用される。VB6からの移行を考えているユーザーにはこの設定をお勧めする。

初回起動時に表示される[既定の環境設定の選択]ダイアログ
「Visual Basic開発設定」を選択すると、VB6に近い開発環境を実現できる。いったん設定した設定を途中で切り替えるには、メニュー・バーの[ツール]−[設定のインポートとエクスポート]をクリックして、[選択された環境設定をインポート]を選択し、そこで適切な設定(例えば[Visual Basic 開発設定])をインポートすればよい。なおVB2005 Express Editionでは、このダイアログは表示されない。

 この設定は、次で説明する「プロジェクト・ファイルの保存」の方法に関しても影響を与える。

■2.2 プロジェクト・ファイルの保存

 VB6までは、プロジェクトを作成した時点ではファイルが作成されることはなかった。そのため、例えば簡単な動作確認をするだけなら、プロジェクトを作成して動作確認をした後、プロジェクトを保存しないで終了することができた。これは、VB6がインタープリタで実行される言語であり、デバッグ時にコードをコンパイルしながら実行できたため実現できた機能であった。

 VS.NETになるとVBはコンパイル言語に変わったため、ソース・ファイルをビルドしてバイナリ・ファイルを作成するという作業が必要になった。そのため、プロジェクトを作成するだけでファイルが作成されるようになった。だが、一時的な動作確認だけで二度と使わないようなプロジェクトがディスク上に保存されることに抵抗を感じるVB6開発者も多かった。

 VS2005では、プロジェクトを作成するだけではファイルを作らないオプションが追加されている。このオプションは、前述した「Visual Basic 開発環境」の設定をすると、デフォルトでオンになる。既定の環境設定として「Visual Basic開発設定」以外を選択した場合には、デフォルトでオフになる。ちなみにVB2005 Express Editionでは、このオプションはデフォルトでオンとなっている。

 このオプションは後から変更できる。変更する方法は以下の画面のとおりだ。この画面の[オプション]ダイアログで[作成時に新しいプロジェクトを保存]のチェックを外すことで、プロジェクト作成時にファイルが作成されないようになる。

VS2005の[オプション]ダイアログ
VS2005の[オプション]ダイアログはメニュー・バーから[ツール]−[オプション]を選択することで開くことができる。[作成時に新しいプロジェクトを保存]のチェックをオフにすることで、プロジェクト作成時にファイルが保存されなくなる。

 では、次にプロジェクトを作成したときの違いを見ていこう。

 

 INDEX
  [特集]Visual Basic 2005へ移行する理由
  VB2005は.NETへの移行を加速できるのか!?
  1.なぜVB6開発者はVB.NETに移行しなかったか?
    2.互換性が高まった開発環境
 
  VB6開発者にやさしいVB2005の言語仕様
    1.フォームのデザインと生成されるコード、フォームのインスタンス化処理
    2.Myオブジェクト、コード・スニペット、配列の下限指定、暗黙の型変換
    3.デフォルト・プロパティ、オブジェクトの解放、エディット&コンティニュー
    
  VB6開発者が待ち望んだVB2005の便利機能
    1. 進化したデータ・アクセス機能とアプリケーションの配布技術
    2. 完成度を高めた移行ウィザードとまとめ
 

@IT Special

- PR -

TechTargetジャパン

Insider.NET フォーラム 新着記事
  • 配列のコピーを1行でするには? (2017/4/26)
     配列をコピーするには、for/foreachループを使う方法もあるが、ArrayクラスのCopyメソッドを使うのが一番簡単で速度の面でも有利である
  • Microsoft Small Basic (2017/4/25)
     Microsoft Small Basicは学習を目的としてマイクロソフトが提供しているBASICの処理系。シンプルな言語仕様、習得が容易、簡潔な記述がその特徴
  • 第2回 Visual Studio 2017の基礎を知る (2017/4/21)
     開発環境Visual Studio 2017を使ったプログラミングに不可欠な知識とは? ソリューションの概念から画面構成まで基礎を説明
  • XmlSerializerでシリアライズ/デシリアライズする (2017/4/19)
     XmlSerializerクラスでシリアライズ/デシリアライズを行うと、デシリアライズに失敗することがある。その回避策を含め、XmlSerializerクラスの使い方を説明する
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH