Tout tourne autour du pipeline d'exécution de Dataverse dans les questions d'entretien d'un développeur Dynamics 365 CRM. Un plugin C# s'enregistre sur un message (création, mise à jour, suppression) et sur une étape, PreValidation, PreOperation ou PostOperation, en synchrone ou en asynchrone. Une mauvaise étape provoque des boucles, des mises à jour en double ou des transactions annulées. Demandez où la personne place un calcul de champ, et pourquoi.
Le poste mélange code et low-code. Une partie de la logique passe par Power Automate, des règles métier ou des colonnes calculées, et Microsoft recommande de remplacer les workflows classiques en arrière-plan par des flux. Un bon développeur sait quand une Custom API ou un plugin se justifie et quand un flux suffit. Côté interface, le JavaScript des formulaires passe par formContext et Xrm.WebApi, et les composants PCF s'écrivent en TypeScript, souvent avec React.
Vérifiez aussi l'ALM et la sécurité. Le travail se livre en solutions, non gérées en développement et gérées en production. Les droits reposent sur les unités commerciales, les rôles, les équipes et la sécurité des colonnes. L'examen PL-400 a été retiré le 30 octobre 2026, et la certification Power Platform Developer Associate s'obtient désormais par l'examen AB-400. Le PDF contient un cas de 20 minutes sur l'affectation automatique des demandes clients.
Dataverse et ses points d'extension
Dataverse
La base de données de Dynamics 365 et de Power Apps. Elle stocke les tables (comptes, contacts, opportunités, tables personnalisées), applique la sécurité et déclenche les plugins. On l'interroge par le SDK .NET, l'API Web OData ou FetchXML. Toutes les applications Customer Engagement reposent dessus.
Plugins C#
Du code .NET exécuté par Dataverse quand une ligne est créée, modifiée ou supprimée. Le plugin reçoit le contexte (la ligne cible, des images avant et après) et tourne dans un bac à sable. L'opération entière, plugins compris, doit finir en deux minutes. Commencez l'évaluation par là, avec l'ordre des étapes et la prévention des boucles.
Custom APIs
Des messages personnalisés définis dans Dataverse et implémentés par un plugin. Ils exposent une logique métier appelable depuis le JavaScript, Power Automate ou un système externe. Microsoft les recommande à la place des actions personnalisées et des activités de workflow personnalisées.
JavaScript client API
Les scripts des formulaires des applications pilotées par modèle : afficher ou masquer un champ, contrôler une saisie, appeler l'API Web. Le code passe par le contexte d'exécution et formContext. Un CV qui cite encore Xrm.Page décrit d'anciennes habitudes, cet objet étant déprécié.
PCF (Power Apps component framework)
Le cadre pour construire des contrôles sur mesure en TypeScript, comme une grille éditable ou un champ avec une validation riche. On les crée avec Power Platform CLI (pac) et on les livre dans une solution. Les composants virtuels utilisent le React fourni par la plateforme.
Power Automate
Les flux déclenchés par Dataverse, sur une ligne créée ou modifiée, remplacent peu à peu les workflows classiques. Ils conviennent aux tâches asynchrones et aux appels de connecteurs. Pour une règle qui doit bloquer une saisie ou s'exécuter dans la transaction, un plugin reste nécessaire.
Solutions et ALM
Tout développement se livre dans une solution, non gérée en développement, gérée en recette et en production. Power Platform CLI, les Power Platform Build Tools pour Azure DevOps, GitHub Actions ou les pipelines intégrés à Power Platform automatisent l'export et l'import. Les variables d'environnement évitent de coder une URL en dur.
Sécurité Dataverse
Unités commerciales, rôles de sécurité, équipes propriétaires et équipes d'accès, sécurité hiérarchique, profils de sécurité de colonnes. Un rôle donne des droits par table et par portée (utilisateur, unité commerciale, unité et sous-unités, organisation). Un plugin peut s'exécuter avec d'autres droits que l'utilisateur, ce qui se contrôle.
Intégrations Azure
Dataverse publie des événements vers Azure Service Bus, Event Hubs ou des webhooks, et des Azure Functions traitent les échanges avec les autres systèmes. Les limites de protection du service renvoient une erreur 429 aux clients qui envoient trop de requêtes.
Le développeur Dynamics 365 CE / CRM travaille sur Sales, Customer Service, Field Service ou des applications pilotées par modèle construites sur Dataverse, avec des consultants fonctionnels qui configurent tables, formulaires et vues. Les offres françaises l'intitulent développeur CRM Dynamics 365, consultant technique ou développeur Power Platform. Elles citent C#, .NET, JavaScript, TypeScript, PCF, Power Automate, Dataverse, des API REST et des services Azure comme Functions, Logic Apps ou Service Bus. Une part des postes concerne des organisations installées depuis des années, avec du code ancien à reprendre. Précisez dans l'offre les applications utilisées, le volume de code existant et l'outillage de déploiement.
Les compétences Dataverse à valider en entretien
- Plugins et pipeline Dataverse
- Custom APIs, requêtes et intégrations
- JavaScript client et PCF
- Code ou Power Automate
- Sécurité Dataverse
- Solutions et ALM
Cinq questions sur les plugins, le PCF et la sécurité
Chaque question vient avec ce qu'une bonne réponse contient et le signal qui doit vous alerter. Pas besoin d'être technique pour les poser : écoutez si le candidat raconte du vécu.
Question 1 · confirmé
Un champ « montant total » doit se recalculer chaque fois qu'une ligne de commande change. Où enregistrez-vous votre plugin, et sur quelle étape ?
Une bonne réponseSur la création, la mise à jour et la suppression de la ligne, en PostOperation synchrone pour que le total soit juste dans la même transaction, avec des attributs de filtrage (quantité, prix) pour ne pas se déclencher à chaque modification. Une pré-image donne le montant de la ligne supprimée ou l'ancienne valeur. La personne vérifie la profondeur d'exécution (Depth) ou compare les valeurs pour éviter une boucle quand l'en-tête est mis à jour. Elle cite la colonne de cumul quand un délai de mise à jour est acceptable.
Signal d'alerteUn plugin sur toutes les mises à jour sans filtrage, ou un calcul en JavaScript sur le formulaire, qui ne couvre ni les imports ni les intégrations.
Question 2 · senior
Un portail externe doit créer un dossier client sur trois tables liées, avec une règle métier, en un seul appel. Que proposez-vous ?
Une bonne réponseUne Custom API avec des paramètres d'entrée et de sortie typés, implémentée par un plugin qui crée les lignes dans la même transaction. Le portail l'appelle par l'API Web avec une application enregistrée dans Microsoft Entra ID et un utilisateur d'application au rôle limité. Quand il n'y a pas de logique à centraliser, une requête $batch avec un changeset ou une création en profondeur suffit.
Signal d'alerteTrois appels séparés depuis le portail sans transaction, ou un compte nominatif avec son mot de passe dans le code du portail.
Question 3 · junior à confirmé
Sur un formulaire, un champ doit devenir obligatoire selon la valeur d'un autre. Comment l'écrivez-vous ?
Une bonne réponseD'abord une règle métier si la logique est simple, sans code. En JavaScript, une fonction appelée sur l'événement OnChange et au chargement, qui récupère formContext depuis le contexte d'exécution et appelle setRequiredLevel sur l'attribut. La personne rappelle que cela ne protège que le formulaire, et qu'un contrôle côté serveur s'impose si des imports ou des API écrivent aussi la donnée.
Signal d'alerteXrm.Page partout, ou un contrôle uniquement sur le formulaire présenté comme une garantie.
Question 4 · confirmé
Il faut prévenir le responsable par e-mail quand une opportunité dépasse 100 000 euros. Plugin ou Power Automate ?
Une bonne réponsePower Automate, déclenché sur la modification de la ligne avec une condition, parce que l'envoi est asynchrone, passe par un connecteur et se maintient plus facilement. Un plugin se justifie si l'action doit bloquer l'enregistrement ou se faire dans la transaction. La personne pense au compte qui porte la connexion, à la référence de connexion dans la solution et à la gestion des erreurs du flux.
Signal d'alerteUn plugin synchrone qui appelle un serveur de messagerie et fait échouer l'enregistrement quand l'envoi échoue.
Question 5 · confirmé
Les commerciaux d'une région ne doivent voir que les comptes de leur région, et les managers voient tout. Comment le modélisez-vous ?
Une bonne réponseDes unités commerciales par région, un rôle de sécurité avec une portée unité commerciale en lecture pour les commerciaux, une portée plus large ou la sécurité hiérarchique pour les managers. Des équipes propriétaires quand un compte appartient à un groupe. La personne se méfie du partage ligne par ligne en masse, qui pèse sur les performances, et teste avec un utilisateur réel de chaque profil.
Signal d'alerteMasquer les comptes par une vue filtrée ou du JavaScript, ce qui ne protège rien face à l'API ou à la recherche.
Recevez la fiche d'entretien complète en PDF
La fiche pour mener l'entretien de bout en bout, prête à imprimer ou à partager avec le manager.
- 30 questions sur 6 axes, avec la bonne réponse, le signal d'alerte et la relance
- Le niveau visé pour chaque question
- Une mise en situation de 20 minutes et ce qu'on attend du candidat
- La grille d'évaluation de 1 à 4, axe par axe
Avant de recruter un développeur Dynamics 365 CRM
Quelles bases .NET et JavaScript attendre d'un développeur Dynamics 365 CRM ?
En C#, le niveau qui permet d'écrire un plugin lisible : classes, interfaces, gestion des exceptions, LINQ, et un peu de tests unitaires. En JavaScript, les promesses et async/await, indispensables avec Xrm.WebApi. TypeScript devient nécessaire pour le PCF, avec des notions de React. Un très bon développeur .NET sans passé Dynamics reste à former sur le pipeline, la sécurité et les solutions, ce qui se voit dès les premières questions.
Le retrait du PL-400 change-t-il la lecture des CV ?
Peu. Le PL-400 a été retiré le 30 octobre 2026, et la certification Power Platform Developer Associate passe maintenant par l'examen AB-400, qui ajoute l'IA dans les solutions. Une certification obtenue avec le PL-400 reste un repère. Vérifiez sa date de validité sur le profil Microsoft Learn du candidat, puisqu'elle se renouvelle chaque année. Pour les deux, demandez un plugin ou un PCF livré en production.
Un test technique sur un environnement Dataverse gratuit, c'est faisable ?
Oui. Le plan développeur Power Apps fournit un environnement gratuit. En une heure, demandez un plugin PreOperation qui calcule un champ avec une pré-image, un script de formulaire qui rend un champ obligatoire, puis l'export de la solution. Faites commenter le choix de l'étape et la prévention des boucles. Un exercice en direct dit plus qu'un long devoir à rendre.
Dynamics 365 CRM et Power Apps demandent-ils le même développeur ?
La base technique est la même : Dataverse, plugins, applications pilotées par modèle, PCF, solutions. Les applications Dynamics 365 ajoutent leur propre logique (opportunités, incidents, contrats de service, routage) que le développeur doit connaître pour ne pas recoder le standard. Un profil Power Apps canevas, centré sur Power Fx, aura plus de chemin à faire sur les plugins et la sécurité.
Pour structurer vos autres entretiens, consultez aussi nos pages sur les questions d'entretien de recrutement, la méthode de l'entretien structuré et la grille d'évaluation d'entretien.



