<?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/ja/tags/aspire/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>ja</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/ja/tags/aspire/index.xml" rel="self" type="application/rss+xml"/><item><title>プライベート Endpoints、VNet、NSG — Aspire がネットワークを管理するように</title><link>https://thedotnetblog.com/ja/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/ja/news/emiliano-montesdeoca/aspire-azure-enterprise-networking-private-endpoints/</guid><description>Aspire の新しい Azure エンタープライズネットワーキングサポートにより、VNet、プライベートエンドポイント、NAT ゲートウェイ、NSG、ネットワークセキュリティ境界を AppHost で直接モデル化できます。インフラのドリフトは不要です。</description><content:encoded>&lt;p&gt;このシナリオを何度も見てきました。アプリは完成しています。デモは素晴らしい。そしてセキュリティチェックリストが現れます: ストレージをパブリックインターネットから外す、VNet 内で実行する、パートナーのアローリスト用に送信 IP を提供する、正しいサブネットだけが正しいサービスと通信することを証明する。&lt;/p&gt;
&lt;p&gt;この時点でアプリケーションモデルとインフラストラクチャモデルが乖離し始め、維持するのが辛くなります。&lt;/p&gt;
&lt;p&gt;Aspire の新しい Azure エンタープライズネットワーキングサポートはこれに直接対処します。ネットワークの形状を AppHost 内で、それを使用するリソースの隣に記述します。&lt;/p&gt;
&lt;h2 id="構成要素"&gt;構成要素&lt;/h2&gt;
&lt;p&gt;各 Azure ネットワーキングの概念が何のためのものかを、要約してまとめます:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;機能&lt;/th&gt;
&lt;th&gt;使用するとき&lt;/th&gt;
&lt;th&gt;重要な理由&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;仮想ネットワーク&lt;/td&gt;
&lt;td&gt;プライベートアドレス空間が必要なとき&lt;/td&gt;
&lt;td&gt;サブネット、プライベートエンドポイント、ルーティングのためのネットワーク境界&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;サブネット&lt;/td&gt;
&lt;td&gt;VNet 内でワークロードを分離する必要があるとき&lt;/td&gt;
&lt;td&gt;システムの各部分が独自のアドレス範囲とポリシーサーフェスを取得&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;委任サブネット&lt;/td&gt;
&lt;td&gt;プラットフォームサービス（ACA など）がサブネットを管理する必要があるとき&lt;/td&gt;
&lt;td&gt;サービスが管理されたインフラを VNet に安全に配置できる&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NAT ゲートウェイ&lt;/td&gt;
&lt;td&gt;予測可能な送信パブリック IP が必要なとき&lt;/td&gt;
&lt;td&gt;アローリストと監査のための安定したアドレス&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;プライベートエンドポイント&lt;/td&gt;
&lt;td&gt;PaaS リソースをプライベートにアクセスしたいとき&lt;/td&gt;
&lt;td&gt;そのサービスのプライベート IP を VNet 内に配置し、公開露出を除去&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NSG&lt;/td&gt;
&lt;td&gt;サブネットレベルのトラフィックルールが必要なとき&lt;/td&gt;
&lt;td&gt;サブネットごとの受信・送信トラフィックの明示的な許可/拒否&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="apphost-での記述"&gt;AppHost での記述&lt;/h2&gt;
&lt;p&gt;ここでの重要な変化は、ネットワークを使用するリソースの&lt;em&gt;隣&lt;/em&gt;にモデル化していることです。時間の経過とともにアプリモデルから離れていく別の Bicep ファイルではありません。&lt;/p&gt;
&lt;p&gt;AppHost から以下が可能です:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;AddVirtualNetwork()&lt;/code&gt; と &lt;code&gt;AddSubnet()&lt;/code&gt; で VNet とサブネットを作成&lt;/li&gt;
&lt;li&gt;安定した送信 IP のためにサブネットに NAT ゲートウェイを付加&lt;/li&gt;
&lt;li&gt;ストレージ、Key Vault、SQL、その他の PaaS サービスのプライベートエンドポイントを作成&lt;/li&gt;
&lt;li&gt;受信・送信セキュリティルールで NSG を定義&lt;/li&gt;
&lt;li&gt;クロスリソースポリシーのためのネットワークセキュリティ境界を構成&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;結果として &lt;code&gt;azd up&lt;/code&gt; を実行すると、インフラストラクチャはアプリモデルが必要と言っているものと一致します。手動で維持されたテンプレートが言うものではありません。&lt;/p&gt;
&lt;h2 id="実際のアプリケーションにとって重要な理由"&gt;実際のアプリケーションにとって重要な理由&lt;/h2&gt;
&lt;p&gt;Aspire でネットワークをモデル化すると大幅に楽になるいくつかのこと:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key Vault とストレージのプライベートエンドポイント&lt;/strong&gt; — これらのリソースに &lt;code&gt;WithPrivateEndpoint()&lt;/code&gt; を記述すると、Aspire が DNS ゾーン設定とエンドポイントの接続を処理します。アプリは変更されません。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一貫した送信 IP&lt;/strong&gt; — 関連するサブネットに NAT ゲートウェイを追加すると、アプリからのすべての送信リクエストが既知の安定した IP を通過します。パートナーはアローリストに登録できます。監査担当者は追跡できます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;コードからの NSG ルール&lt;/strong&gt; — ポータルをクリックしたり Bicep スニペットを維持したりする代わりに、セキュリティルールは保護するリソースの隣に AppHost に存在します。&lt;/p&gt;
&lt;p&gt;これは、デモを興奮させるものではありませんが、プロダクションシステムを保守可能にする種類の統合です。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;プロジェクトのライフサイクルの後半にネットワークセキュリティが現れるのは、最初からアプリと一緒にモデル化すれば解決済みの問題です。Aspire のエンタープライズネットワーキングサポートは、別のインフラストラクチャトラックを必要とせずにそれを可能にします。&lt;/p&gt;
&lt;p&gt;完全な詳細は元の投稿で: &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: Kubernetes サポート、ブラウザログ、Aspireify スキル</title><link>https://thedotnetblog.com/ja/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/ja/news/emiliano-montesdeoca/aspire-133-kubernetes-browser-logs-aspireify/</guid><description>13.2 から5週間後、Aspire 13.3 は45の新機能を携えてリリース。ファーストクラスの AKS デプロイ、AI 支援のオンボーディングスキル、ブラウザログのキャプチャ、構造化されたコマンド結果が含まれます。</description><content:encoded>&lt;p&gt;5週間はリリースとしては短い期間ですが、Aspire 13.3 はそのようには感じません。主要な項目は重要なものです: Helm による Kubernetes および AKS のファーストクラスデプロイ、Aspireify というエージェント支援のオンボーディングスキル、ダッシュボードへのブラウザログキャプチャ直接統合、構造化されたコマンド結果。さらに、45の新機能、134の改善、93のバグ修正も含まれています。&lt;/p&gt;
&lt;p&gt;ハイライトを見ていきましょう。&lt;/p&gt;
&lt;h2 id="aspireify-エージェント支援のオンボーディング"&gt;Aspireify: エージェント支援のオンボーディング&lt;/h2&gt;
&lt;p&gt;Aspire を既存のプロジェクトに追加するのは簡単に聞こえます — AppHost を追加すれば完了。しかし実際には多くの調査が必要です: どのポートが重要か、どの環境変数が実際の依存関係か、どの Docker Compose サービスが Aspire のインテグレーションにマッピングされるべきか。&lt;/p&gt;
&lt;p&gt;新しい &lt;strong&gt;Aspireify スキル&lt;/strong&gt; は、コーディングエージェントにまさにそのためのガイド付きワークフローを提供します。&lt;code&gt;aspire init&lt;/code&gt; がスケルトン AppHost を作成するとき、Aspireify スキルはエージェントがリポジトリを調査し、どのように動作しているかを理解し、アプリに合わせて AppHost を接続するのを助けます — その逆ではありません。&lt;/p&gt;
&lt;p&gt;デフォルトのスタンスは「コードへの変更を最小化する」です。アプリがすでに &lt;code&gt;DATABASE_URL&lt;/code&gt; を読み取っている場合、エージェントは設定を書き直すように求めるのではなく、&lt;code&gt;WithEnvironment()&lt;/code&gt; でそれをマップします。ポートがハードコードされている場合、スキルはエージェントにそれを保持するタイミングを伝えます。&lt;/p&gt;
&lt;p&gt;これは、レビューのための作業を増やすのではなく、実際に時間を節約する AI ツールの一例です。&lt;/p&gt;
&lt;h2 id="ファーストクラスの-kubernetes-と-aks-デプロイ"&gt;ファーストクラスの Kubernetes と AKS デプロイ&lt;/h2&gt;
&lt;p&gt;これはウィッシュリストにしばらくありました。Aspire 13.3 では &lt;strong&gt;Helm を使用した Kubernetes と AKS のファーストクラスデプロイサポート&lt;/strong&gt; が提供されます。Aspire ツールから直接 AKS をデプロイターゲットとして指定できるようになりました。&lt;/p&gt;
&lt;p&gt;AKS で本番ワークロードをすでに実行しているチームにとって、これは重要なギャップを埋めます。Aspire のアプリモデルは、手動で Helm チャートを書く必要なく、ローカル開発から Kubernetes へのクリーンなパスを持つようになりました。&lt;/p&gt;
&lt;h2 id="ダッシュボードのブラウザログ"&gt;ダッシュボードのブラウザログ&lt;/h2&gt;
&lt;p&gt;これはフロントエンドの問題をデバッグするまでは小さく見える機能の一つです。&lt;/p&gt;
&lt;p&gt;新しい &lt;code&gt;WithBrowserLogs()&lt;/code&gt; API は、エンドポイント対応のリソースに追跡されたブラウザリソースを添付します。Aspire はプライベート CDP パイプを使用して Chromium を起動し、コンソールログ、ネットワークリクエスト、エラーをリソースのログストリームに直接ストリーミングします:&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;TypeScript AppHost も同様にサポートしています:&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;コンソールエラー、失敗したネットワークリクエスト、クライアントサイドの例外 — すべて、すでにトレースとメトリクスを監視しているのと同じダッシュボードで可視化できます。基本的なことのためにブラウザ DevTools にタブを切り替える必要はもうありません。&lt;/p&gt;
&lt;h2 id="構造化されたコマンド結果"&gt;構造化されたコマンド結果&lt;/h2&gt;
&lt;p&gt;リソースコマンドが大幅にアップグレードされました。これまで、コマンドは成功/失敗を返していました。今では構造化された結果を返します: モデル、ダッシュボード UI、CLI、MCP ツールを流れるテキスト、JSON、または Markdown です。&lt;/p&gt;
&lt;p&gt;ダッシュボードはこれをヘッダーの新しい通知センターでまとめています。コマンド結果は Markdown レンダリングと「応答を表示」アクションを持つタイムスタンプ付き通知として表示されます。&lt;/p&gt;
&lt;p&gt;これにより、リソースコマンドが真に組み合わせ可能になります。インテグレーションは、単にどこかの状態を変更するのではなく、トンネル URL などの意味のある出力を返すコマンドを公開できるようになりました。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;Aspire 13.3 は Kubernetes サポートだけでもアップデートする価値があります。ブラウザログと構造化されたコマンド結果は、日常の開発ワークフローで素早く積み重なる生活の質向上の改善の一種です。&lt;/p&gt;
&lt;p&gt;完全なリリースノート: &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: Bun サポート、コンテナ改善、デバッグの摩擦軽減</title><link>https://thedotnetblog.com/ja/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/ja/news/emiliano-montesdeoca/aspire-132-bun-container-enhancements/</guid><description>Aspire 13.2はViteアプリへのBunサポートをファーストクラスで追加し、Yarnの信頼性を修正し、ローカル開発の動作をより予測可能にするコンテナ改善を提供します。</description><content:encoded>&lt;p&gt;&lt;em&gt;この投稿は自動翻訳されています。オリジナル版は&lt;a href="https://thedotnetblog.com/posts/emiliano-montesdeoca/aspire-132-bun-container-enhancements/"&gt;こちら&lt;/a&gt;をクリックしてください。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;.NETバックエンドとJavaScriptフロントエンドをAspireで構築しているなら、13.2は静かにあなたの一日を良くする種類のアップデートです。&lt;/p&gt;
&lt;h2 id="bunがファーストクラスになりました"&gt;Bunがファーストクラスになりました&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;チームがすでにBunを使用している場合、Aspireはもはや逆流を強いません。&lt;/p&gt;
&lt;h2 id="yarnの信頼性向上"&gt;Yarnの信頼性向上&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;withYarn()&lt;/code&gt;と&lt;code&gt;addViteApp()&lt;/code&gt;での謎のエラーが減少します。&lt;/p&gt;
&lt;h2 id="コンテナの改善"&gt;コンテナの改善&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;ImagePullPolicy.Never&lt;/code&gt;でレジストリに行かずにローカルイメージを使用。PostgreSQL 18+のデータボリュームが正しく動作するようになりました。&lt;/p&gt;
&lt;h2 id="デバッグの改善"&gt;デバッグの改善&lt;/h2&gt;
&lt;p&gt;コアタイプへの&lt;code&gt;DebuggerDisplayAttribute&lt;/code&gt;、&lt;code&gt;WaitFor&lt;/code&gt;の改善されたエラーメッセージ、適切なタイミングで発火する&lt;code&gt;BeforeResourceStartedEvent&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;オリジナルポスト（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/ja/events/global-azure-spain-2026/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><guid>https://thedotnetblog.com/ja/events/global-azure-spain-2026/</guid><description>スペイン最大のAzureコミュニティイベント — Azure、AI、データ、セキュリティ、クラウドネイティブ開発に関する1日セッション、38名のスピーカー、3トラック。</description><content:encoded>&lt;p&gt;Global Azure Spain 2026 は &lt;strong&gt;2026年4月18日&lt;/strong&gt; にマドリード、Alcobendas の &lt;strong&gt;Kinépolis Diversia&lt;/strong&gt; で開催されます。スペイン最大のコミュニティ主導のAzureイベントで、AIエージェント、Azureネットワーク、Cosmos DB、Fabric、IoT、セキュリティなどをカバーする3つの並行トラックに38名のスピーカーが登壇します。&lt;/p&gt;
&lt;p&gt;イベントは &lt;strong&gt;08:30 から 18:30&lt;/strong&gt; まで開催され、キーノート、コーヒーブレイク、ランチ、クロージングQ&amp;amp;Aセッションを含みます。&lt;/p&gt;
&lt;h2 id="アジェンダのハイライト"&gt;アジェンダのハイライト&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Domando Agentes de IA&lt;/strong&gt;: Azure AI FoundryとAzure API Managementによるガバナンス、ツール、API&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;: マルチエージェントシステムの実践&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="チケット"&gt;チケット&lt;/h2&gt;
&lt;p&gt;登録は象徴的な寄付です — チケット代金は全額 &lt;strong&gt;Plan International&lt;/strong&gt; に寄付され、世界中の子どもの権利と平等を支援します。定員に限りがありますので、お早めにお申し込みください。&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;Eventbriteでチケットを取得&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://globalazure.es/"&gt;イベントサイト&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;マドリード以外にも、Global Azure Tour 2026 は &lt;strong&gt;サラゴサ&lt;/strong&gt;、&lt;strong&gt;テネリフェ&lt;/strong&gt;、&lt;strong&gt;セビリア&lt;/strong&gt; でも開催されます。&lt;/p&gt;</content:encoded></item><item><title>ターミナルの見張り番はもう終わり：Aspireのデタッチモードがワークフローを変える</title><link>https://thedotnetblog.com/ja/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/ja/news/emiliano-montesdeoca/aspire-detached-mode-free-your-terminal/</guid><description>Aspire 13.2ではAppHostをバックグラウンドで実行してターミナルを取り戻せます。新しいCLIコマンドやエージェントサポートと組み合わせると、思った以上に大きな変化です。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されています。原文は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/aspire-detached-mode-free-your-terminal/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;AspireのAppHostを実行するたびに、ターミナルが奪われます。ロックされて、Ctrl+Cを押すまで占有されたまま。ちょっとしたコマンドを実行したい？別のタブを開く。ログを確認したい？もう一つタブを開く。小さなストレスですが、積み重なると大きくなります。&lt;/p&gt;
&lt;p&gt;Aspire 13.2がこれを解決します。James Newton-Kingが&lt;a href="https://devblogs.microsoft.com/aspire/aspire-detached-mode-and-process-management/"&gt;詳細を書いています&lt;/a&gt;が、正直なところ、これは使い始めた瞬間にワークフローが変わる機能の一つです。&lt;/p&gt;
&lt;h2 id="デタッチモードコマンド一つでターミナルが戻る"&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 start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これは&lt;code&gt;aspire run --detach&lt;/code&gt;のショートカットです。AppHostがバックグラウンドで起動し、ターミナルがすぐに戻ってきます。余計なタブは不要。ターミナルマルチプレクサも不要。プロンプトがそのまま使える状態です。&lt;/p&gt;
&lt;h2 id="実行中のプロセスを管理する"&gt;実行中のプロセスを管理する&lt;/h2&gt;
&lt;p&gt;ポイントはこうです — バックグラウンド実行は、実行中のものを管理できて初めて意味があります。Aspire 13.2はまさにそのためのCLIコマンド一式を提供します：&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;これによりAspire CLIが本格的なプロセスマネージャーになります。複数のAppHostを起動し、ステータスを確認し、ログを追跡し、シャットダウンできます — すべて一つのターミナルセッションから。&lt;/p&gt;
&lt;h2 id="分離モードと組み合わせる"&gt;分離モードと組み合わせる&lt;/h2&gt;
&lt;p&gt;デタッチモードは分離モードと自然に組み合わせられます。同じプロジェクトの2つのインスタンスをポート競合なしにバックグラウンドで実行したい場合は？&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;それぞれがランダムなポート、個別のシークレット、独自のライフサイクルを持ちます。&lt;code&gt;aspire ps&lt;/code&gt;で両方を確認し、&lt;code&gt;aspire stop&lt;/code&gt;で不要な方を停止できます。&lt;/p&gt;
&lt;h2 id="コーディングエージェントにとってなぜこれが重要か"&gt;コーディングエージェントにとってなぜこれが重要か&lt;/h2&gt;
&lt;p&gt;ここからが本当に面白いところです。ターミナルで作業するコーディングエージェントが以下のことをできるようになります：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;aspire start&lt;/code&gt;でアプリを起動&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aspire describe&lt;/code&gt;で状態を確認&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aspire logs&lt;/code&gt;でログをチェックして問題を診断&lt;/li&gt;
&lt;li&gt;完了したら&lt;code&gt;aspire stop&lt;/code&gt;で停止&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;すべてターミナルセッションを失うことなく実行できます。デタッチモード以前は、AppHostを実行したエージェントは自分自身のターミナルをロックしてしまいました。今では起動、観察、反復、クリーンアップが可能です — 自律エージェントに期待する動作そのものです。&lt;/p&gt;
&lt;p&gt;Aspireチームはこれに本気で取り組みました。&lt;code&gt;aspire agent init&lt;/code&gt;を実行すると、エージェントにこれらのコマンドを教えるAspireスキルファイルが設定されます。これにより、CopilotのコーディングエージェントなどのツールがすぐにAspireワークロードを管理できます。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;デタッチモードはシンプルなフラグに見せかけたワークフローのアップグレードです。ターミナル間のコンテキスト切り替えがなくなり、エージェントが自分自身をブロックしなくなり、新しいCLIコマンドで実行中のものをリアルに把握できます。実用的で、クリーンで、日々の開発サイクルが明らかにスムーズになります。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/aspire/aspire-detached-mode-and-process-management/"&gt;完全な記事&lt;/a&gt;で詳細を確認し、&lt;code&gt;aspire update --self&lt;/code&gt;でAspire 13.2を入手してください。&lt;/p&gt;</content:encoded></item><item><title>.NET Aspire 13.2はあなたのAIエージェントの親友になりたがっている</title><link>https://thedotnetblog.com/ja/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/ja/news/emiliano-montesdeoca/aspire-agentic-development-build-run-observe/</guid><description>Aspire 13.2がエージェンティック開発に全力投球 — 構造化されたCLI出力、分離実行、自動修復環境、そして完全なOpenTelemetryデータにより、AIエージェントがアプリを実際にビルド、実行、観察できるようになります。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されました。原文は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/aspire-agentic-development-build-run-observe/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;AIコーディングエージェントがしっかりしたコードを書いて興奮した後、実際にそれを&lt;em&gt;実行&lt;/em&gt;しようとした途端に全てが崩壊する瞬間、知っていますか？ポート競合、ゴーストプロセス、間違った環境変数 — 突然エージェントが機能を構築する代わりに起動トラブルシューティングにトークンを消費し始めます。&lt;/p&gt;
&lt;p&gt;Aspireチームがまさにこの問題について&lt;a href="https://devblogs.microsoft.com/aspire/agentic-dev-aspirations/"&gt;非常によく考えられた記事&lt;/a&gt;を公開しました。彼らの答えは説得力があります：Aspire 13.2は人間だけでなく、AIエージェントのためにも設計されています。&lt;/p&gt;
&lt;h2 id="問題は現実のもの"&gt;問題は現実のもの&lt;/h2&gt;
&lt;p&gt;AIエージェントはコードを書くのに驚異的です。しかし、動作するフルスタックアプリを出荷するには、ファイルを生成する以上のことが必要です。正しい順序でサービスを起動し、ポートを管理し、環境変数を設定し、データベースを接続し、何かが壊れた時にフィードバックを得る必要があります。現在、ほとんどのエージェントはこれらすべてを試行錯誤で処理しています — コマンドを実行し、エラー出力を読み、再試行します。&lt;/p&gt;
&lt;p&gt;Markdownの指示、カスタムスキル、プロンプトを重ねてガイドしようとしますが、それらは予測不可能で、コンパイルできず、パースするだけでトークンがかかります。Aspireチームは本質的な洞察を突きました：エージェントには&lt;strong&gt;コンパイラと構造化されたAPI&lt;/strong&gt;が必要であり、もっとMarkdownではありません。&lt;/p&gt;
&lt;h2 id="エージェントインフラとしてのaspire"&gt;エージェントインフラとしてのAspire&lt;/h2&gt;
&lt;p&gt;Aspire 13.2がエージェンティック開発にもたらすもの：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;スタック全体を型付きコードで。&lt;/strong&gt; AppHostがアプリの完全なトポロジー — API、フロントエンド、データベース、キャッシュ — をコンパイル可能なTypeScriptまたはC#で定義します：&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;エージェントはこれを読んでアプリのトポロジーを理解し、リソースを追加し、接続を配線し、&lt;em&gt;検証のためにビルド&lt;/em&gt;できます。コンパイラが何か間違っていればすぐに教えてくれます。推測不要、設定ファイルでの試行錯誤不要です。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;すべてを支配する一つのコマンド。&lt;/strong&gt; エージェントが&lt;code&gt;docker compose up&lt;/code&gt;、&lt;code&gt;npm run dev&lt;/code&gt;、データベース起動スクリプトをジャグリングする代わりに、すべてが&lt;code&gt;aspire start&lt;/code&gt;だけ。すべてのリソースが正しい順序で、正しいポートで、正しい設定で起動します。長時間実行プロセスもエージェントをハングさせません — Aspireが管理します。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;並列エージェント用の分離モード。&lt;/strong&gt; &lt;code&gt;--isolated&lt;/code&gt;を使えば、各Aspire実行が独自のランダムポートと分離されたユーザーシークレットを取得します。複数のエージェントがgit worktreeで作業している？衝突しません。これはVS Codeのバックグラウンドエージェントのような並列環境を立ち上げるツールにとって非常に重要です。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;テレメトリによるエージェントの目。&lt;/strong&gt; ここが本当に強力になるところです。Aspire CLIは開発中に完全なOpenTelemetryデータを公開します — トレース、メトリクス、構造化ログ。エージェントはコンソール出力を読んで最善を祈るだけではありません。サービス間で失敗したリクエストをトレースし、遅いエンドポイントをプロファイリングし、問題の正確な箇所を特定できます。開発ループにプロダクショングレードの可観測性があるのです。&lt;/p&gt;
&lt;h2 id="ボウリングのバンパーの例え"&gt;ボウリングのバンパーの例え&lt;/h2&gt;
&lt;p&gt;Aspireチームは素晴らしい例えを使っています：AspireをAIエージェントのためのボウリングレーンのバンパーだと思ってください。エージェントが完璧でない場合（そして完璧にはなりません）、バンパーがガーターに落ちるのを防ぎます。スタック定義が誤設定を防ぎ、コンパイラがエラーをキャッチし、CLIがプロセス管理を行い、テレメトリがフィードバックループを提供します。&lt;/p&gt;
&lt;p&gt;これをPlaywright CLIのようなものと組み合わせれば、エージェントは実際にアプリを&lt;em&gt;使う&lt;/em&gt;ことができます — フローをクリックし、DOMをチェックし、テレメトリで壊れた箇所を見つけ、コードを修正し、再起動してテストし直す。ビルド、実行、観察、修正。これが私たちが追い求めてきた自律的な開発ループです。&lt;/p&gt;
&lt;h2 id="始め方"&gt;始め方&lt;/h2&gt;
&lt;p&gt;Aspire初心者？&lt;a href="https://get.aspire.dev"&gt;get.aspire.dev&lt;/a&gt;からCLIをインストールし、&lt;a href="https://aspire.dev/get-started/first-app"&gt;入門ガイド&lt;/a&gt;に従ってください。&lt;/p&gt;
&lt;p&gt;すでにAspireを使っている？&lt;code&gt;aspire update --self&lt;/code&gt;で13.2を取得し、お気に入りのコーディングエージェントをリポジトリに向けてください。Aspireのガードレールがあることで、エージェントがどれだけ先まで進めるか驚くかもしれません。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;Aspire 13.2はもはや単なる分散アプリフレームワークではありません — 不可欠なエージェントインフラになりつつあります。構造化されたスタック定義、ワンコマンド起動、分離された並列実行、リアルタイムテレメトリが、AIエージェントにコードを書くことからアプリを出荷することへ移行するために必要なものを提供します。&lt;/p&gt;
&lt;p&gt;Aspireチームの&lt;a href="https://devblogs.microsoft.com/aspire/agentic-dev-aspirations/"&gt;完全な記事&lt;/a&gt;ですべての詳細とデモ動画をご覧ください。&lt;/p&gt;</content:encoded></item><item><title>Aspireの分離モードが並列開発のポート競合の悪夢を解決する</title><link>https://thedotnetblog.com/ja/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/ja/news/emiliano-montesdeoca/aspire-isolated-mode-parallel-instances/</guid><description>Aspire 13.2が--isolatedモードを導入：ランダムポート、分離されたシークレット、同じAppHostの複数インスタンス実行時のゼロコリジョン。AIエージェント、ワークツリー、並列ワークフローに最適。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されました。原文は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/aspire-isolated-mode-parallel-instances/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;同じプロジェクトの2つのインスタンスを同時に実行しようとしたことがあるなら、あの苦痛を知っているでしょう。ポート8080は既に使用中。ポート17370は取られている。何かをkillして、再起動して、環境変数をジャグリングする — 生産性のキラーです。&lt;/p&gt;
&lt;p&gt;この問題は改善ではなく悪化しています。AIエージェントは独立して作業するためにgit worktreeを作成します。バックグラウンドエージェントは別々の環境を立ち上げます。開発者はフィーチャーブランチのために同じリポジトリを2回チェックアウトします。これらのシナリオはすべて同じ壁にぶつかります：同じアプリの2つのインスタンスが同じポートを奪い合うのです。&lt;/p&gt;
&lt;p&gt;Aspire 13.2はたった一つのフラグでこれを解決します。AspireチームのJames Newton-Kingが&lt;a href="https://devblogs.microsoft.com/aspire/aspire-isolated-mode-parallel-development/"&gt;詳細を書いています&lt;/a&gt;。「なぜこれがもっと早くなかったの？」という機能の一つです。&lt;/p&gt;
&lt;h2 id="解決策--isolated"&gt;解決策：&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;これだけです。各実行は以下を取得します：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ランダムポート&lt;/strong&gt; — インスタンス間のコリジョンなし&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分離されたユーザーシークレット&lt;/strong&gt; — 接続文字列とAPIキーがインスタンスごとに分離&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;手動のポート再割り当ては不要。環境変数のジャグリングも不要。各実行は自動的にクリーンでコリジョンフリーの環境を取得します。&lt;/p&gt;
&lt;h2 id="これが輝く実際のシナリオ"&gt;これが輝く実際のシナリオ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;複数チェックアウト。&lt;/strong&gt; あるディレクトリにフィーチャーブランチ、別のディレクトリにバグフィックスがある場合：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&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;両方とも競合なしで実行されます。ダッシュボードで何がどこで実行されているか確認できます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VS Codeのバックグラウンドエージェント。&lt;/strong&gt; Copilot Chatのバックグラウンドエージェントがコードに独立して作業するためにgit worktreeを作成する場合、Aspire AppHostを実行する必要があるかもしれません。&lt;code&gt;--isolated&lt;/code&gt;なしでは、プライマリworktreeとのポート競合が発生します。これがあれば、両方のインスタンスが問題なく動作します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;aspire agent init&lt;/code&gt;に付属するAspireスキルは、worktreeで作業する際に&lt;code&gt;--isolated&lt;/code&gt;を使うようエージェントに自動的に指示します。そのため、Copilotのバックグラウンドエージェントはこれをネイティブに処理するはずです。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;開発と並行した統合テスト。&lt;/strong&gt; 機能の構築を続けながらライブのAppHostに対してテストを実行する必要がありますか？分離モードは各コンテキストに独自のポートと設定を提供します。&lt;/p&gt;
&lt;h2 id="内部の仕組み"&gt;内部の仕組み&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;--isolated&lt;/code&gt;を渡すと、CLIはその実行のためにユニークなインスタンスIDを生成します。これにより2つの動作が駆動されます：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ポートのランダム化&lt;/strong&gt; — AppHost設定で定義された予測可能なポートにバインドする代わりに、分離モードはすべてに対して利用可能なランダムポートを選択します — ダッシュボード、サービスエンドポイント、すべて。サービスディスカバリが自動的に調整されるため、どのポートに割り当てられても、サービスは互いを見つけることができます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;シークレットの分離&lt;/strong&gt; — 各分離実行はインスタンスIDでキー付けされた独自のユーザーシークレットストアを取得します。ある実行の接続文字列やAPIキーが別の実行に漏れることはありません。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;コードの変更は不要です。Aspireのサービスディスカバリがランタイムでエンドポイントを解決するため、ポートの割り当てに関係なくすべてが正しく接続されます。&lt;/p&gt;
&lt;h2 id="いつ使うべきか"&gt;いつ使うべきか&lt;/h2&gt;
&lt;p&gt;同じAppHostの複数インスタンスを同時に実行する場合に&lt;code&gt;--isolated&lt;/code&gt;を使用してください — 並列開発、自動テスト、AIエージェント、git worktreeのいずれの場合でも。予測可能なポートを好む単一インスタンス開発では、通常の&lt;code&gt;aspire run&lt;/code&gt;で問題ありません。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;分離モードは、現実の、ますます一般的になる問題を解決する小さな機能です。AI支援開発がより多くの並列ワークフロー — 複数のエージェント、複数のworktree、複数のコンテキスト — に向かって推し進める中、ポートを奪い合うことなく別のインスタンスを立ち上げる能力は不可欠です。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/aspire/aspire-isolated-mode-parallel-development/"&gt;完全な記事&lt;/a&gt;ですべての技術的詳細を確認し、&lt;code&gt;aspire update --self&lt;/code&gt;で13.2を試してみてください。&lt;/p&gt;</content:encoded></item><item><title>Aspire 13.2にドキュメントCLIが搭載 — AIエージェントも使えます</title><link>https://thedotnetblog.com/ja/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/ja/news/emiliano-montesdeoca/aspire-docs-cli-ai-skills/</guid><description>.NET Aspire 13.2にaspire docsが追加されました。ターミナルを離れずに公式ドキュメントを検索、閲覧、読むためのCLIです。AIエージェントのツールとしても動作します。なぜこれが重要なのかをお伝えします。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されています。原文は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/aspire-docs-cli-ai-skills/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Aspire AppHostの奥深くでインテグレーションを接続していて、Redisインテグレーションが正確にどのパラメータを期待しているかを確認する必要がある、あの瞬間を知っていますか？ブラウザにAlt-Tabして、aspire.devを探し回り、APIドキュメントに目を細め、エディタに戻る。コンテキストが失われて、フローが途切れる。&lt;/p&gt;
&lt;p&gt;Aspire 13.2がまさに&lt;a href="https://devblogs.microsoft.com/aspire/aspire-docs-in-your-terminal/"&gt;その解決策をリリースしました&lt;/a&gt;。&lt;code&gt;aspire docs&lt;/code&gt; CLIを使えば、ターミナルから直接Aspireの公式ドキュメントを検索、閲覧、そして読むことができます。そして再利用可能なサービスに支えられているため、AIエージェントやスキルも同じコマンドを使ってドキュメントを参照できます。存在しないAPIを幻覚する代わりに。&lt;/p&gt;
&lt;h2 id="これが本当に解決する問題"&gt;これが本当に解決する問題&lt;/h2&gt;
&lt;p&gt;David Pineがオリジナルの記事で的確に指摘しています：AIエージェントはAspireアプリの構築を支援する点で&lt;em&gt;ひどい&lt;/em&gt;ものでした。&lt;code&gt;aspire run&lt;/code&gt;の代わりに&lt;code&gt;dotnet run&lt;/code&gt;を推奨し、aspire.devにあるドキュメントに対してlearn.microsoft.comを参照し、古いNuGetパッケージを提案し、そして——個人的に一番のお気に入り——存在しないAPIを幻覚していました。&lt;/p&gt;
&lt;p&gt;なぜか？Aspireがポリグロットになるよりもはるかに長い間.NET専用だったからです。そしてLLMは最新機能よりも前のトレーニングデータで動作しています。AIエージェントに現在のドキュメントを実際に検索する能力を与えると、推測をやめて役に立つようになります。&lt;/p&gt;
&lt;h2 id="3つのコマンドブラウザタブはゼロ"&gt;3つのコマンド、ブラウザタブはゼロ&lt;/h2&gt;
&lt;p&gt;CLIは爽快なほどシンプルです：&lt;/p&gt;
&lt;h3 id="すべてのドキュメントを一覧表示"&gt;すべてのドキュメントを一覧表示&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;aspire.devで利用可能なすべてのドキュメントページを返します。マシンリーダブルな出力が必要ですか？&lt;code&gt;--format Json&lt;/code&gt;を追加してください。&lt;/p&gt;
&lt;h3 id="トピックを検索"&gt;トピックを検索&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;タイトルとコンテンツの両方を重み付けされた関連性スコアリングで検索します。内部的にドキュメントツールを支えているのと同じ検索エンジンです。タイトル、スラグ、関連性スコアを含むランク付けされた結果が得られます。&lt;/p&gt;
&lt;h3 id="ページ全体を読むまたはセクションだけ"&gt;ページ全体を読む（またはセクションだけ）&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;ページ全体をマークダウンとしてターミナルにストリーミングします。セクションだけ必要ですか？&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;外科的精度。500行をスクロールする必要はありません。必要な部分だけ。&lt;/p&gt;
&lt;h2 id="aiエージェントの視点"&gt;AIエージェントの視点&lt;/h2&gt;
&lt;p&gt;ここからがAIツールで開発している私たち開発者にとって面白くなるところです。同じ&lt;code&gt;aspire docs&lt;/code&gt;コマンドが、スキル、MCPサーバー、またはシンプルなCLIラッパーを通じて、AIエージェントのツールとして機能します。&lt;/p&gt;
&lt;p&gt;あなたのAIアシスタントが古いトレーニングデータに基づいてAspire APIを捏造する代わりに、&lt;code&gt;aspire docs search &amp;quot;postgres&amp;quot;&lt;/code&gt;を呼び出して、公式のインテグレーションドキュメントを見つけ、正しいページを読み、ドキュメントに記載されたアプローチを提供できます。リアルタイムで最新のドキュメント——モデルが6ヶ月前に記憶したものではありません。&lt;/p&gt;
&lt;p&gt;この背後のアーキテクチャは意図的なものです。Aspireチームは一回限りのインテグレーションではなく、再利用可能なサービス（&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;）を構築しました。つまり、同じ検索エンジンがターミナルの人間、エディタのAIエージェント、CIパイプラインの自動化のために機能します。&lt;/p&gt;
&lt;h2 id="実世界のシナリオ"&gt;実世界のシナリオ&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;ターミナルでの素早い検索：&lt;/strong&gt; 3ファイルの深さに入っていて、Redisの設定パラメータが必要。2つのコマンド、90秒、仕事に戻る：&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;AI支援開発：&lt;/strong&gt; VS CodeスキルがCLIコマンドをラップします。「AppHostにPostgreSQLデータベースを追加して」と聞くと、エージェントが回答する前に実際のドキュメントを参照します。幻覚なし。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CI/CDバリデーション：&lt;/strong&gt; パイプラインがAppHost設定を公式ドキュメントに対してプログラム的に検証します。&lt;code&gt;--format Json&lt;/code&gt;の出力は&lt;code&gt;jq&lt;/code&gt;やその他のツールにきれいにパイプできます。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;カスタムナレッジベース：&lt;/strong&gt; 独自のAIツールを構築していますか？構造化されたJSON出力をナレッジベースに直接パイプ：&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;Webスクレイピングなし。APIキーなし。内部的にドキュメントツールが使用しているのと同じ構造化データ。&lt;/p&gt;
&lt;h2 id="ドキュメントは常に最新"&gt;ドキュメントは常に最新&lt;/h2&gt;
&lt;p&gt;これが私が最も評価している部分です。CLIはスナップショットをダウンロードしません——ETagベースのキャッシュでaspire.devにクエリを実行します。ドキュメントが更新された瞬間、あなたのCLIとその上に構築されたすべてのスキルがそれを反映します。古いコピーも、「でもwikiには書いてあった&amp;hellip;」という瞬間もありません。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;aspire docs&lt;/code&gt;は、実際の問題をきれいに解決する、そんな小さな機能の一つです。人間はターミナルネイティブなドキュメントアクセスを得ます。AIエージェントは推測をやめて実際のドキュメントを参照する方法を得ます。そしてすべてが同じ信頼の源に支えられています。&lt;/p&gt;
&lt;p&gt;.NET Aspireで構築していてまだCLIを試していないなら、&lt;code&gt;aspire docs search &amp;quot;あなたのトピック&amp;quot;&lt;/code&gt; を実行して、どう感じるか確かめてください。そして、使っているAIスキルや自動化セットアップにそれらのコマンドをラップすることを検討してください——あなたのエージェントが感謝するでしょう。&lt;/p&gt;
&lt;p&gt;ドキュメントツールがどのように構築されたかについての&lt;a href="https://davidpine.dev/posts/aspire-docs-mcp-tools/"&gt;David Pineの詳細記事&lt;/a&gt;と、すべての詳細が記載された&lt;a href="https://aspire.dev/reference/cli/commands/aspire-docs/"&gt;公式CLIリファレンス&lt;/a&gt;をチェックしてください。&lt;/p&gt;</content:encoded></item><item><title>Aspire 13.2のダッシュボードにテレメトリAPIが搭載 — これで全てが変わる</title><link>https://thedotnetblog.com/ja/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/ja/news/emiliano-montesdeoca/aspire-132-dashboard-export-telemetry/</guid><description>.NET Aspire 13.2がスマートなテレメトリエクスポート、トレースとログのプログラマブルAPI、GenAIビジュアライゼーションの改善を提供。デバッグワークフローにとってなぜ重要かを解説します。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されました。オリジナル版は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/aspire-132-dashboard-export-telemetry/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;.NET Aspireで分散アプリケーションを構築しているなら、ダッシュボードが体験全体の中で最高のものだと既に知っているでしょう。すべてのトレース、ログ、メトリクスが一箇所に — 外部のJaegerも不要、Seqのセットアップも不要、「別のターミナルを確認させて」という瞬間もなし。&lt;/p&gt;
&lt;p&gt;Aspire 13.2で大幅に改善されました。James Newton-Kingが&lt;a href="https://devblogs.microsoft.com/aspire/aspire-dashboard-improvements-export-and-telemetry/"&gt;アップデートを発表&lt;/a&gt;しましたが、正直なところ、テレメトリエクスポートとAPI機能だけでアップグレードの価値があります。&lt;/p&gt;
&lt;h2 id="テレメトリをまともにエクスポートする"&gt;テレメトリをまともにエクスポートする&lt;/h2&gt;
&lt;p&gt;誰もが経験したシナリオ：分散問題をデバッグしていて、20分のセットアップの後にようやく再現でき、チームに何が起きたかを共有する必要がある。以前は？スクリーンショット。トレースIDのコピペ。いつもの混乱。&lt;/p&gt;
&lt;p&gt;Aspire 13.2は&lt;strong&gt;ログとテレメトリの管理&lt;/strong&gt;ダイアログを追加しました：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;すべてのテレメトリをクリア（再現前に便利）&lt;/li&gt;
&lt;li&gt;選択したテレメトリを標準OTLP/JSON形式のZIPファイルにエクスポート&lt;/li&gt;
&lt;li&gt;そのZIPを後で任意のAspireダッシュボードに再インポート&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最後のポイントがキラー機能です。バグを再現し、テレメトリをエクスポートし、ワークアイテムに添付すれば、チームメイトが自分のダッシュボードにインポートして、あなたが見たものと全く同じものを見ることができます。「あなたのマシンで再現できる？」はもう不要です。&lt;/p&gt;
&lt;p&gt;個々のトレース、スパン、ログにもコンテキストメニューに「Export JSON」オプションがあります。特定のトレースを共有する必要がある？右クリック、JSONをコピー、PRの説明に貼り付け。完了。&lt;/p&gt;
&lt;h2 id="テレメトリapiが本当のゲームチェンジャー"&gt;テレメトリAPIが本当のゲームチェンジャー&lt;/h2&gt;
&lt;p&gt;最もワクワクしているのがこれです。ダッシュボードが&lt;code&gt;/api/telemetry&lt;/code&gt;配下でHTTP APIを公開し、テレメトリデータをプログラマティックにクエリできるようになりました。利用可能なエンドポイント：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/resources&lt;/code&gt; — テレメトリ付きリソースの一覧&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/spans&lt;/code&gt; — フィルター付きスパンのクエリ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/logs&lt;/code&gt; — フィルター付きログのクエリ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/traces&lt;/code&gt; — トレースの一覧&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/telemetry/traces/{traceId}&lt;/code&gt; — 特定トレースの全スパン取得&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;すべてOTLP JSON形式で返されます。これは新しいCLIコマンド&lt;code&gt;aspire agent mcp&lt;/code&gt;と&lt;code&gt;aspire otel&lt;/code&gt;を駆動しますが、本当の意味はもっと大きい：アプリのテレメトリを直接クエリするツーリング、スクリプト、AIエージェント統合を構築できるようになりました。&lt;/p&gt;
&lt;p&gt;デバッグ中に実際の分散トレースを見ることができるAIコーディングエージェントを想像してください。それはもう仮説ではありません — このAPIが可能にするものです。&lt;/p&gt;
&lt;h2 id="genaiテレメトリが実用的に"&gt;GenAIテレメトリが実用的に&lt;/h2&gt;
&lt;p&gt;Semantic KernelやMicrosoft.Extensions.AIでAI搭載アプリを構築しているなら、改善されたGenAIテレメトリビジュアライザーを評価するでしょう。Aspire 13.2の追加機能：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AIツールの説明がMarkdownでレンダリング&lt;/li&gt;
&lt;li&gt;トレースページに専用のGenAIボタンで素早いアクセス&lt;/li&gt;
&lt;li&gt;切り詰められた、または非標準のGenAI JSONに対するエラー処理の改善&lt;/li&gt;
&lt;li&gt;ツール定義間のクリックでハイライトするナビゲーション&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ブログ記事では、VS Code Copilot chat、Copilot CLI、OpenCodeのすべてが&lt;code&gt;OTEL_EXPORTER_OTLP_ENDPOINT&lt;/code&gt;の設定をサポートしていると言及されています。Aspireダッシュボードに向ければ、テレメトリを通じてAIエージェントがリアルタイムで考えている様子を文字通り見ることができます。他では見つけられないデバッグ体験です。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;Aspire 13.2はダッシュボードを「便利なデバッグUI」から「プログラマブルなオブザーバビリティプラットフォーム」に変えます。エクスポート/インポートワークフローだけで分散デバッグの実際の時間を節約し、テレメトリAPIはAI支援診断への扉を開きます。&lt;/p&gt;
&lt;p&gt;既にAspireを使っているなら、アップグレードしましょう。まだなら — &lt;a href="https://aspire.dev"&gt;aspire.dev&lt;/a&gt;を試してみる良い理由です。&lt;/p&gt;</content:encoded></item></channel></rss>