- PR -

型指定したDataSetの整理

1
投稿者投稿内容
鎌田
常連さん
会議室デビュー日: 2003/09/23
投稿数: 45
投稿日時: 2006-05-31 12:04
過去にVS2003+Npgsql+PostgreSQLでアプリケーションを作成した際は、Npgsqlではデータベースウィザード類が動作しなかったので、型指定なしのDataSetを用い、必要に応じてコードでColumnを定義したDataTableを利用していました。

今回VS2005に更新したのを機に、MDBで作るアプリケーションでは、データソース構成ウィザードを利用して型指定したDataSetを使おうとしています。

ところが、型指定したDataSetをフォームにポトリ・ペタリでウィザードを利用して作成すると、@型定義(.xsd)ファイルが多数発生して管理しにくい上に、A選択リストのソースになる「hoge区分一覧」のような、プロジェクトの各所で使いまわしできるDataTableの置き場に悩む、Bconnectionを個々に内包するTableAdapterが作られてしまう(なんとなくconnectionの無駄遣いに見える+Transactionが同一のものになるか不安)
といった点でアプリケーションの構成に悩んでいます。

単にTableAdapterとかTransactionScopeとか、ADO.NET 2.0についていけていないだけなのですが、型指定したDataSetをお使いの皆さんは、どのようなDataSet+Adapter構成にされているのでしょう。

@は、フォームごとに.xsdファイル(ex. mainFormDataSet.xsd)を作り
Aは、プロジェクト単位で.xsdファイル(ex. appNameDataSet.xsd)を作り
Bは、TableAdapterを受け入れ、TransactionScopeでトランザクションをかける
というのが妥当なんでしょうか。
めだか
大ベテラン
会議室デビュー日: 2004/11/11
投稿数: 109
投稿日時: 2006-05-31 12:32
私は
4.型指定データセットは使わない、ウィザードも使わない、SQLは全部手書き
です
Connectionは使いまわすので別クラスでDLL化しています
もふー。
会議室デビュー日: 2005/09/15
投稿数: 10
お住まい・勤務地: かながわ→なごやん
投稿日時: 2006-05-31 12:57
引用:

めだかさんの書き込み (2006-05-31 12:32) より:

4.型指定データセットは使わない、


非常に疑問です。これはなぜなんでしょう? (;´・ω・`)???
(その後にある2つはわかりますが・・・)

引用:

Connectionは使いまわすので別クラスでDLL化しています


これも疑問です。理由をお聞かせ願えれば幸いです。
(コネクションプーリングがある今、そうする理由がわかりません)
鎌田
常連さん
会議室デビュー日: 2003/09/23
投稿数: 45
投稿日時: 2006-06-01 10:08
めだかさん、ご意見ありがとうございました。

現状の他によい構成も思いつきませんので、そのままやります。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-06-01 10:25
引用:

こりん@人口知能さんの書き込み (2006-05-31 12:57) より:
引用:

めだかさんの書き込み (2006-05-31 12:32) より:

4.型指定データセットは使わない、


非常に疑問です。これはなぜなんでしょう? (;´・ω・`)???
(その後にある2つはわかりますが・・・)



そうですね「データセットを使わない」でなく「型指定データセットを使わない」ですからね。
何か問題があるのか?、とか、こういう場合だと逆に使いにくい、などの理由があるのかな〜?、などと想像は膨らみます。
めだか
大ベテラン
会議室デビュー日: 2004/11/11
投稿数: 109
投稿日時: 2006-06-01 10:52
型指定データセットを使わない理由
ただめんどうなだけというか使えば楽になるの??というのが
あまり理解できてないだけかも。
SQLを書いてる時点で型はわかってますのでその都度Castすればいいかなと
データ連結もウィザードも使わないので・・・
逆に使えばこんなに楽になるんだ!というのがあれば教えて欲しいです

>Connectionは使いまわすので別クラスでDLL化しています
これは間違いでした、接続文字列だけ別クラスで管理しています
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-01 11:13
引用:

めだかさんの書き込み (2006-06-01 10:52) より:

型指定データセットを使わない理由
ただめんどうなだけというか使えば楽になるの??というのがあまり理解できてないだけかも。
SQLを書いてる時点で型はわかってますのでその都度Castすればいいかなと


脱線ネタで長くなりそうなので、この部分だけに反論します。(長くなりそうであれば、別スレッド行きですね)

簡単に言えば、「キャストはない方が良い」です。
CLR の主役は型ですから、型は厳密な方が良いです。(ポリモーフィズムは除く)
(ポリモーフィズムを除いた) キャストは「コンパイル解決」できていないわけです。

個人的には、ストアドの結果を DataSet に格納する時に重宝しています。(たいてい、ASP.NET ですが)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2006-06-01 11:17
NAL-6295です。

型付データセットを利用した場合、
型付データセットを変更すると、それに該当する箇所が
軒並み、コンパイルエラーになるのが、嬉しいですね。
逆に型付じゃないと、コンパイルエラーにならないのが、
ヒューマンエラーを起こす原因となるので怖いです。
1

スキルアップ/キャリアアップ(JOB@IT)