Важные аспекты разработки и архитектуры надстроек SharePoint

Сведения в этой статье дополняют статью Надстройки SharePoint.

Способы размещения компонентов надстройки SharePoint:

  • Размещение у поставщика: Надстройки, которые включают по крайней мере один удаленный компонент, а также могут включать компоненты SharePoint. Компоненты, не относящиеся к SharePoint, развертываются логикой в аппаратной или облачной учетной записи или развертываются в аппаратной или облачной учетной записи клиента с помощью программ установки и инструкций, которые вы предоставляете.

  • Размещение в SharePoint. Надстройки, содержащие только компоненты SharePoint и логику, которая выполняется на клиенте.

Дополнительные сведения о вариантах размещения и некоторые рекомендации по их выбору см. в статье Выбор шаблонов для разработки и размещения надстройки SharePoint.

Сайты надстроек, хост-сайты, функции и компоненты SharePoint в надстройках

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

На хост-сайте развертывается только часть элементов пользовательского интерфейса, которые предоставляют пользователям доступ к другим компонентам надстройки, развернутым на хост-сайте. Эти компоненты пользовательского интерфейса на хост-сайте развертываются в составе компонента хост-сайта — компонента, входящего в пакет надстройки, а не в WSP-файл. Компоненты, которые развертываются на сайте надстройки, всегда входят в WSP-файл. Оба типа компонентов должны иметь область Web. Другие области невозможны для компонентов в надстройках SharePoint.

Как правило, любой компонент SharePoint без пользовательского кода, который выполняется на серверах SharePoint, можно включить в надстройку SharePoint (и развернуть на сайте надстройки). Однако существуют некоторые нюансы и исключения в отношении способа и места развертывания компонентов. Дополнительные сведения об этих нюансах, а также о хост-сайтах, изолированных сайтах надстройки и компонентах в надстройках см. в статье Хост-сайты, сайты надстроек и компоненты SharePoint в SharePoint.

Доступ к надстройке из пользовательского интерфейса

При установке надстройки SharePoint на веб-сайте надстройка отображается на странице Содержимое сайта хост-сайта. Пользователи могут запускать надстройку с этой страницы. При таком запуске надстройка открывается в полноэкранном режиме.

Надстройку SharePoint можно также вызвать через веб-часть надстройки. Веб-часть такого типа представлена классом ClientWebPart и, по сути, является оболочкой для IFrame, в которой размещается страница надстройки. В самом простом случае единственным важным свойством веб-части является URL-адрес, указывающий на страницу.

Но у веб-части могут быть специальные свойства, которые пользователи задают в инструментальной части. Эти свойства можно использовать, например, для установки сведений о контексте, таких как почтовый индекс пользователя. Чтобы включить такую веб-часть в надстройку, создается компонент хост-сайта в надстройке и добавляется декларативная разметка веб-части. Как и другие веб-части, она отображается в окне SharePoint для добавления веб-частей. При необходимости с надстройкой можно развернуть несколько веб-частей. Например, в случае надстройки о погоде одна веб-часть может показывать текущую погоду, а вторая — недельный прогноз. Эти две веб-части могут иметь разные размеры и функции.

Примечание.

Веб-части надстройки можно также разворачивать на сайте надстройки. Чтобы реализовать это, разметка для веб-части будет частью компонента внутри WSP-файла в пакете надстройки, а не в компоненте хост-сайта.

Рекомендуем оформлять надстройки в одном стиле с SharePoint, хотя это необязательно и не всегда будет лучшим вариантом. Дополнительные сведения о проектировании взаимодействия с пользователями в надстройках SharePoint см. в этой статье.

Например, существует специальная главная страница с именем app.master. Эта страница оптимизирована для использования страницами надстроек. Страница app.master является частью нового определения сайта, включенного в SharePoint.

Чтобы надстройки выглядели как одно целое с SharePoint, также можно использовать элемент управления хрома, который поставляется вместе с SharePoint. Этот элемент позволяет добавить область навигации SharePoint на страницы надстройки, в том числе внешние. Дополнительные сведения о проектировании взаимодействия с пользователями в надстройках SharePoint см. в этой статье. Дополнительные сведения об элементе управления хрома см. в этой статье.

Структура пакета надстройки

Пакет надстройки SharePoint — это файл с расширением APP, который соответствует стандарту Open Packaging Conventions (OPC). (Чтобы открыть этот файл, добавьте к его имени расширение ZIP, а затем откройте его в проводнике.) Он содержит манифест надстройки, в котором указываются свойства надстройки и инструкции для инфраструктуры установки SharePoint. Дополнительные сведения о манифесте и пакете надстройки см. в этой статье.

Разрешения, аутентификация и авторизация для надстроек SharePoint

В SharePoint реализована новая система безопасности и разрешений для надстроек.

Разрешения для надстроек

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

В файле манифеста надстройки необходимо запрашивать разрешения, которые требуются надстройке для запуска. Пользователь, который добавляет надстройку, должен удовлетворить эти запросы, и он может предоставить только те разрешения, которые имеет сам как пользователь. Предоставление должно быть для всех запрошенных разрешений или ни для одного из них, чтобы упростить управление разрешениями для пользователей и разработчиков. (Субъект надстройки всегда имеет права полного доступа на сайте надстройки, так что ему достаточно запросить разрешения для ресурсов SharePoint на хост-сайте или в других расположениях вне сайта надстройки.)

Дополнительные сведения см. в статье Разрешения для надстроек SharePoint.

Выборочное делегирование и авторизация

Ни пользователям, которые запускают надстройку, ни владельцам ресурсов, которые предоставляют надстройке доступ, не нужно предоставлять ей свои учетные данные или пароль. SharePoint позволяет пользователям и владельцам ресурсов предоставлять только конкретные разрешения, которые запрашивает надстройка. Это возможно благодаря протоколу транзакций OAuth 2.0. Дополнительные сведения о протоколе OAuth в SharePoint см. в статье Использование токенов контекста для авторизации надстроек SharePoint.

Междоменный доступ

Надстройка SharePoint, которая включает удаленное веб-приложение с доступом к данным через JavaScript, может использовать междоменную библиотеку JavaScript для получения авторизованного доступа к данным SharePoint в клиенте, в котором она установлена. Дополнительные сведения см. в статье Обращение к данным SharePoint из надстроек с помощью междоменной библиотеки.

Жизненный цикл надстроек

Жизненный цикл надстройки SharePoint включает публикацию, установку, обновление и удаление. Дополнительные сведения по этим темам см. в статьях Публикация надстроек для SharePoint, Развертывание и установка надстроек для SharePoint: методы и параметры и Процедура обновления надстроек для SharePoint.

Также учтите, что с помощью определенного механизма администраторы клиента могут выполнять пакетную установку надстройки SharePoint на нескольких веб-сайтах. Дополнительные сведения см. в статье Клиенты и области развертывания для надстроек SharePoint.

Хранение данных в надстройках SharePoint

Надстройки SharePoint могут создавать и получать доступ к любым данным, включая структурированные данные, документы и мультимедийные файлы. Эти данные могут храниться в SharePoint или во внешнем расположении.

Способы хранения структурированных данных

Структурированные данные для надстройки SharePoint можно хранить как в SharePoint, так и за его пределами, как на платформе Майкрософт, так и на других платформах. Ниже представлены некоторые места хранения структурированных данных для надстройки SharePoint.

  • Списки SharePoint на сайте надстройки
  • SQL Azure
  • Внешние источники данных, подключенные к SharePoint, со службами Службы Microsoft Business Connectivity Services (BCS)
  • Облачная служба сторонних поставщиков
  • База данных на собственном сервере

Совет

Вероятно, однажды вам понадобится обновить свою надстройку SharePoint. Если надстройка SharePoint включает компоненты SharePoint на сайте надстройки, при обновлении будет создана полная копия сайта надстройки. Поэтому если на нем хранятся очень большие списки SharePoint, для обновления потребуется много времени и ресуров процессора на сервере базы данных контента. Не следует помещать "большие данные" в списки SharePoint на сервере надстройки.

Способы хранения неструктурированных данных

Документы, изображения, видео, аудиофайлы и другие неструктурированные данные, создаваемые или используемые надстройкой SharePoint, могут храниться в SharePoint или за ее пределами. Библиотеки документов — это прекрасный вариант для хранения документов, которые становятся доступными для поиска с помощью системы поиска SharePoint. Библиотека ресурсов сайта, как правило, отлично подходит для хранения мультимедийных файлов.

Другие варианты включают хранилище BLOB-объектов в учетной записи Microsoft Azure или на собственных серверах. Вы также можете хранить файлы на некоторых сторонних платформах или в сторонних облачных службах.

Параметры надстроек и другие способы хранения метаданных

Метаданные для надстройки SharePoint, например настройки пользователей, сведения о расположении и другие параметры, можно хранить в различных местах. Иногда для этого отлично подходит скрытый список SharePoint. Вы также можете использовать контейнер свойств сайта надстройки. Для надстройки с размещением у поставщика также можно использовать Хранилище таблиц Azure.

Способы безопасного доступа к данным

Варианты безопасного доступа к данным, конечно же, зависят от выбранного вами хранилища. Поиск данных и доступ к ним рассматриваются более подробно в других разделах. Дополнительные сведения см. в статье Безопасный доступ к данным и клиентские объектные модели для надстроек SharePoint.

Управление надстройками

Администраторы семейства сайтов и администраторы клиента могут выполнять мониторинг надстроек и изменять выделенные для них ресурсы. Кроме того, сотрудники майкрософт для магазина надстроек могут помечать надстройки и отключать их.

Дополнительные сведения см. в статье Установка надстроек SharePoint и управление ими на сайте TechNet.

Отслеживание надстроек

SharePoint позволяет отслеживать работоспособность надстроек. Просматривать соответствующую информацию могут владельцы веб-сайта, администраторы клиентов и администраторы фермы. Документация по системе мониторинга (например, статья Мониторинг надстроек SharePoint) находится на веб-сайте TechNet. В этом разделе приводится краткое описание мониторинга продаваемых надстроек.

Некоторые типы данных передаются для каждого приложения, а другие типы — для каждого экземпляра приложения. Отчеты инфраструктуры мониторинга включают следующие основные элементы.

  • Использование надстройки, например, количество ее установок (созданий нового экземпляра).
  • Потребление серверных ресурсов каждым экземпляром надстройки.
  • Ошибки установки, обновления и времени выполнения каждого экземпляра надстройки.
  • Общий индикатор работоспособности каждого экземпляра надстройки, имеющий зеленый, желтый или красный цвет.

Если надстройка включает компоненты веб-сайта Azure, инфраструктура мониторинга также проводит ежечасные опросы Azure для сбора данных об ошибках и сообщает о критически важных ошибках и квоте хранилища в пользовательском интерфейсе SharePoint. Ошибки базы данных SQL Azure не отображаются.

Сведения, предоставляемые инфраструктурой мониторинга, позволяют администраторам определять, насколько разумно был потрачен бюджет на приобретение надстроек, следует ли развернуть дополнительные ресурсы для надстроек, и следует ли отключить надстройку, которая работает неправильно.

Регистрация зависимостей надстроек

Если ваша надстройка SharePoint зависит от возможности SharePoint, которая недоступна и не может быть доступна на веб-сайте надстройки, она будет работать неправильно, и ваши клиенты будут жаловаться. Можно сделать так, чтобы ваша надстройка не устанавливалось там, где отсутствуют необходимые возможности и функции, регистрируя зависимости надстройки в манифесте. Инфраструктура установки надстроек SharePoint проверит наличие этих предварительных требований и заблокирует установку надстройки, если какая-либо из них недоступна.

Для служб, таких как Excel, Access или Visio инфраструктура проверяет установку и наличие лицензий.

Для компонентов, таких как список задач, инфраструктура проверяет, развернут ли компонент, а также одно из двух:

  • активируется в области Ферма, WebApplication или Сайт (семейство веб-сайтов)

или

  • можно ли активировать его в области Web на сайте надстройки, создаваемом при ее установке.

Примечание.

Инфраструктура установки автоматически активирует такие компоненты на сайте надстройки при его создании.

В следующих разделах приведены сведения о регистрации предварительных требований.

Неявная регистрация зависимостей с помощью запросов разрешений

Если вашей надстройке нужен доступ к компонентам SharePoint вне сайта надстройки, то она должна запросить разрешения на них в разделе AppPermissionRequests манифеста приложения. Эти запросы также служат для регистрации зависимостей, так как SharePoint определит по запрошенным разрешениям, какие возможности SharePoint нужны вашей надстройке. В ряде случаев SharePoint может определить все нужные возможности, и оставшиеся разделы статьи использовать не потребуется. Тем не менее, избыточность при регистрации зависимостей не повредит.

Явная регистрация зависимостей с помощью элемента AppPrerequisites

Если у надстройки есть зависимость, которую не указывают запросы разрешений, ее следует зарегистрировать в элементе AppPrerequisite манифеста надстройки. В этом элементе три атрибута: Type, ID и (необязательный) MinimumVersion.

Возможные значения необходимых компонентов для атрибута TypeFeature, Capablility и AutoProvisioning. Необходимый компонент Feature — это просто компонент SharePoint, который требуется развернуть и активировать на сайте надстройки или в более широкой области, включающей этот сайт. Capability — это набор связанных компонентов и служб, который должен быть доступен на сайте надстройки. (Значение AutoProvisioning рассматривается в следующем разделе.)

Необязательный атрибут MinimumVersion задает минимальную версию функции или возможности, необходимой надстройке. Значения атрибутов имеют форму n.n.n.n.n; например 15.0.0.0.

Атрибут ID указывает необходимый компонент или возможность. Если атрибут Type имеет значение Feature, то ID — это GUID компонента с разделителями-дефисами в скобках, например {151D22D9-95A8-4904-A0A3-22E4DB85D1E0}. Если же атрибут Type имеет значение Capability, то ID — это GUID возможности. Возможности перечислены ниже. Чтобы узнать, как получить GUID возможности, см. статью Элемент AppPrerequisite (AppPrerequisiteCollection complexType) (манифест надстройки SharePoint).

  • Службы Access 2010
  • Службы Access
  • Веб-служба управляемых метаданных
  • Службы PowerPoint
  • Службы Secure Store
  • Служба машинного перевода
  • Служба профилей пользователей
  • Служба графики Visio
  • Служба управления работой
  • Duet
  • Рабочий процесс
  • Поиск
  • EDU

Далее приведен пример необработанной разметки AppPrerequisites, в которой регистрируется возможность Workflow. Если вы используете Visual Studio, вы редактируете манифест надстройки в средстве конструктора.

<AppPrerequisites>
  <AppPrerequisite Type="Capability" ID="{CDD8F991-B459-4512-8048-03D5A03FF27E}" MinimumVersion="15.0.0.0" />
</ AppPrerequisites>

В этом разделе:

См. также