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 |
|
Personalização baseada em código |
|
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.