プログラムのメンテナンスでやむなくADO.netを使わざるを得なくなった。そこで、ちょっとADOとADO.netの違いを調べてみた。
http://msdn.microsoft.com/ja-jp/library/904fck4k(VS.80).aspx
表に整理してみたが、アメブロでTableタグを書くとなんだか間延びした。少し下にスクロールしていただければと思う。(直し方が分かったら直す)





























 ADOADO.net
データの形式レコードセット
・1つの結果テーブル
データセット(DataTableオブジェクト)
・1つ以上のDataTbleオブジェクト
・リレーションシップ
データへのアクセス各行をシーケンシャルスキャン各行をシーケンシャルスキャン
序数インデックス、主キーインデックスで特定行にアクセス可能
行がコレクションとして表される
接続の確立Connect中は常に接続Connect中でも、SQL文発行時等の必要な間だけ接続を確立
データ転送COMマーシャリングXMLストリームを転送できるデータセット
データ形式標準COMで定義しているデータ型のみXMLに基づくため、データ型の制約なし



他にもいくつかあったが、主なところ。
Unix系のツールは、基本「それぞれの環境でコンパイル」することが多いので、ソースコードが提供されていて当たり前である。VBAのフレームワークはどうなのか?ソースコードを公開しておいた方がいいのか、というと微妙である。
ソースコードも公開し、取り込んで利用していただくのはいい。しかし、残念ながらセキュリティについてどれほど堅牢or脆弱かは、保証できない。

Windowsの世界ではバイナリー提供もやむなしか。自由度は下がるような気もするが、オブジェクトと使い方の提供が最適解なのかもしれない。
少し時間がかかるかもしれないが、ちょっと考えてみる。

実は、Frameworkを何で作ろうか迷っている。
恐らくは次の4つの選択肢がある。
・Microsoft Excel
 そのままExcelで作れば、というもの。xlsかxlaで提供。これだとソースコードも公開できるが、パフォーマンスは悪そう。

・Microsoft Office Developer Edition
 Office 2000 / XP で提供されていた。DLLも作れる。が、今は2007の時代。いつまでもこれを使い続けるのもどうかと・・。

・Microsoft Visual Studio Tool for Office (VSTO)
 実は、ライセンスを持っていたのだがどこかに失念していて、触ったことがない。アプリにExcelとかを組み込むモノじゃなかったか??ということで、これは一番なさそう。

・Microsoft Visual Studio
 手持ちの2005では、Officeアドインが作成できる。で、試しにExcelで使ってみたらちゃんと動いた。.net Framework 2.0 必須なのはいいとして、.net になって変わった部分、例えば null の吸収をどうしよう?などがある。

開発効率を考えるとVisual Studio なのだが、ちょっと悩んでいる。