Zajmuję się tworzeniem interfejsu API odpoczynku przy użyciu frameworku Service Stack. Wszystkie warstwy są rozdzielone, dzięki czemu możemy tworzyć wykroje DAL do testowania jednostek warstwy logiki biznesowej.W której warstwie zaimplementowano pamięć podręczną?
mam konfigurowania pamięci podręcznej z inwersją sterowania:
container.Register<ICacheClient>(new MemoryCacheClient());
MemoryCacheClient
Gdzie jest prosta klasa, która implementuje ICacheClient
z kilku metod.
Tutaj pojawia się pytanie: Jaka jest najlepsza warstwa, w której można zawrzeć połączenie z pamięcią podręczną poprzez tę inwersję kontroli?
Może to być BLL, ale czy nie spowoduje problemów z testami jednostkowymi?
Może być w DAL, wiedząc, że musiałbym stracić IOC? W takim przypadku będę zależał od pamięci podręcznej serwera WWW, która może być błędna.
Może to być interfejs sieciowy, wiedząc, że mogę tu mieć jakąś logikę, a nawet stracić niektóre funkcje?
Może to być między interfejsem WWW a BLL, tworząc nową warstwę?
Rozglądałem się wiele i przeczytać kilka artykułów, ale bez szczęście:
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
Dziękuję