Вопрос

Я строю решение для песочницы 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 ограничены из -за модели объекта на стороне клиента.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top