Предложения по замене для EntLib PolicyInjection - PullRequest
0 голосов
/ 25 апреля 2011

В настоящее время мы используем внедрение политики корпоративной библиотеки для кэширования в нашем хранилище доступа к данным, например,

открытый интерфейс IClientStatusRepository {[CachingCallHandler (24, 0, 0)] IList GetAll ();}

var clientStatusRepository = PolicyInjection.Wrap (new ClientStatusRepository ());

Это хорошо работает для нас, потому что его декларативное и абсолютно не имеет файлов конфигурации.Он также спрятан за нашим собственным заводским образцом, поэтому его легко заменить.

Мы начали искать альтернативные решения.Основная причина поиска альтернатив заключается в том, что мы поняли, что нам нужно изменить способ истечения срока действия контента из кэша asp.net.Кроме того, мы хотим ввести распределенный кеш (MemCached или AppFabric) и хотим иметь возможность декларативно высылать объекты из кэша

Может кто-нибудь предложить некоторые альтернативы, которые они в идеале использовали с распределенным кешем.Если решение требует конфигурации для каждого класса, оно будет автоматически исключено.Аспекты должны быть декларативными в коде.

Спасибо

Крейг

1 Ответ

1 голос
/ 26 апреля 2011

Написание обработчиков вызовов довольно просто.В качестве примера у вас также есть источник обработчика кэширующих вызовов.Напишите собственный обработчик вызовов, который вызывает систему кэширования, которую вы хотите использовать.

Имейте в виду, что это поведение кеширования сложнее, чем кажется, и обработчик Entlib допустил достаточно ошибок, чтобы мы его вытащили, а не пыталисьисправьте это для Entlib 5. В частности, он «пропускает» результаты по пользователям в веб-проекте, поскольку кэш-память предназначена для каждого приложения.А разумное формирование ключа кэша перед лицом произвольных параметров произвольных типов - непростая проблема.

...