Compartir a través de


Guía de agregación de contenido para los portales de SharePoint Online

Todos los diseños de portales incluyen un conjunto de componentes de visualización que buscan dinámicamente el contenido para mostrar en las páginas de portal. El concepto de agregación de contenido es fundamental para el funcionamiento de estos controles. A efectos de este artículo, lo definiremos como el proceso de buscar dinámicamente el contenido deseado en tiempo de ejecución. La técnica que elija para realizar la agregación de contenido puede tener un impacto importante en el rendimiento de su portal y sus páginas.

Nota:

Aunque esta guía está destinada principalmente a SharePoint Online, la mayor parte también se aplica a portales alojados en un entorno de SharePoint local.

Qué debe evitar

La siguiente lista contiene las cosas clave que no debe hacer si quiere obtener una buena experiencia de agregación de contenido.

No debe:

  • Usar la técnica de agregación de contenido en tiempo real cuando y donde sea posible.
  • Colocar una docena o más de controles de agregación de contenido mal diseñados en una página de portal de gran tamaño (por ejemplo, la página principal).
  • Usar un objeto de directiva de grupo (GPO) para obligar a todos los exploradores a cargar la página del portal problemática de forma predeterminada.
  • No aplicar los límites de fila en los resultados de la agregación de contenido.
  • No almacenar en caché los resultados de la agregación de contenido.
  • Haga referencia al servicio web de listas heredadas (SOAP) Para problemas adicionales, pasarle algunas consultas CAML mal diseñadas.

Agregación de contenido definida

Es importante establecer una definición clara de la agregación de contenido para el contexto de este artículo.

Agregación de contenido es el concepto de encontrar y recuperar dinámicamente el contenido para mostrar en la página actual cuando ese contenido existe aparte de la página actual en una o varias ubicaciones del portal.

La agregación de contenido no incluye contenido creado en la página actual.

La agregación de contenido está destinada principalmente a la vista de front-end del usuario del portal (en lugar de la vista back-end del administrador).

Ejemplos de dónde se puede utilizar la agregación de contenido:

  • La página principal del portal contiene un control de noticias más recientes que representa una lista de vínculos a los artículos más recientes publicados en el portal.
  • Las páginas del portal contienen un control de navegación global que representa los vínculos de navegación que se administran en una lista personalizada de SharePoint.

Requisitos de la agregación de contenido en tiempo real

En la agregación de contenido en tiempo real, los cambios realizados en el origen de una agregación de contenido aparecen inmediatamente en los controles de agregación de contenido que hacen referencia a ese origen.

Ejemplos de dónde puede producirse una expectativa de agregación de contenido en tiempo real:

  • Un autor de contenido publica un artículo y espera que el vínculo aparezca inmediatamente en el control de noticias más recientes de la página principal del portal.
  • Un administrador del portal agrega un vínculo a la lista de navegación global y espera que aparezca inmediatamente en el control de navegación global.

Mientras que la información urgente requiere una distribución absoluta y en tiempo real, un portal de publicación no debe ser la opción inicial para la distribución de dicha información. Existe una serie de sistemas distintos (como móvil, radio, satélite, televisión, sirenas, alarmas y altavoces) que son más adecuados para ese propósito. El portal es más apropiado para la distribución de la información de seguimiento, el contexto y los detalles, ya que esa distribución no necesita producirse en tiempo real.

Con ese contexto en mente, tenga en cuenta este procedimiento recomendado: ningún contenido de portal es lo suficientemente importante como para justificar el coste de la agregación de contenido en tiempo real.

Desafortunadamente, la posición predeterminada de casi todos los equipos de administración de portales de contenido es considerar que incluso su contenido más mundano es lo suficientemente urgente como para necesitar agregación de contenido en tiempo real.

Ahí está el reto para el arquitecto del portal: ¿es preferible ceder a esa presión y poner en riesgo el rendimiento portal o convencer al equipo de lo contrario y ofrecer un portal con buen rendimiento? Le recomendamos que intente convencerles.

La agregación de contenido en tiempo real absoluta es técnicamente imposible en cualquier sistema de publicación. Incluso si cumple con los comportamientos predeterminados del portal de publicación, se producen retrasos y almacenamiento en caché en distintos puntos del proceso de agregación y representación de contenido; una parte es visible y configurable (por ejemplo, almacenamiento en caché del lado cliente personalizado, almacenamiento en caché del lado servidor de los resultados, almacenamiento en caché del lado servidor de los objetos) y otra parte está oculta o es inmutable (por ejemplo, los planes de consulta de base de datos y el almacenamiento en caché interno de la aplicación).

Los autores de contenido suelen ser las únicas personas que perciben los retrasos en la agregación de contenido. Los usuarios finales no tienen ninguna expectativa de agregación de contenido en tiempo real debido a la falta de información sobre el proceso de publicación de contenido.

Después de aceptar que la agregación de contenido en tiempo real no puede suceder, solo queda negociar lo siguiente:

  • ¿Cuánto tiempo está dispuesto a esperar para ver el contenido?
  • ¿Cuánto está dispuesto a "pagar" por ver el contenido un poco antes?

Los retrasos en la agregación de contenido son inevitables en una solución de portal con buen rendimiento. Si se compromete con un retraso aceptable, los usuarios del portal se lo agradecerán.

Nota:

Aunque la agregación de contenido no puede ser en tiempo real, en algunos casos puede tener, por ejemplo, una función de alerta personalizada con un tiempo de espera de cinco minutos y la agregación de noticias con un tiempo de espera de una hora. Esto no sería una agregación de contenido en tiempo real, pero la mayoría de usuarios finales lo considerarían como tal.

Técnicas de agregación de contenido

Las siguientes secciones describen las dos técnicas de agregación de contenido disponibles para SharePoint Online.

Importante

Le recomendamos el uso de la agregación de contenido basada en búsqueda sobre la agregación de contenido basada en CAML.

Agregación de contenido basada en CAML

La técnica de agregación de contenido basada en CAML se basa en el uso de consultas en Lenguaje de marcado de la aplicación de colaboración (CAML).

Puede crear consultas CAML y usarlas para realizar operaciones de agregación de contenido en SharePoint. Las consultas se ejecutan en las bases de datos de contenido de SharePoint. Las consultas CAML están incrustadas en la implementación de controles del lado servidor, como un elemento web predefinido de Contenido por consulta. Las consultas CAML también pueden usarse directamente con las diversas API de detección de contenido disponibles para los controles personalizados del lado cliente de JavaScript.

La principal ventaja de CAML es que le permite estar lo más cerca posible de lograr la agregación de contenido en tiempo real.

La principal desventaja de CAML es que son necesarios buenos conocimientos y aptitudes para diseñar consultas CAML que tengan un buen rendimiento; un cambio aparentemente inofensivo puede traducirse en una consulta CAML de bajo rendimiento y/o una serie de fallos de almacenamiento en caché, cuyo impacto no será notable hasta que el portal se encuentre bajo cargas pesadas.

Al prohibir la implementación de código personalizado, SharePoint Online ha eliminado lo que históricamente ha sido la peor categoría en cuanto a reducción de rendimiento de SharePoint: los controles personalizados del lado servidor y los elementos web que usan consultas CAML mal diseñadas. Sin embargo, aún es posible usar CAML indebidamente a través de los elementos web de Contenido por consulta predefinidos, así como a través de controles personalizados del lado cliente de JavaScript.

Tenga en cuenta lo siguiente:

  • Cada solicitud CAML del lado cliente resulta en una consulta de base de datos directa:

    • Los resultados CAML del lado cliente no se almacenan en caché en el servidor.
    • Las solicitudes CAML del lado cliente recurren al servidor de base de datos para su ejecución (siempre se produce un error de caché).
  • Cada solicitud CAML del lado servidor corre el riesgo de convertirse en una consulta de base de datos directa:

    • Los resultados CAML del lado servidor se almacenan en caché en el servidor, en función de conjuntos de permisos de usuario similares.
    • Las consultas que contienen campos de personalización nunca se almacenan en caché.
    • Las solicitudes CAML del lado servidor recurren al servidor de base de datos para su ejecución cuando se produce un error de caché.
    • Un error de caché está casi garantizado en granjas de servidores con un gran número de front-ends web.

Importante

Le recomendamos que evite la agregación de contenido basada en CAML cuando sea posible.

Directrices para usar la agregación de contenido basada en CAML

  • Evite su uso en páginas de gran volumen.
  • Restrinja su uso a una clase específica de contenido (por ejemplo, avisos).
  • Defina la consulta CAML más sencilla y más eficiente posible y comprobar su rendimiento.
  • Implemente columnas indizadas en las listas de destino.
  • Incluya límites de fila en la consulta.
  • Garantice que los controles del lado cliente personalizados de JavaScript proporcionan un vínculo con más información para redirigir a los usuarios a una página con visualización global de bajo volumen.
  • Asegúrese de que los controles del lado cliente personalizados de JavaScript aprovechan el marco de la Capa de acceso a datos del lado cliente para almacenar en caché la respuesta de contenido. No hay resultados es una respuesta válida y también debe almacenarse en caché.
  • Aplique una expiración de la caché del lado cliente de no menos de cinco minutos.

Para más información sobre la Capa de acceso a datos del lado cliente, vea Guía de rendimiento para los portales de SharePoint Online.

Agregación de contenido basada en búsqueda

La técnica de agregación de contenido basada en búsqueda se basa en el uso de consultas en lenguaje de consulta de palabras clave (KQL) de SharePoint Search.

Puede crear consultas KQL de búsqueda y usarlas para realizar operaciones de agregación de contenido en SharePoint. Las consultas se ejecutan en el índice de búsqueda de SharePoint. Las consultas KQL de búsqueda están incrustadas en la implementación de controles del lado servidor, como un elemento web predefinido de Contenido por búsqueda. Las consultas KQL también pueden usarse directamente con las diversas API de búsqueda disponibles para los controles personalizados del lado cliente de JavaScript.

La principal ventaja de la agregación de contenido basada en búsquedas es que aprovecha el servicio de SharePoint Search, que está diseñado para ofrecer un rendimiento excepcional en cargas de gran escala.

La principal desventaja de la agregación de contenido basada en búsqueda es su dependencia en el índice de búsqueda, lo que significa que existe un pequeño retraso antes de que aparezcan los cambios del contenido en el índice de búsqueda.

Tenga en cuenta lo siguiente:

  • El contenido del portal debe rastrearse y agregarse al índice de búsqueda para que esté disponible para la agregación de datos basada en búsqueda.

  • SharePoint rastrea continuamente el contenido del portal para proporcionar un índice de búsqueda actualizado. Sin embargo, existe un pequeño retraso antes de que aparezcan los cambios del contenido en el índice.

  • El esquema de búsqueda debe configurarse para permitir que las propiedades de contenido deseadas sean reconocidas con la búsqueda.

Importante

Le recomendamos que use la agregación de contenido basada en búsqueda.

Directrices para usar la agregación de contenido basada en búsqueda

  • Asegúrese de que los equipos de administración de contenido comprenden que el contenido debe rastrearse antes de que se pueda agregar.

    • Establezca las expectativas sobre el retraso de la agregación de contenido.
  • Configure el esquema de búsqueda necesario.

    • Elija un ámbito apropiado (web, colección de sitios o inquilino).
    • Active la generación automática de propiedades rastreadas y administradas.
    • Aproveche las propiedades de administración de marcador de posición predefinidas (por ejemplo, RefinableInt01) cuando sea necesario ordenar o limitar los resultados.
  • Diseñe consultas y orígenes de resultados adecuados.

    • Haga referencia a sitios, webs y listas individuales si lo necesita.
    • Haga referencia a tipos de contenido individuales si lo necesita.
    • Haga referencia a propiedades administradas específicas (por ejemplo, columnas de sitio) según sea necesario.
  • Seleccione los controles de visualización deseados:

    • Controles de fábrica:
      • Use elementos web de Contenido por búsqueda.
      • Devuelva el número mínimo de filas y columnas necesarias.
      • Desarrolle las plantillas de visualización necesarias.
      • Habilite la representación asincrónica del lado cliente si lo desea.
    • Controles personalizados:
      • Use controles de visualización del lado cliente personalizados de JavaScript que usen la API de REST de búsqueda.
      • Devuelva el número mínimo de filas y columnas necesarias.
      • Aproveche el marco de la Capa de acceso a datos del lado cliente para almacenar en caché las respuestas.

Para más información sobre la Capa de acceso a datos del lado cliente, vea Guía de rendimiento para los portales de SharePoint Online.

Vea también