SharePoint и репозитории - PullRequest
       2

SharePoint и репозитории

0 голосов
/ 03 июля 2011

Это вопрос разработки репозитория SharePoint +. Насколько мне известно, SharePoint - не очень благоприятная атмосфера для правильного подхода к хранилищу. Но есть руководство по шаблонам, в котором есть реализация репозитория. Эта кодовая база в основном принимает SPWeb в качестве входного параметра и выполняет запрос / обновление и т. Д.

Мой запрос есть: тот факт, что это репозиторий, означает, что SPWeb НЕ должен передаваться, а должен быть взят оттуда - SPContext.Current.Web дал бы это для использования в репозитории. Тот факт, что SPWeb используется в качестве входных данных, означает, что уровень пользовательского интерфейса / уровень обслуживания должен передать SPWeb методу, который как-то мне не нравится, поскольку это выглядит как нарушение принципов невежества в отношении сохраняемости хранилища.

Некоторые советы, пожалуйста

Приветствия

Ответы [ 2 ]

1 голос
/ 04 июля 2011

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

Хотя вы и правы, что ваш код в идеале должен быть независимым от используемого хранилища данных, SharePoint на самом деле не настроен для такого рода чистого модульного кода, который вы можете создать с помощью стандартной системы .net / sql. Иногда вы можете приблизиться, но в этом случае это действительно не стоит усилий - вызывающий код в любом случае зависит от SharePoint, и элементы вряд ли будут перемещены куда-либо, кроме списков.

0 голосов
/ 03 июля 2011

просто мысль, но вы всегда можете создать свои собственные объекты spsite / spweb в своем слое хранилища, используя сайт / веб-URL-адрес как строку подключения, а объекты spsite / spweb как объекты подключения.Таким образом, классы репозитория могут использоваться вне веб-запроса, если вам когда-либо понадобится повторно использовать код из приложения, у которого нет текущего spcontext.

При создании может возникнуть небольшая проблема с производительностьюваши собственные объекты spsite / spweb по сравнению с текущими объектами spcontext, но не уверены, сколько.

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