<?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>Cli | The .NET Blog</title><link>https://thedotnetblog.com/fr/tags/cli/</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>Wed, 27 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/fr/tags/cli/index.xml" rel="self" type="application/rss+xml"/><item><title>dotnet new WinUI : Créer des apps Windows sans toucher à Visual Studio</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/dotnet-new-winui-templates-cli-vscode/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/dotnet-new-winui-templates-cli-vscode/</guid><description>Les modèles de projet WinUI fonctionnent maintenant avec dotnet new — apps vierges, modèles NavigationView et plus encore. Support VS Code, Visual Studio non requis, avec Fluent Design intégré par défaut.</description><content:encoded>&lt;p&gt;Le développement WinUI nécessitait auparavant Visual Studio. Cela est en train de changer : Microsoft a publié des modèles de projets et d&amp;rsquo;éléments open source pour WinUI qui fonctionnent avec &lt;code&gt;dotnet new&lt;/code&gt;, intégrant le développement d&amp;rsquo;applications Windows dans le workflow standard de la CLI.&lt;/p&gt;
&lt;h2 id="démarrer-en-trois-commandes"&gt;Démarrer en trois commandes&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Installer les modèles&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet new install Microsoft.WindowsAppSDK.WinUI.CSharp.Templates
&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;# Créer une app NavigationView&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet new winui-navview -n MyApp
&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;# L&amp;#39;exécuter&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; MyApp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pas de Visual Studio, pas de configuration manuelle du projet. L&amp;rsquo;application s&amp;rsquo;exécute avec &lt;code&gt;dotnet run&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="ce-qui-est-inclus"&gt;Ce qui est inclus&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Modèle vierge&lt;/strong&gt; (&lt;code&gt;dotnet new winui&lt;/code&gt;) — un point de départ moderne avec une barre de titre Fluent déjà configurée, une icône d&amp;rsquo;app mise à jour avec un asset &lt;code&gt;.ico&lt;/code&gt;, et des valeurs par défaut correctes pour le mode clair/sombre. Mieux que l&amp;rsquo;ancien modèle vierge qui vous laissait configurer les bases vous-même.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Modèle NavigationView&lt;/strong&gt; (&lt;code&gt;dotnet new winui-navview&lt;/code&gt;) — le modèle de navigation maître-détail, entièrement configuré avec un NavigationView, une barre de titre moderne et une structure de navigation multi-pages. Suit la silhouette standard des apps Windows pour les applications basées sur la navigation. Si vous construisez quelque chose avec une navigation latérale, commencez ici.&lt;/p&gt;
&lt;p&gt;Les deux modèles suivent les &lt;a href="https://learn.microsoft.com/windows/apps/design/basics/app-silhouette"&gt;silhouettes d&amp;rsquo;apps Windows&lt;/a&gt; — des modèles Fluent Design modernes pour la mise en page, la navigation et la structure visuelle — dès le départ.&lt;/p&gt;
&lt;h2 id="pourquoi-cest-important-pour-les-développeurs-qui-nutilisent-pas-visual-studio"&gt;Pourquoi c&amp;rsquo;est important pour les développeurs qui n&amp;rsquo;utilisent pas Visual Studio&lt;/h2&gt;
&lt;p&gt;Les développeurs WinUI utilisant VS Code, Rider ou les outils en ligne de commande ont été mal servis. Les modèles Visual Studio existants n&amp;rsquo;étaient pas utilisables en dehors de VS — il fallait recréer manuellement la structure du projet et configurer les bases.&lt;/p&gt;
&lt;p&gt;Ces modèles sont open source (voir &lt;a href="https://github.com/microsoft/WindowsAppSDK/pull/6407"&gt;WindowsAppSDK PR #6407&lt;/a&gt;), développés à partir des &lt;a href="https://github.com/microsoft/microsoft-ui-xaml/issues/10388"&gt;retours de la communauté&lt;/a&gt;, et disponibles maintenant. Le support Visual Studio est en cours — ces mêmes modèles fonctionneront également là-bas à terme.&lt;/p&gt;
&lt;p&gt;Pour les équipes qui veulent automatiser la configuration de leurs projets WinUI, l&amp;rsquo;intégrer dans la CI, ou simplement utiliser un éditeur autre que Visual Studio, c&amp;rsquo;est une amélioration significative.&lt;/p&gt;
&lt;p&gt;Post original : &lt;a href="https://devblogs.microsoft.com/ifdef-windows/introducing-dotnet-new-templates-for-winui/"&gt;Introducing dotnet new WinUI templates&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Cosmos DB Shell Est en Préversion Publique — Et Il a un Serveur MCP Intégré</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/cosmosdb-shell-public-preview-mcp-server-cli/</link><pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/cosmosdb-shell-public-preview-mcp-server-cli/</guid><description>Azure Cosmos DB Shell est un nouveau CLI open source qui expose les commandes de base de données comme outils MCP. Vos agents IA peuvent naviguer dans les conteneurs, exécuter des requêtes et gérer des données en utilisant la même interface que vous.</description><content:encoded>&lt;p&gt;Si vous avez déjà dû naviguer entre un onglet de portail, un exemple de SDK et un script à moitié terminé juste pour répondre à une question Cosmos DB, vous connaissez déjà la friction que ce projet est conçu pour éliminer.&lt;/p&gt;
&lt;p&gt;Azure Cosmos DB Shell vient d&amp;rsquo;entrer en préversion publique. C&amp;rsquo;est un CLI open source avec une syntaxe de type bash et — la partie qui le rend intéressant — un serveur MCP intégré.&lt;/p&gt;
&lt;h2 id="ce-qui-le-différencie-des-autres-clis-de-base-de-données"&gt;Ce Qui le Différencie des Autres CLIs de Base de Données&lt;/h2&gt;
&lt;p&gt;Le CLI lui-même est utile : commandes familières, support de script, intégration CI/CD. Cette partie est le minimum attendu pour un outil de base de données orienté développeur.&lt;/p&gt;
&lt;p&gt;La partie intéressante est l&amp;rsquo;intégration du serveur MCP. Chaque commande que le CLI expose devient disponible comme outil MCP que vos agents IA peuvent appeler. Il n&amp;rsquo;y a pas de couche API personnalisée, pas de code d&amp;rsquo;intégration à écrire. Votre agent peut :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Naviguer dans les hiérarchies de bases de données avec &lt;code&gt;cd&lt;/code&gt;, &lt;code&gt;ls&lt;/code&gt;, &lt;code&gt;pwd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Exécuter des requêtes SQL avec &lt;code&gt;query&lt;/code&gt; et obtenir des résultats structurés&lt;/li&gt;
&lt;li&gt;Créer et modifier des éléments avec &lt;code&gt;create item&lt;/code&gt;, &lt;code&gt;update&lt;/code&gt;, &lt;code&gt;rm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Gérer des bases de données et des conteneurs avec &lt;code&gt;mkdb&lt;/code&gt;, &lt;code&gt;mkcon&lt;/code&gt;, &lt;code&gt;rmdb&lt;/code&gt;, &lt;code&gt;rmcon&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Inspecter le contexte actuel avec &lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;pwd&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le changement clé : votre agent ne parle pas à une API Cosmos DB — il parle à la même interface shell que vous utilisez. Les commandes sont déterministes, auditables et open source pour que vous puissiez inspecter exactement ce qui se passe.&lt;/p&gt;
&lt;h2 id="la-base-open-source-compte"&gt;La Base Open Source Compte&lt;/h2&gt;
&lt;p&gt;Ce n&amp;rsquo;est pas un service géré boîte noire. Le shell est open source, ce qui signifie :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Les équipes de sécurité peuvent auditer l&amp;rsquo;implémentation&lt;/li&gt;
&lt;li&gt;Les équipes de plateforme peuvent le forker et l&amp;rsquo;étendre pour leurs standards spécifiques&lt;/li&gt;
&lt;li&gt;Les développeurs peuvent contribuer des améliorations qui bénéficient à tous&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour les équipes d&amp;rsquo;entreprise adoptant des outils IA, &amp;ldquo;peut-on voir exactement comment ça fonctionne&amp;rdquo; est de plus en plus une exigence non optionnelle. L&amp;rsquo;open source ici est un différenciateur significatif.&lt;/p&gt;
&lt;h2 id="trois-scénarios-qui-deviennent-plus-faciles"&gt;Trois Scénarios Qui Deviennent Plus Faciles&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Analyse intelligente des données&lt;/strong&gt; — connectez un agent au shell, posez des questions en langage naturel, obtenez des résultats de requêtes structurés. L&amp;rsquo;agent gère la construction de la requête ; le shell gère l&amp;rsquo;exécution.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gestion autonome des données&lt;/strong&gt; — les workflows qui doivent créer, mettre à jour ou supprimer des données dans Cosmos DB peuvent le faire via les outils MCP sans avoir besoin d&amp;rsquo;une intégration personnalisée.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Surveillance et alertes en temps réel&lt;/strong&gt; — un agent peut interroger périodiquement des conteneurs, comparer les résultats et signaler des anomalies via le canal de notification approprié.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;interface MCP rend ces scénarios composables avec n&amp;rsquo;importe quelle plateforme IA qui parle MCP — pas seulement les outils Microsoft.&lt;/p&gt;
&lt;h2 id="pour-commencer"&gt;Pour Commencer&lt;/h2&gt;
&lt;p&gt;Le shell est en préversion publique. Installez-le, configurez votre connexion Cosmos DB et activez le serveur MCP. De là, tout hôte d&amp;rsquo;agent compatible MCP peut découvrir et utiliser les outils.&lt;/p&gt;
&lt;p&gt;Post original : &lt;a href="https://devblogs.microsoft.com/cosmosdb/azure-cosmos-db-shell-public-preview-ai-mcp-cli/"&gt;Announcing the Public Preview of Azure Cosmos DB Shell: Open-Source Power Meets AI-Driven Database Automation&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>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>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>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>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></channel></rss>