Visual Basic 2005でVB 6プログラマーの時代がやってくる

―― VB 2005+コンポーネント開発なら、OOPを強く意識しなくてもアプリケーションを開発可能 ――

グレープシティ株式会社 鎌田 明 氏/八巻 雄哉 氏
聞き手:Insider.NET編集部 遠藤 孝信/一色 政彦
2006/05/20
Page1 Page2

VS 2005で世界はどう変わるのか?

― 先ごろ(2006年2月)、VS 2005の発売が開始されました。VS 2005の登場で、VB 6からVB.NETへの移行は進むのでしょうか。

 

鎌田:VBだけに限って見ると、VB 2005は、VB 6プログラマーを大いに意識して作られていると感じます。最初に登場したVS 2002や、次のVS 2003では、「VBもC#もできることは同じ」という思想を感じましたが、VB 2005ではこの方向性が少し変わったと思います。

― 具体的にはどのような部分でそれを感じますか。

 
設計者が語るVisual Basicの来た道、進む道

八巻:フォームのデフォルト・インスタンス(=フォームを明示的にインスタンス化しなくても使える機能)が復活したこと、新たにMyクラス(=さまざまな機能にVB 6開発者にとって分かりやすい名前でアクセスできる機能)が導入されたあたりですね。

 これらの機能は、VB 6プログラマーができるだけ違和感なくVB 2005を使えるように配慮したものだと思います。きちんとした評価はしていませんが、VB 6からVB 2005へのソース変換を行うコンバート・ツールの性能もかなり向上しているようです。

― そうした配慮は歓迎できますか。

 

八巻:両面があると思います。Myクラスのおかげで、膨大なクラス・ライブラリである.NET Frameworkの存在をそれほど意識しないでプログラムを作れるようになりました。.NET Frameworkはあまりに巨大で、VB 6プログラマーが敬遠する原因の1つになっていましたから。

― 欠点は何でしょう。

 

八巻:オブジェクト指向の観点で見ると、Myクラスやデフォルト・インスタンスなどは一歩後退と映るかもしれません。デフォルト・インスタンスは、見つけにくいバグの温床になり得ます(インスタンス化が明示的ではないため、その存在をコードからすぐに判断できない)。すでにOOPも克服してVB.NETに移行したプログラマーで、VB 2005に対してこのような感触を持つ人の中には、C#への移行を検討している人もいるようです。

― プレゼンテーション層とビジネス・ロジック層を混然一体化させてしまうC/Sアプリケーション開発の問題点はVS 2005で変わりますか?

 

八巻:OOP同様、間違った先入観になるといけないのでお断りしておきますが、小規模なビジネス・アプリケーションなら、2階層でもあまり重大な問題にならない場合もあります。

 しかしVS 2005では、データベースをオブジェクトとして操作できる仕組みが追加されています(ウィザードによるテーブル・アダプタの自動作成など)。フィールド更新などもオブジェクトのプロパティ変更で設定できます。このインターフェイスを使って開発されたアプリケーションなら、データベースを操作するビジネス・ロジック部分が自然と独立するような構成になるでしょう。

アプリケーション配布問題とClickOnce(クリックワンス)

― VB 6ベースのC/Sアプリケーションでは、クライアント・コンピュータに対するアプリケーション配布が問題として取り上げられました。

 

鎌田:開発したVB 6アプリケーション自体の配布もありますが、ActiveXコンポーネント時代には、アプリケーションで使用しているコンポーネントのレジストリ登録を忘れたとか、DLLの競合(いわゆる“DLL Hell”)によりアプリケーションが正常実行できないといった問い合わせが多かったです。

 この点.NETでは、DLLのバージョンがアセンブリによって厳密に管理されているので、DLL Hellは発生しません。事実、.NETになって以来、DLL Hellにまつわるサポートへの問い合わせも激減しました。

― VS 2005で提供されるClickOnce機能はどうでしょうか。C/Sアプリケーションのアプリケーション配布問題を解決する決定打になりますか。

 

鎌田:非常に高く評価しています。ClickOnceを活用したビジネス・ソリューションは増えると思います。

― アプリケーション配布の問題から、一時C/SアプリケーションはWebアプリケーションに押されていたのですが、この力関係が逆転する材料になるでしょうか。

 

鎌田:私たちのユーザー・サポートでも、Webアプリケーションでは、性能や操作性に関する質問が非常に多いです。皆さんWebアプリケーションの性能や操作性には不満があるようですから、ClickOnceが配布問題を解決してくれれば、ビジネス用途でもWindowsアプリケーションが復権する可能性はあるでしょう。

― 前版のVS 2003でも、ClickOnceと同様にアプリケーションの配布問題を解決するノータッチ・デプロイメント(以下NTD)という機能が用意されていましたが、あまり普及しませんでした。これはなぜですか。

 

八巻:「ノータッチ」ではなかったからですね。NTDを使うには、あらかじめクライアント・マシンごとに面倒なセキュリティ関連の設定をしなければなりませんでした。

― では、ClickOnceは本当のノータッチになっているのですか。

 

八巻:「ワンタッチ」程度にはなっています(笑)。

サードパーティ製コンポーネントの価値

― グレープシティさんが提供するようなサードパーティ製コンポーネントについては、積極活用するプログラマーと、使いたがらないプログラマーにきっぱり分かれているように見えます。サードパーティ製コンポーネントを避ける理由は何ですか。

 

八巻:ブラックボックス化を嫌うプログラマーが多いということだと思います。多くはプログラマー自身の問題ですが、場合によっては、納品先のエンドユーザー側が、「マイクロソフト以外が開発したコードは使わないこと」という制限を設ける場合もあるようです。

― サードパーティ製コンポーネントを使うメリットはどこにありますか。

 

八巻:「高機能で使いやすいコンポーネント」により、開発生産性を向上させられることですね。グリッド・コントロールや、文字の入力時に仮名を自動入力する日本向けコンポーネントなど、特にリッチな入力系コンポーネントはビジネス・アプリケーションでは重宝されています。こうした機能を独自にコーディングするのはかなり手間ですから。

― .NET標準のコンポーネントは、それを構成するオブジェクト階層を理解していないと本格的な活用はなかなか容易でないように思います。これに対し、グレープシティさんのコンポーネントは、.NETプログラムでも従来のActiveXコンポーネントを使うような感覚で使えるとのことですが。

 

鎌田:そういう製品もあります。当社の主力製品分野の1つとして、表計算(グリッド)コンポーネントがあるのですが、全部で5種類の製品を提供しています。このうち3種類はActiveX時代からバージョン・アップしてきたもの、2種類は.NETで新たに追加したものです。

― 両者の違いは何ですか。

 

鎌田:一言でいえば設計思想ですね。VB 6に慣れた人は、ActiveX感覚で作れる方が入りやすいわけですが、こうするとコンポーネント自体の柔軟性はどうしても制限されます。他方、.NET Frameworkを前提として開発されたコンポーネントは、.NET Frameworkの機能性や拡張性を最大限生かすように作られています。このメリットは非常に大きいのですが、使い始めには多くの知識が必要です。VB 6プログラマーにとっては、これがトレードオフになります。

― .NET Frameworkの標準コンポーネントも、バージョンをアップするたびに高機能化されています。これらは脅威ではありませんか。

 

鎌田:もちろん意識はしますが、「高機能で使いやすいコンポーネント」に磨きをかけるという方針に変わりはありませんし、常に使いやすさが一段違うものを提供しています。

 
 

 INDEX
  VB研 Interview
  Visual Basic 2005でVB 6プログラマーの時代がやってくる
    1. .NETへの移行は加速中。しかしVB 6からの本格移行はこれから
  2.Visual Studio 2005で世界はどう変わるのか?


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

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

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