Viele kombinierbare Suchdimensionen
Suchtext, Flächen, Standorttypen, Ebenen und Kennzahlen mussten gemeinsam verarbeitet werden.
Große strukturierte JSON Daten
Die Dataverse Custom API liefert komplexe Objekt-, Ebenen-, Merkmals- und Flächendaten als gefilterte Antwort.
Wiederherstellbarer Suchzustand
Filter mussten über URL, Browser-Neuladen sowie Vor- und Zurücknavigation konsistent bleiben.
Nicht vertrauenswürdige Browser-Eingaben
Manipulierte URL Parameter oder Request Bodies durften keine ungeprüften Custom API Parameter erzeugen.
Mehrere Seitentypen
Landingpage und Ergebnisseite benötigten dieselbe Anwendung mit unterschiedlichem Navigationsverhalten.
Entkoppelte Ergebnisdarstellung
Weitere Komponenten sollten Suchantworten nutzen können, ohne Teil derselben React Anwendung zu sein.
Enterprise-Suche in Power Pages.
ECE Fallstudie: React, Power Pages Server Logic und Dataverse Custom API.
Diese Fallstudie zeigt eine implementierte Power Pages Enterprise-Suche für komplexe Standort- und Flächendaten. React steuert Filter, Auto-Suggest und URL-Zustand, während Server Logic Autorisierung und Eingaben prüft.
Auf dieser Seite

Anforderungen im Projekt
Welche Anforderungen hatte die Power Pages Enterprise-Suche? Die Suchoberfläche musste mehr leisten als eine Volltextsuche und durfte Sicherheitsentscheidungen nicht in den Browser verlagern.
Mehrwert der Suche
Was die Power Pages Enterprise-Suche für Standorte und Flächen leistet: Die Power Pages Enterprise-Suche verbindet Standort- und Flächenkriterien, teilbare URLs und serverseitig geprüfte Zugriffe.
Standorte und Flächen gezielt eingrenzen
Suchtext, Flächengröße, Standorttypen und unterstützte Kennzahlen lassen sich in einem Suchvorgang kombinieren.
Eine Recherche fortsetzen
Gültige Filter bleiben in der URL erhalten. Beim Neuladen oder über die Browsernavigation wird der Suchzustand wiederhergestellt.
Zugriff serverseitig kontrollieren
React steuert die Bedienung. Power Pages Server Logic prüft Eingaben und Portalnutzer, bevor kontrollierte Parameter Dataverse erreichen.
Suche im Einsatz
Von der Eingabe zum Suchergebnis: Die Aufnahmen zeigen den dokumentierten Entwicklungsstand mit Vorschlägen aus der Dataverse Custom API, Flächen-Schnellfilter, erweitertem Filterdialog und getrennte Ergebnisse für Center und Flächen.
Auto-Suggest aus der Dataverse Custom API
Vorschläge nach Typ
Bei der Eingabe „hamburg“ erscheinen Vorschläge für Stadt, Region und Center.
Auswahl ohne sofortige Suche
Die Auswahl eines Vorschlags übernimmt den Wert, startet aber noch keine Suche.
Antworten und Fehlerzustände
Der Deep Dive erklärt Debounce, veraltete Antworten und technische Fehler.


Suchfilter für Center und Flächen eingrenzen
Kriterien im Filterdialog
Der Dialog zeigt Suchtext, Mietflächenbereich und weitere Filtergruppen.
Suchtext und Mietflächen
Suchbegriff und Mietflächenbereich lassen sich gemeinsam eingrenzen.
Filterlogik im Detail
Der Deep Dive erklärt die Prüfung von Suchfiltern und den Aufbau kontrollierter OData Parameter.
Center- und Flächenergebnisse prüfen
Center und Flächen erscheinen getrennt. Google Maps zeigt Standorte nach Einwilligung.

Architekturentscheidung
React übernimmt Interaktion. Server Logic kontrolliert Vertrauen. Die Lösung trennt Bedienung, Suchzustand, Autorisierung und Dataverse Zugriff in klar abgegrenzte Verantwortlichkeiten.
Klare Grenzen statt direkter Dataverse Abfragen
Isolierte React Anwendung
Das Suchmodul wird als eigenständiges Bundle in Power Pages Web Templates eingebunden und über JSON konfiguriert.
Typisierte Anwendungsschichten
Controller, Service, Repository, Transport und Parser trennen UI Verhalten von drei Server Operationen und deren Antwortverträgen.
Verbindliche Servergrenze
Power Pages Server Logic prüft Operation, Payload, Wertebereiche, Katalogwerte und Portalnutzer vor jedem API Aufruf.
Geschützter Dataverse Vertrag
Die Custom API erhält nur serverseitig abgeleitete Autorisierung und kontrollierte Parameter für Suche, Vorschläge und Detailabrufe.
Steuerung im Browser
Wie steuert React Filter, Auto-Suggest und URL-Zustand in Power Pages? Acht abgestimmte Mechanismen halten Bedienung, Browserhistorie und Ergebnis-Events synchron.
Auto-Suggest
Vorschläge starten bei 3 bis 100 Zeichen nach 300 Millisekunden. Sequenzschutz verwirft veraltete Antworten. Eine Auswahl startet noch keine Suche.
Erweiterte Filter
Flächen, Standorttypen und Kennzahlen lassen sich gemeinsam eingrenzen. Branchen werden über die Portal-Konfiguration verwaltet.
URL als Suchzustand
Gültige Filter bleiben teilbar. Ungültige Teilwerte werden entfernt, fremde Query Parameter bleiben bestehen.
Browserhistorie
Neue Suchen nutzen pushState. Bereinigungen nutzen replaceState. popstate liest Filter neu und startet genau eine Suche.
Zwei Laufzeitmodi
Landingpages navigieren zur Ergebnisseite. Ergebnisseiten aktualisieren URL und Suchergebnis.
Browser Events
portal:search-changed meldet akzeptierten Zustand. portal:search-results folgt erst nach erfolgreichem Transport und Parserprüfung.
GUID Detailsuche
Center und Flächen werden mit GUID, Entitätstyp und Sprache geprüft und als aufgelöstes DTO an Liquid geliefert.
Favoriten Batch
Ein Request verarbeitet 1 bis 50 GUIDs eines Entitätstyps und trennt Ergebnisse, fehlende IDs und ungültige IDs.
Verbindliche Sicherheitsgrenze
Browser-Eingaben werden nicht als Autorität behandelt. Power Pages Server Logic wiederholt die Validierung unabhängig vom Frontend und kontrolliert jeden Aufruf der Custom API.
Serverseitige Autorisierung
Server Logic leitet die Autorisierung aus Server.User ab. Ein Browserwert kann diese Entscheidung nicht überschreiben.
Begrenzter Request Body
JSON Requests über 8.192 UTF-8 Bytes werden vor einem API Aufruf abgelehnt.
Allowlisting und Wertebereiche
Nur search, suggest und getPortalCatalogDetails sind erlaubt. Filterwerte werden gegen bekannte Bereiche und Kataloge geprüft.
OData Escaping
Zeichenketten werden vor dem Aufbau der serverseitigen Filter korrekt behandelt.
CSRF Schutz
Die React Anwendung nutzt webapi.safeAjax und den Power Pages Anti-Forgery Mechanismus.
Fehler bleiben Fehler
Backend-, Transport- und Parserfehler werden nicht als erfolgreiche leere Ergebnisliste ausgegeben.
Sicherer Datenfluss
Wie gelangen Suchfilter sicher von React nach Dataverse? Fünf kontrollierte Schritte vom Browser-Request bis zur aufgelösten Antwort.
Vertrag erzeugen
React oder Liquid erzeugt einen Request für Suche, Vorschläge, ein Detail oder einen Favoriten Batch.
Sicher senden
webapi.safeAjax überträgt den Request an Power Pages Server Logic.
Serverseitig prüfen
Server Logic prüft Operation, 8.192 UTF-8-Bytes, Wertebereiche, Katalogwerte, GUIDs und Portalnutzer.
Custom API aufrufen
Nur geprüfte Suchfilter oder normalisierte Detail- und Favoriten-IDs erreichen Dataverse.
Antwort auflösen
Parser und DTO-Auflösung liefern Suchergebnisse, Details oder geordnete Batch-Ergebnisse mit sichtbaren Teilfehlern.
Consent Management
Wie steuert das Power Pages Portal externe Dienste nach Einwilligung? Das Power Pages Portal verbindet consentmanager mit einer Consent-Service-Registry. Application Insights und Google Maps laden ihre SDKs nach Einwilligung. Google Maps zeigt Standorte in der React-Anwendung und über ein Web Template auf einer Detailseite.
Gemeinsamer Consent-Status
consentmanager liefert die Entscheidung an die Registry. Ihr Browser-Vertrag meldet den Einwilligungsstatus, nicht ob ein Dienst bereits läuft.
Consent-Architektur ansehenApplication Insights nach Einwilligung
Der entwickelte Adapter lädt das SDK nach Zustimmung und beendet die Telemetrie-Instanz beim Widerruf. Während eines laufenden SDK-Downloads kann zuvor noch eine Page View gesendet werden.
Application Insights Consent ansehen
Technische Deep Dives
Elf Beiträge dokumentieren Architektur, Verträge, Sicherheitsgrenzen, Suchzustand, Konfiguration sowie Detail- und Favoritenabrufe.
Gesamtarchitektur und Datenfluss
Der Hub verfolgt einen Suchvorgang vom Power Pages Web Template über React und Server Logic bis zur geprüften Dataverse Antwort.
Architekturserie öffnenModularer React Host
Der erste Deep Dive zeigt, wie ein zentraler Host und eine JSON-Konfiguration dasselbe React Bundle auf mehreren Power Pages Seiten steuern.
Host Vertrag ansehenServer Logic als Sicherheitsgrenze
Der Sicherheitsbeitrag zeigt, wie Request-Größe, Operations Allowlist, serverseitige Autorisierung und OData Aufbau vor der Dataverse API kontrolliert werden.
Sicherheitsgrenze ansehenTypisierte End-to-End Verträge
Der Schnittstellenbeitrag verfolgt Requests und Antworten durch Controller, Service, Repository, Power Pages Transport und Laufzeitparser.
Schnittstellen ansehenURL Zustand und Browserhistorie
Der URL Beitrag zeigt, wie Landing Navigation, Query Serialisierung, pushState, replaceState und popstate einen teilbaren Suchzustand bilden.
URL Lifecycle ansehenEntkoppelte Ergebnis Consumer
Der Event Beitrag zeigt, wie Zustandsänderungen und geprüfte Antworten über getrennte CustomEvents an JavaScript, jQuery und React verteilt werden.
Event Verträge ansehenRobustes Auto-Suggest
Der Auto-Suggest Beitrag zeigt Debounce, Request-Sequenzen, getrennte Server-Operationen, gruppierte Vorschläge und klare Zustände für leere Ergebnisse und technische Fehler.
Auto-Suggest ansehenFilter Sanitization und OData
Der Deep Dive erklärt die Prüfung von Suchfiltern. Server Logic erzeugt daraus kontrollierte objectfilter, areafilter und levelfilter Parameter.
Filtervertrag ansehenEditierbare Branchenkonfiguration
Der Konfigurationsbeitrag zeigt, wie ein gemeinsames Web Template stabile Branchen-IDs an JavaScript und React liefert, während jede Laufzeit und Server Logic unabhängig prüft.
Konfigurationsvertrag ansehenGUID Detailsuche mit Liquid
Der Detailbeitrag zeigt, wie GUID, Entitätstyp und Sprache geprüft, Dataverse Antworten aufgelöst und drei Liquid Ergebniszustände gerendert werden.
Detailsuche ansehenFavoriten als GUID Batch
Der Favoritenbeitrag dokumentiert 1 bis 50 IDs, Normalisierung, Deduplizierung, stabile Reihenfolge und getrennte Listen für fehlende und ungültige IDs.
Favoriten Batch ansehen
Technische Verantwortung
Verantwortung für Power Pages, React und Dataverse von der Fachlogik über die Sicherheitsgrenze bis zur Dokumentation.
Such- und Filterkonzept
Überführung fachlicher Suchdimensionen in ein nutzbares Filtermodell und nachvollziehbare URL Parameter.
Frontend-Architektur
React Komponenten, State Management, Controller, Services, Transport und typisierte Ergebnisverträge.
Power Pages Integration
Web Templates, Runtime-Konfiguration, webapi.safeAjax, Server Logic, Liquid Detailaufrufe und Browser Events.
Sicherheits- und API Design
Payload-Grenzen, Operations Allowlist, Autorisierung, OData Filter, GUID-Verträge und Dataverse Custom API.
Dokumentation
Architektur, Konfiguration, Ereignisverträge, Sanitization Matrix und Änderungsverfahren.
Wartbare Erweiterung
Klare Katalogverantwortung und definierte Schritte für neue Filter, Branchen und Ergebnisverbraucher.
Häufige Fragen
Kompakte Antworten zu Architektur, Sicherheit und den implementierten Abrufen.
Wie ist die Power Pages Enterprise-Suche aufgebaut?
Ein Power Pages Web Template startet das React Widget. React verwaltet Bedienung, Filter und URL-Zustand. Server Logic validiert Requests und Autorisierung. Die Dataverse Custom API verarbeitet nur kontrollierte Such-, Vorschlags- und Detailparameter.
Warum übernimmt React nicht die Autorisierung?
React läuft im Browser und kann verändert oder umgangen werden. Server Logic leitet die Autorisierung deshalb aus dem aktuellen Portalnutzer ab. Werte aus URL, Formular oder Request Body gelten nie als verbindliche Sicherheitsentscheidung.
Wie schützt Server Logic den Dataverse-Zugriff?
Server Logic erlaubt nur drei bekannte Operationen, begrenzt JSON Requests auf 8.192 UTF-8-Bytes, prüft Wertebereiche und Katalogwerte und erzeugt kontrollierte OData Parameter. Fehler bleiben sichtbar und werden nicht als leere Erfolgsliste ausgegeben.
Wie funktionieren Detailsuche und Favoriten?
Die Detailsuche prüft GUID, Entitätstyp und Sprache und liefert ein aufgelöstes DTO an Liquid. Der Favoriten Batch verarbeitet 1 bis 50 GUIDs eines Entitätstyps und trennt Ergebnisse, nicht gefundene IDs und ungültige IDs.
Benötigt Ihr Portal eine Suche?
Beschreiben Sie Ihren Workflow. Wir klären gemeinsam, welcher nächste Schritt sinnvoll ist.
Workflow besprechen