3つの層(名前空間を含む)があるとします。
- ユーザーインターフェイス(
App.UI
)-ビジネスレイヤープロセスを呼び出し、オブジェクトを使用して通信します - ビジネスレイヤー(
App.Core
)-プロセスを調整し、オブジェクトを使用してDALレイヤーを使用します - DAL(
App.Data
)-ストアを直接操作し、オブジェクトを永続化します
Userテーブルがあり、DALレイヤーに反映されているとしましょApp.Data.User
うApp.Data.Users
。
UIには、アプリケーションユーザーを表示するビューがあります。
分離された(階層化された)アプリケーションを実際に作成するには、アプリケーションも用意する必要がApp.Core.User
ありApp.Core.Users
、おそらく手動で作成する必要があります。
もちろん、(私の意見では)最善の解決策は次のようになります。クラスと。を含む第4層のBusiness Objects(App.Objects
)が必要です。これらのPOCOは、すべてのレイヤーで共有されます。ビジネスレイヤーはDALの使用のみが許可され、UIはBLの使用のみが許可されますが、それらはすべて共通のオブジェクトモデルに使用されます。App.Objects.User
App.Objects.Users
App.Objects
Asp.net MVCテンプレートは、ビューで直接DALオブジェクトを使用することを意味します。LINQ2エンティティは、POCO自体も作成しません...
では、自動コード生成を使用する場合、DALオブジェクトを使用するのか、それとも共有POCOを手動でハードコーディングするのでしょうか。最初の部分は簡単な方法のように見えますが、 DALをUIから分離していません(後でセキュリティとスケーラビリティの問題が発生する可能性があります)。2番目の部分はエラーが発生しやすく、中規模のデータベースでは非常に面倒です。
あなたは何を提案しますか?