.NET文化とオブジェクト指向(逆インピーダンスミスマッチ)

DataSet 少なくとも.NET2.0では依然としてデータアクセスの中心に鎮座するクラスでしょう。Microsoftが作り上げた文化というのは、標準化とそれに基づくコンポーネント利用によるRAD開発だと思います。いかに簡単に、ドラッグアンドドロップで出来上がるか。実際これのおかげで*一般的な*アプリケーション開発は恐ろしいほど生産性を向上させたと思います。

GUIコンポーネントにデータバインディングするデータソースはオブジェクトコレクションでも実装可能です。現在十分な機能を提供するには、IBindingListやIEditableObjectを実装しなければならないので、上級者でないと実装できなかったのも事実ですが、.NET2.0ではベンダー向けのVisualStudio2005に統合できるデザイナの拡張機能も用意されるようなので、環境はますます整っていると思います。

ニュースグループでもよくリクエストがあります。DataSetと互換のある何か。私自身もSmartClientを実装するときに、DataSetと互換のオブジェクトモデルを検討しました。

一方で、*一般的でない*、これは製品レベルのもので、社内/受託開発など*一般的な*アプリケーションでないものは、DataSetやコントロールが利かないサードパーティフレームワークに依存していないものです。また、RADにも依存せずゴリゴリ書いているようにも思えます。

このように、効率を追求するシーンではDataSetは花形ですが、一方あくまでも独自のオブジェクトが主役のシーンがあります。さて、これまではDataSetなどRDBMSから派生するようなニーズはケアしていませんでしたが、DataSetが花形のシーンでdb4oを利用してくれる人も増えてきて、そうなると逆インピーダンスミスマッチが発生してくるんですね。果たしてDataSet互換モデルを提供すると言うことがどういうことか、慎重に検討していきたいと思っています。