Qu’est-ce que le low code ?
En quoi consiste le low code et comment est-il utilisé dans les applications canevas Power Apps ?
Vous et Kiana travaillez depuis longtemps dans la même équipe de développement « high code » ou traditionnelle chez Van Arsdel. Vous avez tout développé ensemble, depuis les applications de console .NET Core jusqu’aux API web ASP.NET Core, en passant par les bibliothèques réutilisables partagées via NuGet. Quand vous disposez de solides bases de développement classique et que vous découvrez Power Apps, vous comprenez mieux ce que signifie le terme « low-code ».
La première fois que les gens entendent le terme « low-code », celui-ci peut leur suggérer plusieurs choses. Lorsque nous parlons de développement low-code, nous exprimons le fait qu’avec des outils tels que Power Apps, il vous suffit de rédiger une petite quantité de code pour obtenir des résultats qui impliqueraient normalement un beaucoup plus grand nombre de lignes dans un langage de programmation traditionnel.
Dans les applications canevas Power Apps, le langage de script low code utilisé est appelé Power Fx ; il s’agit du langage que vous allez découvrir au fil de ce module pour créer notre application.
Prenons l’exemple suivant : pour rechercher le prénom du collaborateur pour une commande, on écrirait la formule Power Fx ou du code JavaScript équivalent comme illustré dans l’animation ci-dessous. Cette animation montre le mappage entre les parties de la formule Power Fx et les concepts à coder explicitement dans le code JavaScript équivalent.
Examinons plus en détail tout ce que Power Fx fait pour nous et son niveau de liberté d’optimisation, car la formule était déclarative :
Asynchrone
Toutes les opérations de données dans Power Fx sont asynchrones. Le développeur n’a pas besoin de le spécifier, et le développeur n’a pas non plus besoin de réaliser la synchronisation une fois l’appel terminé. Plus important encore, le développeur n’a pas du tout besoin de s’occuper de cette notion ; il n’a pas besoin de savoir ce qu’est une promesse ou une fonction lambda.
Local et distant
Power Fx utilise la même syntaxe et les mêmes fonctions pour les données locales en mémoire ou distantes, stockées dans une base de données ou un service. L’utilisateur n’a pas besoin de penser à cette distinction. Power Fx délègue automatiquement ce qu’il peut au serveur pour traiter plus efficacement les filtres et les tris.
Données relationnelles
Les commandes et les clients sont deux tables différentes, liées par une relation plusieurs-à-un. La requête OData nécessite une commande « $expand » avec la connaissance de la clé étrangère, ce qui est similaire à une fonction Join en SQL. La formule n’a rien de tout cela ; en fait les clés de base de données sont un autre concept que le créateur n’a pas besoin de connaître. Le créateur peut utiliser une simple notation par points pour accéder à l’intégralité du graphique des relations à partir d’un enregistrement.
Projection
Lors de l’écriture d’une requête, de nombreux développeurs écriront « select * from … » qui renverra toutes les colonnes de données. Power Fx analyse toutes les colonnes utilisées dans l’ensemble de l’application, même entre les dépendances de formule. La projection est automatiquement optimisée et, encore une fois, le créateur n’a même pas besoin de savoir ce que signifie ce mot.
Ne récupérer que ce qui est nécessaire
Dans cet exemple, la fonction LookUp implique qu’un seul enregistrement doit être récupéré, et c’est tout ce qui est renvoyé. Si d’autres enregistrements sont demandés à l’aide de la fonction Filtre, pour laquelle des milliers d’enregistrements peuvent se qualifier, une seule page de données est renvoyée à la fois, contenant environ une centaine d’enregistrements. L’utilisateur doit parcourir une galerie ou une table de données pour voir les autres supplémentaires, et celles-ci sont automatiquement importées pour lui. Le créateur peut opérer sur de grands jeux de données sans devoir limiter ses requêtes de données à des segments raisonnables.
Ne fonctionne que lorsque cela est nécessaire
Nous avons défini une formule pour la propriété Text du contrôle label. Au fur et à mesure que la variable Selected est modifiée, la fonction LookUp est automatiquement recalculée et l’étiquette est mise à jour. Le créateur n’a pas eu besoin d’écrire un gestionnaire OnChange pour la sélection, en ayant besoin de se rappeler que cette étiquette en dépendait. C’est la programmation déclarative que nous avons évoquée précédemment ; le créateur a indiqué ce qu’il voulait avoir dans l’étiquette, mais pas la manière ni le moment d’aller le récupérer. En fait, si cette étiquette n’est pas visible parce qu’elle se trouve sur un écran qui n’est pas visible ou que sa propriété Visible est False, nous pouvons différer ce calcul jusqu’à ce que l’étiquette soit visible et l’éliminer carrément si cela se produit rarement.
Traduction de la syntaxe Excel
Excel est utilisé par des centaines de millions de personnes, dont la plupart savent que « & » est utilisé pour la concaténation de chaînes. JavaScript utilise « + » et les autres langages utilisent « . ». Power Fx s’adapte au niveau des créateurs, en tirant parti des connaissances qu’ils possèdent déjà.
Noms d’affichage et localisation
On utilise ’First Name’ dans la formule Power Fx, tandis qu’on utilise nwind_firstname dans le code JavaScript équivalent. Dans Dataverse et SharePoint, il existe un nom d’affichage pour les champs et les tables, ainsi qu’un nom logique unique. Les noms d’affichage sont souvent beaucoup plus conviviaux, comme dans ce cas, mais ils ont une autre qualité importante : ils peuvent être traduits. Si votre équipe est multilingue, chaque membre de l’équipe peut voir les noms des tables et des champs dans sa propre langue. Dans tous les cas, Power Fx s’assure que le nom logique adéquat est envoyé automatiquement à la base de données.
Toujours actif
Un autre aspect d’Excel est très important pour les développeurs citoyens : l’immédiateté du résultat. Pensez-y un instant : Excel ne comporte ni mode d’édition, ni étape de compilation, ni état d’exécution. Ce qui est génial, c’est que vous n’y avez probablement jamais pensé auparavant : vous chargez votre feuille de calcul, vous modifiez librement les formules et les valeurs, et vous obtenez vos réponses. La feuille de calcul est toujours active dans Excel et aucune distinction n’est faite entre l’édition et l’exécution. La modification de toute valeur ou formule est immédiatement propagée sur l’ensemble de la feuille de calcul et le créateur peut rapidement trouver la réponse qu’il cherche. Toutes les erreurs détectées par Excel sont immédiatement mises en évidence et n’interfèrent pas avec le reste de la feuille de calcul.