DataSet or オブジェクト
「DataSet or オブジェクト」についてのリンクやメモ(意訳含む)。主に.NET1.1の内容です。
-
- 以下の4つの視点で「DataSet vs オブジェクト」を切り分け
- Databaseドリブン派 vs Domainドリブン派?
- RDBを先に設計する派(DataGateway/TableModule) vs クラスを先に設計する派(DataMapper)?
- 使いきりアプリケーション派 vs 進化型アプリケーション派?
- 初心者開発者 vs 経験を積んだ開発者 ?
- 開発手法や技術者レベルに応じてプロジェクト指向で検討してね。というまとめ
- 以下の4つの視点で「DataSet vs オブジェクト」を切り分け
-
- 選択肢は「DataSet」「型付DataSet」「カスタムクラス(オブジェクト)」「XML」の4つ
-
- 「DataSet」の特徴
- ウィザードとデザイナで簡単。
- XMLやDBなど様々なデータを統合し取り扱うことができる。
- SQLServer/ADO.NETとの適応を考えるともっとも自然な選択。
- 基本機能が十分なので開発費が増大しない
- 件数が多すぎる場合、パフォーマンスに懸案
- データベース指向とVisualStudioデザイン設計を無意識に強制する
- DataSetは多機能で総括的であるが、データのEntityではない
- これらはWebServiceを使うときに問題となる(WebServcieとDataSetは共用すべきではない)
- 「DataSet」の特徴
-
- 「カスタムクラス」の特徴
- リレーショナルモデルに強制されることなく欲しいデータを取得することができる
- テーブルの変更の影響を受けにくい
- ソースを書く(もしくは生成する)必要がある。
- データの振る舞いを追加できる。
- 「カスタムクラス」の特徴
-
- 「XML」は貧弱だから論外
- Mixiのスレッド(日本語)
- DataSet派が多いようです。
- Model/ Domain Objects vs DataSets(英語)
- Spring.NETの作者blog。他のページの意見をまとめてます。
- 型指定された DataSet を使用した .NET でのデータ転送オブジェクトの実装(日本語)
- 型付データセットの長所と短所整理
個人的にはオブジェクトが好きですが、簡単なサンプルを作っているときにはDataSetも便利だなぁと思います。ちなみにVisual Web DeveloperのサンプルアプリケーションではObjectDataSourceを使っているものが多いように感じました。