<?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>Aspire | The .NET Blog</title><link>https://thedotnetblog.com/fr/tags/aspire/</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>Tue, 19 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/fr/tags/aspire/index.xml" rel="self" type="application/rss+xml"/><item><title>Endpoints Privés, VNets, NSGs — Aspire Gère le Réseau Maintenant</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-azure-enterprise-networking-private-endpoints/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-azure-enterprise-networking-private-endpoints/</guid><description>Le nouveau support réseau d'entreprise Azure pour Aspire vous permet de modéliser les VNets, les endpoints privés, les passerelles NAT, les NSG et les périmètres de sécurité réseau directement dans votre AppHost, sans dérive d'infrastructure.</description><content:encoded>&lt;p&gt;J&amp;rsquo;ai vu ce scénario trop de fois. L&amp;rsquo;application est terminée. La démo est excellente. Puis la liste de contrôle de sécurité arrive : sortir le stockage d&amp;rsquo;internet public, s&amp;rsquo;exécuter dans un VNet, fournir des IPs sortantes pour la liste d&amp;rsquo;autorisation du partenaire, prouver que seuls les bons sous-réseaux parlent aux bons services.&lt;/p&gt;
&lt;p&gt;À ce stade, le modèle d&amp;rsquo;application et le modèle d&amp;rsquo;infrastructure commencent à diverger de manières douloureuses à maintenir.&lt;/p&gt;
&lt;p&gt;Le nouveau support réseau d&amp;rsquo;entreprise Azure pour Aspire répond directement à cela. Vous décrivez la forme du réseau à côté des ressources qui l&amp;rsquo;utilisent, dans votre AppHost.&lt;/p&gt;
&lt;h2 id="les-blocs-de-construction"&gt;Les Blocs de Construction&lt;/h2&gt;
&lt;p&gt;Voici à quoi sert chaque concept réseau Azure, résumé :&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Fonctionnalité&lt;/th&gt;
&lt;th&gt;Utilisez-le quand&lt;/th&gt;
&lt;th&gt;Pourquoi c&amp;rsquo;est important&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Réseau virtuel&lt;/td&gt;
&lt;td&gt;Vous avez besoin d&amp;rsquo;un espace d&amp;rsquo;adressage privé&lt;/td&gt;
&lt;td&gt;La limite réseau pour les sous-réseaux, les endpoints privés et le routage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sous-réseau&lt;/td&gt;
&lt;td&gt;Vous devez séparer les charges de travail dans le VNet&lt;/td&gt;
&lt;td&gt;Chaque partie du système obtient sa propre plage d&amp;rsquo;adresses et surface de politique&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sous-réseau délégué&lt;/td&gt;
&lt;td&gt;Un service de plateforme (comme ACA) doit gérer un sous-réseau&lt;/td&gt;
&lt;td&gt;Permet au service de placer une infrastructure gérée dans votre VNet en toute sécurité&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Passerelle NAT&lt;/td&gt;
&lt;td&gt;Vous avez besoin d&amp;rsquo;IPs publiques sortantes prévisibles&lt;/td&gt;
&lt;td&gt;Adresse stable pour les listes d&amp;rsquo;autorisation et l&amp;rsquo;audit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Endpoint privé&lt;/td&gt;
&lt;td&gt;Vous voulez une ressource PaaS accessible privément&lt;/td&gt;
&lt;td&gt;Place une IP privée pour ce service dans votre VNet, supprime l&amp;rsquo;exposition publique&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NSG&lt;/td&gt;
&lt;td&gt;Vous avez besoin de règles de trafic au niveau du sous-réseau&lt;/td&gt;
&lt;td&gt;Autoriser/refuser explicitement pour le trafic entrant et sortant par sous-réseau&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="le-décrire-dans-votre-apphost"&gt;Le Décrire dans votre AppHost&lt;/h2&gt;
&lt;p&gt;Le changement clé ici est que vous modélisez le réseau &lt;em&gt;aux côtés&lt;/em&gt; des ressources qui l&amp;rsquo;utilisent, pas dans un fichier Bicep séparé qui dérive du modèle d&amp;rsquo;application avec le temps.&lt;/p&gt;
&lt;p&gt;Depuis l&amp;rsquo;AppHost, vous pouvez :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Créer des VNets et des sous-réseaux avec &lt;code&gt;AddVirtualNetwork()&lt;/code&gt; et &lt;code&gt;AddSubnet()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Attacher une passerelle NAT aux sous-réseaux pour des IPs sortantes stables&lt;/li&gt;
&lt;li&gt;Créer des endpoints privés pour le stockage, Key Vault, SQL et d&amp;rsquo;autres services PaaS&lt;/li&gt;
&lt;li&gt;Définir des NSG avec des règles de sécurité entrantes et sortantes&lt;/li&gt;
&lt;li&gt;Configurer des Périmètres de Sécurité Réseau pour des politiques inter-ressources&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le résultat est que lorsque vous exécutez &lt;code&gt;azd up&lt;/code&gt;, l&amp;rsquo;infrastructure correspond à ce que le modèle d&amp;rsquo;application dit qu&amp;rsquo;il a besoin. Pas ce que dit un modèle maintenu manuellement.&lt;/p&gt;
&lt;h2 id="pourquoi-cest-important-pour-les-applications-réelles"&gt;Pourquoi C&amp;rsquo;est Important pour les Applications Réelles&lt;/h2&gt;
&lt;p&gt;Quelques choses qui deviennent significativement plus faciles une fois que le réseau est modélisé dans Aspire :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endpoints privés pour Key Vault et stockage&lt;/strong&gt; — vous décrivez &lt;code&gt;WithPrivateEndpoint()&lt;/code&gt; sur ces ressources, et Aspire gère la configuration des zones DNS et l&amp;rsquo;attachement des endpoints. L&amp;rsquo;application ne change jamais.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IPs sortantes cohérentes&lt;/strong&gt; — ajoutez une passerelle NAT au sous-réseau concerné et chaque requête sortante de votre application passe par une IP connue et stable. Les partenaires peuvent l&amp;rsquo;autoriser. Les auditeurs peuvent la tracer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Règles NSG depuis le code&lt;/strong&gt; — au lieu de cliquer dans le portail ou de maintenir un extrait Bicep, vos règles de sécurité vivent dans l&amp;rsquo;AppHost aux côtés des ressources qu&amp;rsquo;elles protègent.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est le type d&amp;rsquo;intégration qui ne rend pas les démos excitantes mais rend les systèmes de production maintenables.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;La sécurité réseau apparaissant tard dans le cycle de vie du projet est un problème résolu si vous la modélisez aux côtés de l&amp;rsquo;application dès le début. Le support réseau d&amp;rsquo;entreprise d&amp;rsquo;Aspire rend cela possible sans nécessiter une piste d&amp;rsquo;infrastructure séparée.&lt;/p&gt;
&lt;p&gt;Détails complets dans l&amp;rsquo;article original : &lt;a href="https://devblogs.microsoft.com/aspire/aspire-azure-enterprise-networking/"&gt;Securing Azure apps with Aspire enterprise networking&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Aspire 13.3 : Support Kubernetes, Journaux du Navigateur et la Compétence Aspireify</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-133-kubernetes-browser-logs-aspireify/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-133-kubernetes-browser-logs-aspireify/</guid><description>Cinq semaines après 13.2, Aspire 13.3 arrive avec 45 nouvelles fonctionnalités, notamment le déploiement AKS de première classe, une compétence d'intégration assistée par IA, la capture des journaux du navigateur et des résultats de commandes structurés.</description><content:encoded>&lt;p&gt;Cinq semaines, ce n&amp;rsquo;est pas beaucoup pour une version, mais Aspire 13.3 ne le semble pas. Les éléments principaux sont significatifs : déploiement Kubernetes et AKS de première classe avec Helm, une compétence d&amp;rsquo;intégration assistée par agent appelée Aspireify, la capture des journaux du navigateur directement dans le dashboard et des résultats de commandes structurés. En plus, 45 nouvelles fonctionnalités, 134 améliorations et 93 corrections de bugs.&lt;/p&gt;
&lt;p&gt;Passons aux points saillants.&lt;/p&gt;
&lt;h2 id="aspireify--intégration-assistée-par-agent"&gt;Aspireify : Intégration Assistée par Agent&lt;/h2&gt;
&lt;p&gt;Ajouter Aspire à un projet existant semble simple — ajoutez un AppHost, c&amp;rsquo;est fait. En pratique, cela implique beaucoup d&amp;rsquo;archéologie : quels ports comptent, quelles variables d&amp;rsquo;environnement sont de vraies dépendances, quels services Docker Compose doivent correspondre aux intégrations Aspire.&lt;/p&gt;
&lt;p&gt;La nouvelle &lt;strong&gt;compétence Aspireify&lt;/strong&gt; donne à votre agent de code un flux de travail guidé précisément pour cela. Quand &lt;code&gt;aspire init&lt;/code&gt; crée un AppHost squelette, la compétence Aspireify aide l&amp;rsquo;agent à inspecter le dépôt, à comprendre comment il fonctionne déjà et à câbler l&amp;rsquo;AppHost pour s&amp;rsquo;adapter à l&amp;rsquo;application — pas l&amp;rsquo;inverse.&lt;/p&gt;
&lt;p&gt;La posture par défaut est &amp;ldquo;minimiser les modifications de votre code.&amp;rdquo; Si votre application lit déjà &lt;code&gt;DATABASE_URL&lt;/code&gt;, l&amp;rsquo;agent le mappe avec &lt;code&gt;WithEnvironment()&lt;/code&gt; au lieu de vous demander de réécrire votre configuration. Si un port est codé en dur, la compétence indique à l&amp;rsquo;agent quand le préserver.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est le type d&amp;rsquo;outillage IA qui fait réellement gagner du temps plutôt que de générer plus de travail à revoir.&lt;/p&gt;
&lt;h2 id="déploiement-kubernetes-et-aks-de-première-classe"&gt;Déploiement Kubernetes et AKS de Première Classe&lt;/h2&gt;
&lt;p&gt;Celui-là était sur la liste de souhaits depuis un moment. Aspire 13.3 inclut le &lt;strong&gt;support de déploiement Kubernetes et AKS de première classe avec Helm&lt;/strong&gt;. Vous pouvez maintenant cibler AKS comme destination de déploiement directement depuis les outils Aspire.&lt;/p&gt;
&lt;p&gt;Pour les équipes qui exécutent déjà des charges de travail de production sur AKS, cela comble un écart significatif. Votre modèle d&amp;rsquo;application Aspire a maintenant un chemin propre du développement local vers Kubernetes sans rédaction manuelle de charts Helm.&lt;/p&gt;
&lt;h2 id="journaux-du-navigateur-dans-le-dashboard"&gt;Journaux du Navigateur dans le Dashboard&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est une de ces fonctionnalités qui semblent mineures jusqu&amp;rsquo;à ce que vous déboguiez un problème frontend.&lt;/p&gt;
&lt;p&gt;La nouvelle API &lt;code&gt;WithBrowserLogs()&lt;/code&gt; attache une ressource de navigateur suivie à toute ressource capable d&amp;rsquo;endpoints. Aspire lance Chromium en utilisant un pipe CDP privé et diffuse les journaux de console, les requêtes réseau et les erreurs directement dans le flux de journaux de la ressource :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;frontend&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddViteApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;frontend&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&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="n"&gt;WithHttpEndpoint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3000&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="n"&gt;WithBrowserLogs&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;L&amp;rsquo;AppHost TypeScript prend en charge la même chose :&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;const&lt;/span&gt; &lt;span class="nx"&gt;frontend&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;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;withHttpEndpoint&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;port&lt;/span&gt;: &lt;span class="kt"&gt;3000&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;withBrowserLogs&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;Erreurs de console, requêtes réseau échouées, exceptions côté client — tout visible dans le même dashboard où vous regardez déjà les traces et métriques. Plus besoin de changer d&amp;rsquo;onglet vers les DevTools du navigateur pour les bases.&lt;/p&gt;
&lt;h2 id="résultats-de-commandes-structurés"&gt;Résultats de Commandes Structurés&lt;/h2&gt;
&lt;p&gt;Les commandes de ressources ont reçu une mise à niveau significative. Jusqu&amp;rsquo;à présent, les commandes renvoyaient succès/échec. Maintenant elles retournent des résultats structurés : texte, JSON ou markdown qui circule à travers le modèle, l&amp;rsquo;interface du dashboard, la CLI et les outils MCP.&lt;/p&gt;
&lt;p&gt;Le dashboard relie tout cela avec un nouveau centre de notifications dans l&amp;rsquo;en-tête. Les résultats des commandes apparaissent sous forme de notifications horodatées avec rendu markdown et une action &amp;ldquo;Voir la réponse&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Cela rend les commandes de ressources véritablement composables. Une intégration peut maintenant exposer une commande qui renvoie une sortie significative — comme une URL de tunnel — plutôt que de simplement changer d&amp;rsquo;état quelque part.&lt;/p&gt;
&lt;h2 id="en-résumé"&gt;En Résumé&lt;/h2&gt;
&lt;p&gt;Aspire 13.3 vaut la mise à jour ne serait-ce que pour le support Kubernetes. Les journaux du navigateur et les résultats de commandes structurés ressemblent au type d&amp;rsquo;améliorations de qualité de vie qui s&amp;rsquo;accumulent rapidement dans un flux de travail de développement quotidien.&lt;/p&gt;
&lt;p&gt;Notes de version complètes : &lt;a href="https://devblogs.microsoft.com/aspire/whats-new-aspire-13-3/"&gt;What&amp;rsquo;s New in Aspire 13.3&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Aspire 13.2 : Support Bun, Meilleurs Conteneurs et Moins de Friction de Debug</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-132-bun-container-enhancements/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-132-bun-container-enhancements/</guid><description>Aspire 13.2 ajoute le support Bun de première classe pour les apps Vite, corrige la fiabilité de Yarn et apporte des améliorations aux conteneurs qui rendent le comportement local plus prévisible.</description><content:encoded>&lt;p&gt;&lt;em&gt;Cet article a été traduit automatiquement. Pour la version originale, &lt;a href="https://thedotnetblog.com/posts/emiliano-montesdeoca/aspire-132-bun-container-enhancements/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Si vous construisez des backends .NET avec des frontends JavaScript dans Aspire, la 13.2 est la mise à jour qui améliore silencieusement votre quotidien. Des améliorations solides à des choses légèrement agaçantes.&lt;/p&gt;
&lt;h2 id="bun-est-maintenant-citoyen-de-première-classe"&gt;Bun est Maintenant Citoyen de Première Classe&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addViteApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;frontend&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;./frontend&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;withBun&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si votre équipe utilise déjà Bun, Aspire ne vous force plus à aller à contre-courant.&lt;/p&gt;
&lt;h2 id="yarn-plus-fiable"&gt;Yarn Plus Fiable&lt;/h2&gt;
&lt;p&gt;Les utilisateurs de Yarn bénéficient de moins d&amp;rsquo;échecs mystérieux avec &lt;code&gt;withYarn()&lt;/code&gt; et &lt;code&gt;addViteApp()&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="améliorations-des-conteneurs"&gt;Améliorations des Conteneurs&lt;/h2&gt;
&lt;p&gt;Pull policy explicite avec &lt;code&gt;ImagePullPolicy.Never&lt;/code&gt; pour utiliser l&amp;rsquo;image locale sans aller au registry. PostgreSQL 18+ avec des volumes de données fonctionne maintenant correctement.&lt;/p&gt;
&lt;h2 id="améliorations-du-débogage"&gt;Améliorations du Débogage&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DebuggerDisplayAttribute&lt;/code&gt; sur les types core&lt;/li&gt;
&lt;li&gt;Meilleurs messages d&amp;rsquo;erreur pour &lt;code&gt;WaitFor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BeforeResourceStartedEvent&lt;/code&gt; se déclenche au bon moment&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Post original de David Pine : &lt;a href="https://devblogs.microsoft.com/aspire/aspire-bun-support-and-container-enhancements/"&gt;Aspire 13.2: Bun Support and Container Enhancements&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Global Azure Spain 2026</title><link>https://thedotnetblog.com/fr/events/global-azure-spain-2026/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><guid>https://thedotnetblog.com/fr/events/global-azure-spain-2026/</guid><description>Le plus grand événement Azure communautaire en Espagne — une journée complète de sessions sur Azure, IA, données, sécurité et développement cloud-native avec 38 speakers sur 3 tracks.</description><content:encoded>&lt;p&gt;Global Azure Spain 2026 a lieu le &lt;strong&gt;18 avril 2026&lt;/strong&gt; au &lt;strong&gt;Kinépolis Diversia&lt;/strong&gt; à Alcobendas, Madrid. C&amp;rsquo;est le plus grand événement communautaire Azure en Espagne, réunissant 38 speakers sur 3 tracks parallèles couvrant les agents IA, le réseau Azure, Cosmos DB, Fabric, IoT, la sécurité et bien plus.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;événement se déroule de &lt;strong&gt;08h30 à 18h30&lt;/strong&gt; et comprend une keynote, des pauses café, un déjeuner et une session de clôture Q&amp;amp;A.&lt;/p&gt;
&lt;h2 id="points-forts-de-lagenda"&gt;Points forts de l&amp;rsquo;agenda&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Domando Agentes de IA&lt;/strong&gt; : gouvernance, outils et APIs avec Azure AI Foundry et Azure API Management&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Construyendo agentes con LibreChat en Azure&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How Can I Steal Your Data with Azure Private Endpoints&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stop Building APIs. Forge Agents with Azure&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agentic DevOps Meets IoT: Real-Time Systems with Fabric and GitHub Copilot&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;El regreso de los tamagotchis!&lt;/strong&gt; : systèmes multi-agents en action&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Foundry Control Plane como plataforma de Agentes global&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rompiendo el perímetro: Zero Trust aplicado en Azure&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="billets"&gt;Billets&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;inscription est une donation symbolique — le prix du billet est entièrement reversé à &lt;strong&gt;Plan International&lt;/strong&gt;, soutenant les droits des enfants et l&amp;rsquo;égalité dans le monde. Capacité limitée, alors réservez votre place rapidement.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.eventbrite.es/e/entradas-global-azure-spain-2026-en-madrid-1981594189564"&gt;Billets sur Eventbrite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://globalazure.es/"&gt;Site de l&amp;rsquo;événement&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="azure-tour-2026"&gt;Azure Tour 2026&lt;/h2&gt;
&lt;p&gt;Au-delà de Madrid, le Global Azure Tour 2026 comprend également des étapes à &lt;strong&gt;Saragosse&lt;/strong&gt;, &lt;strong&gt;Tenerife&lt;/strong&gt; et &lt;strong&gt;Séville&lt;/strong&gt;.&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>.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><item><title>Le Dashboard d'Aspire 13.2 a maintenant une API de télémétrie — et ça change tout</title><link>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-132-dashboard-export-telemetry/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/fr/news/emiliano-montesdeoca/aspire-132-dashboard-export-telemetry/</guid><description>.NET Aspire 13.2 apporte un export de télémétrie plus intelligent, une API programmable pour les traces et logs, et des améliorations de visualisation GenAI. Voici pourquoi c'est important pour votre workflow de débogage.</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-132-dashboard-export-telemetry/"&gt;cliquez ici&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si vous développez des applications distribuées avec .NET Aspire, vous savez déjà que le dashboard est la meilleure chose de toute l&amp;rsquo;expérience. Toutes vos traces, logs et métriques au même endroit — pas de Jaeger externe, pas de configuration Seq, pas de moments « laissez-moi vérifier l&amp;rsquo;autre terminal ».&lt;/p&gt;
&lt;p&gt;Aspire 13.2 vient de considérablement améliorer les choses. James Newton-King &lt;a href="https://devblogs.microsoft.com/aspire/aspire-dashboard-improvements-export-and-telemetry/"&gt;a annoncé la mise à jour&lt;/a&gt;, et honnêtement ? Les fonctionnalités d&amp;rsquo;export de télémétrie et l&amp;rsquo;API justifient à elles seules la mise à niveau.&lt;/p&gt;
&lt;h2 id="exporter-la-télémétrie-comme-une-personne-normale"&gt;Exporter la télémétrie comme une personne normale&lt;/h2&gt;
&lt;p&gt;Voici le scénario qu&amp;rsquo;on a tous vécu : vous déboguez un problème distribué, vous le reproduisez enfin après vingt minutes de configuration, et maintenant vous devez partager ce qui s&amp;rsquo;est passé avec votre équipe. Avant ? Des captures d&amp;rsquo;écran. Du copier-coller d&amp;rsquo;identifiants de traces. Le bazar habituel.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 ajoute un dialogue &lt;strong&gt;Gérer les logs et la télémétrie&lt;/strong&gt; où vous pouvez :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Effacer toute la télémétrie (utile avant une tentative de reproduction)&lt;/li&gt;
&lt;li&gt;Exporter la télémétrie sélectionnée dans un fichier ZIP au format standard OTLP/JSON&lt;/li&gt;
&lt;li&gt;Ré-importer ce ZIP dans n&amp;rsquo;importe quel dashboard Aspire ultérieurement&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ce dernier point est la fonctionnalité phare. Vous reproduisez un bug, exportez la télémétrie, l&amp;rsquo;attachez à votre work item, et votre collègue peut l&amp;rsquo;importer dans son propre dashboard pour voir exactement ce que vous avez vu. Fini le « tu peux reproduire sur ta machine ? »&lt;/p&gt;
&lt;p&gt;Les traces, spans et logs individuels ont aussi une option « Export JSON » dans leurs menus contextuels. Besoin de partager une trace spécifique ? Clic droit, copier le JSON, coller dans la description de votre PR. Terminé.&lt;/p&gt;
&lt;h2 id="lapi-de-télémétrie-est-le-vrai-changement-majeur"&gt;L&amp;rsquo;API de télémétrie est le vrai changement majeur&lt;/h2&gt;
&lt;p&gt;C&amp;rsquo;est ce qui m&amp;rsquo;enthousiasme le plus. Le dashboard expose maintenant une API HTTP sous &lt;code&gt;/api/telemetry&lt;/code&gt; pour interroger les données de télémétrie programmatiquement. Endpoints disponibles :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/resources&lt;/code&gt; — lister les ressources avec télémétrie&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/spans&lt;/code&gt; — interroger les spans avec des filtres&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/logs&lt;/code&gt; — interroger les logs avec des filtres&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/traces&lt;/code&gt; — lister les traces&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/traces/{traceId}&lt;/code&gt; — obtenir tous les spans d&amp;rsquo;une trace spécifique&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tout revient au format OTLP JSON. Cela alimente les nouvelles commandes CLI &lt;code&gt;aspire agent mcp&lt;/code&gt; et &lt;code&gt;aspire otel&lt;/code&gt;, mais l&amp;rsquo;implication réelle est plus grande : vous pouvez maintenant construire des outils, scripts et intégrations d&amp;rsquo;agents IA qui interrogent directement la télémétrie de votre app.&lt;/p&gt;
&lt;p&gt;Imaginez un agent IA de codage qui peut voir vos traces distribuées réelles pendant le débogage. Ce n&amp;rsquo;est plus hypothétique — c&amp;rsquo;est ce que cette API permet.&lt;/p&gt;
&lt;h2 id="la-télémétrie-genai-devient-pratique"&gt;La télémétrie GenAI devient pratique&lt;/h2&gt;
&lt;p&gt;Si vous construisez des apps alimentées par l&amp;rsquo;IA avec Semantic Kernel ou Microsoft.Extensions.AI, vous apprécierez le visualiseur de télémétrie GenAI amélioré. Aspire 13.2 ajoute :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Les descriptions d&amp;rsquo;outils IA rendues en Markdown&lt;/li&gt;
&lt;li&gt;Un bouton GenAI dédié sur la page des traces pour un accès rapide&lt;/li&gt;
&lt;li&gt;Une meilleure gestion des erreurs pour le JSON GenAI tronqué ou non standard&lt;/li&gt;
&lt;li&gt;Une navigation click-to-highlight entre les définitions d&amp;rsquo;outils&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;L&amp;rsquo;article mentionne que VS Code Copilot chat, Copilot CLI et OpenCode supportent tous la configuration d&amp;rsquo;un &lt;code&gt;OTEL_EXPORTER_OTLP_ENDPOINT&lt;/code&gt;. Pointez-les vers le dashboard Aspire et vous pouvez littéralement regarder vos agents IA réfléchir en temps réel via la télémétrie. C&amp;rsquo;est une expérience de débogage que vous ne trouverez nulle part ailleurs.&lt;/p&gt;
&lt;h2 id="pour-conclure"&gt;Pour conclure&lt;/h2&gt;
&lt;p&gt;Aspire 13.2 transforme le dashboard d&amp;rsquo;une « jolie UI de débogage » en « plateforme d&amp;rsquo;observabilité programmable ». Le workflow d&amp;rsquo;export/import seul fait gagner du temps réel en débogage distribué, et l&amp;rsquo;API de télémétrie ouvre la porte au diagnostic assisté par IA.&lt;/p&gt;
&lt;p&gt;Si vous êtes déjà sur Aspire, mettez à jour. Sinon — c&amp;rsquo;est une bonne raison de découvrir &lt;a href="https://aspire.dev"&gt;aspire.dev&lt;/a&gt;.&lt;/p&gt;</content:encoded></item></channel></rss>