Зависимость SqlCacheDependency в n-уровневой архитектуре
-
23-08-2019 - |
Вопрос
Я прочитал несколько статей о SqlCacheDependency.Я думаю, что это действительно классный способ обновления кэшей, но я не уверен, как я смогу справиться с этой технологией, если мое приложение представляет собой n-уровневую архитектуру.
Полезно ли это только в том случае, если моя программа представляет собой небольшое веб-приложение, или есть также способ использования в больших n-уровневых архитектурах?
Решение
Вы можете создать свой собственный интерфейс ICacheDependency и использовать фабричный класс для предоставления вам соответствующего объекта.Таким образом, ни вашему DAL, ни BL не нужно ссылаться на System.Пространство имен Web.Вы можете поместить этот фабричный класс на общий уровень и ссылаться на него на уровне пользовательского интерфейса.
MS Petshop 4 использовала что-то вроде этого, возможно, вы захотите последовать этому примеру.
Другие советы
В этом случае вам нужно, чтобы ваш DAL вернул вам объект, производный от абстрактного класса CacheDependency, который выполнял бы то же самое, что и SqlCacheDependency, но оптимизированный для вашего DAL.
Это, конечно, провал разделения интересов, но если вам нужна зависимость, это лучший способ.