Общий механизм кэширования для .NET - PullRequest
2 голосов
/ 04 февраля 2009

У меня есть библиотека классов, в которой есть класс Person. Класс Person включает свойство для CountryName и CountryCode. CountryCode - это значение, хранящееся в таблице Person. CountryName извлекается из прилагаемой справочной таблицы.

Поскольку сопоставление между CountryName и CountryCode вряд ли когда-либо изменится, я чувствую себя комфортно, используя кэширование для поиска в бизнес-объекте Person.

Моя библиотека классов будет использоваться в будущем для сайтов ASP.NET, а также для консольных и Windows-приложений. Каков надлежащий механизм для реализации этого типа общего кэширования? (обратите внимание, немного «g», а не .NET Generics)

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

1 Ответ

2 голосов
/ 04 февраля 2009

Я использую Enterprise Library Caching Application Block для кэширования на каждом уровне моего приложения. В ASP.NET я использую встроенный кеш ASP.NET.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...