SPCache против HttpRuntime.Cache - PullRequest
3 голосов
/ 27 марта 2011

У меня есть ферма SharePoint 2010 и я хочу использовать кэширование объектов для своих собственных пользовательских объектов.

Так как это ядро ​​ASP.net, я могу использовать HttpRuntime.Cache . С другой стороны, SharePoint 2010 предлагает собственный SPCache .

Почему я выбрал бы SPCache вместо HttpRuntime.Cache один?

Ответы [ 3 ]

4 голосов
/ 07 апреля 2011

К вашему сведению, я пошел с SPCache в конце.Это действительно очень необычный класс SharePoint: хорошо документированный, простой и понятный в использовании, безболезненный в управлении.

Он предлагает одну вещь, которую HttpRuntime.Cache не делает: позволяет мне создавать собственные собственные кэшии аннулирование этого, не стирая весь HttpCache.

Я мог бы добиться того же, используя словарь внутри HttpCache, но с блокировкой вокруг него есть некоторые потенциальные проблемы.Я размышлял о SPCache и нашел надежную, поточно-ориентированную реализацию, вот к чему я пришел.

В качестве предупреждения: SPCache, похоже, предназначен только для SharePoint Server, а не для Foundation.

1 голос
/ 27 марта 2011

О каком пользовательском объекте идет речь?

Как правило, вы должны использовать HttpRuntime.Cache для пользовательской разработки (если вы разрабатываете для старых веб-частей SharePoint, у вас есть способ кэширования внутри веб-части). Даже если вы упомянули, что SharePoint в корне является приложением ASP.NET, вы должны предпочесть HttpRuntime.Cache вместо HttpContext.Current.Cache. Это сделает его более переносимым для модульного тестирования или консольных приложений, поскольку вы не зависите от контекста или пространства имен System.Web.

Это может быть очевидно, но не забывайте обеспечивать безопасность потоков (например, блокировку), а также помните, что не все объекты SharePoint могут быть сериализованы.

1 голос
/ 27 марта 2011

Этот вопрос интригует.

  • Google не возвращает результатов для реализации SPCache
  • поиск по несобственному коду; показывает только два внутренних класса (DataCache и DBCache) в системе профилей пользователей, которые используют SPCache.

Похоже, вы не должны использовать SPCache (но обычно на странице msdn будет написано "не предназначено для использования кодом пользователя".)

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