<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Containers | The .NET Blog</title><link>https://thedotnetblog.com/fr/tags/containers/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>fr</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Sat, 25 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/fr/tags/containers/index.xml" rel="self" type="application/rss+xml"/><item><title>.NET 10 Est Livré avec Ubuntu 26.04 LTS — Ce qui Est Nouveau</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/dotnet-ubuntu-2604-resolute-raccoon-net10/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/dotnet-ubuntu-2604-resolute-raccoon-net10/</guid><description>Ubuntu 26.04 LTS (Resolute Raccoon) est sorti avec .NET 10 comme toolchain de première classe. Native AOT, conteneurs chiseled, Linux 7.0.</description><content:encoded>&lt;p&gt;&lt;em&gt;Ce post a été traduit automatiquement. Pour la version originale, &lt;a href="https://thedotnetblog.com/fr/news/emiliano-montesdeoca/dotnet-ubuntu-2604-resolute-raccoon-net10/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est le jour de l&amp;rsquo;Ubuntu LTS. &lt;a href="https://canonical.com/blog/canonical-releases-ubuntu-26-04-lts-resolute-raccoon"&gt;Ubuntu 26.04 (Resolute Raccoon)&lt;/a&gt; est sorti aujourd&amp;rsquo;hui avec &lt;a href="https://devblogs.microsoft.com/dotnet/whats-new-for-dotnet-in-ubuntu-2604/"&gt;.NET 10&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;LTS sur LTS — cinq ans de support pour l&amp;rsquo;OS, correspondant à la fenêtre de support long terme de .NET 10.&lt;/p&gt;
&lt;h2 id="installer-net-10-en-deux-commandes"&gt;Installer .NET 10 en deux commandes&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install dotnet-sdk-10.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;.NET est l&amp;rsquo;une des &lt;a href="https://ubuntu.com/toolchains"&gt;toolchains officiellement supportées sur Ubuntu&lt;/a&gt; — pas un add-on tiers.&lt;/p&gt;
&lt;h2 id="conteneurs--mettre-à-jour--noble-vers--resolute"&gt;Conteneurs : mettre à jour &lt;code&gt;-noble&lt;/code&gt; vers &lt;code&gt;-resolute&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;La migration est une seule ligne :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sed -i &lt;span class="s2"&gt;&amp;#34;s/noble/resolute/g&amp;#34;&lt;/span&gt; Dockerfile
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Toutes les variantes d&amp;rsquo;images existantes — y compris &lt;a href="https://devblogs.microsoft.com/dotnet/announcing-dotnet-chiseled-containers/"&gt;Chiseled&lt;/a&gt; — sont disponibles.&lt;/p&gt;
&lt;h2 id="native-aot--démarrage-en-3ms-binaire-de-14mb"&gt;Native AOT : démarrage en 3ms, binaire de 1,4MB&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt install -y dotnet-sdk-aot-10.0 clang
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet publish app.cs
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# artifacts/app/app — binaire natif de 1,4MB&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# real 0m0.003s&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pour les charges de travail cloud-native où le temps de démarrage à froid compte — Functions, conteneurs, serverless — c&amp;rsquo;est un vrai changement de jeu.&lt;/p&gt;
&lt;h2 id="besoin-de-net-8-ou-9-"&gt;Besoin de .NET 8 ou 9 ?&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt install -y software-properties-common
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;add-apt-repository ppa:dotnet/backports
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt install -y dotnet-sdk-8.0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Le &lt;a href="https://devblogs.microsoft.com/dotnet/whats-new-for-dotnet-in-ubuntu-2604/"&gt;post complet&lt;/a&gt; contient plus de détails.&lt;/p&gt;</content:encoded></item><item><title>Aspire 13.2 : Support Bun, Meilleurs Conteneurs et Moins de Friction de Debug</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-132-bun-container-enhancements/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-132-bun-container-enhancements/</guid><description>Aspire 13.2 ajoute le support Bun de première classe pour les apps Vite, corrige la fiabilité de Yarn et apporte des améliorations aux conteneurs qui rendent le comportement local plus prévisible.</description><content:encoded>&lt;p&gt;&lt;em&gt;Cet article a été traduit automatiquement. Pour la version originale, &lt;a href="https://thedotnetblog.com/posts/emiliano-montesdeoca/aspire-132-bun-container-enhancements/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Si vous construisez des backends .NET avec des frontends JavaScript dans Aspire, la 13.2 est la mise à jour qui améliore silencieusement votre quotidien. Des améliorations solides à des choses légèrement agaçantes.&lt;/p&gt;
&lt;h2 id="bun-est-maintenant-citoyen-de-première-classe"&gt;Bun est Maintenant Citoyen de Première Classe&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addViteApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;frontend&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;./frontend&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;withBun&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si votre équipe utilise déjà Bun, Aspire ne vous force plus à aller à contre-courant.&lt;/p&gt;
&lt;h2 id="yarn-plus-fiable"&gt;Yarn Plus Fiable&lt;/h2&gt;
&lt;p&gt;Les utilisateurs de Yarn bénéficient de moins d&amp;rsquo;échecs mystérieux avec &lt;code&gt;withYarn()&lt;/code&gt; et &lt;code&gt;addViteApp()&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="améliorations-des-conteneurs"&gt;Améliorations des Conteneurs&lt;/h2&gt;
&lt;p&gt;Pull policy explicite avec &lt;code&gt;ImagePullPolicy.Never&lt;/code&gt; pour utiliser l&amp;rsquo;image locale sans aller au registry. PostgreSQL 18+ avec des volumes de données fonctionne maintenant correctement.&lt;/p&gt;
&lt;h2 id="améliorations-du-débogage"&gt;Améliorations du Débogage&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DebuggerDisplayAttribute&lt;/code&gt; sur les types core&lt;/li&gt;
&lt;li&gt;Meilleurs messages d&amp;rsquo;erreur pour &lt;code&gt;WaitFor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BeforeResourceStartedEvent&lt;/code&gt; se déclenche au bon moment&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Post original de David Pine : &lt;a href="https://devblogs.microsoft.com/aspire/aspire-bun-support-and-container-enhancements/"&gt;Aspire 13.2: Bun Support and Container Enhancements&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Où héberger vos agents IA sur Azure ? Un guide de décision pratique</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-ai-agent-hosting-options-guide/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-ai-agent-hosting-options-guide/</guid><description>Azure propose six façons d'héberger des agents IA — des conteneurs bruts aux Foundry Hosted Agents entièrement gérés. Voici comment choisir la bonne option pour votre charge de travail .NET.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Cet article a été traduit automatiquement. Pour la version originale, &lt;a href="https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-ai-agent-hosting-options-guide/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si vous construisez des agents IA avec .NET en ce moment, vous avez probablement remarqué quelque chose : il y a &lt;em&gt;beaucoup&lt;/em&gt; de façons de les héberger sur Azure. Container Apps, AKS, Functions, App Service, Foundry Agents, Foundry Hosted Agents — et tous semblent raisonnables jusqu&amp;rsquo;à ce que vous ayez réellement besoin d&amp;rsquo;en choisir un. Microsoft vient de publier un &lt;a href="https://devblogs.microsoft.com/all-things-azure/hostedagent/"&gt;guide complet sur l&amp;rsquo;hébergement d&amp;rsquo;agents IA sur Azure&lt;/a&gt; qui clarifie tout ça, et je veux le décomposer du point de vue pratique d&amp;rsquo;un développeur .NET.&lt;/p&gt;
&lt;h2 id="les-six-options-en-un-coup-dœil"&gt;Les six options en un coup d&amp;rsquo;œil&lt;/h2&gt;
&lt;p&gt;Voici comment je résumerais le paysage :&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Idéal pour&lt;/th&gt;
&lt;th&gt;Vous gérez&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Container Apps&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Contrôle total des conteneurs sans complexité K8s&lt;/td&gt;
&lt;td&gt;Observabilité, état, cycle de vie&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AKS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Conformité entreprise, multi-cluster, réseau personnalisé&lt;/td&gt;
&lt;td&gt;Tout (c&amp;rsquo;est le but)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Azure Functions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tâches d&amp;rsquo;agents événementielles et courtes&lt;/td&gt;
&lt;td&gt;Presque rien — vrai serverless&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;App Service&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Agents HTTP simples, trafic prévisible&lt;/td&gt;
&lt;td&gt;Déploiement, config de scaling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Foundry Agents&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Agents sans code via portail/SDK&lt;/td&gt;
&lt;td&gt;Presque rien&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Foundry Hosted Agents&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Agents framework personnalisé avec infra gérée&lt;/td&gt;
&lt;td&gt;Uniquement votre code d&amp;rsquo;agent&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Les quatre premières sont du compute généraliste — vous &lt;em&gt;pouvez&lt;/em&gt; y exécuter des agents, mais elles n&amp;rsquo;ont pas été conçues pour ça. Les deux dernières sont natives aux agents : elles comprennent les conversations, les appels d&amp;rsquo;outils et les cycles de vie des agents comme des concepts de première classe.&lt;/p&gt;
&lt;h2 id="foundry-hosted-agents--le-sweet-spot-pour-les-développeurs-net-dagents"&gt;Foundry Hosted Agents — le sweet spot pour les développeurs .NET d&amp;rsquo;agents&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est ce qui a attiré mon attention. Les Foundry Hosted Agents se situent pile au milieu : vous obtenez la flexibilité d&amp;rsquo;exécuter votre propre code (Semantic Kernel, Agent Framework, LangGraph — peu importe) mais la plateforme gère l&amp;rsquo;infrastructure, l&amp;rsquo;observabilité et la gestion des conversations.&lt;/p&gt;
&lt;p&gt;La pièce clé est le &lt;strong&gt;Hosting Adapter&lt;/strong&gt; — une fine couche d&amp;rsquo;abstraction qui connecte votre framework d&amp;rsquo;agents à la plateforme Foundry. Pour Microsoft Agent Framework, ça ressemble à ça :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;azure.ai.agentserver.agentframework&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;from_agent_framework&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ChatAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;chat_client&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;AzureAIAgentClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;instructions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;You are a helpful assistant.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;get_local_time&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vm"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;from_agent_framework&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;C&amp;rsquo;est toute votre histoire d&amp;rsquo;hébergement. L&amp;rsquo;adapter gère la traduction de protocoles, le streaming via server-sent events, l&amp;rsquo;historique de conversation et le traçage OpenTelemetry — tout automatiquement. Pas de middleware personnalisé, pas de plomberie manuelle.&lt;/p&gt;
&lt;h2 id="le-déploiement-est-vraiment-simple"&gt;Le déploiement est vraiment simple&lt;/h2&gt;
&lt;p&gt;J&amp;rsquo;ai déployé des agents sur Container Apps avant et ça fonctionne, mais on finit par écrire beaucoup de code de colle pour la gestion d&amp;rsquo;état et l&amp;rsquo;observabilité. Avec Hosted Agents et &lt;code&gt;azd&lt;/code&gt;, le déploiement c&amp;rsquo;est :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Installer l&amp;#39;extension agent IA&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ext install azure.ai.agents
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Initialiser depuis un template&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Construire, pousser, déployer — terminé&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd up
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ce seul &lt;code&gt;azd up&lt;/code&gt; construit votre conteneur, le pousse vers ACR, provisionne le projet Foundry, déploie les endpoints de modèle et démarre votre agent. Cinq étapes condensées en une seule commande.&lt;/p&gt;
&lt;h2 id="gestion-de-conversations-intégrée"&gt;Gestion de conversations intégrée&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est la partie qui fait gagner le plus de temps en production. Au lieu de construire votre propre store d&amp;rsquo;état de conversation, les Hosted Agents le gèrent nativement :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Créer une conversation persistante&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;conversation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conversations&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Premier tour&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;response1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;responses&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;extra_body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;agent_reference&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;MyAgent&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent_reference&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Remember: my favorite number is 42.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Deuxième tour — le contexte est préservé&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;response2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;responses&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;extra_body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;agent_reference&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;MyAgent&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent_reference&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Multiply my favorite number by 10.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pas de Redis. Pas de store de sessions Cosmos DB. Pas de middleware personnalisé pour la sérialisation des messages. La plateforme gère tout simplement.&lt;/p&gt;
&lt;h2 id="mon-framework-de-décision"&gt;Mon framework de décision&lt;/h2&gt;
&lt;p&gt;Après avoir passé en revue les six options, voici mon modèle mental rapide :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Vous avez besoin de zéro infrastructure ?&lt;/strong&gt; → Foundry Agents (portail/SDK, pas de conteneurs)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vous avez du code d&amp;rsquo;agent personnalisé mais voulez un hébergement géré ?&lt;/strong&gt; → Foundry Hosted Agents&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vous avez besoin de tâches d&amp;rsquo;agents événementielles et courtes ?&lt;/strong&gt; → Azure Functions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vous avez besoin d&amp;rsquo;un contrôle maximum des conteneurs sans K8s ?&lt;/strong&gt; → Container Apps&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vous avez besoin de conformité stricte et multi-cluster ?&lt;/strong&gt; → AKS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vous avez un agent HTTP simple avec un trafic prévisible ?&lt;/strong&gt; → App Service&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Pour la plupart des développeurs .NET qui construisent avec Semantic Kernel ou Microsoft Agent Framework, Hosted Agents est probablement le bon point de départ. Vous obtenez le scale-to-zero, OpenTelemetry intégré, la gestion des conversations et la flexibilité de framework — sans gérer Kubernetes ni monter votre propre stack d&amp;rsquo;observabilité.&lt;/p&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;Le paysage de l&amp;rsquo;hébergement d&amp;rsquo;agents sur Azure mûrit rapidement. Si vous démarrez un nouveau projet d&amp;rsquo;agent IA aujourd&amp;rsquo;hui, je considérerais sérieusement Foundry Hosted Agents avant de recourir à Container Apps ou AKS par habitude. L&amp;rsquo;infrastructure gérée fait gagner un temps réel, et le pattern hosting adapter vous permet de garder votre choix de framework.&lt;/p&gt;
&lt;p&gt;Consultez le &lt;a href="https://devblogs.microsoft.com/all-things-azure/hostedagent/"&gt;guide complet de Microsoft&lt;/a&gt; et le &lt;a href="https://github.com/microsoft-foundry/foundry-samples/tree/main/samples/python/hosted-agents"&gt;repo Foundry Samples&lt;/a&gt; pour des exemples fonctionnels.&lt;/p&gt;</content:encoded></item><item><title>azd permet maintenant d'exécuter et déboguer des agents IA localement — Ce qui a changé en mars 2026</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/</guid><description>L'Azure Developer CLI a publié sept versions en mars 2026. Les points forts : une boucle locale d'exécution et débogage pour les agents IA, l'intégration GitHub Copilot pour la configuration de projets, et le support des Container App Jobs.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Cet article a été traduit automatiquement. Pour la version originale, &lt;a href="https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sept versions en un mois. C&amp;rsquo;est ce que l&amp;rsquo;équipe Azure Developer CLI (&lt;code&gt;azd&lt;/code&gt;) a livré en mars 2026, et la fonctionnalité phare est celle que j&amp;rsquo;attendais : &lt;strong&gt;une boucle locale d&amp;rsquo;exécution et débogage pour les agents IA&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;PC Chan &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-march-2026/"&gt;a publié le récapitulatif complet&lt;/a&gt;, et bien qu&amp;rsquo;il y ait beaucoup de contenu, laissez-moi filtrer ce qui compte vraiment pour les développeurs .NET qui construisent des apps alimentées par l&amp;rsquo;IA.&lt;/p&gt;
&lt;h2 id="exécuter-et-déboguer-des-agents-ia-sans-déployer"&gt;Exécuter et déboguer des agents IA sans déployer&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est le gros morceau. La nouvelle extension &lt;code&gt;azure.ai.agents&lt;/code&gt; ajoute des commandes qui offrent une vraie boucle interne pour les agents IA :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;azd ai agent run&lt;/code&gt; — démarre votre agent localement&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt; — lui envoie des messages (local ou déployé)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent show&lt;/code&gt; — affiche le statut du conteneur et sa santé&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt; — diffuse les logs du conteneur en temps réel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Avant, tester un agent IA signifiait déployer sur Microsoft Foundry à chaque modification. Maintenant, vous pouvez itérer localement, tester le comportement de votre agent, et ne déployer que quand vous êtes prêt.&lt;/p&gt;
&lt;h2 id="github-copilot-configure-votre-projet-azd"&gt;GitHub Copilot configure votre projet azd&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd init&lt;/code&gt; offre maintenant une option &amp;ldquo;Set up with GitHub Copilot (Preview)&amp;rdquo;. Au lieu de répondre manuellement aux prompts, un agent Copilot génère la configuration pour vous. Quand une commande échoue, &lt;code&gt;azd&lt;/code&gt; propose un dépannage assisté par IA — tout sans quitter le terminal.&lt;/p&gt;
&lt;h2 id="container-app-jobs-et-améliorations-de-déploiement"&gt;Container App Jobs et améliorations de déploiement&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Container App Jobs&lt;/strong&gt; : &lt;code&gt;azd&lt;/code&gt; déploie maintenant &lt;code&gt;Microsoft.App/jobs&lt;/code&gt; via la config existante &lt;code&gt;host: containerapp&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Timeouts configurables&lt;/strong&gt; : Nouveau flag &lt;code&gt;--timeout&lt;/code&gt; sur &lt;code&gt;azd deploy&lt;/code&gt; et champ &lt;code&gt;deployTimeout&lt;/code&gt; dans &lt;code&gt;azure.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fallback de build distant&lt;/strong&gt; : En cas d&amp;rsquo;échec du build ACR, &lt;code&gt;azd&lt;/code&gt; retombe automatiquement sur Docker/Podman local.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Validation preflight locale&lt;/strong&gt; : Les paramètres Bicep sont validés localement avant le déploiement.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="améliorations-dx"&gt;Améliorations DX&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Détection automatique pnpm/yarn&lt;/strong&gt; pour les projets JS/TS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support pyproject.toml&lt;/strong&gt; pour le packaging Python&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Répertoires de templates locaux&lt;/strong&gt; — &lt;code&gt;azd init --template&lt;/code&gt; accepte les chemins du système de fichiers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Meilleurs messages d&amp;rsquo;erreur&lt;/strong&gt; en mode &lt;code&gt;--no-prompt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Variables d&amp;rsquo;environnement de build&lt;/strong&gt; injectées dans tous les sous-processus de build (.NET, Node.js, Java, Python)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;La boucle locale de débogage d&amp;rsquo;agents IA est la star de cette version, mais l&amp;rsquo;accumulation d&amp;rsquo;améliorations de déploiement et de polish DX rend &lt;code&gt;azd&lt;/code&gt; plus mature que jamais. Si vous déployez des apps .NET sur Azure — surtout des agents IA — cette mise à jour vaut le détour.&lt;/p&gt;
&lt;p&gt;Consultez les &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-march-2026/"&gt;notes de version complètes&lt;/a&gt; pour tous les détails.&lt;/p&gt;</content:encoded></item></channel></rss>