Что следует рассмотреть, прежде чем приступать к разработке надстроек SharePoint

Предварительно необходимо ознакомиться со статьей Надстройки SharePoint.

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

Для начала нужно решить, что будет представлять собой ваше расширение SharePoint: надстройку SharePoint, классическое решение фермы или изолированное решение SharePoint. К некоторым частям объектной модели SharePoint, которые главным образом подключаются путем настройки администрирования и безопасности в SharePoint, нельзя получить доступ из клиентов. Для доступа к ним требуется пользовательский код, выполняемый на сервере SharePoint, но пользовательский код на стороне сервера не поддерживается в надстройке SharePoint. (Благодаря богатому набору клиентских объектных моделей и службе REST/OData с помощью надстроек SharePoint можно создать практически любое расширение SharePoint, ориентированное на пользователя).

Дополнительные сведения о выборе между классическими решениями и надстройками см. в статье Сравнение надстроек SharePoint с решениями SharePoint. Кроме того, принять решения поможет статья Выбор правильного набора API в SharePoint.

Основные элементы для разработки надстроек SharePoint

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

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

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

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

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

  • Подключение: SharePoint поддерживает три типа безопасного доступа к данным для создания, чтения, обновления и удаления данных (CRUD).

    Дополнительные сведения о хранении данных и доступа к ним в надстройках SharePoint см. в разделе Хранение данных в надстройках SharePoint, а также в статьях Безопасный доступ к данным и клиентские объектные модели для надстроек SharePoint и Работа с внешними данными в SharePoint.

  • ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА: Существует три способа отображения надстройки SharePoint в SharePoint: как минимум, все надстройки отображаются на полной веб-странице. При необходимости надстройка может отображаться как часть целого, а также с помощью элемента меню или кнопки ленты. Дополнительные сведения см. в статье Проектирование пользовательского интерфейса для надстроек SharePoint.

Примечание.

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

Архитектурные уровни

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

Удаленные компоненты в надстройках, размещаемых у поставщика: варианты для каждого уровня

Уровень Варианты Область применения
Пользовательский интерфейс Страницы ASP.NET в форме ASP.NET или приложении MVC, которые размещаются в веб-роли Azure Использование навыков группы разработчиков ASP.NET
Страница HTML 5 с JavaScript Расширенный пользовательский интерфейс
PHP или другой тип веб-страницы, размещаемой в облачной службе стороннего поставщика (не Майкрософт) Интеграция приложений сторонних поставщиков (не Майкрософт) в SharePoint
Silverlight в приложении Windows Phone Доступ с мобильных устройств к данным SharePoint, а также интеграция с данными о географическом положении и push-уведомлениями
Бизнес-логика Клиентский JavaScript Логика пользовательского интерфейса и несложная бизнес-логика. Доступ к данным SharePoint с помощью клиентской объектной модели JavaScript
Рабочая роль Microsoft Azure Функции, интенсивно использующие процессор. Доступ к данным SharePoint с помощью клиентской объектной модели .NET Framework
Удаленная веб-служба Функции, интенсивно использующие процессор. Доступ к данным SharePoint с помощью клиентской объектной модели .NET Framework
Данные SQL Azure Полнофункциональные реляционные данные
Хранилище таблиц Azure Параметры приложения и другие метаданные
Хранилище BLOB-объектов Azure Хранение больших файлов
Облачная служба сторонних поставщиков (не Майкрософт) Использование существующих источников данных, основанных на платформах сторонних поставщиков (не Майкрософт)
База данных на собственном сервере разработчика Размещение у поставщика и контроль разработчика за изоляцией клиента

Компоненты SharePoint: варианты для каждого уровня

Уровень Варианты Область применения
Пользовательский интерфейс Настраиваемые представления списков SharePoint и библиотек на веб-страницах надстройки Достижение максимальной интеграции с внешним видом и поведением SharePoint
Приложение Silverlight, размещенное в веб-части (или в <тегах объектов> ) на веб-странице надстройки Использование существующего интерфейса развертывания Silverlight. Расширенный пользовательский интерфейс
Бизнес-логика Рабочий процесс SharePoint Реализация бизнес-процессов
Клиентский JavaScript, дополненный междоменной библиотекой SharePoint Доступ к данным SharePoint на сайте надстройки. Доступ к данным на других веб-сайтах в рамках клиента
Удаленный обработчик событий Обработка событий CRUD в списках и библиотеках SharePoint с помощью внешней логики
Данные Списки SharePoint и библиотеки, которые запрашиваются через язык CAML, или запросы LINQ с помощью одной из клиентских объектных моделей SharePoint Использование существующего интерфейса разработки SharePoint и .NET Framework
Списки и библиотеки SharePoint, которые запрашиваются с помощью веб-службы SharePoint REST/OData Доступ к данным SharePoint с платформ сторонних поставщиков (не Майкрософт). Использование существующего интерфейса запросов OData
Модель BCS Отображение внешних данных в SharePoint в виде списка SharePoint

Факторы, которые следует учитывать при принятии конструктивных решений

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

  • Конечно, самым важным фактором является функциональность, которую необходимо предоставить потребителям, т. е. варианты использования. Например, если ваша надстройка обеспечивает функции, требующие интенсивной работы процессора (например, конвертацию видеофайлов в другой формат), возможно, вам следует создать надстройку, размещаемую у поставщика. В таком случае обработка осуществляется на одном из ваших серверов или в рабочей роли Microsoft Azure.

  • Так как один тип надстроек Надстройка SharePoint, а именно с размещением у поставщика, требует от вас (или от ваших потребителей) установки компонентов не SharePoint и усиления обособления клиентов, необходимо рассмотреть вопрос, есть ли у вас оборудование и ИТ-персонал, чтобы сделать это (или планируете ли вы, чтобы это сделали потребители).

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

  • Кроме того, вы должны учитывать ваши уже имеющиеся навыки и опыт группы разработчиков. Например, если вы обладаете опытом разработчика ASP.NET, то его можно было бы использовать для создания удаленного веб-приложения и отображения данных списка SharePoint в таблице на странице ASP.NET. С другой стороны, если вы являетесь опытным разработчиков SharePoint, то могли бы использовать пользовательский список SharePoint и страницу сайта, а также выполнить обработку с помощью JavaScript.

См. также