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