C#とRazorにASP.NETMVC3があります。アプリケーションのアーキテクチャは、データアクセス層(EFクラス+リポジトリ)、サービス層、コントローラー、ViewModels、およびViewに分かれています。
私のアプリケーションはダッシュボードであり、グラフを使用して製品に関する統計を表示する必要があります。
Productとテーブルがあり、グラフに1か月あたりProductCategoryの販売率を表示する必要があるとします。x軸には月があり、y軸にはProductPerCategory / ProductTotalのパーセンテージがあるため、と同じ数の行があります。ProductsProductCategoryProductCategories
この場合、私のドメインモデルはEF上のオブジェクトによって作成されProductています。私のリポジトリは、これらのドメインオブジェクトをその上位層(サービス層)に提供します。ProductCategory
私のビジネスモデルはProductGraphオブジェクトによって作成され、サービスレイヤーはこのビジネスオブジェクトをその上位レイヤー(コントローラー)に提供します。
私のコントローラーはこのProductGraphオブジェクトを取得し、ビューに表示するためにビューモデル ProductGraphViewModelにマップします。
モデル間のこの区別は正しいですか?レイヤー間で渡されるオブジェクトの定義に不足や悪いアプローチはありますか?