私は、どの層がドメイン駆動型設計プロジェクトのキャッシュ(挿入/削除)作業を担当するべきかを判断しようとしています。目標は、リポジトリから取得されたエンティティをキャッシュすることによって、Webアプリケーションのパフォーマンスを向上させることです。次のようにリポジトリ、ドメインまたはアプリケーションのキャッシュに問題がありますか?
私のソリューションを分離し:
MyApp.Infrastracture
MyApp.Repositories
MyApp.Domain
MyApp.WebApplication
私はそれがキャッシュを利用のみWebアプリケーションなので、キャッシング・ロジックが行く必要があることをこの層であることを感じますか?しかし、私はWebアプリケーションを軽量に保ち、Webページを提供することに重点を置いているので、これは正しいとは感じません。
また、キャッシングはファーストクラスのドメイン概念ではないため、ドメイン層に自然に適合しません。
どうすればよいですか?
これはすべて上記の問題です。キャッシングは、各レイヤーが個別に処理する必要があるクロスカッティングの問題の1つであり、アプリケーションはオーケストレーションする必要があります。 – Oded
@Oded - そのコメントを回答にする必要があります。 –
@David Kemp - done ... – Oded