Mit der Einführung von React (virtuellen) Code-Komponenten bietet Microsoft eine neue, optimierte Möglichkeit, Code-Komponenten in Power Apps zu erstellen. Durch die Nutzung der von der Plattform bereitgestellten React- und Fluent UI-Bibliotheken können Entwickler die Paketgrösse erheblich reduzieren und gleichzeitig die Performance ihrer Anwendungen steigern.
Im Gegensatz zu den traditionellen Standard-Code-Komponenten, bei denen jede Komponente eigene Versionen von React und Fluent UI enthält, teilen sich die neuen virtuellen Komponenten die zentralen React- und Fluent-Pakete innerhalb der Power Apps Umgebung. Dies reduziert Redundanzen, optimiert Ladezeiten und sorgt für ein konsistentes Design über alle Komponenten und App-Grössen
Seit ihrer Einführung im Jahr 2022 haben sich virtuelle Komponenten von einem experimentellen Feature zu einer ausgereiften und leistungsstarken Lösung für die Entwicklung in Power Apps entwickelt.

Was du in diesem Blog lernen wirst
In diesem Blog zeige ich dir die spannenden Möglichkeiten, die React (virtuelle) Code-Komponenten in Power Apps bieten. Sie erfahren:
Was React (virtuelle) Code-Komponenten sind: Wie sie sich von traditionellen Komponenten unterscheiden und welche Vorteile sie bieten.
Die Vorteile virtueller Komponenten: Leistungsverbesserungen, kleinere Paketgrössen und vereinfachtes Bibliotheksmanagement.
Was Fluent UI ist und wie es in Power Apps verwendet wird: Erfahren Sie mehr über die Fluent-Designsprache und die Komponentenbibliothek.
Wie man eine React-basierte PCF-Komponente erstellt: Eine Schritt-für-Schritt-Anleitung zur Einrichtung, Integration von Fluent UI und Bereitstellung Ihrer benutzerdefinierten Komponente.
Am Ende dieses Leitfadens wirst du wissen, wie du virtuelle Komponenten nutzen kannst, um leistungsstarke, moderne und effiziente UI-Steuerelemente in Power Apps zu erstellen.
Die wichtigsten Vorteile virtueller Komponenten
Verbesserte Leistung: Das Rendering über den virtuellen DOM reduziert den Speicherverbrauch und verbessert die Rendering-Effizienz.
Kleinere Paketgrössen: React- und Fluent UI-Bibliotheken werden nicht mehr in einzelnen Komponenten eingebettet, sondern zentral von der Power Apps-Hostumgebung bereitgestellt.
Vereinfachtes Bibliotheksmanagement: Entwickler müssen React und Fluent UI nicht mehr lokal verwalten oder einbinden, was Versionskonflikte vermeidet.
Schnellere Entwicklung: Weniger Overhead und ein optimierter Bibliotheksgebrauch führen zu schnellere Entwicklungen.
Konsistentes Design: Durch die Nutzung von Fluent UI aus der Plattform bleibt das Design in allen Komponenten innerhalb von Power Apps einheitlich.
Neue PCF-Projekte, die mit der CLI-Version pac CLI v1.37.4 erstellt werden, enthalten automatisch diese aktualisierten Versionen in den Dateien manifest.xml und package.json. Für bestehende Projekte wird empfohlen:
React-Version im Manifest auf 16.14.0 zu aktualisieren.
Abhängigkeiten mit dem Befehl zu aktualisieren:
npm update
Alternativ kannst du die Abhängigkeiten neu installieren:
npm install
Technische Unterschiede zwischen Standard- und virtuellen Steuerelementen
Standard-Steuerelement | Virtuelles Steuerelement |
Rendert im eigenem virtuellem DOM | Rendert im virtuellen DOM |
Benötigt lokale React-/Fluent UI-Bibliotheken | Nutzt React-/Fluent UI-Bibliotheken aus der Power Apps-Hostumgebung |
Grösseres bundle.js | Deutlich kleineres bundle.js |
Höherer Speicher- und CPU-Verbrauch | Effizienteres Rendering und Speicherverbrauch |
Warum sind die neuen virtuelle Komponenten wichtig?
Vor der Einführung der neuen virtueller Komponenten mussten Entwickler alle benötigten Bibliotheken lokal verwalten und einbinden, was zu:
grösseren Paketgrössen,
möglichen Versionskonflikten und
längeren Ladezeiten führte.
Mit den neuen virtuellen Komponenten verwaltet die Power Apps-Plattform diese Bibliotheken zentral. Dies:
reduziert den Entwicklungsaufwand,
minimiert die Paketgrössen und
verbessert die Leistung und Wartbarkeit von Komponenten.
Was ist Fluent Design und Fluent UI?
Das Fluent Design System ist Microsofts Designsprache, die sich auf die Erstellung von ansprechenden, zugänglichen und leistungsstarken Benutzererlebnissen konzentriert. Sie bietet einen einheitlichen Designansatz über Plattformen hinweg und sorgt für Konsistenz.
Fluent UI ist Microsofts offizielle React-Komponentenbibliothek, die das Fluent Design System zum Leben erweckt. Sie bietet sofort einsetzbare, anpassbare Komponenten, die mit Microsofts Ökosystem, einschliesslich Teams, Office und Dynamics 365, kompatibel sind.
Entwickler profitieren von einer Vielzahl von vorgefertigten Elemente wie DataGrid, Buttons, Dropdowns und mehr, die leicht an individuelle Bedürfnisse angepasst werden können. Fluent UI sorgt nicht nur für ein einheitliches Erscheinungsbild, sondern reduziert auch die Entwicklungszeit durch wiederverwendbare Komponenten.

Fluent UI in Power Apps
Fluent UI-Steuerelemente wurden zuerst in Power Apps for Teams eingeführt und sind später zu den Standardsteuerelementen für benutzerdefinierte Seiten geworden. Durch die Integration von Fluent UI stellt Power Apps sicher, dass das Design mit der gesamten Microsoft-Design übereinstimmt und ein einheitliches Erlebnis über verschiedene Produkte wie Teams, Office und Dynamics 365 bietet.
Aufbau einer React-basierten PCF-Komponente mit Fluent UI DataGrid
Das Power Apps Component Framework (PCF) ermöglicht es Entwicklern, benutzerdefinierte UI-Komponenten für modelgetriebene oder Canvas-Apps zu erstellen. Durch die Kombination von PCF mit Fluent UI können moderne, responsive und leistungsstarke Komponenten entwickelt werden.
In dieser Anleitung zeige ich dir, wie du:
ein PCF-Projekt einrichtest,
Fluent UI’s DataGrid integrierst,
die Komponente testest und in Power Apps bereitstellst,
die Komponente zu einer Lösung hinzufügst und in einem Formular verwendest.
Schritt 1: Projekt einrichten
1.1 Projektordner erstellen
Erstelle einen neuen Ordner für dein PCF-Projekt und navigiere hinein:
mkdir ProgressComponent
cd ProgressComponent
1.2 Ordner in Visual Studio Code öffnen
Starte Visual Studio Code:
code .
1.3 Power Platform CLI installieren
Stellen Sie sicher, dass die neueste Version der Power Platform CLI installiert ist:
pac install latest
1.4 React-basiertes PCF-Projekt initialisieren
Initialisiere ein PCF-Projekt mit React:
pac pcf init -n ProgressComponent -ns SampleNamespace -t field -fw react -npm
Parameter:
-n: Name der Komponente (z. B. ProgressComponent).
-ns: Namespace der Komponente (z. B. SampleNamespace).
-t: Typ der Komponente (field für feldgebundene Komponenten).
-fw react: Framework (React).
-npm: Automatische Installation der Abhängigkeiten.
1.5 Fix Sicherheitsprobleme beheben
Falls npm Schwachstellen meldet (z. B. 2 vulnerabilities (1 low, 1 high), behebe diese mit folgendem Befehl:
npm audit fix
Dies wird versuchen, alle Probleme zu beheben. Führe nach dem Ausführen des Befehls eine Überprüfung durch, um sicherzustellen, dass keine Schwachstellen mehr vorhanden sind:
npm audit
Wenn in der Ausgabe found 0 vulnerabilities angezeigt wird, ist alles in ordnung.
1.6 ControlManifest.Input.xml überprüfen
Öffne die Datei ControlManifest.Input.xml in deinem Projektverzeichnis. Suche nach den folgenden <platform-library> -Deklarationen:

Was zu prüfen ist
React: Stelle sicher, dass die React-Bibliothek in der Version 16.14.0 oder höher ist.
Fluent: Überprüfen Sie, ob die Fluent UI-Bibliothek in der Version 9.46.2 oder höher ist.
1.7 Fehlende Bibliotheken bei Bedarf installieren
Wenn die benötigten Bibliotheken (React oder Fluent) fehlen, installiere sie manuell mit den folgenden npm-Befehlen.
npm install react@16.14.0 react-dom@16.14.0
npm install @fluentui/react@9.46.2
Schritt 2: Fluent UI DataGrid hinzufügen
Öffne die Fluent UI React Controls Dokumentation.
Suche nach der DataGrid-Komponente.
Kopiere den bereitgestellten Beispielcode.
2.1 Anpassen der Datei HelloWorld.tsx
Öffne die Datei HelloWorld.tsx und füge den zuvor kopierten Code ein.
Schritt 3: Aktualisieren der index.ts-Datei
Passe die index.ts-Datei an, um die Fluent UI DataGrid-Komponente zu verwenden:
Navigiere und öffne zur HelloWorld.tsx-Datei.
Überprüfe was exportiert wird.
In deinem Fall lautet der Export:
export const Default
Passe die index.ts-Datei an:
Passe die Import-Anweisung in der index.ts-Datei für HelloWorld so an, dass sie dem Export entspricht: import { Default } from "./HelloWorld";
Aktualisiere die updateView-Methode Da Ihre Komponente keinen Kontext benötigt, kannst du sie direkt zurückgeben:
public updateView(context: ComponentFramework.Context<IInputs>): React.ReactElement {return React.createElement(Default);}
Durch diese Schritte stellst du sicher, dass die Komponente korrekt importiert und gerendert wird, ohne dass ein Kontext erforderlich ist.
Die Ordnerstruktur sollte folgendermassen organisiert sein:

Schritt 4: Testen der Komponente
Erstelle das Projek:
npm run build
Führe diesen Befehl aus, um eine Vorschau der Komponente zu erhalten:
npm start
Öffne die bereitgestellte URL (z. B. http://localhost:8181) in deinem Browser, um das DataGrid anzuzeigen.
Schritt 5: Komponente zu Power Apps übertragen
Übertrage die Komponente in dein Environment:
pac pcf push -pp wor
Hinweis: "pp" steht für Publisher Prefix (z. B. „wor“).
Überprüfe dein Environment:
pac auth list
Wechsle bei Bedarf in die korrekte Umgebung:
pac auth select -i 1
Schritt 6: Komponente zu einer Lösung hinzufügen
Öffne das Power Apps Maker Portal.
Navigiere zu deiner Solution.
Wähle Add existing > More > Developer > Custom Control.
Wähle deine Komponente ProgressComponent aus und füge sie hinzu.
Schritt 7: Verwendung der Komponente in einem Formular
Öffne den Formular-Editor in Ihrer modellgesteuerten App.
Wechsle zum Tab Komponenten.
Klicke auf Get more Components und suche nach deiner Komponente: ProgressComponent.
Ziehe die Komponente per Drag & Drop an die gewünschte Stelle im Formular
Diese Anleitung bietet selbstverständlich ein stark vereinfachtes Beispiel. Die Komponente lässt sich jedoch erweitern und anpassen und eignet sich hervorragend als Einstieg in die Welt der virtuellen Komponenten.
Fazit
Virtuelle Komponenten stellen einen deutlichen Fortschritt für PowerApps dar. Sie bieten die Leistung und Flexibilität, die Entwickler für moderne, skalierbare Lösungen benötigen. Dadurch wird die Entwicklung nicht nur schneller und sauberer, sondern auch das Nutzererlebnis verbessert – dank kleinerer, effizienterer benutzerdefinierter Steuerelemente.
Während Microsoft das Framework weiter optimiert, werden virtuelle Komponenten zweifellos zum Standard für leistungsfähige, produktionsreife Anwendungen in PowerApps werden.
Persönlich finde ich diese Lösung von Microsoft grossartig. Sie spart viel Zeit, und man muss sich weniger um Design oder Performance kümmern. Meiner Meinung nach ist dies ein Schritt in die richtige Richtung, und ich bin gespannt, wie sich das in Zukunft weiterentwickelt.
Ergänzende Ressourcen
Für weitere Informationen zu Fluent UI und den Komponenten, nutze die folgenden Ressourcen:
🔗 Fluent UI React Controls Erkunde verfügbare Fluent UI-Steuerelemente mit ausführlichen Beispielen, Anwendungsfällen und Anpassungsoptionen für eine nahtlose Integration in Ihre Power Apps-Projekte.
🔗 Fluent UI Get Started Guide Dieser Leitfaden unterstützt dich bei den ersten Schritten mit Fluent UI, einschliesslich Installation, Einrichtungshinweisen und Best Practices für die Verwendung von Fluent UI-Komponenten in React-Projekten.
🔗Fluent UI Theming Erfahre, wie du Fluent UI-Komponenten mithilfe von Theming und Stilen an Ihre Power Apps-Markenrichtlinien oder spezifische Designanforderungen anpasst.
Comments