Comprendre Power Fx

Effectué

Après cette brève présentation du développement « low code », vous et Kiana avez remarqué des similitudes et des différences entre les langages de programmation vous ayant traditionnellement permis de créer des applications, comme C# et JavaScript, et Power FX utilisés dans Power Apps.

Microsoft Power Fx est le langage « low code » qui permet d’exprimer la logique dans une application canevas Power Apps. Power Fx est inspiré de Microsoft Excel et suit de nombreux modèles trouvés dans les expressions Excel.

Expressions et formules

Mais vous n’écrivez pas seulement des expressions dans Excel, vous écrivez des formules ou des recettes pour calculer la valeur d’une cellule spécifique. A1 = B2 * 2 est une formule qui définit la valeur de A1 à tout moment et qui est recalculée automatiquement lorsque B2 change.

Power Fx suit ce même modèle de formule. Les cellules sont remplacées par les propriétés des contrôles ou des objets. Voici un exemple où nous avons repris cette formule Excel du dépassement de la capacité de la pile pour la recherche inverse de chaînes :

Excel avec la formule : = RIGHT(A1,LEN(A1)-FIND(

Et j’ai créé une formule Power Fx à partir de ça. La seule différence est que les références aux cellules ont été remplacées par des références aux propriétés des contrôles :

Power Fx s’exécutant dans Power Apps avec la formule : =RIGHT(Input.Text,LEN(Input.Text)-FIND(

Non seulement cette même syntaxe et les mêmes fonctions fonctionnent dans Power Fx, mais remarquez autre chose dans l’animation. À mesure que Input.Text change (la zone supérieure), Label.Text (la zone inférieure) est automatiquement recalculée. L’application se comporte comme une feuille de calcul : elle recalcule tout le temps, sans que le développeur de l’application n’ait besoin d’ajouter du code indiquant comment y parvenir.

Un modèle d’application déclaratif

De nombreuses piles de développement d’applications traditionnelles disposent d’un modèle impératif de développement à travers la pile. En d’autres termes, le développeur de l’application doit écrire du code pour tout ce qui se passe dans l’application : authentification et autorisation, logique métier, interface utilisateur, configuration du serveur ou du service cloud, etc.

Power Fx est un langage déclaratif, tout comme Excel. Le développeur définit le comportement qu’il souhaite, mais c’est au système de décider comment et quand l’accomplir. Pour rendre cela pratique, la plupart des tâches sont effectuées par des fonctions pures sans effets secondaires, ce qui fait de Power Fx un langage fonctionnel.

Voici un autre exemple plus coloré qui utilise une formule pour la couleur de remplissage de l’écran. Lorsque les curseurs qui contrôlent le rouge, le vert et le bleu sont modifiés, la couleur d’arrière-plan change automatiquement, au fur et à mesure qu’elle est recalculée :

Formule Power Fx : Fill = RGBA( RedSlider.Value, GreenSlider.Value, BlueSLider.Value, 100% )

Il n’y a pas d’événements OnChange pour les commandes de curseur, comme c’est le cas dans d’autres langages. En fait, il n’existe aucun moyen de définir explicitement la valeur de la propriété Fill. Ce qui a un énorme avantage : il n’y a qu’une seule source de vérité. Si la couleur ne fonctionne pas correctement, il vous suffit de regarder une formule pour comprendre pourquoi. Vous n’avez pas besoin de fouiller dans votre application pour trouver un morceau de code malveillant qui a défini la propriété à un moment inattendu. En fait, il n’y a pas d’élément temporel ; les valeurs de formule correctes sont toujours conservées.

Remarquez autre chose dans l’animation : lorsque les curseurs sont réglés sur une couleur sombre, les étiquettes du rouge, du vert et du bleu deviennent blanches pour correspondre. Cela se fait via une formule simple sur la propriété Color de chaque contrôle label :

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

La logique de définition de la couleur de l’étiquette est isolée de ce qui se passe pour la couleur de remplissage, ce sont deux calculs entièrement différents. Au lieu de grandes procédures monolithiques, la logique de Power Fx est généralement constituée de nombreuses formules plus petites et indépendantes. C’est plus facile à comprendre et cela permet d’apporter des améliorations sans perturber la logique existante.

Il y a maintenant un temps et une place pour la logique impérative, étape par étape, et Power Fx offre également une place pour cette logique. Les applications réécrivent les modifications apportées aux bases de données et lancent des automatisations en appuyant sur un bouton, alors que les feuilles de calcul ne font pas cela. Dans la mesure du possible, pour tous les avantages cités ci-dessus et la cohérence avec Excel, nous privilégions l’approche déclarative.

Remarque

Pour en savoir plus sur l’utilisation des techniques de développement impératif, consultez Utiliser les techniques de développement impératif pour les applications canevas dans Power Apps.