Поделиться через


Замена приемников компонентов в решениях песочницы

Получатели компонентов обычно используются для применения различных типов конфигураций или параметров к сайтам SharePoint при активации компонента или при создании сайта (если компонент связан с шаблоном сайта или веб-шаблоном). Приемники компонентов развернуты с помощью решений песочницы в SharePoint Online; Однако, так как настройки на основе кода больше не могут использоваться, необходимо использовать альтернативную структуру.

Подход, который вы используете для обработки приемников функций в SharePoint, немного отличается в модели надстроек SharePoint, чем в случае с кодом полного доверия или в решениях с закодированных песочниц. Необходимо изменить решение таким образом, чтобы использовать удаленные API (CSOM/REST) для применения необходимых конфигураций к сайтам.

Примечание.

Изолированные решения на основе кода устарели в 2014 году. Процесс полного удаления этой возможности начался с SharePoint Online. Изолированные решения на основе кода также не рекомендуются к использованию в SharePoint 2013 и SharePoint 2016.

Варианты замены приемников функций

Способ Рекомендации по проектированию и дополнительные сведения
Настройка на основе PowerShell
  • Использует скрипты PowerShell для подготовки новых семейств веб-сайтов (и, возможно, дочерних сайтов), если применяются необходимые настройки с помощью удаленных API. Обычно это выполняется с помощью CSOM/REST непосредственно в сценариях PowerShell или с помощью команд PowerShell PnP, что позволяет легко изменять сайты и содержимое удаленно.
  • Хорошо работает, если модель подготовки сайта основана на административных действиях.
  • Требует выполнения скрипта, который применяет необходимые настройки к созданным сайтам.
  • Может сочетаться с процессом создания сайта, если выполняется в качестве административной операции.
  • Не требует инфраструктуры размещения.
  • Не может быть автоматически объединена в процессе создания дочернего сайта.
Настройка на основе кода
  • Применяет необходимые настройки с помощью управляемого кода с удаленными API. Это означает, что вы либо применяете их как часть административной операции при создании сайта, либо применяете их к SharePoint, который перехватывает в коде, чтобы быть частью элементов пользовательского интерфейса.
  • Может потребоваться инфраструктура размещения в сочетании с операциями конечных пользователей.
  • Может использовать управляемый код, который выполняется в любом месте с помощью интерфейсов CSOM/REST API для необходимых операций.
  • Можно использовать для интеграции с SharePoint путем переопределения ссылки на создание дочернего сайта.
  • Может автоматизировать подготовку семейства веб-сайтов и дочерних сайтов с помощью удаленных API.

Примечание.

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

Применение настроек к сайтам

С помощью PowerShell

Ниже приведен простой скрипт, который использует PnP PowerShell для отправки файла цвета темы с компьютера в SharePoint Online, а затем активации файла на сайте SharePoint.

В этом примере используется PnP PowerShell, который предоставляет более 150 дополнительных командлетов PowerShell, предназначенных для настройки сайта и управления ресурсами.

Connect-SPOnline –Url https://yoursite.sharepoint.com/ –Credentials (Get-Credential)
Add-SPOFile -Path c:\temp\company.spcolor -Folder /_catalogs/theme/15/
Set-SPOTheme -ColorPaletteUrl /_catalogs/theme/15/company.spcolor

Примечание.

PnP PowerShell — это решение с открытым исходным кодом, поддержка которого предоставляется активным сообществом. Для инструментов с открытым исходным кодом не существует соглашения об уровне обслуживания в отношении поддержки корпорацией Майкрософт.

Использование кода

Ниже приведен простой пример кода, в котором используется CSOM SharePoint Online для активации пользовательской темы путем отправки ресурсов на сайт SharePoint, а затем активации настраиваемой темы.

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


// Upload assets to theme folder.
clientContext.Site.RootWeb.UploadThemeFile(
        HostingEnvironment.MapPath(string.Format("~/{0}", "Resources/Themes/SPC/SPCTheme.spcolor")));
clientContext.Site.RootWeb.UploadThemeFile(
        HostingEnvironment.MapPath(string.Format("~/{0}", "Resources/Themes/SPC/SPCbg.jpg")));

Web web = clientContext.Web;
// Loading RootWeb.ServerRelativeUrl property.
clientContext.Load(clientContext.Site, w => w.RootWeb.ServerRelativeUrl); 
clientContext.ExecuteQuery();
// Let's first upload the contoso theme to host web, if it does not exist there.
web.CreateComposedLookByUrl("Contoso",
                clientContext.Site.RootWeb.ServerRelativeUrl + "/_catalogs/theme/15/SPCTheme.spcolor",
                null,
                clientContext.Site.RootWeb.ServerRelativeUrl + "/_catalogs/theme/15/SPCbg.jpg",
                string.Empty);

// Setting the Contoos theme to host web.
web.SetComposedLookByUrl("Green");

Совет

При использовании подходов на основе кода рекомендуется использовать модуль подготовки PnP для управления шаблонами, что значительно упрощает разработку.

Удаление решения песочницы, содержащего код приемника компонентов, с сайта

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

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

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

См. также