TableAdapterについていろいろ調べている。
以下のページのNoteによると、以下のように書かれている。
-- 引用開始 ---------------------------------
While data adapters are still a main component of .NET Framework Data Providers, TableAdapters are designer-generated components that simplify the process of moving data between your application and a database.
-- 引用終了 ---------------------------------
Parameters in Data-Adapter Commands
http://msdn2.microsoft.com/en-us/library/ebxy9a8b.aspx
結局、TableAdapterはデザイン画面が作り上げたもので、細かい設定はできなような感じである。
hogeDataSet.Designer.csなんかを見てみると、内部に完全にDataAdapterが隠蔽されている。
結局は、TableAdapterはDataTableやDataAdapterを意識させずにデータを扱わせるラッパーみたいなものだろう。それも、たぶん初心者向きのような気がする。そのため、ちょっと細かいことをやろうとした時に、それらができないという壁にぶつかるのである。このようなラッパーともいえるコントロールを私が今後使うかどうかはもう少し経験をつまないとわからないが、今までのようにDataAdapterやDataTableを直接使う方が、私にとっては結局、開発効率がいいのかもしれない。
また、ASP.NETの方では、SqlDataSourceなどがある。AccessDataSourceでパスワード付きの接続が使えないなど、簡易さを目指したコントロールの融通さがないところが目立つようである。しかし、ObjectDataSourceというビジネスロジックを組み込める3層モデルのDataSourceがあるので、これを使えばかなりのことはできそうな気もする。じゃぁ、最初からObjectDataSourceを使っとけっていうことになるのかもしれない。この辺りも今後まとめたいところである。
TableAdapterなどの簡易コントロールを新規に追加して、しかもそれを全面に押し出すというのは、簡単にアプリケーションができますということを強調したいためではなかろうか? DataSetなどが最初からデザインのツールに表示されていないのも、多くのコントロールを表示させて、使用者を混乱させたくないからなのだと思う。いや、むしろ初心者を混乱させたくないのであろう。これは、Express Editionを無料配布するなど、Visual Studioを普及させようとすることと一致する。
私はこのことに対して反対ではない。むしろ、初心者からの敷居を低くしたことは大いに評価できる点だと思う。しかし、我々のようなある程度開発経験を積んでいる人間にとっては、かえって混乱してしまう。
新しく追加されたこれらラッパーともいえるコントロール群について、できることできないことを整理し、実質的に初心者向けの簡易コントロールであるのかどうかを、今後検証していきたい。
いずれにしても、今まではDataSetやDataAdapterしかなかったわけで、それに加えてたとえ簡易ラッパーコントロールだとしても、TableAdapterが提供されるのは良いことだと思う。TableAdapterの存在理由は何であろうか?それが初心者からの敷居を低くするということであれば、操作が簡易でなければならない。ならば簡易ラッパーコントロールという姿が、本来の姿であろう。初心者がこの機能で満足できなくなった時に、DataAdapterなどを直接いじればいい。そんな筋書きになるのではなかろうか? じゃぁ、我々のようなある程度の経験者は、どういう基準で使い分ければいいのであろうか? TableAdapterは初心者向けだけではなく、開発効率を高めるメリットも秘めている。だからこそ、悩むわけである。
そして、誰もがそれぞれのコントロールの正しい位置づけを認識し、有効に使い分けてもらいたいと願うのである。