Cache зависимости для SPList и SPListItem

Как все мы прекрасно знаем, что ASP.NET  предоставляет нам великолепную реализацию кэша для веб-приложений (Cache из HttpContext). Передо мной, как разработчиком приложений под платформу sharepoint, преимущества данного кеша не получится использовать на 100%, используя стандартную модель, однако, нет предела совершенству ;).

В рамках данной заметки хотелось бы рассказать о (далее из MSDN) CacheDependency — классе, который устанавливает отношение зависимости между элементом, хранящимся в объекте Cache приложения ASP.NET, и файлом, ключом кэша, массивом обоих или другим объектом CacheDependency. Класс CacheDependency отслеживает отношения зависимости, и при изменении любого из них, кэшированный элемент удаляется автоматически.

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

Реализовать  CacheDependency для объектов sharepoint, таких как SPList и SPListItem. На этом моя часть «идейная» временно приостановилась пару месяцев назад, т.к. данный функционал будет востребован в моей практической деятельности только через несколько месяцев, но есть отличный ресурс Codeplex, пользователи которого встречаются с подобными проблемами и упрощают мне жизнь. Итак, встречайте:

Проект SharePoint Cache Dependencies.

Реализация SPListCacheDependency основана на предоставляемом SPList свойстве LastItemModifiedDate, в котором хранится время последнего изменения объекта.

Реализация SPListItemCacheDependency основана на отслеживании времени создания последней версии SPListItem в хранилище.

Решение крайне элегантное и заслуживает искренней благодарности.

Реклама


Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s