Кэш объектов в решении песочниц
-
22-10-2019 - |
Вопрос
Я строю решение для песочницы SharePoint, которое состоит из нескольких веб -частей. Я хочу иметь возможность каким -то образом кэшировать объекты Poco (простые старые объекты CLR) таким образом, что кэш сохраняется в полных запросах страницы, а кэш также работает в SharePoint Online.
Я посмотрел на следующие механизмы:
- Сохранение файлов в файловой системе или в изолированном хранилище - не работает, потому что пространство имен System.io, по -видимому, заблокировано в решениях песочницы.
- Используя инфраструктуру кэша/сеанса/приложения ASP.NET - не работает, кэш сбрасывается каждый раз, когда производится новый запрос на страницу.
- С использованием
Microsoft.Office.Server.ObjectCache.SPCache
Инфраструктура - кажется, не работает, кэш сбрасывается так же, как и в кэше ASP.NET. - Используя вручную кеш в памяти: (
private static Dictionary<string, object> ...
) - не работает, экземпляр словаря теряется по запросам на странице HTTP.
Означает ли все вышеперечисленное, что мой единственный вариант хранения каких-либо данных в SharePoint Sandbox Solutions-использовать SharePoint Lists/List-Eitems?
Решение
Да, списки SharePoint - ваш единственный вариант в этом случае.
Каждый запрос состоит из ASP.NET/SHAREPOINT до конкретного процесса песочницы. Эти процессы и приложения не гарантируются одинаковыми или даже на той же машине, поэтому любой вид кеша в памяти не подвергается сомнению.
Другие советы
Вместо создания веб -частей вы можете создавать приложения Silverlight, которые не генерируют обратную силу.
Опять же, приложения Silverlight ограничены из -за модели объекта на стороне клиента.