The road to C# master trapemiya

C#を中心に、.NETの話題を取り上げます。

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  256  : 記事  1  : コメント  10234  : トラックバック  30

ニュース

Since 2005年10月26日

わんくま同盟

わんくま同盟

Microsoft MVP


Visual Developer - Visual C#

記事カテゴリ

書庫

日記カテゴリ

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は初心者向けだけではなく、開発効率を高めるメリットも秘めている。だからこそ、悩むわけである。

そして、誰もがそれぞれのコントロールの正しい位置づけを認識し、有効に使い分けてもらいたいと願うのである。

投稿日時 : 2005年11月8日 16:16

コメント

# re: TableAdapterなどへの雑感 2005/11/09 11:16 えムナウ
初心者に優しいというのは同感。

上級者に関しては「partialやprotectedにしておいたのでうまくやってね」という印象。
どうせ、皆が満足できるのは提供できないし。
そんな気がします。
hogeDataSet.Designer.cs ではなく hogeDataSet.cs に作っていく方向ですね。


# re: TableAdapterなどへの雑感 2005/11/09 15:36 trapemiya
コメントありがとうございます。結局、私としてはDataAdapterが隠蔽されてしまっているようで、手も足も出ないところが今の一番の不満なんです。hogeDataSet.Designer.csを見る限り、難しそうなんですが、私がしらないだけで何か上手い手があるのかもしれません。

# re: TableAdapterなどへの雑感 2005/11/10 0:02 中博俊
なぜ隠蔽化したか?
それはObsoletedになってもらうためです。
DataAdapterの存在は一回忘れてみましょう。

# re: TableAdapterなどへの雑感 2005/11/10 11:24 trapemiya
ただ、同時実行制御などを考えると、DataAdapterのRowUpdatedイベントなんかを使いたいわけです。えムナウさんのようにしてpartialなクラスからできそうなので、今度試してみようと思います。
DataAdapterを直接使うことはなく、常にTableAdapterを使い、必要に応じて、その中に隠蔽されているDataAdapterを弄るのかなと今は思っています。DataAdapterを最初から直接使わないという意味では、おっしゃる通りObsoletedだと思います。

# Топик 2 2010/11/14 1:33 gen-p.ru
Всем Доброе утро! Интересуетесь судьбой планеты или биологией? тогда вам сюда - http://gen-p.ru/19121020

# dQpkyCvRpwQYpQWgYf 2013/03/22 23:03 http://crork.com/
3pV9P6 Thanks a lot for the blog article.Thanks Again. Keep writing.

Post Feedback

タイトル
名前
Url:
コメント