レポート用のモデルとサービスがあります。それは非常に簡単です:DDD:レポート用レイヤー(モデル/レポートモデルの表示)
public class ReportService
{
public Report Generate(){//}
}
public class Report
{
string Title;
List<ReportField> Fields;
}
public class ReportField
{
string FieldName;
string FieldValue;
}
出力に含まには次のようになります。
ReportTitle
お客様:Fooの
金額:50.5
数量:100
私の質問をされますこれはどの層に属していますか?これはViewModelですか?私はそれをpdfに出力し、Excelに変換してグリッドにバインドします。私のアプリケーションサービスがこのモデルを返すのは良い習慣ですか?
アプリケーションの主な目的がレポート生成の場合、これは「ビジネス」レイヤーに属します。しかし、これが大きなアプリケーションの一部にすぎない場合は、おそらく「UI」レイヤーに属しています。レイヤーを使用しないので、通常この問題に遭遇することはありません。代わりに、私はお互いに話すサブシステムを持っています。たとえば、Reportingサブシステムでデータベースサブシステムと通信することができます。 –