2012-05-09 4 views
0

レポート用のモデルとサービスがあります。それは非常に簡単です: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に変換してグリッドにバインドします。私のアプリケーションサービスがこのモデルを返すのは良い習慣ですか?

+0

アプリケーションの主な目的がレポート生成の場合、これは「ビジネス」レイヤーに属します。しかし、これが大きなアプリケーションの一部にすぎない場合は、おそらく「UI」レイヤーに属しています。レイヤーを使用しないので、通常この問題に遭遇することはありません。代わりに、私はお互いに話すサブシステムを持っています。たとえば、Reportingサブシステムでデータベースサブシステムと通信することができます。 –

答えて

0

Generateメソッドにビジネスロジックが含まれていることが予想されますので、これはビジネスレイヤーに属します。私はしかし、Reportオブジェクトを返すgenerateメソッドを期待し、あなたのプレゼンテーション層では、それをReportからPDFに変換することができます。

+0

あなたの答えをありがとう。私は私の質問を編集しました。したがって、コード全体がドメイン/ビジネス層に属し、プレゼンテーション層には含まれません。右? – LuckyStrike

+0

ビジネスロジックはビジネスレイヤに属し、プレゼンテーションレイヤにはプレゼンテーションコードが含まれます。 – Steven

関連する問題