Power Platform - Apps - Automate - SharePoint
Pages
Power Apps

Charte de nommage et bonnes pratiques Power Apps Canvas

Préfixes des contrôles

Contrôles de base

Contrôle
Préfixe
Exemple
Étiquette
etq
etqTitre, etqNomUtilisateur
Saisie de texte
sai
saiNom, saiEmail
Bouton
btn
btnValider, btnAnnuler
Liste déroulante
lst
lstCategorie, lstPays
Zone de liste modifiable
zlm
zlmProduits, zlmUtilisateurs
Sélecteur de date
dat
datDebut, datFin
Commutateur
com
comActif, comNotifications
Curseur
cur
curVolume, curPrix
Case à cocher
cas
casAccepte, casVisible
Bouton radio
rad
radChoix, radStatut
There are no rows in this table

Contrôles de données

Contrôle
Préfixe
Exemple
Gallery
gal
galProduits, galCommandes
Data Table
dtb
dtbUtilisateurs, dtbVentes
List Box
lst
lstCategories, lstOptions
Form
frm
frmNouveauClient, frmModifier
There are no rows in this table

Contrôles multimédias

Contrôle
Préfixe
Exemple
Image
img
imgLogo, imgProfil
Camera
cam
camPhoto, camSignature
Barcode Scanner
bar
barProduit, barInventaire
Video
vid
vidDemo, vidTuto
Audio
aud
audMessage, audAlarme
There are no rows in this table

Conteneurs et navigation

Contrôle
Préfixe
Exemple
Screen
scr
scrAccueil, scrParametres
Container
cnt
cntHeader, cntFooter
Group
grp
grpBoutons, grpInfos
Rectangle
rec
recSeparateur, recFond
There are no rows in this table

Conventions de nommage

1. Structure générale

[Préfixe][Nom descriptif][Suffixe optionnel]

2. Règles de base

camelCase pour tous les noms : première lettre du premier mot en majuscule puis première lettre de chaque mot suivant en majuscule (comme dans iPhone ou ceciEstUnTexteEnCamelCase)
Pas d'espaces ni de caractères spéciaux ni de lettres accentuées
Noms en français (ou anglais selon le contexte)
Maximum 32 caractères recommandé
Noms descriptifs et explicites
Éviter Nom, Type et Date comme nom (souvent 2 mots minimum sont préférables)

3. Exemples de nommage

// ✅ Bon
btnEnregistrerClient
txtNomComplet
galListeProduits
scrGestionCommandes

// ❌ Éviter
Button1
TextInput2
Gallery_1
Screen1_1

Organisation des écrans

Conventions d'écrans

scrAccueil // Écran principal
scrConnexion // Authentification
scrListeClients // Liste des entités
scrDetailClient // Détail d'une entité
scrNouveauClient // Création
scrModifierClient // Modification
scrParametres // Configuration
scrAPropos // Informations

Variables et Collections

Variables globales

// Préfixe 'g' pour global
gUtilisateurConnecte
gLangueActive
gThemeActuel
gVersionApp

Variables de contexte

// Préfixe 'loc' pour local
locClientSelectionne
locModeEdition
locMessageErreur
locDonneesFormulaire

Collections

// Préfixe 'col' pour collection
colClients
colProduits
colCommandesJour
colParametresApp

Sources de données

Conventions pour les sources

// SharePoint Lists
'Liste Clients'
'Commandes 2024'
'Paramètres Application'

// Dataverse
Contacts
Accounts
CustomEntity

// Connecteurs
Office365Users
OneDriveForBusiness
ExcelOnline

Propriétés et styles

// Couleurs
clrPrimaire: RGBA(0, 120, 212, 1)
clrSecondaire: RGBA(106, 106, 106, 1)
clrErreur: RGBA(168, 0, 0, 1)
clrSucces: RGBA(16, 124, 16, 1)

// Polices
fntTitre: {Family: "Segoe UI", Size: 16, Weight: Bold}
fntTexte: {Family: "Segoe UI", Size: 12, Weight: Normal}
fntBouton: {Family: "Segoe UI", Size: 14, Weight: Semibold}

Bonnes pratiques de développement

1. Architecture de l'application

Un écran = une fonctionnalité principale
Réutiliser les composants autant que possible
Séparer la logique métier de l'interface
Centraliser les paramètres dans des variables globales

2. Performance

// ✅ Bon - Délégation efficace
Filter(Clients, StartsWith(Nom, txtRecherche.Text))

// ❌ Éviter - Non délégable
Filter(Clients, Upper(Nom) = Upper(txtRecherche.Text))

3. Gestion des erreurs

// Structure de gestion d'erreur
If(
IsError(PatchResult),
Set(locMessageErreur, "Erreur lors de la sauvegarde : " &
First(Errors(PatchResult)).Message),
Set(locMessageSucces, "Enregistrement réussi")
)

4. Documentation

// Commentaires dans les formules
/*
Fonction : Validation du formulaire client
Auteur : [Nom]
Date : [Date]
Mise à jour : [Date dernière modification]
*/

Responsive Design

Conventions d'écrans

// Tailles d'écrans recommandées
Desktop: 1366 x 768
Tablet: 1024 x 768
Mobile: 375 x 667

// Propriétés responsive
Parent.Width > 600 // Condition tablet/desktop
Parent.Height > 500 // Condition orientation

Positionnement adaptatif

// Largeur adaptative
Width: If(Parent.Width > 600, 400, Parent.Width - 40)

// Position centré
X: (Parent.Width - Self.Width) / 2

Sécurité et gouvernance

Nommage des rôles

rolAdministrateur
rolUtilisateur
rolLecteur
rolEditeur

Variables de sécurité

gUtilisateurRole
gPermissionsActuelles
gAccesAutorise

Tests et débogage

Variables de debug

// Mode développement
gModeDebug: true/false
gLogsActive: true/false
gVersionDev: "1.0.0-beta"

Conventions de test

// Données de test
colClientsTest
locDonneesTestFormulaire
txtTestRecherche

Checklist de développement

Avant publication

Nommage respecté pour tous les contrôles
Variables et collections documentées
Gestion d'erreurs implémentée
Tests sur différentes tailles d'écran
Performance vérifiée (délégation)
Documentation à jour
Droits d'accès configurés
Sauvegarde du code source

Standards de qualité

Aucun contrôle avec nom par défaut (Button1, etc.)
Formules commentées pour la logique complexe
Messages d'erreur explicites
Navigation intuitive
Cohérence visuelle

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.