вторник, 10 декабря 2013 г.

Использование AppFabric DataCache

Столкнувшись с необходимостью где-то временно сохранять данные в решении для SharePoint, сразу вспомнил про службу распределенного кэша. Начал искать варианты использование этой службы в коде, но гугление, ничего не дало; просмотр исходного кода библиотек SharePoint окончательно расстроил: все нужные классы помечены как private, надежда использовать встроенный механизм растворилась.

Но сдаваться не в наших традициях, поэтому сразу оформился вариант непосредственно использовать службу AppFabric DataCache. Оказалось, что использовать её вообще проще простого. Нужно, чтобы служба была установлена, и хосты SharePoint были к ней подключены. Но если служба распределенного кэша настроена и работает, то это условие уже выполняется автоматически. Так что устанавливать и настраивать дополнительно ничего не нужно. Единственно что требуется, так это создать собственный кэш (если конечно мы не хотим использовать кэш по умолчанию default). Создается кэш с помощью команды PowerShell New-Cache (подробно об администрировании кэша смотри тут). Программным путём создать кэш, судя по всему, нельзя, по крайней мере, на официальных страницах Microsoft я ничего об этом не нашёл.

На программном уровне работа идет через класс DataCache. Получить его нужно с помощью класса DataCacheFactory.

Конфигурация задаётся или с помощью конфигурационного файла:

Или программно, например, так:

Пример записи в кэш:

Чтение из кэша:

CachingManager здесь - мой класс, возвращающий DataCache по имени. Используется SPSecurity.RunWithElevatedPrivileges, так как работа с кэшом требует особых разрешений, которых у обычного пользователя может не быть.


Комментариев нет:

Отправить комментарий