何となく Blog by Jitta
Microsoft .NET 考

目次

Blog 利用状況
  • 投稿数 - 761
  • 記事 - 18
  • コメント - 36515
  • トラックバック - 222
ニュース
  • IE7以前では、表示がおかしい。div の解釈に問題があるようだ。
    IE8の場合は、「互換」表示を OFF にしてください。
  • 検索エンジンで来られた方へ:
    お望みの情報は見つかりましたか? よろしければ、コメント欄にどのような情報を探していたのか、ご記入ください。
It's ME!
  • はなおか じった
  • 世界遺産の近くに住んでます。
  • Microsoft MVP for Visual Developer ASP/ASP.NET 10, 2004 - 9, 2011
広告

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

その他

わんくま同盟

同郷

 

毎度やり玉に挙げて申し訳ないです。@IT の Insider.NET 会議室から。

件名:[C#2005/Windowsアプリ]複数行あるDBデータの保持方法(Insider.NET 会議室)より:

whileでまわす→コントロール名は1,2,3となってるのですが、例えば


i=1; 
SqlDataReader rdr = sqlCmd.ExecuteReader(); 
while (rdr.Read()) 
{ 
    txtBox(i).Text = rdr["textdata"].ToString(); 
    textHoge(i).Text = rdr["hogedata"].ToString(); 
    i++; 
}

という風にコントロール名に可変の数字を入れてもできないな・・・と。

前に、自分のところのことでも書いたけど、こういう、表示してあるデータが直接バックエンドのデータになっているのって、どうなんでしょうね。

Model View Control でも、Document & View でも、アーキテクチャはどうでもいいのですが、User Interface は、魅せることに専念した方がいいのではないかと思うのです。

この質問であれば、Aテーブルと Bテーブルに相当するデータ クラスと、そのコレクション クラスを作り、コレクション クラスを表示用コントロールのデータソースとしてバインドする、と。

なんでこっちの方がいいか。

変更に強いからです。今は Windows Form で作っているかもしれません。しかし、今後 WPF でやってねと言われるかもしれません。このとき、フロントエンドとバックエンドと直につながっているものを修正する修正量と、フロントエンドのプロパティをチョコチョコと修正する修正量と、どちらが多いか。

修正量だけではありません。直結していると、フロントエンドに入力の検査をコーディングすることになります。入力値の検査は、フロントエンドの変更には依存しないはずです。それなのに、修正しなければなりません。修正したら、テストをしなければなりません。

テストをする時も、UI をテストするのに、自動化ツールを使うのは困難です。しかし、UI とデータが分離していれば、データを扱う部分のテストはほとんど自動化できます。

こういうことにかかるコストを、どう見ますか?

投稿日時 : 2007年10月16日 22:24
コメント
  • # re: コントロールの情報=データベースの情報?
    Jitta
    Posted @ 2007/10/16 22:27
    前のネタ
    http://blogs.wankuma.com/jitta/archive/2007/09/15/96410.aspx
  • # re: コントロールの情報=データベースの情報?
    まどか
    Posted @ 2007/10/16 23:29
    > User Interface は、魅せることに専念した方がいいのではないかと思うのです。

    同意。
    私のポリシーそのものです。

    リストビューでListViewItem.TextやSubItems(n).Textを処理のデータとして使用することはありません。
    必ず基オブジェクトの参照をリンクしておきそれを使用しています。
  • # re: コントロールの情報=データベースの情報?
    Jitta
    Posted @ 2007/10/17 7:45
    コメントありがとうございます。

    ひっぺがすのに苦労していますorz
    貧民的プログラムの一種、メモリが少なかった頃のレガシィですかねぇ?
  • # データセットかぁ…
    .COM -どっとこむ-
    Posted @ 2007/10/17 9:51
    データセットかぁ…
  • # re: コントロールの情報=データベースの情報?
    choir
    Posted @ 2007/10/17 12:49
    後でメンテする人が理解できないので全部直結して書けと言われています。
    (実際は、リーダーとその周辺だけが理解できないわけですが)
    何でそんなことがまかり通るかというと、
    いわゆる社内政治だのなんだのとゆー話で。

    …1年後の現在、予想通りに火を噴いて
    何かを修正する度に大きなコストがかかっています
    i||i ●| ̄|_ i||i
  • # re: コントロールの情報=データベースの情報?
    Jitta
    Posted @ 2007/10/17 20:49
    choirさん、コメントありがとうございます。

    えっと...ご愁傷様です(ー人ー)
タイトル
名前
Url
コメント