Compartilhar via


Substituir receptores de recursos em soluções de área restrita

Normalmente, os receptores de recursos são usados para aplicar diferentes tipos de configurações ou configurações a sites do SharePoint quando o recurso é ativado ou quando o site é criado (se o recurso estiver associado a um modelo de site ou modelo da Web). Os receptores de recursos foram implantados usando soluções de área restrita no SharePoint Online; no entanto, como as personalizações baseadas em código não podem mais ser usadas, você deve usar um design alternativo.

A abordagem que você adota para lidar com receptores de recursos no SharePoint é ligeiramente diferente no modelo de Suplemento do SharePoint do que era com Código de Confiança Total ou em soluções de área restrita codificada. Você deve redesenhar a solução de uma maneira que use APIs remotas (CSOM/REST) para aplicar as configurações necessárias aos seus sites.

Observação

As soluções de área restrita baseadas em código foram preteridas em 2014, e o SharePoint Online iniciou o processo para remover completamente esse recurso. As soluções de área restrita baseadas em código também foram preteridas no SharePoint 2013 e no SharePoint 2016.

Opções para substituir receptores de recursos

Abordagem Considerações de design e mais informações
Personalização baseada no PowerShell
  • Usa scripts do PowerShell para provisionar novas coleções de sites (e potencialmente subsites) em que as personalizações necessárias são aplicadas usando APIs remotas. Normalmente, isso é feito usando CSOM/REST diretamente nos scripts do PowerShell ou usando comandos do PowerShell PnP, o que fornece uma maneira fácil de modificar sites e conteúdo remotamente.
  • Funciona bem se o modelo de provisionamento de site for baseado em ações administrativas.
  • Requer que o script seja executado que aplique as personalizações necessárias aos sites criados.
  • Pode ser combinado com o processo de criação do site, se executado como uma operação administrativa.
  • Não requer uma infraestrutura de hospedagem.
  • Não é possível ser combinado automaticamente como parte do processo de criação do subsite.
Personalização baseada em código
  • Aplica as personalizações necessárias usando código gerenciado com APIs remotas. Isso significa que você as aplica como parte da operação administrativa quando o site é criado ou você as aplica ao SharePoint, que conecta seu código para fazer parte dos elementos da interface do usuário.
  • Pode exigir uma infraestrutura de hospedagem se combinada com operações de usuário final.
  • Pode usar o código gerenciado executado em qualquer lugar usando APIs CSOM/REST para as operações necessárias.
  • Pode ser usado para integrar ao SharePoint substituindo o link de criação do subsite.
  • Pode automatizar a coleta de sites e o provisionamento de subsite usando APIs remotas.

Observação

Se você quiser fornecer uma maneira automática de aplicar o código remoto necessário como parte da lógica de criação do subsite, deverá substituir o link do subsite usando ações personalizadas do usuário. Essa opção só está disponível para sites que usam o modelo clássico para bibliotecas e listas.

Aplicando personalizações a sites

Usando o PowerShell

A seguir está um script simples que usa o PnP PowerShell para carregar um arquivo de cor do tema de um computador para o SharePoint Online e, em seguida, ativar o arquivo no site do SharePoint.

Este exemplo usa o PowerShell PnP, que fornece mais de 150 cmdlets adicionais do PowerShell destinados à configuração do site e ao gerenciamento de ativos.

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

Observação

O PnP PowerShell é uma solução de software livre com uma comunidade ativa de suporte. Não há nenhuma SLA para o suporte da ferramenta de software livre por parte da Microsoft.

Usando código

A seguir está um exemplo de código simples que usa o CSOM do SharePoint Online para ativar um tema personalizado, primeiro carregando os ativos em um site do SharePoint e ativando o tema personalizado.

Este exemplo usa o componente PnP CSOM Core, que estende as operações nativas fora da caixa, introduzindo um conjunto adicional de métodos de extensão para operações comuns. Você pode executar operações semelhantes usando o CSOM nativo, mas o código seria significativamente mais complexo.


// 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");

Dica

Quando você usa abordagens baseadas em código, recomendamos usar o mecanismo de provisionamento PnP para gerenciamento de modelo, o que simplifica drasticamente o esforço de desenvolvimento.

Removendo a solução de área restrita que contém o código do receptor de recursos do seu site

Se a solução de área restrita contiver lógica de receptores de recursos para desativação de recursos e for importante que eles sejam executados, você deverá garantir que esses recursos sejam desativados antes que o suporte baseado em código seja desabilitado do SharePoint Online.

Você pode desinstalar soluções de área restrita do SharePoint Online depois que o suporte baseado em código estiver desabilitado, mas o código do receptor de recursos não seria executado mesmo que os recursos estejam sendo movidos do site.

Quando você desativa sua solução de área restrita existente de seus sites, todos os ativos ou arquivos implantados usando opções declarativas não são removidos. No entanto, os recursos na solução de área restrita são desativados automaticamente e o receptor de eventos é removido.

Confira também