C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[1]: ビジネス・ロジック層とデータ・アクセス層の境界
(過去ログ 43 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 7 記事 (1 - 7 表示)] <<
0
>>
■22958
/ inTopicNo.1)
ビジネス・ロジック層とデータ・アクセス層の境界
▼
■
□投稿者/ やじゅ
(519回)-(2008/08/06(Wed) 13:48:36)
分類:[設計/仕様]
やっと階層を意識して、プログラムを組むようになったのですが、
それまでフォーム内にまとめることが多かった・・・反省w
ビジネス・ロジック層とデータ・アクセス層の境界がいまいち
分かってません。
SQL文は書くのはどっち?
ExecuteQueryメソッドなどデータ取得は、共通ライブラリ側で作成
してしまっているので、基本的にSQL文記述して呼ぶだけなんだよね。
引用返信
編集キー/
編集
■22974
/ inTopicNo.2)
Re[1]: ビジネス・ロジック層とデータ・アクセス層の境界
▲
▼
■
□投稿者/ もょもと
(2回)-(2008/08/06(Wed) 15:57:47)
> SQL文は書くのはどっち?
SQL文を発行するのは、データ・アクセス層ではないでしょうか。
引用返信
編集キー/
編集
■23000
/ inTopicNo.3)
Re[1]: ビジネス・ロジック層とデータ・アクセス層の境界
▲
▼
■
□投稿者/ 小春
(77回)-(2008/08/06(Wed) 19:11:58)
■
No22958
(やじゅ さん) に返信
Javaをかじった小春です。
お世話になってるやじゅさんには恐れ多いことですが、
私も非常に興味があることですし、私がJavaをした経験で学んだことを…ご参考までに…。
Javaの開発モデルとして、Model・View・Controller(MVC)という手法があるそうです。
よくあるC#にSql文のみXml化されたり、ストアド化されたり、、
というのは全部ここから来てるのかと思いました。
思い出をポロポロ書き出したらキリがないので割愛しますが、
> ExecuteQueryメソッドなどデータ取得は、共通ライブラリ側で作成
> してしまっているので、基本的にSQL文記述して呼ぶだけなんだよね。
この部分はModelの一部に分類されるのかと。
なので、SQL文を記述する場所だけが切り出される形になり、
データアクセス層になると思います。
ですが、ただ切り出すだけ(オブジェクト化するだけ)では、
今後そのシステムに携わる人たちが苦労するので(苦労した人→私)、
一工夫、二工夫、いや、トンチかなぁ?がいると思います。
ちなみに、MVCはJavaの開発モデルとして推奨されているとのことなので、
あくまでWebアプリケーションの話になるのかなぁ…。
Windowsアプリケーションならではのオブジェクト指向設計が必要かと、
最近思ってみたりしてます(^^
この辺りは皆様はどう思ってらっしゃるのでしょう???
引用返信
編集キー/
編集
■23001
/ inTopicNo.4)
Re[1]: ビジネス・ロジック層とデータ・アクセス層の境界
▲
▼
■
□投稿者/ シャノン
(560回)-(2008/08/06(Wed) 19:38:20)
■
No22958
(やじゅ さん) に返信
> やっと階層を意識して、プログラムを組むようになったのですが、
> それまでフォーム内にまとめることが多かった・・・反省w
>
> ビジネス・ロジック層とデータ・アクセス層の境界がいまいち
> 分かってません。
>
> SQL文は書くのはどっち?
>
> ExecuteQueryメソッドなどデータ取得は、共通ライブラリ側で作成
> してしまっているので、基本的にSQL文記述して呼ぶだけなんだよね。
全然層分けできていない俺が言うのもアレですけども…
SQL を書くのはデータ層だと思いますが、ではどんな SQL を書くのか? というと、それはビジネスの知識がないと書けないんですよね。
必然的に、SELECT した結果を受け取るデータ構造も、ビジネスの知識に基づいた構造になりますね。
そのため、「データ層はビジネス層に対する依存関係を持たない」ってのは実現可能なのか? と思ってしまいます。
引用返信
編集キー/
編集
■23007
/ inTopicNo.5)
Re[1]: ビジネス・ロジック層とデータ・アクセス層の境界
▲
▼
■
□投稿者/ 紅の豚118
(7回)-(2008/08/06(Wed) 21:37:42)
■
No22958
(やじゅ さん) に返信
> ビジネス・ロジック層とデータ・アクセス層の境界がいまいち
> 分かってません。
>
> SQL文は書くのはどっち?
>
> ExecuteQueryメソッドなどデータ取得は、共通ライブラリ側で作成
> してしまっているので、基本的にSQL文記述して呼ぶだけなんだよね。
素人考えで申し訳ないのですが・・・データ・アクセス層かなと思います。
マルチデータベース対応を仮定したとき、利用するSQL文によっては、そのデータベースに依存する記述がでてくると思います。その違いを吸収する場所をビジネス・ロジックにしてしまうと、ビジネス・ロジックがデータベースの種類を気にしないといけなくなります。データ・アクセス層で吸収しておけば、ビジネス・ロジックに手をいれることなく、複数のデータベースに対応できる気がするのです。
引用返信
編集キー/
編集
■23008
/ inTopicNo.6)
Re[1]: ビジネス・ロジック層とデータ・アクセス層の境界
▲
▼
■
□投稿者/ THREE-ONE
(9回)-(2008/08/06(Wed) 23:46:50)
> ExecuteQueryメソッドなどデータ取得は、共通ライブラリ側で作成
> してしまっているので、基本的にSQL文記述して呼ぶだけなんだよね。
この共通ライブラリがデータアクセス層でもいいような気がする。
モデルを多用するなら、そこに SQL を書いた方がいいかもしれないけど、一律 DataTable, DataSet を使うなら別にさらにデータアクセス層を作らなくてもいいかなぁと思います。
引用返信
編集キー/
編集
■23012
/ inTopicNo.7)
Re[2]: ビジネス・ロジック層とデータ・アクセス層の境界
▲
▼
■
□投稿者/ やじゅ
(520回)-(2008/08/07(Thu) 00:30:19)
コメントを頂いたみなさま、ありがとうございます。
SQL文は、データ・アクセス層で良さそうですね。
現状そのように作成しております。
マルチデータベース対応を仮定した場合、その違いを吸収する旨は
他の開発者に説明する上で納得できそうな話ですね。
各層の開発
http://www.atmarkit.co.jp/fdotnet/vblab/bizappbasic02/bizappbasic02_02.html
解決とさせて頂きます。
解決済み
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-