2017-11-04 3 views
0

ASP.NETプロジェクトのキャッシュレイヤーをビジネスロジックレイヤーでどのように動作させるべきかについてのアドバイスがあります。具体的には、キャッシングレイヤーがキャッシング/キャッシング可能なオブジェクトのみを処理し、他の関数をBLLに直接渡すか、キャッシングレイヤーがBLLの代わりになり、キャッシングレイヤーとキャッシングレイヤーの間のブリッジDAL?ASP.NETのキャッシュレイヤーとビジネスロジックレイヤー

これの良い例と私の頭を傷つけているのは、eコマースのウェブサイトのバスケット機能です。プリキャッシングレイヤーは、BLL経由でDALにカートに追加されました。 BLLには、アイテムのタイプなどをチェックするためのロジックがたくさんあります。キャッシュレイヤーはこのロジックの一部を担当するか、キャッシュされた情報をまとめてBLLに渡しますか?

私は誰にも助けていただきありがとうございます。

答えて

0

すべては、キャッシュする内容によって異なります。私があなたの質問を正しく理解していれば、あなたのシナリオでのキャッシュがデータソースの代わりになります。ビジネスロジックや他のレイヤーを置き換えるものではありません。 ショッピングバスケットの例では、アイテムをバスケットに置くと、それらのアイテムをキャッシュして、永続的なストレージから頻繁に取得する必要がなくなります。ただし、アイテムを頻繁にチェックする必要があるロジックがある場合でも、キャッシュされたバスケット内のアイテムをチェックすることによって、アイテムを頻繁にチェックする必要があります。

+0

ありがとうございます@ TheBlueSky。はい、あなたは私の質問を正確に理解しましたが、私ができる限り最善の方法で説明することはできませんでした。私の例では、データに実際に追加しているだけです(バスケットをキャッシュしていないため)キャッシュと実際にやり取りしていませんが、BLLの基本日付を返すだけですBLLに入り、キャッシングレイヤーを介してアクセスされますが、これは非常に長く巻き込まれているようです。これは、キャッシングレイヤーを配置した状態でベストプラクティスになるでしょうか? –

+0

もう一つの完璧な例は、ここで私がBLLのAPIとやりとりしているところです。キャッシングレイヤのAPIにアセンブリ参照を追加してBLLの実際の作業を行う方法は間違いありません? –

+0

@JoeNinety、あなたの事例を示す例をまとめることができますか?多分あなたが言及した日付の例? – TheBlueSky

関連する問題