Leitfaden zur Inhaltsaggregation für SharePoint Online-Portale

Jedes Portaldesign umfasst eine Suite von Anzeigekomponenten, die Inhalte für die Anzeige auf Portalseiten dynamisch suchen. Entscheidend für den Einsatz dieser Steuerelemente ist das Konzept der Inhaltsaggregation, die wir in diesem Artikel als dynamische Suche gewünschter Inhalte zur Laufzeit definieren. Die Methode, die Sie für die Inhaltsaggregation wählen, kann wesentliche Auswirkungen auf die Leistung des Portals und seiner Seiten haben.

Hinweis

Obwohl dieser Leitfaden in erster Linie auf SharePoint Online abzielt, gilt er größtenteils auch für Portale, die in einer lokalen SharePoint-Umgebung gehostet werden.

Was Sie nicht tun sollten

Die folgende Liste enthält Dinge, die Sie nicht tun sollten, um für eine effiziente Inhaltsaggregation zu sorgen.

Don’ts:

  • Inhaltsaggregation in Echtzeit immer und überall verwenden
  • Dutzende oder mehr schlecht designte Inhaltsaggregation-Steuerelemente auf eine Portalseite mit großem Volumen platzieren (beispielsweise der Homepage)
  • Group Policy Object (GPO) verwenden, um alle Browser zu zwingen, die problematische Portalseite standardmäßig zu laden
  • Keine Zeilenbegrenzungen für die Ergebnisse der Inhaltsaggregation erzwingen
  • Ergebnisse der Inhaltsaggregation nicht zwischenspeichern
  • Webdienst der Legacy-Listen (SOAP) adressieren Zusätzliche Probleme entstehen, wenn Sie einige schlecht designte CAML-Abfragen übergeben.

Definition der Inhaltsaggregation

Es ist wichtig, die Inhaltsaggregation für den Kontext dieses Artikels klar zu definieren.

Inhaltsaggregation ist das dynamische Suchen und Abrufen von Inhalten für die Anzeige auf der aktuellen Seite, wenn diese Inhalte außerhalb der aktuellen Seite an einem oder mehreren Orten im Portal vorhanden sind.

Die Inhaltsaggregation umfasst keine Inhalte, die auf der aktuellen Seite erstellt wurden.

Die Inhaltsaggregation ist primär für die Frontend-Benutzeransicht des Portals gedacht (im Gegensatz zur Backend-Administratoransicht).

Beispiele zur Verwendung der Inhaltsaggregation:

  • Die Homepage des Portals enthält ein Steuerelement mit aktuellen Nachrichten, das eine Liste mit Links zu den aktuellen im Portal veröffentlichten Artikeln rendert.
  • Portalseiten enthalten ein Steuerelement für die globale Navigation, das Navigationslinks rendert, die in einer benutzerdefinierten SharePoint-Liste verwaltet werden.

Inhaltsaggregation in Echtzeit – Anforderungen

Bei der Inhaltsaggregation in Echtzeit werden Änderungen an der Inhaltsaggregationsquelle unmittelbar in den Inhaltsaggregation-Steuerelementen für diese Quelle angezeigt.

Beispiele, wann Inhaltsaggregation in Echtzeit auftreten kann:

  • Ein Inhaltsautor veröffentlicht einen Artikel und erwartet, dass der Link sofort im Steuerelement für aktuelle Nachrichten der Homepage des Portals angezeigt wird.
  • Ein Portaladministrator fügt einen Link zur globalen Navigationsliste hinzu und erwartet, dass er sofort im Steuerelement für die globale Navigation angezeigt wird.

Während wichtige Informationen eine vollständige Echtzeitverteilung erfordern, sollte ein Veröffentlichungsportal nicht die erste Wahl für die Verteilung solcher Informationen sein. Eine Reihe von anderen Systemen (z. B. Mobiltelefon, Radio, Satellit, TV, Sirenen, Alarme und Lautsprecher) sind besser für diese Aufgabe geeignet. Das Portal eignet sich besser für die Verteilung von Nachverfolgungsinformationen, Kontext und Details; diese Verteilung muss nicht in Echtzeit erfolgen.

Ziehen Sie daher folgende Best Practice in Betracht: Kein Portalinhalt ist wichtig genug, um die Kosten der Inhaltsaggregation in Echtzeit zu rechtfertigen.

Leider ist fast jedes Team für die Verwaltung von Portalinhalten der Meinung, selbst die allgemeinsten Inhalte seien dringend und geeignet für die Inhaltsaggregation in Echtzeit.

Hier liegt die Herausforderung für den Portalarchitekten: beugen Sie sich dem Druck und riskieren Sie eine schlechte Portalleistung oder überzeugen Sie das Team und stellen Sie ein gut funktionierendes Portal bereit? Wir empfehlen, sie zu überzeugen.

Eine vollständige Inhaltsaggregation in Echtzeit ist technisch in keinem Veröffentlichungssystem möglich. Selbst wenn Sie das Standardverhalten des Veröffentlichungsportals befolgen, können Verzögerungen und Zwischenspeicherung an verschiedenen Punkten der Inhaltsaggregation/in der Rendering Pipeline auftreten; dies ist teilweise sichtbar und konfigurierbar (beispielsweise benutzerdefinierter clientseitiger Cache, serverseitiger Ausgabe-Cache, serverseitiger Objekt-Cache) und teilweise versteckt und unveränderlich (beispielsweise Datenabfragepläne, interne Anwendungscaches).

Inhaltsautoren sind in der Regel die einzigen Personen, die Verzögerungen bei der Inhaltsaggregation bemerken. Endbenutzer haben keine Erwartungen im Hinblick auf die Inhaltsaggregation in Echtzeit, da ihnen die Einblicke in die Inhaltsveröffentlichung fehlen.

Nachdem Sie akzeptieren, dass keine Inhaltsaggregation in Echtzeit möglich ist, müssen Sie sich Folgendes überlegen:

  • Wie lange sind Sie bereit zu warten, um den Inhalt anzeigen?
  • Wie viel sind Sie bereit zu bezahlen, um den Inhalt ein bisschen früher anzuzeigen?

Verzögerungen bei der Inhaltsaggregation sind in einer gut funktionierenden Portallösung unvermeidbar. Ihre Portalbenutzer werden es Ihnen danken, wenn Sie sich auf akzeptable Verzögerungen einlassen.

Hinweis

Selbst wenn keine Inhaltsaggregation in Echtzeit möglich ist, können Sie in bestimmten Fällen beispielsweise eine benutzerdefinierte Warnfunktion mit einem Timeout von 5 Minuten und einer Nachrichtenaggregation mit einem Timeout von 1 Stunde verwenden. Das wäre keine wirkliche Inhaltsaggregation in Echtzeit, würde aber von den meisten Endbenutzern als solche angesehen werden.

Inhaltsaggregation – Methoden

Die folgenden Abschnitte beschreiben die zwei Methoden zur Inhaltsaggregation für SharePoint Online.

Wichtig

Es wird empfohlen, die suchbasierte Inhaltsaggregation und nicht die CAML-basierte Inhaltsaggregation zu nutzen.

CAML-basierte Inhaltsaggregation

Die CAML-basierte Inhaltsaggregation basiert auf der Verwendung von Collaborative Application Markup Language (CAML)-Abfragen.

Sie können CAML-Abfragen erstellen und sie verwenden, um Inhaltsaggregationsoperationen in SharePoint durchzuführen. Die Abfragen werden für die SharePoint-Inhaltsdatenbanken ausgeführt. CAML-Abfragen sind in die Implementierung serverseitiger Steuerelemente wie dem Out-of-the-Box-Webpart „Content-by-Query“ eingebettet. CAML-Abfragen können auch direkt mit den verschiedenen APIs für die Inhaltserkennung verwendet werden, die für benutzerdefinierte clientseitige JavaScript-Steuerelemente verfügbar sind.

Der Hauptvorteil von CAML besteht darin, dass Sie der Inhaltsaggregation in Echtzeit so nah wie möglich kommen.

Der Hauptnachteil von CAML ist, dass Sie das entsprechende Wissen benötigen, um gut funktionierende CAML-Abfragen zu erstellen; eine scheinbar harmlose Änderung kann in einer schlecht funktionierenden CAML-Abfrage oder einer endlosen Reihe von Cachefehlern resultieren. Die Auswirkungen werden erst deutlich, wenn das Portal stark in Anspruch genommen wird.

SharePoint Online verbietet die Bereitstellung von benutzerdefiniertem Code und hat dadurch das eliminiert, was in der Vergangenheit hauptsächlich die SharePoint-Performance beeinträchtigt hat: benutzerdefinierte serverseitige Steuerelemente und Webparts, die schlecht designte CAML-Abfragen nutzen. Es ist jedoch weiterhin möglich, CAML über die Out-of-the-Box-Webparts des Typs „Content-by-Query“ sowie über benutzerdefinierte clientseitige JavaScript-Steuerelemente falsch zu verwenden.

Beachten Sie Folgendes:

  • Jede clientseitige CAML-Anforderung führt zu einer direkten Datenbankabfrage:

    • Clientseitige CAML-Ergebnisse werden auf dem Server nicht zwischengespeichert.
    • Clientseitige CAML-Anfragen greifen zur Ausführung auf den Datenbankserver zu (und haben immer einen Cachefehler zur Folge).
  • Es besteht das Risiko, dass aus jeder serverseitigen CAML-Anforderung eine direkte Datenbankabfrage wird:

    • Serverseitige CAML-Ergebnisse werden auf dem Server zwischengespeichert, basierend auf ähnlichen Benutzerberechtigungsgruppen.
    • Abfragen, die Personalisierungsfelder enthalten, werden nie zwischengespeichert.
    • Serverseitige CAML-Anfragen greifen zur Ausführung auf den Datenbankserver zu, wenn ein Cachefehler auftritt.
    • Ein Cachefehler ist in Farmen mit einer großen Anzahl von Web-Frontends sehr wahrscheinlich.

Wichtig

Es wird empfohlen, dass Sie CAML-basierte Inhaltsaggregation nach Möglichkeit vermeiden.

Richtlinien für die Verwendung von CAML-basierter Inhaltsaggregation

  • Vermeiden Sie die Verwendung von Seiten mit großem Volumen.
  • Beschränken Sie die Nutzung auf eine bestimmte Klasse von Inhalten (z. B. Benachrichtigungen).
  • Definieren Sie die einfachste und effizienteste CAML-Abfrage und überprüfen Sie ihre Leistung.
  • Implementieren Sie indizierte Spalten in den Ziellisten.
  • Schließen Sie Zeilenbegrenzungen für die Abfrage ein.
  • Stellen Sie sicher, dass benutzerdefinierte clientseitige JavaScript-Steuerelemente den Link Mehr lesen enthalten, um Benutzer auf eine Seite mit einem niedrigen Volumen weiterzuleiten, auf der alles angezeigt werden kann.
  • Stellen Sie sicher, dass benutzerdefinierte clientseitige JavaScript-Steuerelemente das clientseitige Data Access Layer Framework zum Zwischenspeichern der Inhaltsantwort nutzen. Keine Ergebnisse ist eine gültige Antwort und sollte auch zwischengespeichert werden.
  • Erzwingen Sie einen clientseitigen Cache-Ablauf von mindestens 5 Minuten.

Weitere Informationen zur clientseitigen Data Access Layer finden Sie unter Leitfaden zur Leistung für SharePoint Online-Portale.

Suchbasierte Inhaltsaggregation

Die suchbasierte Inhaltsaggregation basiert auf der Verwendung von SharePoint Keyword Query Language (KQL)-Suchabfragen.

Sie können KQL-Suchabfragen erstellen und sie verwenden, um Inhaltsaggregationsoperationen in SharePoint durchzuführen. Die Abfragen werden für den SharePoint-Suchindex ausgeführt. KQL-Suchabfragen sind in die Implementierung serverseitiger Steuerelemente wie dem Out-of-the-Box-Wepart „Content-by-Search“ eingebettet. KQL-Abfragen können auch direkt mit den Such-APIs verwendet werden, die für benutzerdefinierte clientseitige JavaScript-Steuerelemente verfügbar sind.

Der Hauptvorteil der suchbasierten Inhaltsaggregation ist, dass sie den SharePoint Search Service nutzt. Dieser bietet eine außergewöhnliche Leistung im großen Rahmen bei starker Beanspruchung.

Der Hauptnachteil der suchbasierten Inhaltsaggregation ist ihre Abhängigkeit vom Suchindex. Das bedeutet, es gibt eine leichte Verzögerung, bevor Inhaltsänderungen im Suchindex angezeigt werden.

Beachten Sie Folgendes:

  • Der Portalinhalt muss durchsucht und zum Suchindex hinzugefügt werden, damit er für die suchbasierte Datenaggregation vorhanden ist.

  • SharePoint durchsucht den Portalinhalt fortlaufend, um einen aktuellen Suchindex bereitzustellen. Es gibt jedoch eine geringe Verzögerung, bevor Inhaltsänderungen im Index angezeigt werden.

  • Das Suchschema muss konfiguriert werden, damit die gewünschten Inhaltseigenschaften über die Suche gefunden werden.

Wichtig

Es wird empfohlen, die suchbasierte Inhaltsaggregation zu verwenden.

Richtlinien für die Verwendung von suchbasierter Inhaltsaggregation

  • Stellen Sie sicher, dass Ihre Teams für die Inhaltsverwaltung verstehen, dass Inhalte vor der Aggregation durchsucht werden müssen.

    • Kommunizieren Sie mögliche Verzögerungen bei der Inhaltsaggregation.
  • Konfigurieren Sie das erforderliche Suchschema.

    • Wählen Sie einen entsprechenden Bereich aus (Tenant, Websitesammlung oder Web).
    • Lösen Sie die automatische Generierung durchsuchter und verwalteter Eigenschaften aus.
    • Nutzen Sie durch Platzhalter verwaltete Out-of-the-Box-Eigenschaften (z. B. RefinableInt01), wenn Sortieren/Einschränken erforderlich ist.
  • Entwerfen Sie entsprechende Ergebnisquellen und Abfragen.

    • Adressieren Sie individuelle Listen, Webs oder Websites nach Bedarf.
    • Adressieren Sie einzelne Inhaltstypen nach Bedarf.
    • Adressieren Sie bestimmte verwaltete Eigenschaften (z. B. Websitespalten) nach Bedarf.
  • Wählen Sie die gewünschten Steuerelemente für die Anzeige aus:

    • Out-of-the-Box-Steuerelemente:
      • Verwenden Sie Content-by-Search-Webparts.
      • Geben Sie die Zeilen und Spalten zurück, die mindestens erforderlich sind.
      • Entwickeln Sie die erforderlichen Anzeigevorlagen.
      • Aktivieren Sie asynchrones clientseitiges Rendering, wenn gewünscht.
    • Benutzerdefinierte Steuerelemente:
      • Verwenden Sie benutzerdefinierte, clientseitige JavaScript-Anzeigesteuerelemente, die die REST-API für die Suche verwenden.
      • Geben Sie die Zeilen und Spalten zurück, die mindestens erforderlich sind.
      • Nutzen Sie das clientseitige Data Access Layer Framework zum Zwischenspeichern der Antworten.

Weitere Informationen zur clientseitigen Data Access Layer finden Sie unter Leitfaden zur Leistung für SharePoint Online-Portale.

Siehe auch