適切に設計されたプロジェクトの概念を理解しようとしています。
ASP.NET MVC を使用しており、階層化された (プラグ可能な) プロジェクトを作成しようとしています。
私が今持っている現在のプロジェクト構造はこれです:
LayeredProject
- コントローラーを含む MVC プロジェクトLayeredProject.EntityFramework
- データベースに使用されるすべての POCO クラスが含まれています。(私はCode Firstアプローチを使用しています)LayeredProject.Model
- これには、プロジェクトで使用されるすべてのビジネス オブジェクトが含まれている必要があります。
プロジェクトが e コマース Web サイトであると言うと、次のように構成します。
プロジェクトには
LayeredProject.EntityFramework
、データベース テーブルに対応するクラスがあります。カテゴリ、製品、ユーザー。このプロジェクトは、データベースからのデータの保存と読み込みにのみ使用され、これらのオブジェクトは他の目的には使用しないでください。このプロジェクトにはプロジェクトへの参照がありLayeredProject.Model
ます。プロジェクトでは、使用するすべてのオブジェクトを保存します。
LayeredProject.Model
それらのほとんどは、LayeredProject.EntityFramework
POCO のオブジェクトと使用される他のサービス クラスの正確なコピーです。LayeredProject
すべての ViewModels クラス、コントローラー、およびさまざまな UI ロジックを保持します。このプロジェクトにはプロジェクトへの参照がありLayeredProject.Model
ます。
まず第一に、これがこれを行う正しい方法であるかどうかはわかりません。
EntityFramework
そして、これが正しい方法である場合、プロジェクトとプロジェクトでPOCOクラスの複製が作成されるため、少し混乱しModel
ます。
これを理解するのを手伝ってください