Grundlagen zu Power Fx

Abgeschlossen

Nach diesem kurzen Hintergrund über die Entwicklung mit wenig Code haben sowohl Sie als auch Kiana Ähnlichkeiten und Unterschiede zwischen den Programmiersprachen festgestellt, die Sie traditionell zum Erstellen von Anwendungen, wie C# und JavaScript sowie Power FX in Power Apps, verwendet haben.

Microsoft Power Fx ist die Sprache mit geringem Programmieraufwand zum Ausdrücken von Logik in Canvas-basierten Power Apps. Power Fx wurde von Microsoft Excel inspiriert und befolgt viele der Muster, die in Excel-Ausdrücken zu finden sind.

Ausdrücke und Formeln

Sie schreiben jedoch nicht nur Ausdrücke in Excel, sondern auch Formeln oder Rezepturen zur Berechnung des Werts einer bestimmten Zelle. A1 = B2 * 2 ist eine Formel, die den Wert von A1 jederzeit definiert und automatisch neu berechnet wird, wenn B2 sich ändert.

Power Fx folgt demselben Formelmuster. Zellen werden durch die Eigenschaften von Steuerelementen oder Objekten ersetzt. Hier ist ein Beispiel, in dem wir diese Excel-Formel aus dem Stapelüberlauf für die umgekehrte Zeichenfolgensuche übernommen haben:

Excel mit der Formel: =RIGHT(A1,LEN(A1)-FIND(

Daraus haben wir eine Power Fx-Formel erstellt. Der Unterschied besteht lediglich darin, dass die Verweise auf Zellen durch Verweise auf Steuereigenschaften ersetzt wurden:

Power Fx mit Ausführung in Power Apps und der Formel: =RIGHT(Input.Text,LEN(Input.Text)-FIND(

Dieselbe Syntax und dieselben Funktionen funktionieren nicht nur in Power Fx, sondern bewirken auch noch etwas anderes in der Animation. Wenn Input.Text sich ändert (oberes Feld), wird Label.Text (unteres Feld) automatisch neu berechnet. Die App verhält sich wie eine Tabellenkalkulation und wird ständig neu berechnet, ohne dass der App-Entwickler Code hinzufügen muss, um festzulegen, wie dies geschehen soll.

Ein deklaratives App-Modell

Viele traditionelle Anwendungsentwicklungsstacks verfügen über ein imperative-Modell zur Entwicklung im gesamten Stapel. Mit anderen Worten, der App-Entwickler muss Code für alles schreiben, was in der App geschieht: Authentifizierung und Autorisierung, Geschäftslogik, Benutzeroberfläche, Server- oder Cloud-Service-Konfiguration usw.

Power Fx ist eine deklarative Sprache, genau wie Excel. Der Entwickler definiert, welches Verhalten er möchte, aber es ist Sache des Systems, zu entscheiden, wie und wann dies erreicht werden soll. Um dies praktisch zu gestalten, werden die meisten Arbeiten mit reinen Funktionen ohne Nebeneffekten ausgeführt, sodass Power Fx auch eine funktionale Sprache ist.

Hier ist ein weiteres farbenfroheres Beispiel, das eine Formel für die Füllfarbe des Bildschirms verwendet. Wenn die Schieberegler für Rot, Grün und Blau geändert werden, ändert sich die Hintergrundfarbe automatisch, wenn sie neu berechnet wird:

Power Fx-Formel: Fülleffekt = RGBA( RedSlider.Value, GreenSlider.Value, BlueSLider.Value, 100% )

Es gibt keine OnChange-Ereignisse für die Schieberegler, wie sie in anderen Sprachen üblich sind. Tatsächlich gibt es überhaupt keine Möglichkeit, den Wert der Eigenschaft „Fill“ explizit festzulegen. Dies hat einen großen Vorteil: Es gibt nur eine Datenquelle. Wenn die Farbe nicht richtig funktioniert, müssen Sie sich nur eine Formel ansehen, um zu verstehen, warum. Sie müssen Ihre App nicht durchsuchen, um einen unerwünschten Code zu finden, der die Eigenschaft zu einem unerwarteten Zeitpunkt festlegt. Tatsächlich gibt es kein Zeitelement. Die richtigen Formelwerte werden immer beibehalten.

Beachten Sie noch etwas in der Animation: Wenn die Schieberegler auf eine dunkle Farbe eingestellt sind, ändern sich die Beschriftungen für Rot, Grün und Blau entsprechend in Weiß. Dies erfolgt über eine einfache Formel in der Color-Eigenschaft jedes Beschriftungssteuerelements:

If(
    BlueSlider.Value + GreenSlider.Value + RedSlider.Value < 150,
    White,
    Black
)

Die Logik zum Einstellen der Beschriftungsfarbe ist von den Vorgängen für die Füllfarbe isoliert. Dies sind zwei völlig unterschiedliche Berechnungen. Anstelle großer monolithischer Prozeduren besteht die Power Fx-Logik normalerweise aus vielen kleineren Formeln, die unabhängig sind. Das ist einfacher zu verstehen und ermöglicht Verbesserungen, ohne die vorhandene Logik zu beeinträchtigen.

Jetzt gibt es eine Zeit und einen Ort für zwingende, schrittweise Logik, und Power Fx bietet auch einen Ort für diese Logik. Apps schreiben Änderungen an Datenbanken zurück und starten die Automatisierung per Knopfdruck, während Tabellenkalkulationen diese Aufgaben nicht ausführen. Wann immer möglich, bevorzugen wir trotz aller oben genannten Vorteile und der Übereinstimmung mit Excel den deklarativen Ansatz.

Hinweis

Weitere Informationen zur Verwendung zwingender Entwicklungstechniken finden Sie unter Imperative Entwicklungsverfahren für Canvas-Apps in Power Apps verwenden.