2013-03-11 11 views
7

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:

Dziękuję

Odpowiedz

5

Twoje buforowanie nie musi być w żadnej warstwie. Możesz zachować go z dala od logiki biznesowej i logiki dostępu do danych, zawijając połączenia, które wykorzystywałyby buforowanie w dekorowanej metodzie i konfigurując użycie dekoratora buforowania w kontenerze IoC.

nie robiłem to przy użyciu ServiceStack konkretnie, ale wzór jest dobrze udokumentowane:

Powiązane problemy