Tôi đang phát triển API Rest bằng cách sử dụng khung công tác của Ngăn xếp dịch vụ. Tất cả các lớp được tách ra để chúng tôi có thể thực hiện các chế độ DAL để kiểm tra đơn vị lớp logic kinh doanh.Trong lớp nào triển khai bộ nhớ cache?
Tôi đang cấu hình bộ nhớ cache với Inversion of Control:
container.Register<ICacheClient>(new MemoryCacheClient());
đâu MemoryCacheClient
là một lớp đơn giản mà thực hiện ICacheClient
với một vài phương pháp.
Và đây là câu hỏi: Lớp tốt nhất trong đó bao gồm các cuộc gọi đến bộ nhớ cache thông qua đảo ngược điều khiển này là gì?
Nó có thể nằm trong BLL, nhưng nó sẽ không mang lại vấn đề cho các bài kiểm tra đơn vị?
Nó có thể là trong DAL, biết rằng tôi sẽ phải mất IOC? Và, trong trường hợp này, tôi sẽ phụ thuộc vào bộ nhớ cache của máy chủ web, điều đó có thể sai.
Có thể trong giao diện web, biết rằng tôi có thể có một số logic ở đây và thậm chí mất một số tính năng?
Có thể giữa giao diện web và BLL, tạo một lớp mới?
tôi đã tìm kiếm rất nhiều và đọc một số bài báo, nhưng không có may mắn:
Help with debate on Separation of concerns (Data Access vs Business Logic)
http://www.velocityreviews.com/forums/t639532-3-tier-design-and-cache-for-asp-net-3-5-a.html
- http://forums.asp.net/t/1795015.aspx/1
Cảm ơn