私は、自分のウェブサイトをstackoverflowのように始めました。契約の開発者なので、私は多くの場所であったし、この結果を達成するための多くの異なる方法を参照してください、私は行くよ方法は..ですn-Tierアーキテクチャーのフィードバックが必要
プレゼンテーション(ウェブ)
ビジネス・レイヤー(昔ながらのエンティティましたクラスとBL層)ストアドプロシージャを経由してSQL Serverへ
データ・レイヤー(DAクラス)
私の質問は、主にビジネスレイヤに関するものです。今私はEntity名前空間とBusinessLogic名前空間を持っています。
BLには、DAとエンティティへの参照があります。これビジネスロジック - エンティティは、私は本当にBL内で発生するエンティティにデータを回すのすべての私のチャーニングをしたい
(DAは、BLまたはエンティティの「気付かない」である)DA への参照をしています。しかし、必要に応じてEntityがBLにアクセスできるようにして、EntityのDLへの参照を削除したいと思っています。
そう...
されていますが、彼らは一緒に仕事ができるように、同じ名前空間内BLとエンティティオブジェクトを持っている「間違った」のですか?
基本的に、私は従業員(古典的な例、えっ?)のようなエンティティオブジェクトを持っており、従業員は、この従業員に報告し、他のEmployeeオブジェクトのハッシュテーブルを返します
public Hashtable[] SubordinateEmployees
性質を持っていしようとしています。しかし、私はそれが必要になるまでロードしたくありません。ほとんどの従業員にとって、プロパティは決してアクセスされませんが、それが行われると、DAを呼び出すBLへの呼び出しで自動的にロードされます。
質問には意味がありますか?
もしそうなら、私の解決策はありますか?
ありがとうございます!
私が懸念しているのは、それらをまとめて1つのオブジェクトにまとめたものです。これにより、必要に応じて再帰などが可能になります。組織図を上下にナビゲートするのと同じように。それ以外の場合は、2つのオブジェクトを維持するか、コードを両方ともフェッチして、ハッシュテーブルを書き込み可能な小道具に格納する必要があります。 – klkitchens
あなたはそのようにすることができますが、再帰がより高い結合度をもたらす利便性を交換することになります。 UIをBLのみに依存させる代わりに、BLの役割を侵害するEntityオブジェクトがあります。将来的には物事を変えるのが難しくなります。それはトレードオフです。 – Welbog
最終的にはあなた次第ですが、可能な限り多くの場合、カップリングを避けたいと思っている時間は大部分です。 – Welbog