2017-11-04 12 views
0

ASP.NET 프로젝트의 캐싱 레이어가 비즈니스 로직 레이어에서 작동하는 방법에 대한 유용한 조언을 찾고 있습니다. 특히, 캐싱 레이어가 캐쉬/캐시 가능한 개체 만 처리하고 다른 기능을 BLL로 전달하거나 캐싱 레이어가 BLL 대신 거의 캐싱 레이어와 캐싱 레이어 사이의 다리가되도록해야합니다. DAL?ASP.NET 캐싱 레이어 대 비즈니스 로직 레이어

내 머리를 긁적 거리는 좋은 예가 전자 상거래 웹 사이트의 바구니 기능입니다. Pre-caching layer는 항목을 BLL을 통해 DAL에 카트에 추가했습니다. BLL에는 아이템 유형 등을 검사하는 로직이 많이 있습니다. 이제 캐싱 레이어가이 로직의 일부를 담당해야합니까, 아니면 캐싱 된 정보를 함께 가져 와서 BLL로 전달해야할까요?

누구든지이 점에 대해 도움을 주시면 감사하겠습니다.

답변

0

모두 캐싱 할 대상에 따라 다릅니다. 질문을 올바르게 이해했다면 시나리오의 캐싱이 데이터 소스 대신 사용됩니다. 비즈니스 논리 또는 다른 계층을 대체하지는 않습니다. 장바구니 예에서 바구니에 항목을 넣으면 해당 항목을 영구 저장 장치에서 자주 가져올 필요가 없도록 캐시합니다. 그러나 항목을 자주 확인해야하는 논리가있는 경우에도 캐시 된 바구니의 항목을 확인하여 논리를 확인할 수 있습니다.

+0

감사합니다. @ TheBlueSky. 네, 제 질문을 정확하게 이해 했습니다만 최선을 다해 설명하지는 못했습니다. 내 예제에서는 데이터에 실제로 추가하는 중이지만 캐시와는 실제로 상호 작용하지 않습니다 (바구니를 캐싱하지 않기 때문에)하지만 BLL에서 기본 날짜를 반환한다고 가정 해 봅시다. BLL에 들어가고 캐싱 레이어를 통해 액세스되지만 이것은 매우 오래 지속 된 것 같습니다. 이것이 캐싱 레이어가있는 최상의 방법일까요? –

+0

여기 또 다른 완벽한 예제는 BLL에서 API와 상호 작용하는 부분입니다. 캐싱 레이어의 API에 추가 어셈블리 참조를 추가하고 BLL에서 실제 작업을 수행하는 '방법'이 될 수는 없습니다 ? –

+0

@JoeNinety, 사례를 설명 할 수있는 예제를 함께 넣을 수 있습니까? 아마 당신이 언급 한 날짜예요? – TheBlueSky