Insider's Eye

Visual Basic 2005はVBユーザーを救えるか?

Greg DeMichillie
2004/09/04
Copyright (C) 2004, Redmond Communications Inc. and Mediaselect Inc.
Page1 Page2

データ・アクセスの混とんから脱却

 VBがホビー使用の領域からITプロフェッショナル市場へ進出するにあたって最も重要な役割を担ったのは、リレーショナル・データベース・システムのフロントエンドを簡単に構築できる機能とローカル・データベース・エンジンの搭載だった。とはいえ、VBのデータベース・アクセスの歴史にはある種の濃淡がある。それぞれのリリースは最新のデータベースAPIを搭載し、それ以前のAPIを陳腐化させていった(その概要は以下の「VBのデータ・アクセスAPIの推移」を参照)。

VBのデータ・アクセスAPIの推移

 左側のボックスにあるのは、.NET以前のVBで用いられてきた3種類のデータベースAPIだ。DAO(Data Access Objects)はJetデータベース・エンジン専用に設計されたインターフェイスだ。VB 3とともに出荷され、Microsoft Accessにも搭載されていた。一方、RDO(Remote Data Objects)はMicrosoft、Oracle、Sybaseなどがサポートする業界標準データベースAPIのODBC(Open Database Connectivity)上でシンプルなデータ・アクセスを提供するために設計された。ADO(ActiveX Data Objects)も複数のデータベース・システムをサポートするが、COMをベースに非リレーショナルなデータをサポートするMicrosoftのプロプライエタリなAPI、OLE DBを利用している。

 中央と右側のボックスは、VB.NET、VB 2003、VB 2005に含まれるデータベースAPIだ。ADO.NETは新しいAPIで旧世代のAPIとは互換性がない。しかし、ODBCとOLE DBはサポートしている。従って、たとえRDO、DAO、ADOがリプレイスされ、実質的に旧式化しても、ユーザーは過去のAPIでサポートされていたデータベース・システムやフォーマットのデータにアクセスすることは可能だ。ADO.NETはVisual Basic 2005(Whidbey)に継承され、SQL Serverと.NETの統合化をより強力にサポートするようになるだろう。

●クラシックVBが苦慮したDBアクセス

 1993年にリリースされたVB 3.0には、Microsoft Accessにも搭載された高性能Indexed Sequential Access Method(ISAM)データベース・エンジンのJetが含まれていた。VB 3.0はまた、JetエンジンのCOMインターフェイスである「Data Access Objects(DAO)」を搭載した。DAOとJetは、ローカル・データベース・アプリケーションを構築する開発者にとっては非常に有益だったが、OracleやDB2、SQL Serverなど、より洗練されたデータベース・システムのフロントエンドを構築しようとする開発者の役には立たなかった。

 その次のメジャー・リリースであるVB 4.0で、Microsoftは新しいデータ・アクセスAPI「Remote Data Objects(RDO)」を投入した。DAOと同様、RDOもCOMインターフェイスだった。しかし、単一のデータベース・エンジン(Jet)上に構築されるDAOと異なり、RDOはMicrosoftやOracle、Sybaseなどがサポートするマルチベンダ・データベースAPI「Open Database Connectivity(ODBC)」上に構築された。従って、DAOではローカル・データベース・アプリケーションの構築が可能であったのに対し、RDOでは既存のコーポレート・データベースに対するフロントエンドの開発が容易になり、VBをクライアント/サーバ・コンピューティングの世界へと導いた。

 DAOとRDOをめぐる混乱に拍車をかけるように、VB 5.0ではさらに新しいデータ・アクセスAPIが導入された。「ActiveX Data Objects(ADO)」だ。ADOはローカル・データベース・エンジン(Jet)、リレーショナル・データベース・システム(OracleやSQL)、非リレーショナル・データベース・システム(Excelスプレッドシートなどの非データベースを含む)をすべてカバーする単一のAPIの提供を目的としていた。DAO、RDO、ADOなどの技術は、VB.NETの登場により、いずれも実質的に旧式化することになった。

●VB.NETでの安定

 VB.NET移行でADO.NETが登場し、さらに新しいデータベースAPIが導入された。名称こそ似ているが、ADO.NETはまったく新しいAPIで、ADOと互換性はない。もっとも、機能的にはADOよりはるかに優れ、XMLデータに対応するなど、Webベースや3層アプリケーションをサポートできるように設計されている。しかし、データベースAPIの乱立に閉口していたVB開発者にとって最も重要な点は、ADO.NETがアプリケーションを構築するための安定した基盤になると思えることだ(ADO.NETの詳細については、Directions on Microsoft日本語版2002年5月号「データ・アクセスを進化させるADO.NET 高拡張性、高性能の.NETベースWebアプリを実現」を参照)。

●VS 2005以降でのADO.NET 2.0の役割

 VS 2005はADO.NET 2.0を含む。ADO.NETと互換性のあるこのアップデート・バージョンは、2つのニーズに応えた。1つは、SQL Server内で実行されるコードから利用するための機能拡張である。SQL Server 2005(コード名:Yukon)は、データベース・サーバー上で実行するストアド・プロシージャの記述にMicrosoftのSQL言語だけでなく、あらゆる.NET言語を利用できるため、この機能拡張は重要だ。もう1つは、ADO.NET 2.0とVB 2005に含まれる新しいデータベース・ツールである。このツールを利用すれば、データベースに接続して照会結果を表示するシンプルなフォームの作成など、VB.NETやADO.NETでは複雑になりやすい一般的なデータベース・タスクを単純化できる。

VB.NETへの移行 − IT開発者の決断は?

 VB.NETの登場以来、VB開発者は.NETへ移行するかどうか、移行する場合、どのタイミングで、どのように移行するかの判断を迫られてきた。MicrosoftがVB 2005の計画を発表し、VB.NETの次のリリースが姿を明確にしたことで、同社が.NET Frameworkから退却しないことがはっきりした。実際、Longhornのリリースとともに、.NET Frameworkの重要性は、増すことはあっても縮小することはあり得ない。

 ジャンプすることをちゅうちょするVB開発者には、2つの要素が今後の12カ月間を有益な時間にするだろう。それはアメとムチだ。アメは2005年上半期に出荷されるVS 2005だ。この製品は、VB開発者が.NETに移行するとき直面する問題をいくつか解決している。まず第1に、VB開発者になじみのあるAPI(Myクラス)を用意した。第2に、オリジナルのVB.NETに欠けていた機能、主なところではEdit&Continueデバッギングなどと、フォーム・ベースのデータ・アクセスのための新しいツールが追加された。

 一方、ムチは、既存のVBアプリケーションを保守、拡張できる唯一のツールであるVB 6のメインストリーム・サポートが終了することだ。それは、Microsoftのサポート部門に継続してアクセスし、重大なセキュリティ・フィックス以外のアップデートを得られるのは、同社と延長サポートの契約を結んだ企業だけになることを意味する。企業は、VB.NET移行で発生する一時的コストと、VB 6の利用を継続することで増大するコストとリスクを秤にかける必要があるだろう。End of Article

参考資料

Directions on Microsoft日本語版
本記事は、(株)メディアセレクトが発行するマイクロソフト技術戦略情報誌「Directions on Microsoft日本語版」から、同社の許可を得て内容を転載したものです。『Directions on Microsoft 日本語版』は、同社のWebサイトより定期購読の申し込みができます。
 
 

 INDEX
  Insider's Eye
  Visual Basic 2005はVBユーザーを救えるか?
    1.過去との決別/言語とベース・ライブラリの進化/ユーザー・インターフェイスの変移
  2.データ・アクセスの混とんから脱却/VB.NETへの移行 − IT開発者の決断は?
  
 Insider's Eye


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メールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間