<?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>Developer Tools | The .NET Blog</title><link>https://thedotnetblog.com/fr/tags/developer-tools/</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>Fri, 15 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/fr/tags/developer-tools/index.xml" rel="self" type="application/rss+xml"/><item><title>VS Code 1.119 : OpenTelemetry pour les sessions d'agents, intégration du navigateur et sécurité</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/visual-studio-code-1-119-highlights/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/visual-studio-code-1-119-highlights/</guid><description>VS Code 1.119 (mai 2026) ajoute le traçage OpenTelemetry pour les sessions d'agents, le partage d'onglets de navigateur, des améliorations de confiance et de sécurité, et un correctif de sécurité 1.119.1.</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/visual-studio-code-1-119-highlights/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.visualstudio.com/updates/v1_119"&gt;VS Code 1.119&lt;/a&gt; est sorti le 6 mai 2026 (avec un correctif de sécurité 1.119.1 peu après). La version se concentre sur l&amp;rsquo;observabilité des agents, l&amp;rsquo;interaction avec le navigateur et la réduction des interruptions.&lt;/p&gt;
&lt;h2 id="traçage-opentelemetry-pour-les-sessions-dagents"&gt;Traçage OpenTelemetry pour les sessions d&amp;rsquo;agents&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est la fonctionnalité phare pour ceux qui font tourner des agents en production ou qui déboguent des workflows agentiques. Activez-la avec deux paramètres :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;github.copilot.chat.otel.enabled&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;github.copilot.chat.otel.otlpEndpoint&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;http://localhost:4318&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Les traces suivent les conventions sémantiques GenAI. Chaque requête d&amp;rsquo;agent produit un span racine &lt;code&gt;invoke_agent&lt;/code&gt; avec des spans enfants imbriqués : &lt;code&gt;chat&lt;/code&gt;, &lt;code&gt;execute_tool&lt;/code&gt; et &lt;code&gt;execute_hook&lt;/code&gt;. L&amp;rsquo;utilisation des tokens est rapportée par requête — y compris les comptages de lecture et de création de cache.&lt;/p&gt;
&lt;p&gt;Fonctionne avec l&amp;rsquo;agent local, l&amp;rsquo;agent de fond Copilot CLI et l&amp;rsquo;agent Claude. Tout backend compatible OTLP accepte les traces — le &lt;a href="https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/dashboard/standalone"&gt;Aspire Dashboard standalone&lt;/a&gt; fonctionne bien pour le développement local.&lt;/p&gt;
&lt;h2 id="les-agents-peuvent-maintenant-accéder-aux-onglets-du-navigateur"&gt;Les agents peuvent maintenant accéder aux onglets du navigateur&lt;/h2&gt;
&lt;p&gt;Les agents peuvent demander l&amp;rsquo;accès à vos onglets de navigateur intégré — mais ce n&amp;rsquo;est pas automatique. Vous devez partager explicitement un onglet via le sélecteur de contexte, le glisser-déposer ou le contexte suggéré. Il y a un bouton de partage dans le navigateur pour révoquer l&amp;rsquo;accès. Quand un agent tente d&amp;rsquo;ouvrir un nouvel onglet sur le même domaine qu&amp;rsquo;un onglet ouvert (non partagé), VS Code vous demande de réutiliser l&amp;rsquo;onglet existant.&lt;/p&gt;
&lt;h2 id="utilisation-optimisée-des-tokens"&gt;Utilisation optimisée des tokens&lt;/h2&gt;
&lt;p&gt;Un modèle léger expérimental gère maintenant les listes de tâches des agents, gardant ce travail administratif hors du modèle principal plus coûteux. Réduit la consommation de tokens pour les tâches qui ne nécessitent pas une pleine capacité de raisonnement.&lt;/p&gt;
&lt;h2 id="confiance-et-sécurité"&gt;Confiance et sécurité&lt;/h2&gt;
&lt;p&gt;Moins d&amp;rsquo;interruptions : VS Code 1.119 réduit les invites pour les demandes d&amp;rsquo;accès réseau et les écritures dans les dossiers temporaires par les agents. Le correctif 1.119.1 résout des problèmes de sécurité spécifiques — une mise à jour s&amp;rsquo;impose si ce n&amp;rsquo;est pas encore fait.&lt;/p&gt;
&lt;h2 id="changement-rapide-vers-laperçu-markdown"&gt;Changement rapide vers l&amp;rsquo;aperçu Markdown&lt;/h2&gt;
&lt;p&gt;Petit mais utile : vous pouvez maintenant basculer rapidement l&amp;rsquo;éditeur actuel vers l&amp;rsquo;aperçu Markdown sans naviguer.&lt;/p&gt;
&lt;h2 id="vs-code-agents-préversion-insiders"&gt;VS Code Agents (préversion Insiders)&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;interface de session d&amp;rsquo;agents repensée — nouveau sélecteur de dépôts (local/repos/distant), améliorations des sous-sessions, polissage web et mobile, animations de progression — est disponible dans Insiders sur &lt;a href="https://insiders.vscode.dev/agents"&gt;insiders.vscode.dev/agents&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Journal des modifications complet : &lt;a href="https://code.visualstudio.com/updates/v1_119"&gt;code.visualstudio.com/updates/v1_119&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Azure Data Studio est retraité : migrez votre flux Azure SQL vers VS Code</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-data-studio-retired-move-to-vscode-sql/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-data-studio-retired-move-to-vscode-sql/</guid><description>Azure Data Studio a été retraité le 6 février 2025, le support se termine le 28 février 2026. Voici le chemin de migration complet vers VS Code avec l'extension MSSQL.</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/azure-data-studio-retired-move-to-vscode-sql/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sql/azure-data-studio-is-retired-move-your-azure-sql-workflow-to-vs-code-in-10-minutes/"&gt;Azure Data Studio a été retraité le 6 février 2025&lt;/a&gt;, le support se termine le 28 février 2026 — le remplacement recommandé est VS Code avec l&amp;rsquo;extension MSSQL.&lt;/p&gt;
&lt;h2 id="ce-quil-faut-installer"&gt;Ce qu&amp;rsquo;il faut installer&lt;/h2&gt;
&lt;p&gt;Trois éléments pour commencer :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Extension MSSQL&lt;/strong&gt; — cherchez « SQL Server (mssql) » dans le Marketplace VS Code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Extension SQL Database Projects&lt;/strong&gt; — schéma en tant que code, validation de build, publication guidée&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;.NET 8 SDK&lt;/strong&gt; — requis par le système de build ; SDK manquant est le problème le plus fréquent au premier démarrage&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="migrer-vos-connexions-et-paramètres-ads"&gt;Migrer vos connexions et paramètres ADS&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;extension MSSQL inclut l&amp;rsquo;&lt;strong&gt;ADS Migration Toolkit&lt;/strong&gt;, qui gère la migration unique dans un flux guidé : connexions enregistrées, groupes de connexions, paramètres et raccourcis clavier sont tous importés automatiquement.&lt;/p&gt;
&lt;h2 id="retrouver-le-réflexe-f5"&gt;Retrouver le réflexe F5&lt;/h2&gt;
&lt;p&gt;Les utilisateurs d&amp;rsquo;ADS utilisent F5 pour exécuter des requêtes. Installez l&amp;rsquo;extension &lt;strong&gt;MSSQL Database Management Keymap&lt;/strong&gt; pour retrouver les raccourcis clavier de type ADS, y compris F5.&lt;/p&gt;
&lt;h2 id="sql-database-projects--schéma-en-tant-que-code"&gt;SQL Database Projects : schéma en tant que code&lt;/h2&gt;
&lt;p&gt;Clic droit sur un projet → &lt;strong&gt;Publier&lt;/strong&gt; → configurer la cible → examiner le script T-SQL généré → déployer. La prévisualisation du script avant le déploiement est la fonctionnalité de sécurité clé. Les modèles d&amp;rsquo;éléments génèrent des stubs pour les tables, procédures stockées et vues — le même flux de travail que SSDT.&lt;/p&gt;
&lt;p&gt;Problème courant : une &lt;strong&gt;incompatibilité de plateforme cible&lt;/strong&gt; dans le fichier &lt;code&gt;.sqlproj&lt;/code&gt; provoquera des erreurs de build si le projet a été créé pour une version différente de SQL Server.&lt;/p&gt;
&lt;h2 id="schema-compare-et-schema-designer"&gt;Schema Compare et Schema Designer&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;extension inclut également &lt;strong&gt;Schema Compare&lt;/strong&gt; (diff entre votre projet et la base de données déployée) et &lt;strong&gt;Schema Designer&lt;/strong&gt; (édition visuelle du schéma sans écrire du DDL à la main).&lt;/p&gt;
&lt;h2 id="développeurs-microsoft-fabric"&gt;Développeurs Microsoft Fabric&lt;/h2&gt;
&lt;p&gt;La configuration est identique, mais commencez depuis le &lt;strong&gt;portail Fabric&lt;/strong&gt; et connectez la base de données à Git avant de l&amp;rsquo;ouvrir dans VS Code. Microsoft dispose d&amp;rsquo;un guide dédié : &lt;em&gt;Azure Data Studio to VS Code — What it means for SQL database in Fabric developers&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id="en-résumé"&gt;En résumé&lt;/h2&gt;
&lt;p&gt;La migration est un flux guidé en une seule fois, pas une reconstruction manuelle. Installez les trois outils, exécutez l&amp;rsquo;ADS Migration Toolkit, restaurez vos raccourcis clavier, et vous êtes de retour à la normale en moins de 10 minutes.&lt;/p&gt;
&lt;p&gt;Consultez l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/azure-sql/azure-data-studio-is-retired-move-your-azure-sql-workflow-to-vs-code-in-10-minutes/"&gt;article complet&lt;/a&gt; pour les captures d&amp;rsquo;écran étape par étape et le tutoriel spécifique à Fabric.&lt;/p&gt;</content:encoded></item><item><title>Azure MCP Server Est Maintenant un .mcpb — Installez-le sans Aucun Runtime</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</guid><description>Azure MCP Server est maintenant disponible en tant que MCP Bundle (.mcpb) — téléchargez-le, faites-le glisser dans Claude Desktop et c'est tout. Aucun Node.js, Python ou .NET requis.</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/azure-mcp-server-mcpb-no-runtime-install/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Vous savez ce qui était pénible dans la configuration des serveurs MCP ? Vous aviez besoin d&amp;rsquo;un runtime. Node.js pour la version npm, Python pour pip/uvx, .NET SDK pour la variante dotnet.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;Azure MCP Server vient de changer cela&lt;/a&gt;. Il est maintenant disponible en tant que &lt;code&gt;.mcpb&lt;/code&gt; — un MCP Bundle — et la configuration se fait par glisser-déposer.&lt;/p&gt;
&lt;h2 id="quest-ce-quun-mcp-bundle-"&gt;Qu&amp;rsquo;est-ce qu&amp;rsquo;un MCP Bundle ?&lt;/h2&gt;
&lt;p&gt;Pensez-y comme à une extension VS Code (&lt;code&gt;.vsix&lt;/code&gt;) ou une extension de navigateur (&lt;code&gt;.crx&lt;/code&gt;), mais pour les serveurs MCP. Un fichier &lt;code&gt;.mcpb&lt;/code&gt; est une archive ZIP autonome incluant le binaire du serveur et toutes ses dépendances.&lt;/p&gt;
&lt;h2 id="comment-linstaller"&gt;Comment l&amp;rsquo;installer&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. Téléchargez le bundle pour votre plateforme&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Allez sur la &lt;a href="https://github.com/microsoft/mcp/releases?q=Azure.Mcp.Server"&gt;page GitHub Releases&lt;/a&gt; et téléchargez le fichier &lt;code&gt;.mcpb&lt;/code&gt; pour votre OS et architecture.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Installez dans Claude Desktop&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le plus simple : faites glisser le fichier &lt;code&gt;.mcpb&lt;/code&gt; dans la fenêtre Claude Desktop sur la page des paramètres Extensions (&lt;code&gt;☰ → Fichier → Paramètres → Extensions&lt;/code&gt;). Vérifiez les détails du serveur, cliquez sur Installer, confirmez.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Authentifiez-vous auprès d&amp;rsquo;Azure&lt;/strong&gt;&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;az login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;C&amp;rsquo;est tout. Azure MCP Server utilise vos identifiants Azure existants.&lt;/p&gt;
&lt;h2 id="ce-que-vous-pouvez-faire-avec"&gt;Ce que vous pouvez faire avec&lt;/h2&gt;
&lt;p&gt;Plus de 100 outils de services Azure directement depuis votre client IA :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interroger et gérer Cosmos DB, Storage, Key Vault, App Service, Foundry&lt;/li&gt;
&lt;li&gt;Générer des commandes &lt;code&gt;az&lt;/code&gt; CLI pour n&amp;rsquo;importe quelle tâche&lt;/li&gt;
&lt;li&gt;Créer des modèles Bicep et Terraform&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pour-commencer"&gt;Pour commencer&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Téléchargement&lt;/strong&gt; : &lt;a href="https://github.com/microsoft/mcp/releases?q=Azure.Mcp.Server-"&gt;GitHub Releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dépôt&lt;/strong&gt; : &lt;a href="https://aka.ms/azmcp"&gt;aka.ms/azmcp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docs&lt;/strong&gt; : &lt;a href="https://aka.ms/azmcp/docs"&gt;aka.ms/azmcp/docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Consultez le &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;post complet&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.118 : Copilot CLI obtient des noms de session, des badges de modèle et TypeScript 7.0 Nightly</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/vscode-1-118-copilot-cli-session-names-model-badge/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/vscode-1-118-copilot-cli-session-names-model-badge/</guid><description>Visual Studio Code 1.118 est une version ciblée sur les améliorations de Copilot CLI — nommage de sessions, badges de modèle, sélection automatique de modèle et opt-in TypeScript 7.0 Nightly.</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/vscode-1-118-copilot-cli-session-names-model-badge/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.visualstudio.com/updates/v1_118"&gt;Visual Studio Code 1.118&lt;/a&gt; est une version plus petite et ciblée — principalement des raffinements de Copilot CLI — mais quelques éléments méritent d&amp;rsquo;être notés.&lt;/p&gt;
&lt;h2 id="copilot-cli--les-sessions-ont-de-vrais-noms"&gt;Copilot CLI : les sessions ont de vrais noms&lt;/h2&gt;
&lt;p&gt;Les APIs de titre de session du SDK Copilot CLI servent maintenant de source de vérité pour les noms de session. Les sessions affichent désormais le vrai nom du SDK au lieu d&amp;rsquo;étiquettes générées automatiquement.&lt;/p&gt;
&lt;h2 id="changer-de-session-plus-rapidement"&gt;Changer de session plus rapidement&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;application Agents a maintenant &lt;code&gt;Ctrl+1&lt;/code&gt;, &lt;code&gt;Ctrl+2&lt;/code&gt;, etc. pour basculer rapidement entre les sessions.&lt;/p&gt;
&lt;h2 id="badges-de-modèle-dans-le-chat"&gt;Badges de modèle dans le chat&lt;/h2&gt;
&lt;p&gt;Les réponses Copilot CLI dans le panneau de chat affichent maintenant un badge de modèle pour voir quel modèle a traité chaque requête.&lt;/p&gt;
&lt;h2 id="sélection-automatique-de-modèle-dans-copilot-cli"&gt;Sélection automatique de modèle dans Copilot CLI&lt;/h2&gt;
&lt;p&gt;La sélection automatique de modèle fonctionne maintenant aussi dans l&amp;rsquo;agent Copilot CLI.&lt;/p&gt;
&lt;h2 id="opt-in-typescript-70-nightly"&gt;Opt-in TypeScript 7.0 Nightly&lt;/h2&gt;
&lt;p&gt;Vous pouvez maintenant tester les nightlies TypeScript 7.0 directement depuis les paramètres VS Code. TypeScript 7.0 est une version majeure (la &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/"&gt;bêta est sortie il y a quelques jours&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Consultez les &lt;a href="https://code.visualstudio.com/updates/v1_118"&gt;notes de version complètes&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Foundry Toolboxes : Un seul endpoint pour tous les outils de vos agents</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/</guid><description>Microsoft Foundry vient de lancer Toolboxes en preview publique — un moyen de centraliser, gérer et exposer les outils d'agents IA via un unique endpoint compatible MCP.</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/fr/news/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Voici un problème qui semble banal jusqu&amp;rsquo;à ce qu&amp;rsquo;on le vive : l&amp;rsquo;organisation construit plusieurs agents IA, chacun nécessite des outils, et chaque équipe les reconfigure à partir de zéro. La même intégration de recherche web, la même config Azure AI Search, la même connexion au serveur MCP GitHub — mais dans un autre dépôt, par une autre équipe, avec d&amp;rsquo;autres credentials et sans gouvernance partagée.&lt;/p&gt;
&lt;p&gt;Microsoft Foundry vient de lancer &lt;a href="https://devblogs.microsoft.com/foundry/introducing-toolboxes-in-foundry/"&gt;Toolboxes&lt;/a&gt; en preview publique, et c&amp;rsquo;est une réponse directe à ce problème.&lt;/p&gt;
&lt;h2 id="quest-ce-quune-toolbox-"&gt;Qu&amp;rsquo;est-ce qu&amp;rsquo;une Toolbox ?&lt;/h2&gt;
&lt;p&gt;Une Toolbox est un bundle d&amp;rsquo;outils nommé et réutilisable, défini une fois dans Foundry et exposé via un unique endpoint compatible MCP. N&amp;rsquo;importe quel runtime d&amp;rsquo;agent qui parle MCP peut le consommer — pas d&amp;rsquo;enfermement dans Foundry Agents.&lt;/p&gt;
&lt;p&gt;La promesse est simple : &lt;strong&gt;build once, consume anywhere&lt;/strong&gt;. Définir les outils, configurer l&amp;rsquo;authentification de façon centralisée (OAuth passthrough, identité managée Entra), publier l&amp;rsquo;endpoint. Chaque agent qui a besoin de ces outils se connecte à l&amp;rsquo;endpoint et les obtient tous.&lt;/p&gt;
&lt;h2 id="les-quatre-piliers-deux-disponibles-aujourdhui"&gt;Les quatre piliers (deux disponibles aujourd&amp;rsquo;hui)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pilier&lt;/th&gt;
&lt;th&gt;Statut&lt;/th&gt;
&lt;th&gt;Ce qu&amp;rsquo;il fait&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Discover&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Bientôt&lt;/td&gt;
&lt;td&gt;Trouver des outils approuvés sans recherche manuelle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Build&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Disponible&lt;/td&gt;
&lt;td&gt;Regrouper des outils en un bundle réutilisable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Consume&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Disponible&lt;/td&gt;
&lt;td&gt;Un endpoint MCP unique expose tous les outils&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Govern&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Bientôt&lt;/td&gt;
&lt;td&gt;Auth centralisée + observabilité pour tous les appels&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="exemple-pratique"&gt;Exemple pratique&lt;/h2&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.identity&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DefaultAzureCredential&lt;/span&gt;
&lt;/span&gt;&lt;/span&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.projects&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AIProjectClient&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&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;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AIProjectClient&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;endpoint&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;FOUNDRY_PROJECT_ENDPOINT&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;credential&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;DefaultAzureCredential&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="n"&gt;toolbox_version&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;toolboxes&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create_toolbox_version&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;toolbox_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;customer-feedback-triaging-toolbox&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;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Chercher dans la documentation et répondre aux issues GitHub.&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&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="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;web_search&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Recherche dans la documentation publique&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="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;azure_ai_search&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;index_name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;internal-docs&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="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;mcp_server&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;server_url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://your-github-mcp-server.com&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 class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Une fois publié, Foundry fournit un endpoint unifié. Une connexion, tous les outils.&lt;/p&gt;
&lt;h2 id="pas-denfermement-dans-foundry-agents"&gt;Pas d&amp;rsquo;enfermement dans Foundry Agents&lt;/h2&gt;
&lt;p&gt;Les Toolboxes sont &lt;strong&gt;créées et gérées&lt;/strong&gt; dans Foundry, mais la surface de consommation est le protocole MCP ouvert. On peut les utiliser depuis des agents personnalisés (Microsoft Agent Framework, LangGraph), GitHub Copilot et autres IDEs compatibles MCP, et tout runtime parlant MCP.&lt;/p&gt;
&lt;h2 id="pourquoi-cest-important-maintenant"&gt;Pourquoi c&amp;rsquo;est important maintenant&lt;/h2&gt;
&lt;p&gt;La vague multi-agents arrive en production. Chaque nouvel agent est une nouvelle surface pour de la configuration dupliquée, des credentials obsolètes et des comportements incohérents. La base Build + Consume suffit pour commencer à centraliser. Quand le pilier Govern arrivera, on aura une couche d&amp;rsquo;outils entièrement observable et contrôlée centralement pour toute la flotte d&amp;rsquo;agents.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est encore tôt — preview publique, SDK Python en premier, Discover et Govern à venir. Mais le modèle est solide et le design natif MCP signifie qu&amp;rsquo;il fonctionne avec les outils qu&amp;rsquo;on construit déjà. Tous les détails dans l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/foundry/introducing-toolboxes-in-foundry/"&gt;annonce officielle&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Hooks azd en Python, TypeScript et .NET : fini les scripts shell</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</guid><description>La CLI Azure Developer prend désormais en charge les hooks en Python, JavaScript, TypeScript et .NET. Plus besoin de basculer vers Bash juste pour lancer un script de migration.</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/fr/news/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Vous avez déjà eu un projet entièrement en .NET et vous avez quand même dû écrire des scripts Bash pour les hooks azd ? Vous connaissez la douleur. Pourquoi basculer vers la syntaxe shell pour une étape de pré-provisioning quand tout le reste du projet est en C# ?&lt;/p&gt;
&lt;p&gt;Cette frustration a maintenant une solution officielle. La CLI Azure Developer &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;vient de publier la prise en charge multi-langages pour les hooks&lt;/a&gt;, et c&amp;rsquo;est exactement aussi bien que ça en a l&amp;rsquo;air.&lt;/p&gt;
&lt;h2 id="les-hooks-en-bref"&gt;Les hooks, en bref&lt;/h2&gt;
&lt;p&gt;Les hooks sont des scripts qui s&amp;rsquo;exécutent à des moments clés du cycle de vie d&amp;rsquo;&lt;code&gt;azd&lt;/code&gt; — avant le provisioning, après le déploiement, etc. Définis dans &lt;code&gt;azure.yaml&lt;/code&gt;, ils permettent d&amp;rsquo;injecter de la logique personnalisée sans modifier la CLI.&lt;/p&gt;
&lt;p&gt;Avant, seuls Bash et PowerShell étaient supportés. Maintenant, on peut utiliser &lt;strong&gt;Python, JavaScript, TypeScript ou .NET&lt;/strong&gt; — et &lt;code&gt;azd&lt;/code&gt; s&amp;rsquo;occupe du reste automatiquement.&lt;/p&gt;
&lt;h2 id="comment-fonctionne-la-détection"&gt;Comment fonctionne la détection&lt;/h2&gt;
&lt;p&gt;Il suffit de pointer le hook vers un fichier et &lt;code&gt;azd&lt;/code&gt; déduit le langage à partir de l&amp;rsquo;extension :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;hooks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;preprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/setup.py&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postdeploy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/seed.ts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/migrate.cs&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pas de configuration supplémentaire. Si l&amp;rsquo;extension est ambiguë, on peut ajouter &lt;code&gt;kind: python&lt;/code&gt; (ou le langage correspondant) pour le préciser.&lt;/p&gt;
&lt;h2 id="détails-par-langage"&gt;Détails par langage&lt;/h2&gt;
&lt;h3 id="python"&gt;Python&lt;/h3&gt;
&lt;p&gt;Placer un &lt;code&gt;requirements.txt&lt;/code&gt; ou &lt;code&gt;pyproject.toml&lt;/code&gt; à côté du script (ou dans un répertoire parent). &lt;code&gt;azd&lt;/code&gt; crée automatiquement un environnement virtuel, installe les dépendances et exécute le script.&lt;/p&gt;
&lt;h3 id="javascript-et-typescript"&gt;JavaScript et TypeScript&lt;/h3&gt;
&lt;p&gt;Même principe — un &lt;code&gt;package.json&lt;/code&gt; près du script, et &lt;code&gt;azd&lt;/code&gt; exécute d&amp;rsquo;abord &lt;code&gt;npm install&lt;/code&gt;. Pour TypeScript, il utilise &lt;code&gt;npx tsx&lt;/code&gt; sans étape de compilation et sans &lt;code&gt;tsconfig.json&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="net"&gt;.NET&lt;/h3&gt;
&lt;p&gt;Deux modes disponibles :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mode projet&lt;/strong&gt; : Si un &lt;code&gt;.csproj&lt;/code&gt; est présent à côté du script, &lt;code&gt;azd&lt;/code&gt; exécute automatiquement &lt;code&gt;dotnet restore&lt;/code&gt; et &lt;code&gt;dotnet build&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mode single-file&lt;/strong&gt; : Sur .NET 10+, les fichiers &lt;code&gt;.cs&lt;/code&gt; autonomes s&amp;rsquo;exécutent directement via &lt;code&gt;dotnet run script.cs&lt;/code&gt;. Aucun fichier de projet requis.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="configuration-par-exécuteur"&gt;Configuration par exécuteur&lt;/h2&gt;
&lt;p&gt;Chaque langage supporte un bloc &lt;code&gt;config&lt;/code&gt; optionnel :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;hooks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;preprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/setup.ts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;packageManager&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;pnpm&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/migrate.cs&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;configuration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Release&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;framework&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;net10.0&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="pourquoi-cest-important-pour-les-développeurs-net"&gt;Pourquoi c&amp;rsquo;est important pour les développeurs .NET&lt;/h2&gt;
&lt;p&gt;Les hooks étaient le dernier endroit dans un projet azd qui forçait à changer de langage. Maintenant, l&amp;rsquo;intégralité du pipeline de déploiement peut vivre dans un seul langage. Il devient possible de réutiliser les utilitaires .NET existants dans les hooks, de référencer des bibliothèques partagées et d&amp;rsquo;abandonner la maintenance de scripts shell.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Un de ces changements qui paraissent anodins mais qui réduisent concrètement la friction au quotidien avec azd. Le support multi-langages pour les hooks est disponible maintenant — tous les détails dans le &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;post officiel&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Windows App Dev CLI v0.3 : F5 depuis le terminal et UI Automation pour les agents</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/</guid><description>Windows App Development CLI v0.3 apporte winapp run pour les lancements debug depuis le terminal, winapp ui pour l'automatisation UI, et un nouveau package NuGet qui fait fonctionner dotnet run avec les apps packagées.</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/fr/news/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;expérience F5 de Visual Studio est formidable. Mais devoir ouvrir VS uniquement pour lancer et déboguer une application Windows packagée, c&amp;rsquo;est trop — que ce soit dans un pipeline CI, un workflow automatisé, ou quand un agent IA effectue les tests.&lt;/p&gt;
&lt;p&gt;Windows App Development CLI v0.3 vient d&amp;rsquo;être &lt;a href="https://devblogs.microsoft.com/ifdef-windows/windows-app-development-cli-v0-3-new-run-and-ui-commands-plus-dotnet-run-support-for-packaged-apps/"&gt;publié&lt;/a&gt; et répond directement à ce besoin avec deux fonctionnalités phares : &lt;code&gt;winapp run&lt;/code&gt; et &lt;code&gt;winapp ui&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="winapp-run--f5-depuis-nimporte-où"&gt;winapp run : F5 depuis n&amp;rsquo;importe où&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;winapp run&lt;/code&gt; prend un dossier d&amp;rsquo;application non packagée et un manifeste, et fait tout ce que VS fait au lancement debug : enregistre un package loose, lance l&amp;rsquo;application et préserve le &lt;code&gt;LocalState&lt;/code&gt; entre les re-déploiements.&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;# Compiler l&amp;#39;app, puis la lancer comme app packagée&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;winapp run ./bin/Debug
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Fonctionne pour WinUI, WPF, WinForms, Console, Avalonia et plus. Les modes sont conçus pour les développeurs et les workflows automatisés :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--detach&lt;/code&gt;&lt;/strong&gt; : Lance et rend immédiatement le contrôle au terminal. Idéal pour CI/automation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--unregister-on-exit&lt;/code&gt;&lt;/strong&gt; : Nettoie le package enregistré à la fermeture de l&amp;rsquo;app.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--debug-output&lt;/code&gt;&lt;/strong&gt; : Capture les messages &lt;code&gt;OutputDebugString&lt;/code&gt; et les exceptions en temps réel.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="nouveau-package-nuget--dotnet-run-pour-les-apps-packagées"&gt;Nouveau package NuGet : dotnet run pour les apps packagées&lt;/h2&gt;
&lt;p&gt;Pour les développeurs .NET, il y a un nouveau package NuGet : &lt;code&gt;Microsoft.Windows.SDK.BuildTools.WinApp&lt;/code&gt;. Après installation, &lt;code&gt;dotnet run&lt;/code&gt; gère tout l&amp;rsquo;inner loop : build, préparation du package loose-layout, enregistrement Windows et lancement — en une seule étape.&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;# Laisser winapp init tout configurer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;winapp init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Ou installer directement&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet add package Microsoft.Windows.SDK.BuildTools.WinApp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="winapp-ui--ui-automation-depuis-la-ligne-de-commande"&gt;winapp ui : UI Automation depuis la ligne de commande&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est la fonctionnalité qui ouvre les scénarios agentiques. &lt;code&gt;winapp ui&lt;/code&gt; donne un accès UI Automation complet à toute application Windows en cours d&amp;rsquo;exécution — WPF, WinForms, Win32, Electron, WinUI3 — depuis le terminal.&lt;/p&gt;
&lt;p&gt;Ce qu&amp;rsquo;on peut faire :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lister toutes les fenêtres de niveau supérieur&lt;/li&gt;
&lt;li&gt;Parcourir l&amp;rsquo;arborescence UI Automation complète d&amp;rsquo;une fenêtre&lt;/li&gt;
&lt;li&gt;Rechercher des éléments par nom, type ou ID d&amp;rsquo;automatisation&lt;/li&gt;
&lt;li&gt;Cliquer, invoquer et définir des valeurs&lt;/li&gt;
&lt;li&gt;Prendre des captures d&amp;rsquo;écran&lt;/li&gt;
&lt;li&gt;Attendre l&amp;rsquo;apparition d&amp;rsquo;éléments — idéal pour la synchronisation de tests&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Combiner &lt;code&gt;winapp ui&lt;/code&gt; avec &lt;code&gt;winapp run&lt;/code&gt; donne un workflow complet build → lancement → vérification depuis le terminal. Un agent peut exécuter l&amp;rsquo;app, inspecter l&amp;rsquo;état de l&amp;rsquo;interface et valider le résultat.&lt;/p&gt;
&lt;h2 id="autres-nouveautés"&gt;Autres nouveautés&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;winapp unregister&lt;/code&gt;&lt;/strong&gt; : Supprime un package sideloadé quand on a terminé.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;winapp manifest add-alias&lt;/code&gt;&lt;/strong&gt; : Ajoute un alias pour lancer l&amp;rsquo;app par nom depuis le terminal.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Complétion automatique&lt;/strong&gt; : Un seul commande pour configurer la complétion PowerShell.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="installation"&gt;Installation&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;winget install Microsoft.WinAppCli
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ou&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm install -g @microsoft/winappcli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La CLI est en preview publique. Le &lt;a href="https://github.com/microsoft/WinAppCli"&gt;dépôt GitHub&lt;/a&gt; contient la documentation complète et l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/ifdef-windows/windows-app-development-cli-v0-3-new-run-and-ui-commands-plus-dotnet-run-support-for-packaged-apps/"&gt;annonce originale&lt;/a&gt; tous les détails.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.117 : Les Agents Obtiennent Leurs Propres Branches Git et Je Suis Totalement Pour</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/vscode-1-117-agents-autopilot-worktrees/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/vscode-1-117-agents-autopilot-worktrees/</guid><description>VS Code 1.117 apporte l'isolation par worktree pour les sessions d'agents, le mode Autopilot persistant et le support des sous-agents. Le workflow de codage agentique devient vraiment concret.</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/vscode-1-117-agents-autopilot-worktrees/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;La frontière entre « assistant IA » et « coéquipier IA » continue de s&amp;rsquo;amincir. VS Code 1.117 vient de sortir et les &lt;a href="https://code.visualstudio.com/updates/v1_117"&gt;notes de version complètes&lt;/a&gt; sont bien remplies, mais l&amp;rsquo;histoire est claire : les agents deviennent des citoyens de première classe dans votre workflow de développement.&lt;/p&gt;
&lt;p&gt;Voici ce qui compte vraiment.&lt;/p&gt;
&lt;h2 id="le-mode-autopilot-se-souvient-enfin-de-votre-préférence"&gt;Le mode Autopilot se souvient enfin de votre préférence&lt;/h2&gt;
&lt;p&gt;Avant, il fallait réactiver Autopilot à chaque nouvelle session. Agaçant. Maintenant votre mode de permissions persiste d&amp;rsquo;une session à l&amp;rsquo;autre, et vous pouvez configurer la valeur par défaut.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;Agent Host supporte trois configurations de session :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Default&lt;/strong&gt; — les outils demandent confirmation avant de s&amp;rsquo;exécuter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bypass&lt;/strong&gt; — approuve tout automatiquement&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autopilot&lt;/strong&gt; — totalement autonome, répond à ses propres questions et continue&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si vous construisez un nouveau projet .NET avec des migrations, Docker et de la CI — réglez-le sur Autopilot une fois et oubliez-le. Cette préférence reste.&lt;/p&gt;
&lt;h2 id="worktree-et-isolation-git-pour-les-sessions-dagents"&gt;Worktree et isolation git pour les sessions d&amp;rsquo;agents&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est le gros morceau. Les sessions d&amp;rsquo;agents supportent maintenant l&amp;rsquo;isolation complète par worktree et git. Cela signifie que quand un agent travaille sur une tâche, il obtient sa propre branche et son propre répertoire de travail. Votre branche principale reste intacte.&lt;/p&gt;
&lt;p&gt;Encore mieux — Copilot CLI génère des noms de branche significatifs pour ces sessions worktree. Fini le &lt;code&gt;agent-session-abc123&lt;/code&gt;. Vous obtenez quelque chose qui décrit réellement ce que l&amp;rsquo;agent fait.&lt;/p&gt;
&lt;p&gt;Pour les développeurs .NET qui gèrent plusieurs branches de fonctionnalités ou corrigent des bugs pendant qu&amp;rsquo;une longue tâche de scaffolding tourne, c&amp;rsquo;est un vrai changement. Vous pouvez avoir un agent qui construit vos contrôleurs d&amp;rsquo;API dans un worktree pendant que vous déboguez un problème dans la couche de services dans un autre. Pas de conflits. Pas de stashing. Pas de bazar.&lt;/p&gt;
&lt;h2 id="sous-agents-et-équipes-dagents"&gt;Sous-agents et équipes d&amp;rsquo;agents&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;Agent Host Protocol supporte maintenant les sous-agents. Un agent peut lancer d&amp;rsquo;autres agents pour gérer des parties d&amp;rsquo;une tâche. Pensez-y comme de la délégation — votre agent principal coordonne, et des agents spécialisés s&amp;rsquo;occupent des morceaux.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est encore tôt, mais le potentiel pour les workflows .NET est évident. Imaginez un agent qui gère vos migrations EF Core pendant qu&amp;rsquo;un autre configure vos tests d&amp;rsquo;intégration. On n&amp;rsquo;y est pas encore complètement, mais le fait que le support du protocole arrive maintenant signifie que l&amp;rsquo;outillage suivra rapidement.&lt;/p&gt;
&lt;h2 id="la-sortie-terminal-automatiquement-incluse-quand-les-agents-envoient-de-linput"&gt;La sortie terminal automatiquement incluse quand les agents envoient de l&amp;rsquo;input&lt;/h2&gt;
&lt;p&gt;Petit mais significatif. Quand un agent envoie de l&amp;rsquo;input au terminal, la sortie du terminal est maintenant automatiquement incluse dans le contexte. Avant, l&amp;rsquo;agent devait faire un tour supplémentaire juste pour lire ce qui s&amp;rsquo;était passé.&lt;/p&gt;
&lt;p&gt;Si vous avez déjà vu un agent exécuter &lt;code&gt;dotnet build&lt;/code&gt;, échouer, puis faire un aller-retour supplémentaire juste pour voir l&amp;rsquo;erreur — cette friction a disparu. Il voit la sortie immédiatement et réagit.&lt;/p&gt;
&lt;h2 id="lapplication-agents-sur-macos-se-met-à-jour-automatiquement"&gt;L&amp;rsquo;application Agents sur macOS se met à jour automatiquement&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;application autonome Agents sur macOS se met maintenant à jour automatiquement. Plus besoin de télécharger manuellement les nouvelles versions. Elle reste simplement à jour.&lt;/p&gt;
&lt;h2 id="les-petites-choses-qui-valent-la-peine-dêtre-connues"&gt;Les petites choses qui valent la peine d&amp;rsquo;être connues&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Les &lt;strong&gt;survols package.json&lt;/strong&gt; affichent maintenant la version installée et la dernière disponible. Utile si vous gérez des outils npm aux côtés de vos projets .NET.&lt;/li&gt;
&lt;li&gt;Les &lt;strong&gt;images dans les commentaires JSDoc&lt;/strong&gt; s&amp;rsquo;affichent correctement dans les survols et les complétions.&lt;/li&gt;
&lt;li&gt;Les &lt;strong&gt;sessions Copilot CLI&lt;/strong&gt; indiquent maintenant si elles ont été créées par VS Code ou en externe — pratique quand vous sautez entre les terminaux.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot CLI, Claude Code et Gemini CLI&lt;/strong&gt; sont reconnus comme types de shell. L&amp;rsquo;éditeur sait ce que vous exécutez.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ce-quil-faut-retenir"&gt;Ce qu&amp;rsquo;il faut retenir&lt;/h2&gt;
&lt;p&gt;VS Code 1.117 n&amp;rsquo;est pas un déversement de fonctionnalités tape-à-l&amp;rsquo;œil. C&amp;rsquo;est de l&amp;rsquo;infrastructure. Isolation par worktree, permissions persistantes, protocoles de sous-agents — ce sont les briques pour un workflow où les agents gèrent des tâches réelles et parallèles sans marcher sur votre code.&lt;/p&gt;
&lt;p&gt;Si vous développez avec .NET et que vous ne vous êtes pas encore lancé dans le workflow agentique, honnêtement, c&amp;rsquo;est le moment de commencer.&lt;/p&gt;</content:encoded></item><item><title>Arrêtez de surveiller votre terminal : le mode détaché d'Aspire change la donne</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-detached-mode-free-your-terminal/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-detached-mode-free-your-terminal/</guid><description>Aspire 13.2 vous permet d'exécuter votre AppHost en arrière-plan et de récupérer votre terminal. Combiné aux nouvelles commandes CLI et au support des agents, c'est plus important qu'il n'y paraît.</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/aspire-detached-mode-free-your-terminal/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;À chaque fois que vous lancez un AppHost Aspire, votre terminal disparaît. Verrouillé. Occupé jusqu&amp;rsquo;à ce que vous fassiez Ctrl+C. Besoin d&amp;rsquo;exécuter une commande rapide ? Ouvrez un autre onglet. Envie de vérifier les logs ? Encore un onglet. C&amp;rsquo;est une petite friction qui s&amp;rsquo;accumule vite.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 corrige ça. James Newton-King &lt;a href="https://devblogs.microsoft.com/aspire/aspire-detached-mode-and-process-management/"&gt;a détaillé tout ça&lt;/a&gt;, et honnêtement, c&amp;rsquo;est une de ces fonctionnalités qui change immédiatement votre façon de travailler.&lt;/p&gt;
&lt;h2 id="mode-détaché--une-commande-terminal-récupéré"&gt;Mode détaché : une commande, terminal récupéré&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;aspire start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;C&amp;rsquo;est le raccourci pour &lt;code&gt;aspire run --detach&lt;/code&gt;. Votre AppHost démarre en arrière-plan et vous récupérez votre terminal immédiatement. Pas d&amp;rsquo;onglets supplémentaires. Pas de multiplexeur de terminal. Juste votre prompt, prêt à l&amp;rsquo;emploi.&lt;/p&gt;
&lt;h2 id="gérer-ce-qui-tourne"&gt;Gérer ce qui tourne&lt;/h2&gt;
&lt;p&gt;Le truc, c&amp;rsquo;est que tourner en arrière-plan n&amp;rsquo;est utile que si on peut gérer ce qui s&amp;rsquo;y passe. Aspire 13.2 fournit un ensemble complet de commandes CLI pour exactement ça :&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;# List all running AppHosts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire ps
&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;# Inspect the state of a specific AppHost&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire describe
&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;# Stream logs from a running AppHost&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire logs
&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;# Stop a specific AppHost&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire stop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ça transforme le CLI d&amp;rsquo;Aspire en un véritable gestionnaire de processus. Vous pouvez démarrer plusieurs AppHosts, vérifier leur statut, suivre leurs logs et les arrêter — le tout depuis une seule session de terminal.&lt;/p&gt;
&lt;h2 id="combinez-le-avec-le-mode-isolé"&gt;Combinez-le avec le mode isolé&lt;/h2&gt;
&lt;p&gt;Le mode détaché se marie naturellement avec le mode isolé. Vous voulez lancer deux instances du même projet en arrière-plan sans conflits de ports ?&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;aspire start --isolated
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire start --isolated
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Chacune obtient des ports aléatoires, des secrets séparés et son propre cycle de vie. Utilisez &lt;code&gt;aspire ps&lt;/code&gt; pour voir les deux, &lt;code&gt;aspire stop&lt;/code&gt; pour arrêter celle dont vous n&amp;rsquo;avez plus besoin.&lt;/p&gt;
&lt;h2 id="pourquoi-cest-énorme-pour-les-agents-de-code"&gt;Pourquoi c&amp;rsquo;est énorme pour les agents de code&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est là que ça devient vraiment intéressant. Un agent de code travaillant dans votre terminal peut maintenant :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Démarrer l&amp;rsquo;app avec &lt;code&gt;aspire start&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Interroger son état avec &lt;code&gt;aspire describe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Vérifier les logs avec &lt;code&gt;aspire logs&lt;/code&gt; pour diagnostiquer les problèmes&lt;/li&gt;
&lt;li&gt;L&amp;rsquo;arrêter avec &lt;code&gt;aspire stop&lt;/code&gt; quand il a terminé&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Tout ça sans perdre la session de terminal. Avant le mode détaché, un agent qui lançait votre AppHost se retrouvait bloqué dans son propre terminal. Maintenant il peut démarrer, observer, itérer et nettoyer — exactement comme on voudrait qu&amp;rsquo;un agent autonome fonctionne.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;équipe Aspire a misé là-dessus. Lancer &lt;code&gt;aspire agent init&lt;/code&gt; met en place un fichier de compétences Aspire qui enseigne ces commandes aux agents. Ainsi, des outils comme l&amp;rsquo;agent de code de Copilot peuvent gérer vos workloads Aspire directement.&lt;/p&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;Le mode détaché est une amélioration du workflow déguisée en simple flag. Vous arrêtez de jongler entre les terminaux, les agents ne se bloquent plus eux-mêmes, et les nouvelles commandes CLI vous donnent une vraie visibilité sur ce qui tourne. C&amp;rsquo;est pratique, c&amp;rsquo;est propre, et ça rend le cycle de développement quotidien nettement plus fluide.&lt;/p&gt;
&lt;p&gt;Lisez le &lt;a href="https://devblogs.microsoft.com/aspire/aspire-detached-mode-and-process-management/"&gt;post complet&lt;/a&gt; pour tous les détails et récupérez Aspire 13.2 avec &lt;code&gt;aspire update --self&lt;/code&gt;.&lt;/p&gt;</content:encoded></item><item><title>Docker Sandbox permet aux agents Copilot de refactoriser votre code sans risque pour votre machine</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/</guid><description>Docker Sandbox offre aux agents GitHub Copilot une microVM sécurisée pour refactoriser librement — sans demandes de permission, sans risque pour votre hôte. Voici pourquoi ça change tout pour la modernisation .NET à grande échelle.</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/copilot-docker-sandbox-agentic-refactoring/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si vous avez utilisé le mode agent de Copilot pour autre chose que de petites modifications, vous connaissez la douleur. Chaque écriture de fichier, chaque commande terminal — encore une demande de permission. Maintenant, imaginez ça sur 50 projets. Pas vraiment fun.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;équipe Azure vient de publier un article sur &lt;a href="https://devblogs.microsoft.com/all-things-azure/best-of-both-worlds-for-agentic-refactoring-github-copilot-microvms-via-docker-sandbox/"&gt;Docker Sandbox pour les agents GitHub Copilot&lt;/a&gt;, et honnêtement, c&amp;rsquo;est l&amp;rsquo;une des améliorations les plus pratiques que j&amp;rsquo;ai vues dans l&amp;rsquo;outillage agentique. Le système utilise des microVMs pour donner à Copilot un environnement totalement isolé où il peut faire ce qu&amp;rsquo;il veut — installer des paquets, lancer des builds, exécuter des tests — sans toucher à votre système hôte.&lt;/p&gt;
&lt;h2 id="ce-que-docker-sandbox-vous-apporte-concrètement"&gt;Ce que Docker Sandbox vous apporte concrètement&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;idée de base est simple : démarrer une microVM légère avec un environnement Linux complet, synchroniser votre workspace dedans, et laisser l&amp;rsquo;agent Copilot opérer librement à l&amp;rsquo;intérieur. Quand il a terminé, les modifications sont synchronisées en retour.&lt;/p&gt;
&lt;p&gt;Voici ce qui en fait plus qu&amp;rsquo;un simple &amp;ldquo;exécuter des trucs dans un conteneur&amp;rdquo; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Synchronisation bidirectionnelle du workspace&lt;/strong&gt; qui préserve les chemins absolus. La structure de votre projet est identique à l&amp;rsquo;intérieur du sandbox. Pas d&amp;rsquo;échecs de build liés aux chemins.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker daemon privé&lt;/strong&gt; tournant à l&amp;rsquo;intérieur de la microVM. L&amp;rsquo;agent peut construire et exécuter des conteneurs sans jamais monter le socket Docker de votre hôte. C&amp;rsquo;est un gros plus pour la sécurité.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proxies de filtrage HTTP/HTTPS&lt;/strong&gt; qui contrôlent ce que l&amp;rsquo;agent peut atteindre sur le réseau. Vous décidez quels registries et endpoints sont autorisés. Des attaques de supply chain via un &lt;code&gt;npm install&lt;/code&gt; malveillant dans le sandbox ? Bloquées.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mode YOLO&lt;/strong&gt; — oui, c&amp;rsquo;est vraiment comme ça qu&amp;rsquo;ils l&amp;rsquo;appellent. L&amp;rsquo;agent tourne sans demandes de permission parce qu&amp;rsquo;il ne peut littéralement pas endommager votre hôte. Toute action destructrice est contenue.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pourquoi-les-développeurs-net-devraient-sy-intéresser"&gt;Pourquoi les développeurs .NET devraient s&amp;rsquo;y intéresser&lt;/h2&gt;
&lt;p&gt;Pensez au travail de modernisation auquel tant d&amp;rsquo;équipes font face en ce moment. Vous avez une solution .NET Framework avec 30 projets, et vous devez la migrer vers .NET 9. Ce sont des centaines de modifications de fichiers — fichiers de projet, mises à jour de namespaces, remplacements d&amp;rsquo;API, migrations NuGet.&lt;/p&gt;
&lt;p&gt;Avec Docker Sandbox, vous pouvez pointer un agent Copilot sur un projet, le laisser refactoriser librement dans la microVM, exécuter &lt;code&gt;dotnet build&lt;/code&gt; et &lt;code&gt;dotnet test&lt;/code&gt; pour valider, et n&amp;rsquo;accepter que les changements qui fonctionnent réellement. Aucun risque qu&amp;rsquo;il détruise accidentellement votre environnement de développement local en expérimentant.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;article décrit également l&amp;rsquo;exécution d&amp;rsquo;une &lt;strong&gt;flotte d&amp;rsquo;agents en parallèle&lt;/strong&gt; — chacun dans son propre sandbox — s&amp;rsquo;attaquant à différents projets simultanément. Pour les grandes solutions .NET ou les architectures microservices, c&amp;rsquo;est un gain de temps massif. Un agent par service, tous isolés, tous validés indépendamment.&lt;/p&gt;
&lt;h2 id="langle-sécurité-compte"&gt;L&amp;rsquo;angle sécurité compte&lt;/h2&gt;
&lt;p&gt;Voici ce que la plupart des gens ignorent : quand vous laissez un agent IA exécuter des commandes arbitraires, vous lui confiez l&amp;rsquo;intégralité de votre machine. Docker Sandbox inverse ce modèle. L&amp;rsquo;agent obtient une autonomie totale dans un environnement jetable. Le proxy réseau garantit qu&amp;rsquo;il ne peut télécharger que depuis des sources approuvées. Votre système de fichiers hôte, votre Docker daemon et vos identifiants restent intacts.&lt;/p&gt;
&lt;p&gt;Pour les équipes avec des exigences de conformité — et c&amp;rsquo;est le cas de la plupart des entreprises .NET — c&amp;rsquo;est la différence entre &amp;ldquo;on ne peut pas utiliser l&amp;rsquo;IA agentique&amp;rdquo; et &amp;ldquo;on peut l&amp;rsquo;adopter en toute sécurité.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="à-retenir"&gt;À retenir&lt;/h2&gt;
&lt;p&gt;Docker Sandbox résout la tension fondamentale du coding agentique : les agents ont besoin de liberté pour être utiles, mais la liberté sur votre machine hôte est dangereuse. Les microVMs vous offrent les deux. Si vous planifiez un refactoring ou une modernisation .NET à grande échelle, ça vaut le coup de le mettre en place maintenant. La combinaison de l&amp;rsquo;intelligence de code de Copilot avec un environnement d&amp;rsquo;exécution sécurisé est exactement ce que les équipes de production attendaient.&lt;/p&gt;</content:encoded></item><item><title>Les outils Azure MCP sont désormais intégrés dans Visual Studio 2022 — Aucune extension nécessaire</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/</guid><description>Les outils Azure MCP sont livrés avec la charge de travail développement Azure dans Visual Studio 2022. Plus de 230 outils, 45 services Azure, zéro extension à installer.</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-mcp-tools-built-into-visual-studio-2022/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si vous avez utilisé les outils Azure MCP dans Visual Studio via l&amp;rsquo;extension séparée, vous connaissez la chanson — installer le VSIX, redémarrer, espérer que rien ne casse, gérer les incompatibilités de versions. Cette friction, c&amp;rsquo;est terminé.&lt;/p&gt;
&lt;p&gt;Yun Jung Choi a &lt;a href="https://devblogs.microsoft.com/visualstudio/azure-mcp-tools-now-ship-built-into-visual-studio-2022-no-extension-required/"&gt;annoncé&lt;/a&gt; que les outils Azure MCP sont désormais livrés directement avec la charge de travail développement Azure dans Visual Studio 2022. Pas d&amp;rsquo;extension. Pas de VSIX. Pas de danse du redémarrage.&lt;/p&gt;
&lt;h2 id="ce-que-ça-signifie-concrètement"&gt;Ce que ça signifie concrètement&lt;/h2&gt;
&lt;p&gt;À partir de Visual Studio 2022 version 17.14.30, le Azure MCP Server est inclus dans la charge de travail développement Azure. Si vous avez déjà cette charge de travail installée, il suffit de l&amp;rsquo;activer dans GitHub Copilot Chat et c&amp;rsquo;est parti.&lt;/p&gt;
&lt;p&gt;Plus de 230 outils couvrant 45 services Azure — accessibles directement depuis la fenêtre de chat. Listez vos comptes de stockage, déployez une app ASP.NET Core, diagnostiquez des problèmes App Service, interrogez Log Analytics — le tout sans ouvrir un onglet de navigateur.&lt;/p&gt;
&lt;h2 id="pourquoi-cest-plus-important-quil-ny-paraît"&gt;Pourquoi c&amp;rsquo;est plus important qu&amp;rsquo;il n&amp;rsquo;y paraît&lt;/h2&gt;
&lt;p&gt;Voici le truc avec l&amp;rsquo;outillage développeur : chaque étape supplémentaire est de la friction, et la friction tue l&amp;rsquo;adoption. Avoir MCP en tant qu&amp;rsquo;extension séparée signifiait des incompatibilités de versions, des échecs d&amp;rsquo;installation, et une chose de plus à maintenir à jour. L&amp;rsquo;intégrer dans la charge de travail signifie :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Un seul chemin de mise à jour&lt;/strong&gt; via le Visual Studio Installer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pas de décalage de version&lt;/strong&gt; entre l&amp;rsquo;extension et l&amp;rsquo;IDE&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Toujours à jour&lt;/strong&gt; — le MCP Server se met à jour avec les releases régulières de VS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour les équipes qui standardisent sur Azure, c&amp;rsquo;est un vrai gain. Vous installez la charge de travail une fois, activez les outils, et ils sont disponibles à chaque session.&lt;/p&gt;
&lt;h2 id="ce-que-vous-pouvez-faire-avec"&gt;Ce que vous pouvez faire avec&lt;/h2&gt;
&lt;p&gt;Les outils couvrent l&amp;rsquo;intégralité du cycle de développement via Copilot Chat :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Apprendre&lt;/strong&gt; — posez des questions sur les services Azure, les bonnes pratiques, les patterns d&amp;rsquo;architecture&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Concevoir et développer&lt;/strong&gt; — obtenez des recommandations de services, configurez le code de votre application&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Déployer&lt;/strong&gt; — provisionnez des ressources et déployez directement depuis l&amp;rsquo;IDE&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dépanner&lt;/strong&gt; — interrogez les logs, vérifiez l&amp;rsquo;état des ressources, diagnostiquez les problèmes en production&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un exemple rapide — tapez ceci dans Copilot Chat :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;List my storage accounts in my current subscription.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Copilot appelle les outils Azure MCP en coulisses, interroge vos abonnements, et renvoie une liste formatée avec les noms, emplacements et SKUs. Pas besoin du portail.&lt;/p&gt;
&lt;h2 id="comment-lactiver"&gt;Comment l&amp;rsquo;activer&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Mettez à jour vers Visual Studio 2022 &lt;strong&gt;17.14.30&lt;/strong&gt; ou supérieur&lt;/li&gt;
&lt;li&gt;Assurez-vous que la charge de travail &lt;strong&gt;Azure development&lt;/strong&gt; est installée&lt;/li&gt;
&lt;li&gt;Ouvrez GitHub Copilot Chat&lt;/li&gt;
&lt;li&gt;Cliquez sur le bouton &lt;strong&gt;Select tools&lt;/strong&gt; (l&amp;rsquo;icône des deux clés)&lt;/li&gt;
&lt;li&gt;Activez &lt;strong&gt;Azure MCP Server&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;C&amp;rsquo;est tout. Ça reste activé entre les sessions.&lt;/p&gt;
&lt;h2 id="un-bémol"&gt;Un bémol&lt;/h2&gt;
&lt;p&gt;Les outils sont désactivés par défaut — vous devez les activer manuellement. Et les outils spécifiques à VS 2026 ne sont pas disponibles dans VS 2022. La disponibilité des outils dépend également des permissions de votre abonnement Azure, comme sur le portail.&lt;/p&gt;
&lt;h2 id="la-vue-densemble"&gt;La vue d&amp;rsquo;ensemble&lt;/h2&gt;
&lt;p&gt;Cela fait partie d&amp;rsquo;une tendance claire : MCP est en train de devenir le standard pour exposer les outils cloud dans les IDEs de développement. Nous avons déjà vu la &lt;a href="https://devblogs.microsoft.com/azure-sdk/announcing-azure-mcp-server-2-0-stable-release/"&gt;release stable d&amp;rsquo;Azure MCP Server 2.0&lt;/a&gt; et des intégrations MCP dans VS Code et d&amp;rsquo;autres éditeurs. L&amp;rsquo;intégrer dans le système de charges de travail de Visual Studio est la progression naturelle.&lt;/p&gt;
&lt;p&gt;Pour nous développeurs .NET qui vivons dans Visual Studio, ça élimine encore une raison de basculer vers le portail Azure. Et honnêtement, moins on change d&amp;rsquo;onglet, mieux c&amp;rsquo;est.&lt;/p&gt;</content:encoded></item><item><title>azd update — Une seule commande pour tous vos gestionnaires de paquets</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azd-update-universal-upgrade-command/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azd-update-universal-upgrade-command/</guid><description>Azure Developer CLI dispose désormais d'une commande de mise à jour universelle qui fonctionne quelle que soit la méthode d'installation — winget, Homebrew, Chocolatey ou script d'installation.</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-update-universal-upgrade-command/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Vous connaissez ce message « Une nouvelle version de azd est disponible » qui apparaît toutes les quelques semaines ? Celui que vous ignorez parce que vous ne vous souvenez plus si vous avez installé &lt;code&gt;azd&lt;/code&gt; via winget, Homebrew ou ce script curl que vous avez exécuté il y a six mois ? Eh bien, c&amp;rsquo;est enfin réglé.&lt;/p&gt;
&lt;p&gt;Microsoft vient de publier &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;&lt;code&gt;azd update&lt;/code&gt;&lt;/a&gt; — une seule commande qui met à jour Azure Developer CLI vers la dernière version, quelle que soit la méthode d&amp;rsquo;installation d&amp;rsquo;origine. Windows, macOS, Linux — peu importe. Une seule commande.&lt;/p&gt;
&lt;h2 id="comment-ça-marche"&gt;Comment ça marche&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;azd update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;C&amp;rsquo;est tout. Si vous voulez un accès anticipé aux nouvelles fonctionnalités, vous pouvez passer au build insiders quotidien :&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;azd update --channel daily
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd update --channel stable
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La commande détecte votre méthode d&amp;rsquo;installation actuelle et utilise le mécanisme de mise à jour approprié en arrière-plan. Fini le « attends, j&amp;rsquo;ai utilisé winget ou choco sur cette machine ? »&lt;/p&gt;
&lt;h2 id="le-petit-bémol"&gt;Le petit bémol&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd update&lt;/code&gt; est disponible à partir de la version 1.23.x. Si vous êtes sur une version antérieure, vous devrez effectuer une dernière mise à jour manuelle en utilisant votre méthode d&amp;rsquo;installation d&amp;rsquo;origine. Après ça, &lt;code&gt;azd update&lt;/code&gt; gère tout automatiquement.&lt;/p&gt;
&lt;p&gt;Vérifiez votre version actuelle avec &lt;code&gt;azd version&lt;/code&gt;. Si vous avez besoin d&amp;rsquo;une nouvelle installation, la &lt;a href="https://learn.microsoft.com/azure/developer/azure-developer-cli/install-azd"&gt;documentation d&amp;rsquo;installation&lt;/a&gt; est là pour vous.&lt;/p&gt;
&lt;h2 id="pourquoi-cest-important"&gt;Pourquoi c&amp;rsquo;est important&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est une petite amélioration de confort, mais pour ceux d&amp;rsquo;entre nous qui utilisent &lt;code&gt;azd&lt;/code&gt; quotidiennement pour déployer des agents IA et des apps Aspire sur Azure, être à jour signifie moins de moments « ce bug était déjà corrigé dans la dernière version ». Une chose de moins à laquelle penser.&lt;/p&gt;
&lt;p&gt;Lisez l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;annonce complète&lt;/a&gt; et l&amp;rsquo;&lt;a href="https://blog.jongallant.com/2026/04/azd-update"&gt;analyse approfondie&lt;/a&gt; de Jon Gallant pour plus de contexte.&lt;/p&gt;</content:encoded></item><item><title>.NET Aspire 13.2 Veut Devenir le Meilleur Ami de Votre Agent IA</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-agentic-development-build-run-observe/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-agentic-development-build-run-observe/</guid><description>Aspire 13.2 mise tout sur le développement agentique — sortie CLI structurée, exécutions isolées, environnements auto-réparateurs et données OpenTelemetry complètes pour que vos agents IA puissent réellement construire, exécuter et observer vos apps.</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/aspire-agentic-development-build-run-observe/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Tu connais ce moment où ton agent IA écrit du code solide, tu es tout excité, et puis tout s&amp;rsquo;effondre quand il essaie de &lt;em&gt;lancer&lt;/em&gt; le truc ? Conflits de ports, processus fantômes, mauvaises variables d&amp;rsquo;environnement — soudain ton agent brûle des tokens à déboguer des problèmes de démarrage au lieu de construire des fonctionnalités.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;équipe Aspire vient de publier un &lt;a href="https://devblogs.microsoft.com/aspire/agentic-dev-aspirations/"&gt;post très bien pensé&lt;/a&gt; sur exactement ce problème, et leur réponse est convaincante : Aspire 13.2 est conçu non seulement pour les humains, mais pour les agents IA.&lt;/p&gt;
&lt;h2 id="le-problème-est-réel"&gt;Le problème est réel&lt;/h2&gt;
&lt;p&gt;Les agents IA sont incroyables pour écrire du code. Mais livrer une app full-stack fonctionnelle implique bien plus que générer des fichiers. Il faut démarrer les services dans le bon ordre, gérer les ports, configurer les variables d&amp;rsquo;environnement, connecter les bases de données et obtenir du feedback quand ça casse. Actuellement, la plupart des agents gèrent tout ça par essai-erreur — exécuter des commandes, lire les sorties d&amp;rsquo;erreur, réessayer.&lt;/p&gt;
&lt;p&gt;On empile des instructions Markdown, des skills personnalisés et des prompts pour les guider, mais c&amp;rsquo;est imprévisible, ça ne se compile pas, et ça coûte des tokens juste pour parser. L&amp;rsquo;équipe Aspire a mis le doigt sur l&amp;rsquo;insight clé : les agents ont besoin de &lt;strong&gt;compilateurs et d&amp;rsquo;APIs structurées&lt;/strong&gt;, pas de plus de Markdown.&lt;/p&gt;
&lt;h2 id="aspire-comme-infrastructure-pour-agents"&gt;Aspire comme infrastructure pour agents&lt;/h2&gt;
&lt;p&gt;Voici ce qu&amp;rsquo;Aspire 13.2 apporte à la table du développement agentique :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Toute ta stack en code typé.&lt;/strong&gt; L&amp;rsquo;AppHost définit ta topologie complète — API, frontend, base de données, cache — en TypeScript ou C# compilable :&lt;/p&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="kr"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createBuilder&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="kr"&gt;from&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;./.modules/aspire.js&amp;#39;&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="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;createBuilder&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="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;postgres&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addPostgres&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;pg&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;addDatabase&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;catalog&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="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cache&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addRedis&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;cache&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;api&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&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;addNodeApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;api&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;./api&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;src/index.ts&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;withHttpEndpoint&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;PORT&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;withReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;postgres&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;withReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;cache&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="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;withReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;api&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;waitFor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;api&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="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;build&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&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;Un agent peut lire ça pour comprendre la topologie de l&amp;rsquo;app, ajouter des ressources, câbler les connexions et &lt;em&gt;compiler pour vérifier&lt;/em&gt;. Le compilateur lui dit immédiatement si quelque chose ne va pas. Pas de devinettes, pas d&amp;rsquo;essai-erreur avec les fichiers de config.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Une seule commande pour les gouverner toutes.&lt;/strong&gt; Au lieu que les agents jonglent entre &lt;code&gt;docker compose up&lt;/code&gt;, &lt;code&gt;npm run dev&lt;/code&gt; et les scripts de démarrage de base de données, tout est simplement &lt;code&gt;aspire start&lt;/code&gt;. Toutes les ressources se lancent dans le bon ordre, sur les bons ports, avec la bonne configuration. Les processus longs ne bloquent pas non plus l&amp;rsquo;agent — Aspire les gère.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mode isolé pour les agents parallèles.&lt;/strong&gt; Avec &lt;code&gt;--isolated&lt;/code&gt;, chaque exécution d&amp;rsquo;Aspire obtient ses propres ports aléatoires et secrets utilisateur séparés. Plusieurs agents travaillent sur des git worktrees ? Ils n&amp;rsquo;entreront pas en collision. C&amp;rsquo;est énorme pour des outils comme les agents en arrière-plan de VS Code qui créent des environnements parallèles.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Des yeux d&amp;rsquo;agent grâce à la télémétrie.&lt;/strong&gt; C&amp;rsquo;est là que ça devient vraiment puissant. La CLI Aspire expose des données OpenTelemetry complètes pendant le développement — traces, métriques, logs structurés. Ton agent ne se contente pas de lire la sortie console en espérant que tout va bien. Il peut tracer une requête échouée à travers les services, profiler les endpoints lents et identifier précisément où les choses cassent. C&amp;rsquo;est de l&amp;rsquo;observabilité de niveau production dans la boucle de développement.&lt;/p&gt;
&lt;h2 id="lanalogie-des-bumpers-de-bowling"&gt;L&amp;rsquo;analogie des bumpers de bowling&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;équipe Aspire utilise une super analogie : pense à Aspire comme les bumpers de piste de bowling pour les agents IA. Si l&amp;rsquo;agent n&amp;rsquo;est pas parfait (et il ne le sera pas), les bumpers l&amp;rsquo;empêchent de faire des gouttières. La définition de la stack empêche les mauvaises configurations, le compilateur attrape les erreurs, la CLI gère les processus, et la télémétrie fournit la boucle de feedback.&lt;/p&gt;
&lt;p&gt;Combine ça avec quelque chose comme Playwright CLI, et ton agent peut réellement &lt;em&gt;utiliser&lt;/em&gt; ton app — cliquer dans les flux, vérifier le DOM, voir les trucs cassés dans la télémétrie, corriger le code, redémarrer et retester. Construire, exécuter, observer, corriger. C&amp;rsquo;est la boucle de développement autonome que nous poursuivons.&lt;/p&gt;
&lt;h2 id="pour-démarrer"&gt;Pour démarrer&lt;/h2&gt;
&lt;p&gt;Nouveau avec Aspire ? Installe la CLI depuis &lt;a href="https://get.aspire.dev"&gt;get.aspire.dev&lt;/a&gt; et suis le &lt;a href="https://aspire.dev/get-started/first-app"&gt;guide de démarrage&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Tu utilises déjà Aspire ? Lance &lt;code&gt;aspire update --self&lt;/code&gt; pour obtenir la 13.2, puis pointe ton agent de coding favori vers ton repo. Tu seras surpris de voir jusqu&amp;rsquo;où il ira avec les garde-fous d&amp;rsquo;Aspire.&lt;/p&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;Aspire 13.2 n&amp;rsquo;est plus seulement un framework d&amp;rsquo;applications distribuées — il devient une infrastructure essentielle pour les agents. Des définitions de stack structurées, un démarrage en une commande, des exécutions parallèles isolées et de la télémétrie en temps réel donnent aux agents IA exactement ce dont ils ont besoin pour passer de l&amp;rsquo;écriture de code à la livraison d&amp;rsquo;apps.&lt;/p&gt;
&lt;p&gt;Lis le &lt;a href="https://devblogs.microsoft.com/aspire/agentic-dev-aspirations/"&gt;post complet&lt;/a&gt; de l&amp;rsquo;équipe Aspire pour tous les détails et vidéos de démo.&lt;/p&gt;</content:encoded></item><item><title>Ce Paramètre de Fenêtres Flottantes de Visual Studio Que Vous Ne Connaissiez Pas (Mais Devriez)</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/</guid><description>Un paramètre caché de Visual Studio vous donne un contrôle total sur les fenêtres flottantes — entrées indépendantes dans la barre des tâches, comportement multi-écran correct et intégration parfaite avec FancyZones. Un menu déroulant change tout.</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/visual-studio-floating-windows-powertoys/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si vous utilisez plusieurs écrans avec Visual Studio (et honnêtement, qui ne le fait pas de nos jours ?), vous avez probablement vécu la frustration : les fenêtres d&amp;rsquo;outils flottantes disparaissent quand vous réduisez l&amp;rsquo;IDE principal, elles restent toujours au-dessus de tout le reste, et elles n&amp;rsquo;apparaissent pas comme des boutons séparés dans la barre des tâches. Ça fonctionne pour certains workflows, mais pour les configurations multi-écrans c&amp;rsquo;est frustrant.&lt;/p&gt;
&lt;p&gt;Mads Kristensen de l&amp;rsquo;équipe Visual Studio &lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/"&gt;a partagé un paramètre peu connu&lt;/a&gt; qui change complètement le comportement des fenêtres flottantes. Un menu déroulant. C&amp;rsquo;est tout.&lt;/p&gt;
&lt;h2 id="le-paramètre"&gt;Le paramètre&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Tools &amp;gt; Options &amp;gt; Environment &amp;gt; Windows &amp;gt; Floating Windows&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le menu déroulant &amp;ldquo;These floating windows are owned by the main window&amp;rdquo; a trois options :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;None&lt;/strong&gt; — indépendance totale. Chaque fenêtre flottante a sa propre entrée dans la barre des tâches et se comporte comme une fenêtre Windows normale.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tool Windows&lt;/strong&gt; (par défaut) — les documents flottent librement, les fenêtres d&amp;rsquo;outils restent liées à l&amp;rsquo;IDE.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Documents and Tool Windows&lt;/strong&gt; — comportement classique de Visual Studio, tout lié à la fenêtre principale.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pourquoi-none-est-le-bon-choix-pour-les-configurations-multi-écrans"&gt;Pourquoi &amp;ldquo;None&amp;rdquo; est le bon choix pour les configurations multi-écrans&lt;/h2&gt;
&lt;p&gt;Réglez-le sur &lt;strong&gt;None&lt;/strong&gt; et soudain toutes vos fenêtres d&amp;rsquo;outils et documents flottants se comportent comme de vraies applications Windows. Elles apparaissent dans la barre des tâches, restent visibles quand vous réduisez la fenêtre principale de Visual Studio, et arrêtent de se forcer au premier plan.&lt;/p&gt;
&lt;p&gt;Combinez ça avec &lt;strong&gt;PowerToys FancyZones&lt;/strong&gt; et c&amp;rsquo;est un vrai changement. Créez des dispositions personnalisées sur vos écrans, placez votre Explorateur de Solutions dans une zone, le débogueur dans une autre, et les fichiers de code où vous voulez. Tout reste en place, tout est accessible indépendamment, et votre espace de travail paraît organisé au lieu de chaotique.&lt;/p&gt;
&lt;h2 id="recommandations-rapides"&gt;Recommandations rapides&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Utilisateurs avancés multi-écrans&lt;/strong&gt; : Réglez sur &lt;strong&gt;None&lt;/strong&gt;, combinez avec FancyZones&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flotteurs occasionnels&lt;/strong&gt; : &lt;strong&gt;Tool Windows&lt;/strong&gt; (par défaut) est un bon compromis&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Workflow traditionnel&lt;/strong&gt; : &lt;strong&gt;Documents and Tool Windows&lt;/strong&gt; garde tout classique&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Astuce pro : &lt;strong&gt;Ctrl + double-clic&lt;/strong&gt; sur la barre de titre de n&amp;rsquo;importe quelle fenêtre d&amp;rsquo;outils pour la rendre flottante ou l&amp;rsquo;ancrer instantanément. Pas besoin de redémarrer après avoir changé le paramètre.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est un de ces paramètres du type &amp;ldquo;je n&amp;rsquo;arrive pas à croire que je ne connaissais pas ça&amp;rdquo;. Si les fenêtres flottantes dans Visual Studio vous ont déjà agacé, allez changer ça tout de suite.&lt;/p&gt;
&lt;p&gt;Lisez l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/"&gt;article complet&lt;/a&gt; pour les détails et les captures d&amp;rsquo;écran.&lt;/p&gt;</content:encoded></item><item><title>Le Mode Isolé d'Aspire Résout le Cauchemar des Conflits de Ports pour le Développement Parallèle</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-isolated-mode-parallel-instances/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-isolated-mode-parallel-instances/</guid><description>Aspire 13.2 introduit le mode --isolated : ports aléatoires, secrets séparés et zéro collision lors de l'exécution de plusieurs instances du même AppHost. Parfait pour les agents IA, les worktrees et les workflows parallèles.</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/aspire-isolated-mode-parallel-instances/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si tu as déjà essayé d&amp;rsquo;exécuter deux instances du même projet en même temps, tu connais la douleur. Le port 8080 est déjà utilisé. Le port 17370 est pris. Tuer quelque chose, redémarrer, jongler avec les variables d&amp;rsquo;environnement — c&amp;rsquo;est un tueur de productivité.&lt;/p&gt;
&lt;p&gt;Ce problème empire, il ne s&amp;rsquo;améliore pas. Les agents IA créent des git worktrees pour travailler indépendamment. Les agents en arrière-plan démarrent des environnements séparés. Les développeurs font des checkout du même repo deux fois pour des branches de fonctionnalités. Chacun de ces scénarios frappe le même mur : deux instances de la même app qui se battent pour les mêmes ports.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 résout ça avec un seul flag. James Newton-King de l&amp;rsquo;équipe Aspire a &lt;a href="https://devblogs.microsoft.com/aspire/aspire-isolated-mode-parallel-development/"&gt;écrit tous les détails&lt;/a&gt;, et c&amp;rsquo;est une de ces fonctionnalités « pourquoi on n&amp;rsquo;avait pas ça avant ? ».&lt;/p&gt;
&lt;h2 id="la-solution----isolated"&gt;La solution : &lt;code&gt;--isolated&lt;/code&gt;&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;aspire run --isolated
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;C&amp;rsquo;est tout. Chaque exécution obtient :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Des ports aléatoires&lt;/strong&gt; — plus de collisions entre instances&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Des secrets utilisateur isolés&lt;/strong&gt; — les chaînes de connexion et clés API restent séparées par instance&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pas de réattribution manuelle de ports. Pas de jonglage avec les variables d&amp;rsquo;environnement. Chaque exécution obtient un environnement propre et sans collision automatiquement.&lt;/p&gt;
&lt;h2 id="scénarios-réels-où-ça-brille"&gt;Scénarios réels où ça brille&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Checkouts multiples.&lt;/strong&gt; Tu as une branche de fonctionnalité dans un répertoire et un bugfix dans un autre :&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;# Terminal 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/projects/my-app-feature
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire run --isolated
&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;# Terminal 2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/projects/my-app-bugfix
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire run --isolated
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Les deux tournent sans conflit. Le dashboard montre ce qui tourne et où.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agents en arrière-plan dans VS Code.&lt;/strong&gt; Quand l&amp;rsquo;agent en arrière-plan de Copilot Chat crée un git worktree pour travailler sur ton code indépendamment, il peut avoir besoin d&amp;rsquo;exécuter ton AppHost Aspire. Sans &lt;code&gt;--isolated&lt;/code&gt;, c&amp;rsquo;est un conflit de ports avec ton worktree principal. Avec, les deux instances fonctionnent tout simplement.&lt;/p&gt;
&lt;p&gt;Le skill Aspire livré avec &lt;code&gt;aspire agent init&lt;/code&gt; instruit automatiquement les agents d&amp;rsquo;utiliser &lt;code&gt;--isolated&lt;/code&gt; quand ils travaillent dans des worktrees. Donc l&amp;rsquo;agent en arrière-plan de Copilot devrait gérer ça nativement.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tests d&amp;rsquo;intégration en parallèle du développement.&lt;/strong&gt; Besoin d&amp;rsquo;exécuter des tests contre un AppHost live tout en continuant à développer des fonctionnalités ? Le mode isolé donne à chaque contexte ses propres ports et sa propre config.&lt;/p&gt;
&lt;h2 id="comment-ça-fonctionne-sous-le-capot"&gt;Comment ça fonctionne sous le capot&lt;/h2&gt;
&lt;p&gt;Quand tu passes &lt;code&gt;--isolated&lt;/code&gt;, la CLI génère un ID d&amp;rsquo;instance unique pour l&amp;rsquo;exécution. Cela pilote deux comportements :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Randomisation des ports&lt;/strong&gt; — au lieu de se lier à des ports prévisibles définis dans la config de ton AppHost, le mode isolé choisit des ports aléatoires disponibles pour tout — le dashboard, les endpoints de services, tout. Le service discovery s&amp;rsquo;ajuste automatiquement, pour que les services se trouvent mutuellement quel que soit le port attribué.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Isolation des secrets&lt;/strong&gt; — chaque exécution isolée obtient son propre store de secrets utilisateur, indexé par l&amp;rsquo;ID d&amp;rsquo;instance. Les chaînes de connexion et clés API d&amp;rsquo;une exécution ne fuient pas dans une autre.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ton code n&amp;rsquo;a besoin d&amp;rsquo;aucun changement. Le service discovery d&amp;rsquo;Aspire résout les endpoints au runtime, donc tout se connecte correctement quelle que soit l&amp;rsquo;attribution des ports.&lt;/p&gt;
&lt;h2 id="quand-lutiliser"&gt;Quand l&amp;rsquo;utiliser&lt;/h2&gt;
&lt;p&gt;Utilise &lt;code&gt;--isolated&lt;/code&gt; quand tu exécutes plusieurs instances du même AppHost simultanément — que ce soit pour du développement parallèle, des tests automatisés, des agents IA ou des git worktrees. Pour du développement mono-instance où tu préfères des ports prévisibles, le &lt;code&gt;aspire run&lt;/code&gt; classique fonctionne toujours très bien.&lt;/p&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;Le mode isolé est une petite fonctionnalité qui résout un problème réel et de plus en plus courant. Alors que le développement assisté par IA nous pousse vers plus de workflows parallèles — agents multiples, worktrees multiples, contextes multiples — la capacité de simplement lancer une autre instance sans se battre pour les ports est essentielle.&lt;/p&gt;
&lt;p&gt;Lis le &lt;a href="https://devblogs.microsoft.com/aspire/aspire-isolated-mode-parallel-development/"&gt;post complet&lt;/a&gt; pour tous les détails techniques et essaie-le avec &lt;code&gt;aspire update --self&lt;/code&gt; pour obtenir la 13.2.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.116 — L'App Agents Obtient la Navigation Clavier et les Complétions de Contexte de Fichiers</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/vscode-1-116-agents-app-updates/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/vscode-1-116-agents-app-updates/</guid><description>VS Code 1.116 se concentre sur le polissage de l'app Agents — raccourcis clavier dédiés, améliorations d'accessibilité, complétions de contexte de fichiers et résolution de liens CSS @import.</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/vscode-1-116-agents-app-updates/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;VS Code 1.116 est la version d&amp;rsquo;avril 2026, et bien qu&amp;rsquo;elle soit plus légère que certaines mises à jour récentes, les changements sont ciblés et significatifs — surtout si vous utilisez l&amp;rsquo;app Agents au quotidien.&lt;/p&gt;
&lt;p&gt;Voici ce qui a atterri, d&amp;rsquo;après les &lt;a href="https://code.visualstudio.com/updates/v1_116"&gt;notes de version officielles&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="améliorations-de-lapp-agents"&gt;Améliorations de l&amp;rsquo;app Agents&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;app Agents continue de mûrir avec un polissage de l&amp;rsquo;ergonomie qui fait une vraie différence dans les flux de travail quotidiens :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Raccourcis clavier dédiés&lt;/strong&gt; — vous pouvez maintenant cibler la vue Changes, l&amp;rsquo;arborescence de fichiers dans Changes, et la vue des Personnalisations du Chat avec des commandes et raccourcis clavier dédiés. Si vous cliquiez partout dans l&amp;rsquo;app Agents pour naviguer, cela apporte des flux de travail entièrement pilotés au clavier.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dialogue d&amp;rsquo;aide à l&amp;rsquo;accessibilité&lt;/strong&gt; — appuyer sur &lt;code&gt;Alt+F1&lt;/code&gt; dans la zone de saisie du chat ouvre maintenant un dialogue d&amp;rsquo;aide à l&amp;rsquo;accessibilité montrant les commandes et raccourcis disponibles. Les utilisateurs de lecteurs d&amp;rsquo;écran peuvent aussi contrôler la verbosité des annonces. Une bonne accessibilité profite à tout le monde.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Complétions de contexte de fichiers&lt;/strong&gt; — tapez &lt;code&gt;#&lt;/code&gt; dans le chat de l&amp;rsquo;app Agents pour déclencher les complétions de contexte de fichiers limitées à votre espace de travail actuel. C&amp;rsquo;est une de ces petites améliorations de qualité de vie qui accélèrent chaque interaction — plus besoin de taper des chemins de fichiers complets en référençant du code.&lt;/p&gt;
&lt;h2 id="résolution-des-liens-css-import"&gt;Résolution des liens CSS &lt;code&gt;@import&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Agréable pour les développeurs frontend : VS Code résout maintenant les références CSS &lt;code&gt;@import&lt;/code&gt; qui utilisent des chemins node_modules. Vous pouvez faire &lt;code&gt;Ctrl+clic&lt;/code&gt; à travers des imports comme &lt;code&gt;@import &amp;quot;some-module/style.css&amp;quot;&lt;/code&gt; en utilisant des bundlers. Petit mais élimine un point de friction dans les workflows CSS.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;VS Code 1.116 est une affaire de raffinement — rendre l&amp;rsquo;app Agents plus navigable, plus accessible et plus conviviale au clavier. Si vous passez beaucoup de temps dans l&amp;rsquo;app Agents (et je soupçonne que beaucoup d&amp;rsquo;entre nous le font), ces changements s&amp;rsquo;accumulent.&lt;/p&gt;
&lt;p&gt;Consultez les &lt;a href="https://code.visualstudio.com/updates/v1_116"&gt;notes de version complètes&lt;/a&gt; pour la liste exhaustive.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.115 — Notifications de Terminal en Arrière-plan, Mode Agent SSH et Plus</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/vscode-1-115-agent-improvements/</link><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/vscode-1-115-agent-improvements/</guid><description>VS Code 1.115 apporte les notifications de terminal en arrière-plan pour les agents, l'hébergement d'agents distants via SSH, le collage de fichiers dans les terminaux et le suivi des modifications avec reconnaissance de session. Voici ce qui compte pour les développeurs .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/vscode-1-115-agent-improvements/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;VS Code 1.115 vient de &lt;a href="https://code.visualstudio.com/updates/v1_115"&gt;sortir&lt;/a&gt;, et bien que ce soit une version plus légère en termes de fonctionnalités phares, les améliorations liées aux agents sont vraiment utiles si vous travaillez quotidiennement avec des assistants de code IA.&lt;/p&gt;
&lt;p&gt;Permettez-moi de souligner ce qui vaut vraiment la peine d&amp;rsquo;être connu.&lt;/p&gt;
&lt;h2 id="les-terminaux-en-arrière-plan-communiquent-avec-les-agents"&gt;Les terminaux en arrière-plan communiquent avec les agents&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est la fonctionnalité vedette. Les terminaux en arrière-plan notifient désormais automatiquement les agents lorsque les commandes se terminent, y compris le code de sortie et la sortie du terminal. Les invites de saisie dans les terminaux en arrière-plan sont également détectées et présentées à l&amp;rsquo;utilisateur.&lt;/p&gt;
&lt;p&gt;Pourquoi est-ce important ? Si vous avez utilisé le mode agent de Copilot pour exécuter des commandes de build ou des suites de tests en arrière-plan, vous connaissez la frustration du &amp;ldquo;est-ce que c&amp;rsquo;est fini ?&amp;rdquo; — les terminaux en arrière-plan étaient essentiellement du fire-and-forget. Maintenant l&amp;rsquo;agent est notifié quand votre &lt;code&gt;dotnet build&lt;/code&gt; ou &lt;code&gt;dotnet test&lt;/code&gt; se termine, voit la sortie et peut réagir en conséquence. C&amp;rsquo;est un petit changement qui rend les workflows pilotés par les agents nettement plus fiables.&lt;/p&gt;
&lt;p&gt;Il y a aussi un nouvel outil &lt;code&gt;send_to_terminal&lt;/code&gt; qui permet aux agents d&amp;rsquo;envoyer des commandes aux terminaux en arrière-plan avec confirmation de l&amp;rsquo;utilisateur, corrigeant le problème où &lt;code&gt;run_in_terminal&lt;/code&gt; avec un timeout déplaçait les terminaux en arrière-plan et les rendait en lecture seule.&lt;/p&gt;
&lt;h2 id="hébergement-dagents-distants-via-ssh"&gt;Hébergement d&amp;rsquo;agents distants via SSH&lt;/h2&gt;
&lt;p&gt;VS Code prend désormais en charge la connexion à des machines distantes via SSH, en installant automatiquement le CLI et en le démarrant en mode hôte d&amp;rsquo;agents. Cela signifie que vos sessions d&amp;rsquo;agents IA peuvent cibler directement des environnements distants — utile pour les développeurs .NET qui compilent et testent sur des serveurs Linux ou des VMs cloud.&lt;/p&gt;
&lt;h2 id="suivi-des-modifications-dans-les-sessions-dagents"&gt;Suivi des modifications dans les sessions d&amp;rsquo;agents&lt;/h2&gt;
&lt;p&gt;Les modifications de fichiers effectuées pendant les sessions d&amp;rsquo;agents sont désormais suivies et restaurées, avec des diffs, annuler/rétablir et restauration d&amp;rsquo;état. Si un agent modifie votre code et que quelque chose tourne mal, vous pouvez voir exactement ce qui a changé et le reverter. La tranquillité d&amp;rsquo;esprit pour laisser les agents modifier votre codebase.&lt;/p&gt;
&lt;h2 id="reconnaissance-des-onglets-du-navigateur-et-autres-améliorations"&gt;Reconnaissance des onglets du navigateur et autres améliorations&lt;/h2&gt;
&lt;p&gt;Quelques ajouts supplémentaires de qualité de vie :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Suivi des onglets du navigateur&lt;/strong&gt; — le chat peut désormais suivre et lier les onglets du navigateur ouverts pendant une session, pour que les agents puissent référencer les pages web que vous consultez&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Collage de fichiers dans le terminal&lt;/strong&gt; — collez des fichiers (y compris des images) dans le terminal avec Ctrl+V, glisser-déposer ou clic droit&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Couverture de tests dans la minimap&lt;/strong&gt; — les indicateurs de couverture de tests s&amp;rsquo;affichent désormais dans la minimap pour un aperçu visuel rapide&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pinch-to-zoom sur Mac&lt;/strong&gt; — le navigateur intégré prend en charge les gestes de pinch-to-zoom&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Droits Copilot dans les Sessions&lt;/strong&gt; — la barre d&amp;rsquo;état affiche les informations d&amp;rsquo;utilisation dans la vue Sessions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Favicon dans Aller au Fichier&lt;/strong&gt; — les pages web ouvertes affichent des favicons dans la liste de sélection rapide&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;VS Code 1.115 est une version incrémentale, mais les améliorations des agents — notifications de terminal en arrière-plan, hébergement d&amp;rsquo;agents SSH et suivi des modifications — contribuent à une expérience nettement plus fluide pour le développement assisté par IA. Si vous utilisez le mode agent de Copilot pour des projets .NET, ce sont le genre d&amp;rsquo;améliorations de qualité de vie qui réduisent les frictions au quotidien.&lt;/p&gt;
&lt;p&gt;Consultez les &lt;a href="https://code.visualstudio.com/updates/v1_115"&gt;notes de version complètes&lt;/a&gt; pour tous les détails.&lt;/p&gt;</content:encoded></item><item><title>Aspire 13.2 embarque une CLI de documentation — et votre agent IA peut l'utiliser aussi</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-docs-cli-ai-skills/</link><pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-docs-cli-ai-skills/</guid><description>.NET Aspire 13.2 ajoute aspire docs — une CLI pour rechercher, parcourir et lire la documentation officielle sans quitter votre terminal. Elle fonctionne aussi comme outil pour les agents IA. Voici pourquoi c'est important.</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/aspire-docs-cli-ai-skills/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Vous connaissez ce moment où vous êtes plongé dans un Aspire AppHost, en train de câbler des intégrations, et vous devez vérifier exactement quels paramètres l&amp;rsquo;intégration Redis attend ? Vous faites alt-tab vers votre navigateur, vous cherchez sur aspire.dev, vous plissez les yeux sur les docs de l&amp;rsquo;API, puis vous revenez à votre éditeur. Contexte perdu. Flow brisé.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 vient de &lt;a href="https://devblogs.microsoft.com/aspire/aspire-docs-in-your-terminal/"&gt;livrer une solution à ça&lt;/a&gt;. La CLI &lt;code&gt;aspire docs&lt;/code&gt; vous permet de rechercher, parcourir et lire la documentation officielle d&amp;rsquo;Aspire directement depuis votre terminal. Et comme elle s&amp;rsquo;appuie sur des services réutilisables, les agents IA et les skills peuvent utiliser les mêmes commandes pour consulter la doc au lieu d&amp;rsquo;halluciner des APIs qui n&amp;rsquo;existent pas.&lt;/p&gt;
&lt;h2 id="le-problème-que-ça-résout-vraiment"&gt;Le problème que ça résout vraiment&lt;/h2&gt;
&lt;p&gt;David Pine le dit parfaitement dans le post original : les agents IA étaient &lt;em&gt;catastrophiques&lt;/em&gt; pour aider les développeurs à construire des apps Aspire. Ils recommandaient &lt;code&gt;dotnet run&lt;/code&gt; au lieu de &lt;code&gt;aspire run&lt;/code&gt;, référençaient learn.microsoft.com pour des docs qui se trouvent sur aspire.dev, suggéraient des packages NuGet obsolètes, et — mon préféré — hallucinaient des APIs inexistantes.&lt;/p&gt;
&lt;p&gt;Pourquoi ? Parce qu&amp;rsquo;Aspire a été spécifique à .NET bien plus longtemps qu&amp;rsquo;il n&amp;rsquo;est polyglotte, et les LLMs travaillent avec des données d&amp;rsquo;entraînement qui précèdent les dernières fonctionnalités. Quand vous donnez à un agent IA la capacité de consulter les docs actuels, il arrête de deviner et commence à être utile.&lt;/p&gt;
&lt;h2 id="trois-commandes-zéro-onglet-de-navigateur"&gt;Trois commandes, zéro onglet de navigateur&lt;/h2&gt;
&lt;p&gt;La CLI est d&amp;rsquo;une simplicité rafraîchissante :&lt;/p&gt;
&lt;h3 id="lister-toute-la-documentation"&gt;Lister toute la documentation&lt;/h3&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;aspire docs list
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Retourne chaque page de documentation disponible sur aspire.dev. Besoin d&amp;rsquo;une sortie lisible par une machine ? Ajoutez &lt;code&gt;--format Json&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="rechercher-un-sujet"&gt;Rechercher un sujet&lt;/h3&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;aspire docs search &lt;span class="s2"&gt;&amp;#34;redis&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Recherche à la fois dans les titres et le contenu avec un score de pertinence pondéré. Le même moteur de recherche qui alimente les outils de documentation en interne. Vous obtenez des résultats classés avec titres, slugs et scores de pertinence.&lt;/p&gt;
&lt;h3 id="lire-une-page-complète-ou-juste-une-section"&gt;Lire une page complète (ou juste une section)&lt;/h3&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;aspire docs get redis-integration
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Envoie la page complète en markdown dans votre terminal. Besoin d&amp;rsquo;une seule section ?&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;aspire docs get redis-integration --section &lt;span class="s2"&gt;&amp;#34;Add Redis resource&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Précision chirurgicale. Pas besoin de scroller 500 lignes. Juste la partie dont vous avez besoin.&lt;/p&gt;
&lt;h2 id="langle-agent-ia"&gt;L&amp;rsquo;angle agent IA&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est là que ça devient intéressant pour nous, développeurs qui construisons avec des outils IA. Les mêmes commandes &lt;code&gt;aspire docs&lt;/code&gt; fonctionnent comme outils pour les agents IA — via des skills, des serveurs MCP, ou de simples wrappers CLI.&lt;/p&gt;
&lt;p&gt;Au lieu que votre assistant IA invente des APIs Aspire basées sur des données d&amp;rsquo;entraînement obsolètes, il peut appeler &lt;code&gt;aspire docs search &amp;quot;postgres&amp;quot;&lt;/code&gt;, trouver les docs d&amp;rsquo;intégration officiels, lire la bonne page, et vous donner l&amp;rsquo;approche documentée. De la documentation en temps réel et à jour — pas ce que le modèle a mémorisé il y a six mois.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;architecture derrière tout ça est intentionnelle. L&amp;rsquo;équipe Aspire a construit des services réutilisables (&lt;code&gt;IDocsIndexService&lt;/code&gt;, &lt;code&gt;IDocsSearchService&lt;/code&gt;, &lt;code&gt;IDocsFetcher&lt;/code&gt;, &lt;code&gt;IDocsCache&lt;/code&gt;) plutôt qu&amp;rsquo;une intégration ponctuelle. Cela signifie que le même moteur de recherche fonctionne pour les humains dans le terminal, les agents IA dans votre éditeur, et l&amp;rsquo;automatisation dans votre pipeline CI.&lt;/p&gt;
&lt;h2 id="scénarios-concrets"&gt;Scénarios concrets&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Consultations rapides dans le terminal :&lt;/strong&gt; Vous êtes trois fichiers en profondeur et vous avez besoin des paramètres de configuration Redis. Deux commandes, quatre-vingt-dix secondes, retour au travail :&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;aspire docs search &lt;span class="s2"&gt;&amp;#34;redis&amp;#34;&lt;/span&gt; --limit &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire docs get redis-integration --section &lt;span class="s2"&gt;&amp;#34;Configuration&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Développement assisté par IA :&lt;/strong&gt; Votre skill VS Code encapsule les commandes CLI. Vous demandez « Ajoute une base de données PostgreSQL à mon AppHost » et l&amp;rsquo;agent consulte les vrais docs avant de répondre. Pas d&amp;rsquo;hallucinations.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Validation CI/CD :&lt;/strong&gt; Votre pipeline valide les configurations AppHost contre la documentation officielle de manière programmatique. La sortie &lt;code&gt;--format Json&lt;/code&gt; se connecte proprement à &lt;code&gt;jq&lt;/code&gt; et d&amp;rsquo;autres outils.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bases de connaissances personnalisées :&lt;/strong&gt; Vous construisez vos propres outils IA ? Envoyez la sortie JSON structurée directement dans votre base de connaissances :&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;aspire docs search &lt;span class="s2"&gt;&amp;#34;monitoring&amp;#34;&lt;/span&gt; --format Json &lt;span class="p"&gt;|&lt;/span&gt; jq &lt;span class="s1"&gt;&amp;#39;[.[] | {slug, title, summary}]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pas de web scraping. Pas de clés API. Les mêmes données structurées utilisées en interne par les outils de documentation.&lt;/p&gt;
&lt;h2 id="la-documentation-est-toujours-à-jour"&gt;La documentation est toujours à jour&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est la partie que j&amp;rsquo;apprécie le plus. La CLI ne télécharge pas un snapshot — elle interroge aspire.dev avec un cache basé sur les ETags. Dès que la documentation est mise à jour, votre CLI et tout skill construit dessus le reflète. Pas de copies obsolètes, pas de moments « mais le wiki disait&amp;hellip; ».&lt;/p&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;aspire docs&lt;/code&gt; est une de ces petites fonctionnalités qui résout un vrai problème proprement. Les humains obtiennent un accès à la documentation natif au terminal. Les agents IA obtiennent un moyen d&amp;rsquo;arrêter de deviner et de commencer à référencer de vrais docs. Et tout est soutenu par la même source de vérité.&lt;/p&gt;
&lt;p&gt;Si vous construisez avec .NET Aspire et n&amp;rsquo;avez pas encore essayé la CLI, lancez &lt;code&gt;aspire docs search &amp;quot;votre-sujet-ici&amp;quot;&lt;/code&gt; et voyez comment ça se passe. Ensuite, envisagez d&amp;rsquo;intégrer ces commandes dans votre skill IA ou votre configuration d&amp;rsquo;automatisation — vos agents vous remercieront.&lt;/p&gt;
&lt;p&gt;Consultez &lt;a href="https://davidpine.dev/posts/aspire-docs-mcp-tools/"&gt;l&amp;rsquo;analyse approfondie de David Pine&lt;/a&gt; sur la construction des outils de documentation, et la &lt;a href="https://aspire.dev/reference/cli/commands/aspire-docs/"&gt;référence officielle de la CLI&lt;/a&gt; pour tous les détails.&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><item><title>Azure DevOps corrige enfin l'éditeur Markdown dont tout le monde se plaignait</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</guid><description>L'éditeur Markdown d'Azure DevOps pour les work items obtient une distinction plus claire entre mode aperçu et édition. Un petit changement qui résout un problème de workflow vraiment agaçant.</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-devops-markdown-editor-work-items/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si vous utilisez Azure Boards, vous avez probablement vécu ça : vous lisez la description d&amp;rsquo;un work item, peut-être en vérifiant les critères d&amp;rsquo;acceptation, et vous double-cliquez accidentellement. Boom — vous êtes en mode édition. Vous ne vouliez rien modifier. Vous étiez en train de lire.&lt;/p&gt;
&lt;p&gt;Dan Hellem &lt;a href="https://devblogs.microsoft.com/devops/improving-the-markdown-editor-for-work-items/"&gt;a annoncé le correctif&lt;/a&gt;, et c&amp;rsquo;est un de ces changements qui semblent petits mais qui éliminent une vraie friction de votre workflow quotidien.&lt;/p&gt;
&lt;h2 id="ce-qui-a-changé"&gt;Ce qui a changé&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;éditeur Markdown pour les champs texte des work items s&amp;rsquo;ouvre désormais en &lt;strong&gt;mode aperçu par défaut&lt;/strong&gt;. Vous pouvez lire et interagir avec le contenu — suivre les liens, vérifier le formatage — sans risquer d&amp;rsquo;entrer accidentellement en mode édition.&lt;/p&gt;
&lt;p&gt;Quand vous voulez vraiment éditer, vous cliquez sur l&amp;rsquo;icône d&amp;rsquo;édition en haut du champ. Quand vous avez terminé, vous revenez explicitement au mode aperçu. Simple, intentionnel, prévisible.&lt;/p&gt;
&lt;h2 id="pourquoi-cest-plus-important-quil-ny-paraît"&gt;Pourquoi c&amp;rsquo;est plus important qu&amp;rsquo;il n&amp;rsquo;y paraît&lt;/h2&gt;
&lt;p&gt;Le &lt;a href="https://developercommunity.visualstudio.com/t/Markdown-editor-for-work-item-multi-line/10935496"&gt;fil de feedback communautaire&lt;/a&gt; était long. Le comportement de double-clic pour éditer a été introduit avec l&amp;rsquo;éditeur Markdown en juillet 2025, et les plaintes ont commencé presque immédiatement.&lt;/p&gt;
&lt;p&gt;Pour les équipes qui font du sprint planning, du refinement ou du code review avec Azure Boards, ce type de micro-friction s&amp;rsquo;accumule.&lt;/p&gt;
&lt;h2 id="état-du-déploiement"&gt;État du déploiement&lt;/h2&gt;
&lt;p&gt;Ce changement est déjà en cours de déploiement pour un sous-ensemble de clients et s&amp;rsquo;étendra à tous dans les deux à trois prochaines semaines.&lt;/p&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;Toute amélioration n&amp;rsquo;a pas besoin d&amp;rsquo;être une fonctionnalité phare. Parfois la meilleure mise à jour consiste simplement à supprimer quelque chose d&amp;rsquo;agaçant. C&amp;rsquo;est exactement ça — un petit correctif UX qui rend Azure Boards moins hostile pour les gens qui veulent juste lire leurs work items tranquillement.&lt;/p&gt;</content:encoded></item><item><title>Bookmark Studio apporte la navigation par slots et le partage aux signets de Visual Studio</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/</guid><description>La nouvelle extension Bookmark Studio de Mads Kristensen ajoute la navigation par slots au clavier, un gestionnaire de signets, des couleurs, des labels et des capacités d'export aux signets de Visual Studio.</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/bookmark-studio-visual-studio-extension/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Les signets dans Visual Studio ont toujours été&amp;hellip; corrects. Vous en placez un, vous naviguez au suivant, vous oubliez lequel est lequel. Ça fonctionne, mais ce n&amp;rsquo;a jamais été une fonctionnalité qu&amp;rsquo;on qualifierait de puissante.&lt;/p&gt;
&lt;p&gt;Mads Kristensen vient de &lt;a href="https://devblogs.microsoft.com/visualstudio/bookmark-studio-evolving-bookmarks-in-visual-studio/"&gt;sortir Bookmark Studio&lt;/a&gt;, une extension expérimentale qui comble exactement les lacunes que vous avez probablement rencontrées.&lt;/p&gt;
&lt;h2 id="navigation-par-slots"&gt;Navigation par slots&lt;/h2&gt;
&lt;p&gt;Les signets peuvent être assignés aux slots 1–9 et accessibles directement avec &lt;code&gt;Alt+Shift+1&lt;/code&gt; à &lt;code&gt;Alt+Shift+9&lt;/code&gt;. Les nouveaux signets obtiennent automatiquement le prochain slot disponible.&lt;/p&gt;
&lt;h2 id="le-gestionnaire-de-signets"&gt;Le Gestionnaire de Signets&lt;/h2&gt;
&lt;p&gt;Une nouvelle fenêtre d&amp;rsquo;outils affiche tous vos signets avec filtrage par nom, fichier, emplacement, couleur ou slot.&lt;/p&gt;
&lt;h2 id="organisation-avec-labels-couleurs-et-dossiers"&gt;Organisation avec labels, couleurs et dossiers&lt;/h2&gt;
&lt;p&gt;Les signets peuvent avoir des labels, couleurs et être groupés en dossiers. Toutes les métadonnées sont stockées par solution.&lt;/p&gt;
&lt;h2 id="exporter-et-partager"&gt;Exporter et partager&lt;/h2&gt;
&lt;p&gt;Bookmark Studio permet d&amp;rsquo;exporter les signets en texte brut, Markdown ou CSV.&lt;/p&gt;
&lt;h2 id="signets-qui-suivent-le-code"&gt;Signets qui suivent le code&lt;/h2&gt;
&lt;p&gt;Bookmark Studio suit les signets relativement au texte auquel ils sont ancrés, ils ne dérivent donc pas vers les mauvaises lignes.&lt;/p&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;Bookmark Studio ne réinvente rien. Il prend une fonctionnalité qui était « suffisante » depuis des années et la rend vraiment utile. Téléchargez-le depuis le &lt;a href="https://marketplace.visualstudio.com/items?itemName=MadsKristensen.BookmarkStudio"&gt;Visual Studio Marketplace&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>La mise à jour de mars de Visual Studio permet de créer des agents Copilot personnalisés — et find_symbol est révolutionnaire</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/visual-studio-march-2026-custom-copilot-agents/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/visual-studio-march-2026-custom-copilot-agents/</guid><description>La mise à jour de mars 2026 de Visual Studio apporte des agents Copilot personnalisés, des skills réutilisables, l'outil find_symbol avec reconnaissance du langage, et le profiling avec Copilot depuis Test Explorer.</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/visual-studio-march-2026-custom-copilot-agents/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Visual Studio vient de recevoir sa mise à jour Copilot la plus significative. Mark Downie &lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-march-update-build-your-own-custom-agents/"&gt;a annoncé la version de mars&lt;/a&gt;, et le titre principal concerne les agents personnalisés — mais honnêtement, l&amp;rsquo;outil &lt;code&gt;find_symbol&lt;/code&gt; pourrait être la fonctionnalité qui change le plus votre workflow.&lt;/p&gt;
&lt;h2 id="agents-copilot-personnalisés-dans-votre-repo"&gt;Agents Copilot personnalisés dans votre repo&lt;/h2&gt;
&lt;p&gt;Envie que Copilot suive les standards de code de votre équipe ? Les agents personnalisés sont définis comme des fichiers &lt;code&gt;.agent.md&lt;/code&gt; dans &lt;code&gt;.github/agents/&lt;/code&gt;. Chaque agent a un accès complet au workspace, à la compréhension du code, aux outils, votre modèle préféré et aux connexions MCP.&lt;/p&gt;
&lt;h2 id="agent-skills--packs-dinstructions-réutilisables"&gt;Agent skills : packs d&amp;rsquo;instructions réutilisables&lt;/h2&gt;
&lt;p&gt;Les skills sont chargés automatiquement depuis &lt;code&gt;.github/skills/&lt;/code&gt; dans votre repo ou &lt;code&gt;~/.copilot/skills/&lt;/code&gt; dans votre profil.&lt;/p&gt;
&lt;h2 id="find_symbol--navigation-consciente-du-langage"&gt;find_symbol : navigation consciente du langage&lt;/h2&gt;
&lt;p&gt;Le nouvel outil &lt;code&gt;find_symbol&lt;/code&gt; donne au mode agent de Copilot une navigation de symboles basée sur les services de langage. Au lieu de chercher du texte, l&amp;rsquo;agent peut trouver toutes les références d&amp;rsquo;un symbole et accéder aux informations de type et de portée.&lt;/p&gt;
&lt;p&gt;Pour les développeurs .NET, c&amp;rsquo;est une amélioration massive — les bases de code C# avec des hiérarchies de types profondes en bénéficient énormément.&lt;/p&gt;
&lt;h2 id="profiler-des-tests-avec-copilot"&gt;Profiler des tests avec Copilot&lt;/h2&gt;
&lt;p&gt;Il y a un nouveau &lt;strong&gt;Profile with Copilot&lt;/strong&gt; dans le menu contextuel du Test Explorer. Le Profiling Agent exécute le test et analyse automatiquement les performances.&lt;/p&gt;
&lt;h2 id="perf-tips-pendant-le-débogage-en-direct"&gt;Perf tips pendant le débogage en direct&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;optimisation des performances se fait maintenant pendant le débogage. Visual Studio affiche le temps d&amp;rsquo;exécution inline. Ligne lente ? Cliquez sur le Perf Tip et demandez à Copilot des suggestions.&lt;/p&gt;
&lt;h2 id="corriger-les-vulnérabilités-nuget-depuis-solution-explorer"&gt;Corriger les vulnérabilités NuGet depuis Solution Explorer&lt;/h2&gt;
&lt;p&gt;Un lien &lt;strong&gt;Fix with GitHub Copilot&lt;/strong&gt; apparaît directement dans Solution Explorer quand une vulnérabilité est détectée.&lt;/p&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;Les agents personnalisés et les skills font le titre, mais &lt;code&gt;find_symbol&lt;/code&gt; est la pépite cachée — il change fondamentalement la précision de Copilot lors du refactoring de code .NET. Téléchargez &lt;a href="https://visualstudio.microsoft.com/downloads/"&gt;Visual Studio 2026 Insiders&lt;/a&gt; pour tout essayer.&lt;/p&gt;</content:encoded></item><item><title>Du laptop à la production : déployer des agents IA sur Microsoft Foundry en deux commandes</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</guid><description>L'Azure Developer CLI dispose maintenant de commandes 'azd ai agent' qui amènent votre agent IA du développement local à un endpoint Foundry en production en quelques minutes. Voici le workflow complet.</description><content:encoded>&lt;p&gt;Vous connaissez ce fossé entre &amp;ldquo;ça marche sur ma machine&amp;rdquo; et &amp;ldquo;c&amp;rsquo;est déployé et sert du trafic&amp;rdquo; ? Pour les agents IA, ce fossé a été douloureusement large. Il faut provisionner des ressources, déployer des modèles, configurer l&amp;rsquo;identité, mettre en place le monitoring — et tout ça avant que quiconque puisse réellement appeler votre agent.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;Azure Developer CLI vient d&amp;rsquo;en faire une &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;affaire de deux commandes&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="le-nouveau-workflow-azd-ai-agent"&gt;Le nouveau workflow &lt;code&gt;azd ai agent&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Laissez-moi vous montrer ce que ça donne concrètement. Vous avez un projet d&amp;rsquo;agent IA — disons un agent concierge d&amp;rsquo;hôtel. Il fonctionne en local. Vous voulez qu&amp;rsquo;il tourne sur Microsoft Foundry.&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;azd ai agent init
&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;C&amp;rsquo;est tout. Deux commandes. &lt;code&gt;azd ai agent init&lt;/code&gt; génère l&amp;rsquo;infrastructure-as-code dans votre repo, et &lt;code&gt;azd up&lt;/code&gt; provisionne tout sur Azure et publie votre agent. Vous obtenez un lien direct vers votre agent dans le portail Foundry.&lt;/p&gt;
&lt;h2 id="ce-qui-se-passe-sous-le-capot"&gt;Ce qui se passe sous le capot&lt;/h2&gt;
&lt;p&gt;La commande &lt;code&gt;init&lt;/code&gt; génère de vrais templates Bicep inspectables dans votre repo :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Une &lt;strong&gt;Foundry Resource&lt;/strong&gt; (conteneur de niveau supérieur)&lt;/li&gt;
&lt;li&gt;Un &lt;strong&gt;Foundry Project&lt;/strong&gt; (où vit votre agent)&lt;/li&gt;
&lt;li&gt;Configuration du &lt;strong&gt;déploiement de modèle&lt;/strong&gt; (GPT-4o, etc.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Identité managée&lt;/strong&gt; avec les attributions de rôles RBAC appropriées&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azure.yaml&lt;/code&gt; pour la carte des services&lt;/li&gt;
&lt;li&gt;&lt;code&gt;agent.yaml&lt;/code&gt; avec les métadonnées de l&amp;rsquo;agent et les variables d&amp;rsquo;environnement&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le point clé : tout cela vous appartient. C&amp;rsquo;est du Bicep versionné dans votre repo. Vous pouvez l&amp;rsquo;inspecter, le personnaliser et le commiter aux côtés du code de votre agent. Pas de boîtes noires magiques.&lt;/p&gt;
&lt;h2 id="la-boucle-interne-de-développement"&gt;La boucle interne de développement&lt;/h2&gt;
&lt;p&gt;Ce que j&amp;rsquo;aime vraiment, c&amp;rsquo;est l&amp;rsquo;expérience de développement local. Quand vous itérez sur la logique de l&amp;rsquo;agent, vous ne voulez pas redéployer à chaque modification d&amp;rsquo;un prompt :&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;azd ai agent run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Cela démarre votre agent localement. Combinez-le avec &lt;code&gt;azd ai agent invoke&lt;/code&gt; pour envoyer des prompts de test, et vous avez une boucle de feedback rapide. Modifier le code, redémarrer, invoquer, répéter.&lt;/p&gt;
&lt;p&gt;La commande &lt;code&gt;invoke&lt;/code&gt; est intelligente pour le routage aussi — quand un agent local tourne, elle le cible automatiquement. Sinon, elle va vers l&amp;rsquo;endpoint distant.&lt;/p&gt;
&lt;h2 id="monitoring-en-temps-réel"&gt;Monitoring en temps réel&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est la fonctionnalité qui m&amp;rsquo;a convaincu. Une fois votre agent déployé :&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;azd ai agent monitor --follow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Chaque requête et réponse transitant par votre agent est streamée vers votre terminal en temps réel. Pour déboguer des problèmes en production, c&amp;rsquo;est inestimable. Plus besoin de fouiller dans les Log Analytics, plus d&amp;rsquo;attente pour l&amp;rsquo;agrégation des métriques — vous voyez ce qui se passe maintenant.&lt;/p&gt;
&lt;h2 id="lensemble-complet-des-commandes"&gt;L&amp;rsquo;ensemble complet des commandes&lt;/h2&gt;
&lt;p&gt;Voici la référence rapide :&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Commande&lt;/th&gt;
&lt;th&gt;Ce qu&amp;rsquo;elle fait&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent init&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Scaffold d&amp;rsquo;un projet agent Foundry avec IaC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd up&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Provisionne les ressources Azure et déploie l&amp;rsquo;agent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Envoie des prompts à l&amp;rsquo;agent distant ou local&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exécute l&amp;rsquo;agent localement pour le développement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Streame les logs en temps réel de l&amp;rsquo;agent publié&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Vérifie la santé et le statut de l&amp;rsquo;agent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd down&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Nettoie toutes les ressources Azure&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="pourquoi-cest-important-pour-les-développeurs-net"&gt;Pourquoi c&amp;rsquo;est important pour les développeurs .NET&lt;/h2&gt;
&lt;p&gt;Même si l&amp;rsquo;exemple de l&amp;rsquo;annonce est basé sur Python, l&amp;rsquo;histoire de l&amp;rsquo;infrastructure est agnostique au langage. Votre agent .NET bénéficie du même scaffolding Bicep, de la même configuration d&amp;rsquo;identité managée, du même pipeline de monitoring. Et si vous utilisez déjà &lt;code&gt;azd&lt;/code&gt; pour vos apps .NET Aspire ou vos déploiements Azure, ça s&amp;rsquo;intègre directement dans votre workflow existant.&lt;/p&gt;
&lt;p&gt;Le fossé de déploiement pour les agents IA a été l&amp;rsquo;un des plus grands points de friction dans l&amp;rsquo;écosystème. Passer d&amp;rsquo;un prototype fonctionnel à un endpoint de production avec identité, réseau et monitoring appropriés ne devrait pas nécessiter une semaine de travail DevOps. Maintenant il faut deux commandes et quelques minutes.&lt;/p&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd ai agent&lt;/code&gt; est disponible maintenant. Si vous avez repoussé le déploiement de vos agents IA parce que la mise en place de l&amp;rsquo;infrastructure semblait trop de travail, essayez. Consultez le &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;walkthrough complet&lt;/a&gt; pour le guide étape par étape incluant l&amp;rsquo;intégration d&amp;rsquo;une app de chat frontend.&lt;/p&gt;</content:encoded></item></channel></rss>