Diretrizes de agregação de conteúdo para os portais do SharePoint Online

Cada design de portal inclui um conjunto de componentes de exibição que localiza dinamicamente o conteúdo para exibição nas páginas do portal. O conceito de agregação de conteúdo é fundamental para a operação desses controles, que para o propósito deste artigo definimos como o processo de localizar dinamicamente o conteúdo desejado em tempo de execução. A técnica escolhida para realizar a agregação de conteúdo pode ter um impacto significativo no desempenho do portal e de suas páginas.

Observação

Embora essa orientação vise principalmente o SharePoint Online, a maior parte também se aplica a portais hospedados em um ambiente local do SharePoint.

O que não fazer

A lista a seguir contém os pontos principais que não se deve fazer se você quiser ter uma boa experiência de agregação de conteúdo.

Não:

  • Use a técnica de agregação de conteúdo em tempo real quando e onde for possível.
  • Coloque mais que uma dezena de controles de agregação de conteúdo mal projetados em uma página do portal de alto volume (por exemplo, a página inicial).
  • Use um GPO (objeto de política de grupo) para forçar todos os navegadores a carregarem a página do portal problemática por padrão.
  • Não imponha limites de linha nos resultados de agregação de conteúdo.
  • Não imponha cache em nenhum dos resultados de agregação de conteúdo.
  • Direcione o serviço web de Listas herdadas (SOAP). Para problemas adicionais, encaminhe algumas consultas CAML mal projetadas.

Agregação de conteúdo definida

É importante estabelecer uma definição clara da agregação de conteúdo no contexto deste artigo.

Agregação de conteúdo é o conceito de localizar e recuperar dinamicamente o conteúdo para exibição na página atual quando esse conteúdo existe além da página atual em um ou mais locais dentro do portal.

A agregação de conteúdo não inclui o conteúdo criado na página atual.

A agregação de conteúdo destina-se principalmente para o modo de exibição de front-end do usuário do portal (e não ao modo de exibição de back-end do administrador).

Exemplos de utilização da agregação de conteúdo:

  • A página inicia do portal contém um controle de notícias mais recente que renderiza uma lista de links dos artigos mais recentes publicados no portal.
  • As páginas do portal contêm um controle de navegação global que renderiza os links de navegação gerenciados em uma lista personalizada do SharePoint.

Requisito de agregação de conteúdo em tempo real

Na agregação de conteúdo em tempo real, as alterações feitas em uma fonte de agregação de conteúdo aparecem imediatamente nos controles de agregação de conteúdo direcionados daquela fonte.

Exemplos nos quais podem ocorrer expectativas de agregação de conteúdo em tempo real:

  • Um autor publica um artigo e espera que o link apareça imediatamente no controle de notícias mais recentes da página inicial do portal.
  • Um administrador do portal adiciona um link na lista de navegação global e espera que apareçam imediatamente no controle de navegação global.

Embora informações urgentes necessitem de distribuição absoluta e em tempo real, um portal de publicações não deve ser a opção inicial para a distribuição de tais informações. Alguns outros sistemas (por exemplo, celular, rádio, satélite, televisão, sirenes, alarmes e alto-falantes) são mais adequados para essa tarefa. O portal é mais apropriado para a distribuição de informações de acompanhamento, contexto e detalhes; por inferência, a distribuição não ocorre necessariamente em tempo real.

Com esse contexto em mente, considere esta prática recomendada: nenhum conteúdo de portal é importante o suficiente para garantir o custo da agregação de conteúdo em tempo real.

Infelizmente, a posição padrão de quase todas as equipes de portal de gerenciamento de conteúdo é considerar até mesmo o conteúdo mais comum como urgente e que, por ele, vale a pena executar a agregação de conteúdo em tempo real.

Aqui está o desafio para o arquiteto do portal: você sucumbe a essas pressões e corre o risco de atrapalhar o desempenho do portal ou convence a equipe a fazer o contrário e oferecer um portal com bom desempenho? Encorajamos que você os convença a fazer o contrário.

Tecnicamente a agregação absoluta de conteúdo em tempo real não é possível em um sistema de publicação. Mesmo que você siga comportamentos padrão de portais de publicação, os atrasos e cache ocorrem em vários pontos no pipeline de agregação/processamento de conteúdo; alguns deles são visíveis e podem ser configurados (por exemplo, cache personalizado no lado do cliente, cache de saída no servidor, cache de objetos no servidor) e alguns ficam ocultos e são imutáveis (por exemplo, planos de consulta de banco de dados, caches internos de aplicativos).

Os autores de conteúdo são normalmente as únicas pessoas que observam atrasos na agregação de conteúdo. Os usuários finais não têm expectativas de agregação de conteúdo em tempo real por falta de informações sobre o processo de publicação de conteúdo.

Depois de aceitar que a agregação de conteúdo em tempo real não ocorre com êxito, tudo o que se pode fazer é negociar o seguinte:

  • Quanto tempo você se dispõe a esperar para ver o conteúdo?
  • Quanto você está disposto a "pagar" para ver o conteúdo um pouco antes?

Os atrasos de agregação de conteúdo são inevitáveis em uma solução de portal com bom desempenho. Se você se comprometer em aceitar um atraso, os usuários do portal vão agradecer.

Observação

Embora a agregação de conteúdo não possa ocorrer em tempo real, em determinados casos você pode ter, por exemplo, um recurso de alerta personalizado com um tempo limite de cinco minutos e agregação de notícias com um tempo limite de uma hora. Essa não seria uma agregação de conteúdo em tempo real, mas deve ser considerada uma agregação em tempo real pela maioria dos usuários finais.

Técnicas de agregação de conteúdo

As seções a seguir descrevem as duas técnicas de agregação de conteúdo do SharePoint Online.

Importante

É recomendável favorecer a agregação de conteúdo baseada em pesquisa em relação à agregação de conteúdo baseada em CAML.

Agregação de conteúdo baseada em CAML

A técnica de agregação de conteúdo baseada em CAML utiliza as consultas de CAML (Collaborative Application Markup Language).

Você pode criar consultas de CAML e usá-las para executar operações de agregação de conteúdo no SharePoint. As consultas são executadas em bancos de dados de conteúdo do SharePoint. As consultas de CAML são preparadas na implementação dos controles de servidor como web part integrada do Conteúdo por Consulta. As consultas de CAML também podem ser usadas diretamente em várias APIs para a descoberta de conteúdo disponíveis para controles personalizados de JavaScript no lado do cliente.

A principal vantagem de CAML é que permite que você se aproxime de alcançar o máximo possível de uma agregação de conteúdo em tempo real.

A principal desvantagem de CAML é que requer os conhecimentos e habilidades para criar consultas de CAML com bom desempenho; uma alteração aparentemente inofensiva pode resultar em uma consulta CAML insatisfatório e/ou em uma série infinita de erros de cache, cujo impacto não fica evidente até o portal estar com cargas pesadas.

Ao impedir a implantação de um código personalizado, o SharePoint Online eliminou aquilo que historicamente seria a pior categoria que atrapalha o desempenho do SharePoint: os controles personalizados no lado do servidor e as web parts que utilizam consultas de CAML mal projetadas. No entanto, ainda é possível o uso incorreto de CAML pelas web parts integradas de consulta por conteúdo, bem como dos controles personalizados de JavaScript no lado do cliente.

Observe o seguinte:

  • Cada solicitação de CAML no lado do cliente resulta em uma consulta direta ao banco de dados:

    • Os resultados de CAML no lado do cliente não são armazenados em cache no servidor.
    • Solicitações de CAML no cliente acessam um servidor de banco de dados para execução (sempre ocorre um erro de cache).
  • Cada solicitação de CAML no servidor corre o risco de se tornar uma consulta direta ao banco de dados:

    • Os resultados de CAML no servidor são armazenados em cache no servidor, com base em conjuntos de permissões de usuário semelhantes.
    • As consultas que contêm campos de personalização não são armazenadas em cache.
    • As solicitações de CAML no servidor acessam um servidor de banco de dados para execução quando ocorre um erro de cache.
    • Um erro de cache é praticamente garantido em farms de servidores com um grande número de front-ends da web.

Importante

Recomendamos que você evite a agregação de conteúdo com base em CAML sempre que possível.

Diretrizes para uso de agregação de conteúdo com base em CAML

  • Evite o uso em páginas de alto volume.
  • Limite o uso a uma classe específica de conteúdo (por exemplo, alertas).
  • Defina a consulta de CAML o mais simples e eficiente possível e verifique seu desempenho.
  • Implemente colunas indexadas nas listas de destino.
  • Inclua os limites de linhas na consulta.
  • Certifique-se de que os controles personalizados de JavaScript no cliente forneçam o link Leia mais a fim de direcionar os usuários para uma página Exibir Tudo de volume.
  • Certifique-se de que os controles personalizados de JavaScript no cliente aproveitam a Estrutura de Camada de Acesso de Dados no Lado do Cliente para armazenar o cache de resposta do conteúdo. Nenhum resultado é uma resposta válida e também deve ser armazenada em cache.
  • Aplique uma expiração do cache no cliente com pelo menos cinco minutos.

Confira mais informações sobre a Camada de Acesso de Dados no Lado do Cliente, veja as Diretrizes sobre desempenho para portais do SharePoint Online.

Agregação de conteúdo com base em pesquisa

A técnica de agregação de conteúdo com base em pesquisa usa consultas de KQL (Keyword Query Language) nas pesquisas do SharePoint.

Você pode criar consultas de KQL de pesquisa e usá-las para executar operações de agregação de conteúdo no SharePoint. As consultas são executadas em índices de pesquisas do SharePoint. As consultas de KQL de pesquisa são preparadas na implementação dos controles de servidor como web part integrada do Conteúdo por Pesquisa. As consultas de KQL também podem ser usadas diretamente nas APIs de Pesquisa disponíveis para controles personalizados de JavaScript no lado do cliente.

A principal vantagem da agregação de conteúdo com base em pesquisa é que ela aproveita o Serviço de Pesquisa do SharePoint, que está integrado para fornecer um desempenho excepcional em grande escala sob cargas pesadas.

A principal desvantagem da agregação de conteúdo com base em pesquisa é a sua dependência do índice de pesquisa, o que significa que há um pequeno atraso antes as alterações de conteúdo serem exibidas no índice de pesquisa.

Observe o seguinte:

  • O conteúdo do portal deve ser rastreado e adicionado ao índice de pesquisa para ser disponibilizados para a agregação de dados com base em pesquisa.

  • O SharePoint continuamente rastreia o conteúdo do portal para fornecer um índice de pesquisa atualizado. No entanto, há um pequeno atraso antes que as alterações do conteúdo apareçam no índice.

  • O esquema de pesquisa deve ser configurado para permitir que as propriedades de conteúdo desejadas sejam descobertas pela pesquisa.

Importante

É recomendável usar a agregação de conteúdo com base em pesquisa.

Diretrizes para uso da agregação de conteúdo com base em pesquisa

  • Certifique-se de que suas equipes de gerenciamento de conteúdo entendam que o conteúdo deve ser rastreado antes que possa ser agregado.

    • Estabeleça expectativas sobre o atraso da agregação de conteúdo.
  • Configure o esquema de pesquisa necessário.

    • Escolha um escopo adequado (locatário, conjunto de sites ou web).
    • Acione a geração automática de propriedades rastreadas e gerenciadas.
    • Aproveite as propriedades gerenciadas integradas de espaço reservado (por exemplo, RefinableInt01) quando a classificação/refinamento forem necessários.
  • Crie consultas e fontes dos resultados apropriados.

    • Vise listas individuais, webs ou sites como necessário.
    • Vise tipos de conteúdo individuais como necessário.
    • Vise propriedades gerenciadas específicas (por exemplo, colunas de site) como necessário.
  • Escolha os controles de exibição desejados:

    • Controles integrados:
      • Use web parts de conteúdo por pesquisa.
      • Retorne o mínimo de linhas e colunas necessárias.
      • Desenvolva os modelos de exibição necessários.
      • Habilite o processamento assíncrono no lado do cliente, se desejar.
    • Controles personalizados:
      • Use controles personalizados de exibição de JavaScript no lado do cliente que utilizem a API REST de Pesquisa.
      • Retorne o mínimo de linhas e colunas necessárias.
      • Aproveite a Estrutura de Camada de Acesso de Dados do Lado do Cliente para armazenar as respostas em cache.

Confira mais informações sobre a Camada de Acesso de Dados no Lado do Cliente, veja as Diretrizes sobre desempenho para portais do SharePoint Online.

Confira também