Derrière l'intitulé, les offres décrivent surtout du back-end : des API ASP.NET Core sur App Service ou dans des conteneurs, des Azure Functions déclenchées par une file ou un minuteur, des échanges par Service Bus, une base Azure SQL ou Cosmos DB. Le déploiement passe par Azure DevOps ou GitHub Actions, l'infrastructure par Bicep ou Terraform. Les offres de tech lead ajoutent souvent la migration d'applications .NET Framework.
Azure figure sur presque tous les CV .NET. L'écart se voit dans les détails : une chaîne de connexion avec mot de passe dans appsettings.json au lieu d'une identité managée, un message Service Bus traité deux fois sans que personne le remarque, une Function qui ouvre un HttpClient à chaque appel. Un profil qui a exploité ces services parle de DefaultAzureCredential, de dead-letter, de modèle isolé et de traces dans Application Insights.
Deux dates comptent cette année. Microsoft a retiré la certification AZ-204 le 31 juillet 2026, et AI-200, qui lui succède, se concentre sur l'IA. Le modèle in-process d'Azure Functions perd son support le 10 novembre 2026. Demandez où en sont les applications que la personne maintient. Le PDF reprend 30 questions, un cas de 20 minutes et une grille de 1 à 4.
Les services Azure qu'un développeur .NET utilise au quotidien
ASP.NET Core sur App Service
Le cas le plus courant est une API ASP.NET Core déployée sur App Service, la plateforme web managée d'Azure. Elle gère la mise à l'échelle, les certificats et les slots de déploiement, qui permettent de basculer une nouvelle version sans coupure. Vérifiez que la personne sait ce qui change entre son poste et l'hébergement : configuration, journaux, démarrage.
Azure Functions
Du code exécuté à la demande, déclenché par une requête HTTP, un message, un fichier ou un minuteur. En .NET, seul le modèle isolé reste pris en charge après le 10 novembre 2026. Le plan Flex Consumption remplace peu à peu la consommation classique sur Linux. Durable Functions ajoute des orchestrations longues qui reprennent après un redémarrage.
Container Apps et AKS
Pour les applications en conteneurs. Container Apps masque Kubernetes et suffit à la plupart des API et des workers. AKS donne un cluster Kubernetes complet, avec l'exploitation qui va avec. Un développeur .NET doit au moins savoir écrire un Dockerfile propre et lire les journaux d'un conteneur qui redémarre en boucle.
Service Bus et Event Grid
Service Bus transporte des messages entre applications, avec des files, des topics, une file des messages en échec (dead-letter) et des sessions pour garder l'ordre. Event Grid diffuse des événements, comme un fichier déposé ou une ressource modifiée, vers des abonnés. Event Hubs sert aux gros flux de télémétrie. Demandez lequel la personne a utilisé, et pour quel besoin.
Azure SQL et Cosmos DB
Azure SQL est SQL Server managé, utilisé avec Entity Framework Core ou Dapper. Cosmos DB est une base NoSQL distribuée, facturée en unités de requête (RU). Le choix de la clé de partition y décide des performances et de la facture. Demandez comment la personne l'a choisie sur un projet réel.
Entra ID, identité managée et Key Vault
Entra ID, l'ancien Azure Active Directory, authentifie les utilisateurs et les applications. Une identité managée permet à une application d'accéder à une base ou à un stockage sans mot de passe dans la configuration, avec DefaultAzureCredential dans le code. Key Vault garde les secrets et certificats qui restent nécessaires.
Application Insights et Azure Monitor
La supervision : traces des requêtes, dépendances appelées, exceptions, métriques, alertes. Microsoft pousse désormais la distribution Azure Monitor d'OpenTelemetry plutôt que les anciens SDK. Un profil expérimenté écrit une requête KQL pour retrouver les erreurs d'une heure donnée.
Bicep, Terraform et pipelines
L'infrastructure se décrit en Bicep, le langage d'Azure, ou en Terraform. Les pipelines Azure DevOps ou GitHub Actions construisent, testent et déploient, de préférence avec une connexion par fédération d'identité (OIDC) plutôt qu'avec le secret d'un principal de service.
Selon l'équipe, le poste penche vers le code applicatif ou vers la plateforme. Dans une petite équipe, la même personne écrit l'API, la Function, le Bicep et le pipeline. Quand une équipe cloud fournit l'infrastructure, le développeur consomme des services déjà configurés, avec moins de droits sur l'abonnement. Les migrations reviennent souvent : applications .NET Framework hébergées sur IIS à porter vers .NET 10 et App Service, Functions in-process à passer au modèle isolé, chaînes de connexion à remplacer par des identités managées. La certification AZ-204 reste fréquente sur les CV, même si elle n'est plus délivrée depuis fin juillet 2026.
Compétences à valider sur un poste .NET Azure
- C# et ASP.NET Core en production
- Azure Functions et choix d'hébergement
- Messagerie Service Bus et Event Grid
- Azure SQL, EF Core et Cosmos DB
- Identité managée, Entra ID et réseau
- Supervision, CI/CD et infrastructure
Cinq questions .NET Azure avec la réponse attendue
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é
Votre API doit lire une base Azure SQL et un compte de stockage. Comment gérez-vous les identifiants, en local comme en production ?
Une bonne réponseUne identité managée attribuée à l'App Service ou à la Function, avec les rôles minimaux sur la base et sur le stockage (par exemple Storage Blob Data Reader). Dans le code, DefaultAzureCredential, qui prend l'identité managée en production et le compte du développeur (Visual Studio, Azure CLI) en local. Aucun mot de passe dans appsettings.json ni dans le dépôt. Key Vault garde les secrets qui restent, référencés depuis la configuration de l'App Service.
Signal d'alerteUne chaîne de connexion avec login et mot de passe SQL dans appsettings.json, ou la clé du compte de stockage copiée dans une variable d'environnement.
Question 2 · confirmé
Un message Service Bus est traité deux fois et une commande part en double. Que s'est-il passé, et comment l'évitez-vous ?
Une bonne réponseEn mode peek-lock, si le traitement dépasse la durée du verrou ou si le message n'est pas complété, il redevient visible et un autre consommateur le reprend. Service Bus livre au moins une fois. Le traitement doit donc être idempotent : identifiant métier, contrainte d'unicité en base ou table des messages déjà traités. La personne cite le renouvellement automatique du verrou, la détection des doublons à l'envoi sur le MessageId et le MaxDeliveryCount avant passage en dead-letter.
Signal d'alerte« Service Bus garantit qu'un message n'est livré qu'une fois », ou le mode ReceiveAndDelete choisi pour éviter les doublons, au prix de messages perdus.
Question 3 · confirmé
Une Azure Function HTTP met plusieurs secondes à répondre au premier appel, puis devient rapide. Que se passe-t-il, et que proposez-vous ?
Une bonne réponseUn démarrage à froid. Sur un plan à la consommation, l'instance s'arrête après une période sans trafic et doit redémarrer. Pistes : le plan Flex Consumption avec des instances toujours prêtes, le plan Premium, ou App Service si la charge est continue. Côté code, moins de travail au démarrage, la compilation ReadyToRun, et des clients (HttpClient, ServiceBusClient, CosmosClient) créés une fois et réutilisés.
Signal d'alerteUn appel HTTP toutes les cinq minutes pour garder la Function éveillée, sans rien savoir des plans d'hébergement.
Question 4 · senior
Vous concevez un conteneur Cosmos DB pour stocker des commandes. Comment choisissez-vous la clé de partition ?
Une bonne réponseD'après les requêtes les plus fréquentes. La clé doit figurer dans le filtre des lectures courantes, pour éviter les requêtes sur toutes les partitions, et répartir les écritures sans partition chaude. L'identifiant client convient si les lectures se font par client et qu'aucun client ne dépasse 20 Go, la limite d'une partition logique ; sinon une clé hiérarchique ou synthétique. La personne mesure le coût en RU de chaque requête type.
Signal d'alerteLa date du jour comme clé, qui envoie toutes les écritures sur la même partition, ou « on verra plus tard ».
Question 5 · confirmé
Dans une API ASP.NET Core, un appel à .Result sur une tâche fait tomber le service sous charge. Pourquoi ?
Une bonne réponseBloquer sur une tâche (.Result, .Wait()) occupe un thread du pool pendant toute l'attente. Sous charge, tous les threads finissent bloqués, le pool grandit lentement et les requêtes s'accumulent : c'est la famine du thread pool. ASP.NET Core n'a pas de contexte de synchronisation, donc pas l'interblocage classique d'ASP.NET sur .NET Framework, mais l'effet en production est le même. Correction : async/await de bout en bout, avec un CancellationToken transmis.
Signal d'alerte« C'est pareil, .Result attend juste la fin », ou ConfigureAwait(false) présenté comme la solution.
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
Recrutement d'un développeur .NET Azure : vos questions
AZ-204 sur un CV : qu'en penser depuis son retrait ?
La certification Azure Developer Associate (AZ-204) n'est plus délivrée depuis le 31 juillet 2026. AI-200, qui lui succède, met l'accent sur l'IA, les bases vectorielles et Python. Un AZ-204 obtenu avant cette date montre que la personne a étudié Functions, le stockage, l'identité et la supervision. Il ne dit rien de l'exploitation réelle. Demandez une Function migrée vers le modèle isolé ou un incident Service Bus résolu.
Un développeur .NET sans expérience Azure peut-il prendre ce poste ?
Sur le code, oui. ASP.NET Core, EF Core et async/await sont les mêmes. L'écart porte sur l'identité managée, la messagerie, les plans d'hébergement et la supervision. Prévoyez une période d'adaptation où un collègue expérimenté relit ses premiers déploiements. Si la personne doit tenir seule l'application en production, l'expérience d'exploitation Azure devient une condition.
Quel exercice donner à un développeur .NET Azure ?
Pour le test technique, partez d'un petit projet existant : une Function qui lit une file Service Bus et écrit en base, avec une chaîne de connexion en dur, un HttpClient créé à chaque appel et aucun traitement des doublons. Demandez ce qu'il faut corriger avant la production. En 30 à 45 minutes, vous voyez la pratique de l'async, de la messagerie et de la sécurité. Faites commenter à voix haute.
Quelles compétences .NET Azure attendre selon le niveau ?
Un junior écrit une API ASP.NET Core propre, comprend async/await et déploie sur App Service avec un pipeline existant. Un confirmé choisit l'hébergement, gère la messagerie sans doublons, utilise les identités managées et lit Application Insights. Un senior conçoit l'ensemble : découpage en services, outbox, réseau privé, infrastructure en Bicep ou Terraform, coûts, et migration depuis .NET Framework.
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.



