<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Developer Tools | The .NET Blog</title><link>https://thedotnetblog.com/ja/tags/developer-tools/</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>Fri, 15 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/ja/tags/developer-tools/index.xml" rel="self" type="application/rss+xml"/><item><title>VS Code 1.119：エージェントセッションの OpenTelemetry、ブラウザー統合、セキュリティ</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/visual-studio-code-1-119-highlights/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/visual-studio-code-1-119-highlights/</guid><description>VS Code 1.119 (2026 年 5 月) でエージェントセッションの OpenTelemetry トレーシング、ブラウザータブ共有、信頼とセキュリティの改善、1.119.1 セキュリティパッチが追加。</description><content:encoded>&lt;p&gt;&lt;em&gt;この投稿は自動翻訳されました。元のバージョンは&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/visual-studio-code-1-119-highlights/"&gt;こちら&lt;/a&gt;。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.visualstudio.com/updates/v1_119"&gt;VS Code 1.119&lt;/a&gt; は 2026 年 5 月 6 日にリリースされました（その後すぐに 1.119.1 セキュリティパッチも公開）。このリリースはエージェントの可観測性、ブラウザーとの連携、割り込みの削減に重点を置いています。&lt;/p&gt;
&lt;h2 id="エージェントセッションの-opentelemetry-トレーシング"&gt;エージェントセッションの OpenTelemetry トレーシング&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-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;github.copilot.chat.otel.enabled&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;github.copilot.chat.otel.otlpEndpoint&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;http://localhost:4318&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;トレースは GenAI セマンティック規約に従います。各エージェントリクエストは &lt;code&gt;invoke_agent&lt;/code&gt; ルートスパンを生成し、ネストされた子スパン（&lt;code&gt;chat&lt;/code&gt;、&lt;code&gt;execute_tool&lt;/code&gt;、&lt;code&gt;execute_hook&lt;/code&gt;）を持ちます。トークン使用量はリクエストごとに報告されます — キャッシュ読み取りと作成のカウントも含みます。&lt;/p&gt;
&lt;p&gt;ローカルエージェント、Copilot CLI バックグラウンドエージェント、Claude エージェントと連携します。OTLP 対応バックエンドでトレースを受信できます — ローカル開発には &lt;a href="https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/dashboard/standalone"&gt;Aspire Dashboard スタンドアロン&lt;/a&gt;が便利です。&lt;/p&gt;
&lt;h2 id="エージェントがブラウザータブにアクセス可能に"&gt;エージェントがブラウザータブにアクセス可能に&lt;/h2&gt;
&lt;p&gt;エージェントは統合ブラウザーのタブへのアクセスを要求できるようになりました — ただし自動ではありません。コンテキストピッカー、ドラッグアンドドロップ、または提案されたコンテキストを通じてタブを明示的に共有する必要があります。ブラウザーにアクセスを取り消すための共有ボタンがあります。エージェントが既に開いている（共有されていない）タブと同じドメインの新しいタブを開こうとすると、VS Code は既存のタブを再利用するよう促します。&lt;/p&gt;
&lt;h2 id="トークン使用量の最適化"&gt;トークン使用量の最適化&lt;/h2&gt;
&lt;p&gt;実験的な軽量モデルがエージェントのタスクリスト管理を担うようになり、この管理作業を高コストなメインモデルから切り離します。フルの推論能力を必要としないタスクのトークン消費を削減します。&lt;/p&gt;
&lt;h2 id="信頼とセキュリティ"&gt;信頼とセキュリティ&lt;/h2&gt;
&lt;p&gt;割り込みの削減：VS Code 1.119 はエージェントによるネットワークアクセス要求と一時フォルダーへの書き込みのプロンプトを削減します。1.119.1 パッチは特定のセキュリティ問題に対処しています — まだ更新していない場合は更新することをお勧めします。&lt;/p&gt;
&lt;h2 id="markdown-プレビューへのクイックスワップ"&gt;Markdown プレビューへのクイックスワップ&lt;/h2&gt;
&lt;p&gt;小さいながら便利：ナビゲートせずに現在のエディターを Markdown プレビューに素早く切り替えられるようになりました。&lt;/p&gt;
&lt;h2 id="vs-code-agents-insiders-プレビュー"&gt;VS Code Agents (Insiders プレビュー)&lt;/h2&gt;
&lt;p&gt;再設計されたエージェントセッション UI — 新しいリポジトリピッカー（ローカル/リポジトリ/リモート）、サブセッションの改善、Web とモバイルの改善、進捗アニメーション — は Insiders の &lt;a href="https://insiders.vscode.dev/agents"&gt;insiders.vscode.dev/agents&lt;/a&gt; で利用可能です。&lt;/p&gt;
&lt;p&gt;完全な変更履歴：&lt;a href="https://code.visualstudio.com/updates/v1_119"&gt;code.visualstudio.com/updates/v1_119&lt;/a&gt;。&lt;/p&gt;</content:encoded></item><item><title>Azure Data Studio は廃止されました：Azure SQL ワークフローを VS Code に移行する</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-data-studio-retired-move-to-vscode-sql/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-data-studio-retired-move-to-vscode-sql/</guid><description>Azure Data Studio は 2025 年 2 月 6 日に廃止され、サポートは 2026 年 2 月 28 日に終了します。MSSQL 拡張機能を使用した VS Code への完全な移行パスを紹介します。</description><content:encoded>&lt;p&gt;&lt;em&gt;この投稿は自動翻訳されました。元のバージョンは&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-data-studio-retired-move-to-vscode-sql/"&gt;こちら&lt;/a&gt;。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sql/azure-data-studio-is-retired-move-your-azure-sql-workflow-to-vs-code-in-10-minutes/"&gt;Azure Data Studio は 2025 年 2 月 6 日に廃止されました&lt;/a&gt;。サポートは 2026 年 2 月 28 日に終了します。推奨される代替ツールは MSSQL 拡張機能を備えた VS Code です。&lt;/p&gt;
&lt;h2 id="インストールするもの"&gt;インストールするもの&lt;/h2&gt;
&lt;p&gt;開始するために必要な 3 つのもの：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MSSQL 拡張機能&lt;/strong&gt; — VS Code Marketplace で「SQL Server (mssql)」を検索&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL Database Projects 拡張機能&lt;/strong&gt; — コードとしてのスキーマ、ビルド検証、ガイド付き公開&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;.NET 8 SDK&lt;/strong&gt; — ビルドシステムに必要。SDK が見つからないのは初回起動時の最も一般的な問題&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ads-の接続と設定の移行"&gt;ADS の接続と設定の移行&lt;/h2&gt;
&lt;p&gt;MSSQL 拡張機能には &lt;strong&gt;ADS Migration Toolkit&lt;/strong&gt; が同梱されており、ガイド付きフローで一度きりの移行を処理します。保存された接続、接続グループ、設定、キーバインドがすべて自動的にインポートされます。&lt;/p&gt;
&lt;h2 id="f5-のクセを取り戻す"&gt;F5 のクセを取り戻す&lt;/h2&gt;
&lt;p&gt;ADS ユーザーはクエリ実行に F5 を使用します。&lt;strong&gt;MSSQL Database Management Keymap&lt;/strong&gt; 拡張機能をインストールすると、F5 を含む ADS スタイルのキーバインドが復元されます。&lt;/p&gt;
&lt;h2 id="sql-database-projectsコードとしてのスキーマ"&gt;SQL Database Projects：コードとしてのスキーマ&lt;/h2&gt;
&lt;p&gt;プロジェクトを右クリック → &lt;strong&gt;公開&lt;/strong&gt; → ターゲットを設定 → 生成された T-SQL スクリプトを確認 → デプロイ。デプロイ前のスクリプトプレビューが主要な安全機能です。アイテムテンプレートはテーブル、ストアドプロシージャ、ビューのスタブを生成します。SSDT と同じワークフローです。&lt;/p&gt;
&lt;p&gt;よくある問題：&lt;code&gt;.sqlproj&lt;/code&gt; ファイルの&lt;strong&gt;ターゲットプラットフォームの不一致&lt;/strong&gt;は、プロジェクトが別の SQL Server バージョン用に作成された場合にビルドエラーを引き起こします。&lt;/p&gt;
&lt;h2 id="schema-compare-と-schema-designer"&gt;Schema Compare と Schema Designer&lt;/h2&gt;
&lt;p&gt;拡張機能には &lt;strong&gt;Schema Compare&lt;/strong&gt;（プロジェクトとデプロイ済みデータベースの差分）と &lt;strong&gt;Schema Designer&lt;/strong&gt;（DDL を手書きせずに視覚的にスキーマを編集）も含まれています。&lt;/p&gt;
&lt;h2 id="microsoft-fabric-開発者向け"&gt;Microsoft Fabric 開発者向け&lt;/h2&gt;
&lt;p&gt;セットアップは同一ですが、VS Code で開く前に &lt;strong&gt;Fabric ポータル&lt;/strong&gt;からデータベースを Git に接続することから始めてください。Microsoft には専用ガイドがあります：&lt;em&gt;Azure Data Studio to VS Code — What it means for SQL database in Fabric developers&lt;/em&gt;。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;移行は手動での再構築ではなく、一度きりのガイド付きフローです。3 つのツールをインストールし、ADS Migration Toolkit を実行し、キーバインドを復元すれば、10 分以内に通常の作業に戻れます。&lt;/p&gt;
&lt;p&gt;ステップバイステップのスクリーンショットと Fabric 固有のウォークスルーについては、&lt;a href="https://devblogs.microsoft.com/azure-sql/azure-data-studio-is-retired-move-your-azure-sql-workflow-to-vs-code-in-10-minutes/"&gt;完全な記事&lt;/a&gt;をご覧ください。&lt;/p&gt;</content:encoded></item><item><title>Azure MCP Server が .mcpb になった — ランタイムなしでインストール</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</guid><description>Azure MCP Server が MCP Bundle (.mcpb) として利用可能になりました — ダウンロードして Claude Desktop にドラッグするだけ。Node.js、Python、.NET 不要。</description><content:encoded>&lt;p&gt;&lt;em&gt;この投稿は自動翻訳されました。元の記事は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;MCP サーバーのセットアップで面倒だったこと、ご存知ですか？ランタイムが必要でした。npm 版には Node.js、pip/uvx には Python、dotnet 版には .NET SDK。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;Azure MCP Server がその問題を解決しました&lt;/a&gt;。&lt;code&gt;.mcpb&lt;/code&gt; — MCP Bundle — として利用可能になり、セットアップはドラッグ＆ドロップです。&lt;/p&gt;
&lt;h2 id="mcp-bundle-とは"&gt;MCP Bundle とは？&lt;/h2&gt;
&lt;p&gt;VS Code 拡張機能（&lt;code&gt;.vsix&lt;/code&gt;）やブラウザ拡張機能（&lt;code&gt;.crx&lt;/code&gt;）のようなものですが、MCP サーバー用です。&lt;code&gt;.mcpb&lt;/code&gt; ファイルはサーバーバイナリとすべての依存関係を含む自己完結型の ZIP アーカイブです。&lt;/p&gt;
&lt;h2 id="インストール方法"&gt;インストール方法&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. プラットフォーム用バンドルをダウンロード&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/microsoft/mcp/releases?q=Azure.Mcp.Server"&gt;GitHub Releases ページ&lt;/a&gt; で、OS とアーキテクチャに合った &lt;code&gt;.mcpb&lt;/code&gt; ファイルをダウンロードします。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Claude Desktop にインストール&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;最も簡単な方法：拡張機能の設定ページ（&lt;code&gt;☰ → ファイル → 設定 → 拡張機能&lt;/code&gt;）を開きながら、&lt;code&gt;.mcpb&lt;/code&gt; ファイルを Claude Desktop ウィンドウにドラッグ＆ドロップします。サーバーの詳細を確認し、インストールをクリックして確認します。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Azure で認証&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;az login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上です。Azure MCP Server は既存の Azure 認証情報を使用します。&lt;/p&gt;
&lt;h2 id="できること"&gt;できること&lt;/h2&gt;
&lt;p&gt;AI クライアントから直接 100 以上の Azure サービスツールにアクセス：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cosmos DB、Storage、Key Vault、App Service、Foundry のクエリと管理&lt;/li&gt;
&lt;li&gt;任意のタスクの &lt;code&gt;az&lt;/code&gt; CLI コマンド生成&lt;/li&gt;
&lt;li&gt;Bicep・Terraform テンプレートの作成&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="はじめるには"&gt;はじめるには&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ダウンロード&lt;/strong&gt;: &lt;a href="https://github.com/microsoft/mcp/releases?q=Azure.Mcp.Server-"&gt;GitHub Releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;リポジトリ&lt;/strong&gt;: &lt;a href="https://aka.ms/azmcp"&gt;aka.ms/azmcp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ドキュメント&lt;/strong&gt;: &lt;a href="https://aka.ms/azmcp/docs"&gt;aka.ms/azmcp/docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;完全な記事&lt;/a&gt;もご確認ください。&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.118: Copilot CLI にセッション名、モデルバッジ、TypeScript 7.0 ナイトリーオプトイン</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/vscode-1-118-copilot-cli-session-names-model-badge/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/vscode-1-118-copilot-cli-session-names-model-badge/</guid><description>Visual Studio Code 1.118 は Copilot CLI の改善に焦点を当てたリリース — セッション名、モデルバッジ、自動モデル選択、TypeScript 7.0 ナイトリーのオプトイン。</description><content:encoded>&lt;p&gt;&lt;em&gt;この投稿は自動翻訳されました。元の記事は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/vscode-1-118-copilot-cli-session-names-model-badge/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.visualstudio.com/updates/v1_118"&gt;Visual Studio Code 1.118&lt;/a&gt; は小さめで焦点を絞ったリリース — 主に Copilot CLI の改良 — ですが、いくつか注目すべき点があります。&lt;/p&gt;
&lt;h2 id="copilot-cli-セッションに実際の名前が付く"&gt;Copilot CLI: セッションに実際の名前が付く&lt;/h2&gt;
&lt;p&gt;Copilot CLI SDK のセッションタイトル API がセッション名の情報源として使用されるようになりました。自動生成されたラベルではなく、SDK の実際の名前が表示されます。&lt;/p&gt;
&lt;h2 id="キーボードショートカットで素早くセッション切り替え"&gt;キーボードショートカットで素早くセッション切り替え&lt;/h2&gt;
&lt;p&gt;Agents アプリに &lt;code&gt;Ctrl+1&lt;/code&gt;、&lt;code&gt;Ctrl+2&lt;/code&gt; などのセッション切り替えキーが割り当てられました。複数の Copilot CLI セッションを並行して実行している場合、マウスクリックが大幅に減ります。&lt;/p&gt;
&lt;h2 id="チャットにモデルバッジ表示"&gt;チャットにモデルバッジ表示&lt;/h2&gt;
&lt;p&gt;チャットパネルの Copilot CLI レスポンスにモデルバッジが表示されるようになりました — どのモデルが各リクエストを処理したかひと目でわかります。&lt;/p&gt;
&lt;h2 id="copilot-cli-に自動モデル選択"&gt;Copilot CLI に自動モデル選択&lt;/h2&gt;
&lt;p&gt;自動モデル選択機能 — 以前は Copilot の他の部分で使用可能だった — が Copilot CLI エージェントでも機能するようになりました。&lt;/p&gt;
&lt;h2 id="typescript-70-ナイトリーのオプトイン"&gt;TypeScript 7.0 ナイトリーのオプトイン&lt;/h2&gt;
&lt;p&gt;VS Code の設定から TypeScript 7.0 ナイトリーをテストするオプトインが可能になりました。TypeScript 7.0 は大規模リリースです（&lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/"&gt;ベータ版が数日前にリリース&lt;/a&gt;）。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.visualstudio.com/updates/v1_118"&gt;完全なリリースノート&lt;/a&gt;をご確認ください。&lt;/p&gt;</content:encoded></item><item><title>Foundry Toolboxes: AIエージェントツールのための統一エンドポイント</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/</guid><description>Microsoft FoundryがToolboxesをパブリックプレビューで公開した。AIエージェントツールを単一のMCP互換エンドポイントで管理・公開するための仕組みだ。</description><content:encoded>&lt;p&gt;&lt;em&gt;この投稿は自動翻訳されました。元のバージョンは&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/"&gt;こちら&lt;/a&gt;をクリックしてください。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;退屈に聞こえるが実際に直面すると深刻な問題がある：組織が複数のAIエージェントを構築し、それぞれがツールを必要とし、各チームがゼロから設定している。同じWeb検索統合、同じAzure AI Searchの設定、同じGitHub MCPサーバーの接続 — でも別のリポジトリに、別のチームが、別の認証情報で、ガバナンスの共有なしに。&lt;/p&gt;
&lt;p&gt;Microsoft FoundryがPublic Previewで&lt;a href="https://devblogs.microsoft.com/foundry/introducing-toolboxes-in-foundry/"&gt;Toolboxes&lt;/a&gt;を公開した。これはその問題への直接的な答えだ。&lt;/p&gt;
&lt;h2 id="toolboxとは"&gt;Toolboxとは&lt;/h2&gt;
&lt;p&gt;ToolboxはFoundryで一度定義し、単一のMCP互換エンドポイントを通じて公開する、名前付きの再利用可能なツールバンドルだ。MCPを話す任意のエージェントランタイムが消費できる — Foundry Agentsへのロックインはない。&lt;/p&gt;
&lt;p&gt;提案はシンプルだ：&lt;strong&gt;build once, consume anywhere&lt;/strong&gt;。ツールを定義し、認証を一元設定（OAuthパススルー、Entraマネージドアイデンティティ）し、エンドポイントを公開する。そのツールが必要な各エージェントはエンドポイントに接続して全てを取得する。&lt;/p&gt;
&lt;h2 id="4つの柱今日は2つが利用可能"&gt;4つの柱（今日は2つが利用可能）&lt;/h2&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;strong&gt;Discover&lt;/strong&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;strong&gt;Build&lt;/strong&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;strong&gt;Consume&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;利用可能&lt;/td&gt;
&lt;td&gt;単一MCPエンドポイントが全ツールを公開&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Govern&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;近日公開&lt;/td&gt;
&lt;td&gt;全ツール呼び出しの一元認証+可観測性&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="実践的な例"&gt;実践的な例&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;azure.identity&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DefaultAzureCredential&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;azure.ai.projects&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AIProjectClient&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AIProjectClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;endpoint&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;FOUNDRY_PROJECT_ENDPOINT&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;credential&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;DefaultAzureCredential&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;toolbox_version&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;toolboxes&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create_toolbox_version&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;toolbox_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;customer-feedback-triaging-toolbox&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;ドキュメントを検索し、GitHubのissueに対応する&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;web_search&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;公開ドキュメントを検索&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;azure_ai_search&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;index_name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;internal-docs&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;mcp_server&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;server_url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://your-github-mcp-server.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;公開後、Foundryは統一エンドポイントを提供する。1回の接続で全ツールが使える。&lt;/p&gt;
&lt;h2 id="foundry-agentsへのロックインはない"&gt;Foundry Agentsへのロックインはない&lt;/h2&gt;
&lt;p&gt;ToolboxはFoundryで&lt;strong&gt;作成・管理&lt;/strong&gt;されるが、消費面はオープンなMCPプロトコルだ。Microsoft Agent FrameworkやLangGraphのカスタムエージェント、GitHub Copilotやその他のMCP対応IDE、あらゆるMCPランタイムから使用できる。&lt;/p&gt;
&lt;h2 id="今なぜ重要か"&gt;今なぜ重要か&lt;/h2&gt;
&lt;p&gt;マルチエージェントの波が本番環境に到達している。新しいエージェントが増えるたびに、重複した設定、古い認証情報、一貫性のない動作の新たな表面が生まれる。Build + Consumeの基盤は集中化を始めるには十分だ。Governの柱が来た時、エージェント全体に完全に可観測で一元管理されたツール層が得られる。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;まだ早い段階だ — パブリックプレビュー、Python SDK優先。しかし、モデルは確かで、MCPネイティブな設計は既に構築しているツールで機能することを意味する。&lt;a href="https://devblogs.microsoft.com/foundry/introducing-toolboxes-in-foundry/"&gt;公式発表&lt;/a&gt;で詳細を確認しよう。&lt;/p&gt;</content:encoded></item><item><title>Python、TypeScript、.NETでazdフックを書く：シェルスクリプトとの決別</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</guid><description>Azure Developer CLIがPython、JavaScript、TypeScript、.NETでのフック作成をサポート。マイグレーションスクリプトのためだけにBashへ切り替える必要はもうない。</description><content:encoded>&lt;p&gt;&lt;em&gt;この投稿は自動翻訳されました。元のバージョンは&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/"&gt;こちら&lt;/a&gt;をクリックしてください。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;完全に.NETで書かれたプロジェクトを持ちながら、azdのフックのためにBashスクリプトを書かなければならなかった経験はないだろうか。あの苦痛を知っている人は多いはず。C#でプロジェクト全体を書いているのに、なぜpre-provisioningのステップだけシェル構文に切り替えなければならないのか。&lt;/p&gt;
&lt;p&gt;その不満がついに公式に解決された。Azure Developer CLIが&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;フックのマルチ言語サポートを発表&lt;/a&gt;し、想像通りの素晴らしい機能となっている。&lt;/p&gt;
&lt;h2 id="フックとは"&gt;フックとは&lt;/h2&gt;
&lt;p&gt;フックは&lt;code&gt;azd&lt;/code&gt;のライフサイクルの重要なポイントで実行されるスクリプト — プロビジョニング前、デプロイ後など。&lt;code&gt;azure.yaml&lt;/code&gt;で定義され、CLIを変更せずにカスタムロジックを注入できる。&lt;/p&gt;
&lt;p&gt;これまではBashとPowerShellのみサポートされていた。今や&lt;strong&gt;Python、JavaScript、TypeScript、.NET&lt;/strong&gt;が使えるようになり、&lt;code&gt;azd&lt;/code&gt;が残りを自動で処理する。&lt;/p&gt;
&lt;h2 id="検出の仕組み"&gt;検出の仕組み&lt;/h2&gt;
&lt;p&gt;フックをファイルに向けるだけで、&lt;code&gt;azd&lt;/code&gt;が拡張子から言語を推論する：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;hooks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;preprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/setup.py&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postdeploy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/seed.ts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/migrate.cs&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;追加設定は不要。拡張子が曖昧な場合は&lt;code&gt;kind: python&lt;/code&gt;（または対応する言語）を明示的に指定できる。&lt;/p&gt;
&lt;h2 id="言語別の重要な詳細"&gt;言語別の重要な詳細&lt;/h2&gt;
&lt;h3 id="python"&gt;Python&lt;/h3&gt;
&lt;p&gt;スクリプトと同じディレクトリ（または親ディレクトリ）に&lt;code&gt;requirements.txt&lt;/code&gt;や&lt;code&gt;pyproject.toml&lt;/code&gt;を置くだけ。&lt;code&gt;azd&lt;/code&gt;が自動的に仮想環境を作成し、依存関係をインストールしてスクリプトを実行する。&lt;/p&gt;
&lt;h3 id="javascriptとtypescript"&gt;JavaScriptとTypeScript&lt;/h3&gt;
&lt;p&gt;同じパターン — スクリプトの近くに&lt;code&gt;package.json&lt;/code&gt;を置くと&lt;code&gt;azd&lt;/code&gt;がまず&lt;code&gt;npm install&lt;/code&gt;を実行する。TypeScriptの場合は&lt;code&gt;npx tsx&lt;/code&gt;を使用し、コンパイルステップも&lt;code&gt;tsconfig.json&lt;/code&gt;も不要。&lt;/p&gt;
&lt;h3 id="net"&gt;.NET&lt;/h3&gt;
&lt;p&gt;2つのモードが利用可能：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;プロジェクトモード&lt;/strong&gt;：スクリプトの隣に&lt;code&gt;.csproj&lt;/code&gt;があれば、&lt;code&gt;azd&lt;/code&gt;が自動的に&lt;code&gt;dotnet restore&lt;/code&gt;と&lt;code&gt;dotnet build&lt;/code&gt;を実行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;シングルファイルモード&lt;/strong&gt;：.NET 10以降では、スタンドアロンの&lt;code&gt;.cs&lt;/code&gt;ファイルを&lt;code&gt;dotnet run script.cs&lt;/code&gt;で直接実行可能。プロジェクトファイル不要。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="エグゼキューター固有の設定"&gt;エグゼキューター固有の設定&lt;/h2&gt;
&lt;p&gt;各言語はオプションの&lt;code&gt;config&lt;/code&gt;ブロックをサポート：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;hooks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;preprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/setup.ts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;packageManager&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;pnpm&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/migrate.cs&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;configuration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Release&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;framework&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;net10.0&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="net開発者にとっての重要性"&gt;.NET開発者にとっての重要性&lt;/h2&gt;
&lt;p&gt;フックはazd基盤のプロジェクトで言語切り替えを強制する最後の場所だった。これで、アプリコード、インフラスクリプト、ライフサイクルフックを含むデプロイパイプライン全体を1つの言語で管理できる。既存の.NETユーティリティをフックで再利用し、共有ライブラリを参照し、シェルスクリプトの保守から解放される。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;小さな変更のように見えるが、azdの日常ワークフローから多くの摩擦を取り除く変更の一つ。フックのマルチ言語サポートは今すぐ利用可能 — &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;公式ポスト&lt;/a&gt;で全ドキュメントを確認してほしい。&lt;/p&gt;</content:encoded></item><item><title>Windows App Dev CLI v0.3: ターミナルからF5デバッグとエージェント向けUIオートメーション</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/</guid><description>Windows App Development CLI v0.3では、ターミナルからデバッグ起動できるwinapp run、UIオートメーション機能のwinapp ui、そしてパッケージアプリでdotnet runを使えるNuGetパッケージが追加されました。</description><content:encoded>&lt;p&gt;&lt;em&gt;この投稿は自動翻訳されました。元の記事は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/"&gt;こちら&lt;/a&gt;をクリックしてください。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Visual StudioのF5体験は素晴らしいです。しかし、パッケージ化されたWindowsアプリを起動してデバッグするためだけにVSを開くのは、CIパイプライン、自動化ワークフロー、またはAIエージェントがテストを実行しているときには過剰です。&lt;/p&gt;
&lt;p&gt;Windows App Development CLI v0.3が&lt;a href="https://devblogs.microsoft.com/ifdef-windows/windows-app-development-cli-v0-3-new-run-and-ui-commands-plus-dotnet-run-support-for-packaged-apps/"&gt;リリースされ&lt;/a&gt;、2つの主要機能でこれに直接対応します：&lt;code&gt;winapp run&lt;/code&gt;と&lt;code&gt;winapp ui&lt;/code&gt;です。&lt;/p&gt;
&lt;h2 id="winapp-run-どこからでもf5"&gt;winapp run: どこからでもF5&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;winapp run&lt;/code&gt;はアンパッケージのアプリフォルダーとマニフェストを受け取り、VSがデバッグ起動時に行うすべてを実行します：ルーズパッケージを登録し、アプリを起動し、再デプロイ間で&lt;code&gt;LocalState&lt;/code&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;# アプリをビルドし、パッケージアプリとして実行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;winapp run ./bin/Debug
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;WinUI、WPF、WinForms、コンソール、Avaloniaなどで動作します。各モードは開発者と自動化ワークフローの両方を想定しています：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--detach&lt;/code&gt;&lt;/strong&gt;: 起動後すぐにターミナルに制御を返します。CI/自動化に最適です。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--unregister-on-exit&lt;/code&gt;&lt;/strong&gt;: アプリ終了時に登録済みパッケージを削除します。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--debug-output&lt;/code&gt;&lt;/strong&gt;: &lt;code&gt;OutputDebugString&lt;/code&gt;メッセージと例外をリアルタイムでキャプチャします。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="新しいnugetパッケージ-パッケージアプリ向けdotnet-run"&gt;新しいNuGetパッケージ: パッケージアプリ向けdotnet run&lt;/h2&gt;
&lt;p&gt;.NET開発者向けに新しいNuGetパッケージが登場しました：&lt;code&gt;Microsoft.Windows.SDK.BuildTools.WinApp&lt;/code&gt;。インストール後は、&lt;code&gt;dotnet run&lt;/code&gt;がインナーループ全体を処理します：ビルド、ルーズレイアウトパッケージの準備、Windowsへの登録、起動 — すべて1ステップで。&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;winapp init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# または&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet add package Microsoft.Windows.SDK.BuildTools.WinApp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="winapp-ui-コマンドラインからuiオートメーション"&gt;winapp ui: コマンドラインからUIオートメーション&lt;/h2&gt;
&lt;p&gt;エージェント型シナリオを切り開くのがこの機能です。&lt;code&gt;winapp ui&lt;/code&gt;はターミナルから、実行中のあらゆるWindowsアプリ（WPF、WinForms、Win32、Electron、WinUI3）への完全なUIオートメーションアクセスを提供します。&lt;/p&gt;
&lt;p&gt;できること：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;すべてのトップレベルウィンドウを一覧表示&lt;/li&gt;
&lt;li&gt;ウィンドウの完全なUIオートメーションツリーをナビゲート&lt;/li&gt;
&lt;li&gt;名前、タイプ、オートメーションIDで要素を検索&lt;/li&gt;
&lt;li&gt;クリック、呼び出し、値の設定&lt;/li&gt;
&lt;li&gt;スクリーンショットの取得&lt;/li&gt;
&lt;li&gt;要素の表示を待機 — テスト同期に最適&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;winapp ui&lt;/code&gt;と&lt;code&gt;winapp run&lt;/code&gt;を組み合わせると、ターミナルから完全なビルド→起動→検証ワークフローが実現します。エージェントがアプリを実行し、UIの状態を検査し、プログラムで操作して結果を検証できます。&lt;/p&gt;
&lt;h2 id="その他の新機能"&gt;その他の新機能&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;winapp unregister&lt;/code&gt;&lt;/strong&gt;: テスト終了後にサイドロードされたパッケージを削除します。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;winapp manifest add-alias&lt;/code&gt;&lt;/strong&gt;: ターミナルからアプリ名で起動できるエイリアスを追加します。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;タブ補完&lt;/strong&gt;: 1つのコマンドでPowerShell補完を設定します。&lt;/li&gt;
&lt;/ul&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;winget install Microsoft.WinAppCli
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# または&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm install -g @microsoft/winappcli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;CLIはパブリックプレビュー中です。完全なドキュメントは&lt;a href="https://github.com/microsoft/WinAppCli"&gt;GitHubリポジトリ&lt;/a&gt;を、すべての詳細は&lt;a href="https://devblogs.microsoft.com/ifdef-windows/windows-app-development-cli-v0-3-new-run-and-ui-commands-plus-dotnet-run-support-for-packaged-apps/"&gt;元のアナウンス&lt;/a&gt;をご覧ください。&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.117：エージェントが専用のGitブランチを持つようになった、これは最高だ</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/vscode-1-117-agents-autopilot-worktrees/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/vscode-1-117-agents-autopilot-worktrees/</guid><description>VS Code 1.117はエージェントセッションのworktree分離、永続的なAutopilotモード、サブエージェントサポートを搭載。エージェント型コーディングワークフローがさらに本格的になった。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されています。原文は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/vscode-1-117-agents-autopilot-worktrees/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;「AIアシスタント」と「AIチームメイト」の境界線はどんどん薄くなっている。VS Code 1.117がリリースされ、&lt;a href="https://code.visualstudio.com/updates/v1_117"&gt;完全なリリースノート&lt;/a&gt;は盛りだくさんだが、ストーリーは明確だ：エージェントが開発ワークフローのファーストクラスの市民になりつつある。&lt;/p&gt;
&lt;p&gt;本当に重要なことはこれだ。&lt;/p&gt;
&lt;h2 id="autopilotモードがついに設定を記憶するように"&gt;Autopilotモードがついに設定を記憶するように&lt;/h2&gt;
&lt;p&gt;以前は、新しいセッションを開始するたびにAutopilotを再度有効にする必要があった。面倒だった。今では権限モードがセッション間で保持され、デフォルトも設定できる。&lt;/p&gt;
&lt;p&gt;Agent Hostは3つのセッション設定をサポートしている：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Default&lt;/strong&gt; — ツールは実行前に確認を求める&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bypass&lt;/strong&gt; — すべてを自動承認する&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autopilot&lt;/strong&gt; — 完全自律型、自分の質問に答えて作業を続ける&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;.NETプロジェクトをマイグレーション、Docker、CIと一緒にスキャフォールディングするなら、Autopilotに一度設定すればあとは忘れていい。その設定はそのまま維持される。&lt;/p&gt;
&lt;h2 id="エージェントセッションのworktreeとgit分離"&gt;エージェントセッションのworktreeとgit分離&lt;/h2&gt;
&lt;p&gt;これが本命だ。エージェントセッションが完全なworktreeとgit分離をサポートするようになった。つまり、エージェントがタスクに取り組むとき、専用のブランチと作業ディレクトリが割り当てられる。メインブランチは一切影響を受けない。&lt;/p&gt;
&lt;p&gt;さらに良いことに、Copilot CLIがこれらのworktreeセッションに意味のあるブランチ名を生成してくれる。もう&lt;code&gt;agent-session-abc123&lt;/code&gt;は終わりだ。エージェントが何をしているかを実際に説明する名前が付けられる。&lt;/p&gt;
&lt;p&gt;複数のフィーチャーブランチを管理したり、長いスキャフォールディングタスクの実行中にバグを修正している.NET開発者にとって、これはゲームチェンジャーだ。あるworktreeでエージェントにAPIコントローラーを構築させながら、別のworktreeでサービスレイヤーの問題をデバッグできる。コンフリクトなし。スタッシュなし。混乱なし。&lt;/p&gt;
&lt;h2 id="サブエージェントとエージェントチーム"&gt;サブエージェントとエージェントチーム&lt;/h2&gt;
&lt;p&gt;Agent Host Protocolがサブエージェントをサポートするようになった。エージェントがタスクの一部を処理するために他のエージェントを起動できる。委任と考えればいい — メインエージェントが調整し、専門エージェントが各部分を担当する。&lt;/p&gt;
&lt;p&gt;まだ初期段階だが、.NETワークフローへの可能性は明らかだ。あるエージェントがEF Coreのマイグレーションを処理し、別のエージェントが統合テストをセットアップする姿を想像してみてほしい。まだ完全には到達していないが、プロトコルサポートが今入ったということは、ツールもすぐに続くということだ。&lt;/p&gt;
&lt;h2 id="エージェントが入力を送信するとターミナル出力が自動的に含まれるように"&gt;エージェントが入力を送信するとターミナル出力が自動的に含まれるように&lt;/h2&gt;
&lt;p&gt;小さいが意味がある。エージェントがターミナルに入力を送信すると、ターミナル出力が自動的にコンテキストに含まれるようになった。以前は、エージェントが何が起きたかを読むために余分なターンが必要だった。&lt;/p&gt;
&lt;p&gt;エージェントが&lt;code&gt;dotnet build&lt;/code&gt;を実行し、失敗し、エラーを確認するためだけにもう一回往復するのを見たことがあるなら — そのフリクションはなくなった。出力を即座に確認して反応する。&lt;/p&gt;
&lt;h2 id="macosのagentsアプリが自動更新に"&gt;macOSのAgentsアプリが自動更新に&lt;/h2&gt;
&lt;p&gt;macOSのスタンドアロンAgentsアプリが自動更新されるようになった。新しいバージョンを手動でダウンロードする必要はもうない。常に最新の状態が保たれる。&lt;/p&gt;
&lt;h2 id="知っておく価値のある小さなこと"&gt;知っておく価値のある小さなこと&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;package.jsonのホバー&lt;/strong&gt;がインストール済みバージョンと最新の利用可能なバージョンの両方を表示するようになった。.NETプロジェクトと一緒にnpmツールを管理している場合に便利。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JSDocコメント内の画像&lt;/strong&gt;がホバーや補完で正しくレンダリングされるようになった。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot CLIセッション&lt;/strong&gt;がVS Codeで作成されたか外部で作成されたかを表示するようになった — ターミナル間を行き来するときに便利。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot CLI、Claude Code、Gemini CLI&lt;/strong&gt;がシェルタイプとして認識されるようになった。エディタが何を実行しているか把握している。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;VS Code 1.117は派手な機能のダンプではない。インフラだ。worktree分離、永続的な権限、サブエージェントプロトコル — これらは、エージェントがコードを踏むことなく実際の並列タスクを処理するワークフローのための基盤だ。&lt;/p&gt;
&lt;p&gt;.NETで開発していてエージェント型ワークフローにまだ踏み込んでいないなら、正直、今が始めるときだ。&lt;/p&gt;</content:encoded></item><item><title>Docker Sandboxで、Copilotエージェントがマシンをリスクにさらさずにコードをリファクタリングできるようになった</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/</guid><description>Docker SandboxはGitHub Copilotエージェントにセキュアなマイクロ VMを提供し、許可プロンプトなし、ホストへのリスクなしで自由にリファクタリングできる環境を実現します。大規模な.NETモダナイゼーションにとって、これがなぜゲームチェンジャーなのかを解説します。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されています。原文は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Copilotのエージェントモードを小さな編集以上のことに使ったことがあるなら、あの煩わしさは知っているはずです。ファイルへの書き込みのたびに、ターミナルコマンドのたびに、また許可プロンプト。これを50プロジェクトで想像してみてください。楽しくないですよね。&lt;/p&gt;
&lt;p&gt;Azureチームが&lt;a href="https://devblogs.microsoft.com/all-things-azure/best-of-both-worlds-for-agentic-refactoring-github-copilot-microvms-via-docker-sandbox/"&gt;GitHub CopilotエージェントのためのDocker Sandbox&lt;/a&gt;に関する記事を公開しました。正直に言って、これはエージェンティックツーリングで見た中で最も実用的な改善の一つです。マイクロVMを使ってCopilotに完全に隔離された環境を提供し、パッケージのインストール、ビルドの実行、テストの実行まで、ホストシステムに一切触れずに自由に作業できます。&lt;/p&gt;
&lt;h2 id="docker-sandboxが実際に提供するもの"&gt;Docker Sandboxが実際に提供するもの&lt;/h2&gt;
&lt;p&gt;コアのアイデアはシンプルです：完全なLinux環境を持つ軽量なマイクロVMを起動し、ワークスペースをその中に同期させ、Copilotエージェントを内部で自由に動かす。完了したら変更が同期されて戻ってくる。&lt;/p&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;プライベートDockerデーモン&lt;/strong&gt;がマイクロVM内で稼働。エージェントはホストのDockerソケットをマウントすることなくコンテナのビルドと実行が可能です。セキュリティ面で大きな進歩です。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTTP/HTTPSフィルタリングプロキシ&lt;/strong&gt;がエージェントのネットワークアクセスを制御。どのレジストリとエンドポイントを許可するかはあなたが決められます。サンドボックス内の悪意ある&lt;code&gt;npm install&lt;/code&gt;によるサプライチェーン攻撃？ブロックされます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;YOLOモード&lt;/strong&gt; — はい、本当にそう呼ばれています。エージェントは許可プロンプトなしで実行されます。なぜなら、文字通りホストを壊すことができないからです。すべての破壊的アクションが封じ込められています。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="net開発者が注目すべき理由"&gt;.NET開発者が注目すべき理由&lt;/h2&gt;
&lt;p&gt;今まさに多くのチームが直面しているモダナイゼーション作業を考えてみてください。30プロジェクトを含む.NET Frameworkソリューションがあり、.NET 9に移行する必要がある。数百のファイル変更が必要です — プロジェクトファイル、名前空間の更新、APIの置き換え、NuGetの移行。&lt;/p&gt;
&lt;p&gt;Docker Sandboxを使えば、CopilotエージェントをプロジェクトにポイントしてマイクロVM内で自由にリファクタリングさせ、&lt;code&gt;dotnet build&lt;/code&gt;と&lt;code&gt;dotnet test&lt;/code&gt;で検証し、実際に動作する変更だけを受け入れることができます。実験中にローカル開発環境を誤って壊してしまうリスクはありません。&lt;/p&gt;
&lt;p&gt;記事では&lt;strong&gt;並列エージェントのフリート&lt;/strong&gt;の運用も説明されています — それぞれが独自のサンドボックスで、異なるプロジェクトに同時に取り組みます。大規模な.NETソリューションやマイクロサービスアーキテクチャにとって、これは膨大な時間の節約になります。サービスごとに1エージェント、すべて隔離して実行、すべて独立して検証。&lt;/p&gt;
&lt;h2 id="セキュリティの観点が重要"&gt;セキュリティの観点が重要&lt;/h2&gt;
&lt;p&gt;多くの人が見落としているポイントがあります：AIエージェントに任意のコマンドの実行を許可するということは、マシン全体を信頼して預けるということです。Docker Sandboxはそのモデルを逆転させます。エージェントは使い捨て環境内で完全な自律性を得ます。ネットワークプロキシが承認されたソースからのみダウンロードできることを保証します。ホストのファイルシステム、Dockerデーモン、認証情報は手つかずのままです。&lt;/p&gt;
&lt;p&gt;コンプライアンス要件を持つチーム — そしてそれはほとんどのエンタープライズ.NET企業に当てはまります — にとって、これは「エージェンティックAIは使えない」と「安全に導入できる」の違いです。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;Docker Sandboxはエージェンティックコーディングの根本的なジレンマを解決します：エージェントは有用であるために自由が必要ですが、ホストマシンでの自由は危険です。マイクロVMは両方を実現します。大規模な.NETリファクタリングやモダナイゼーションを計画しているなら、今すぐセットアップする価値があります。Copilotのコードインテリジェンスとセキュアな実行環境の組み合わせは、まさにプロダクションチームが待ち望んでいたものです。&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>Azure MCPツールがVisual Studio 2022に組み込まれました — 拡張機能のインストール不要</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/</guid><description>Azure MCPツールがVisual Studio 2022のAzure開発ワークロードの一部として同梱されました。230以上のツール、45のAzureサービス、インストールする拡張機能はゼロ。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されています。原文は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/"&gt;こちらをクリック&lt;/a&gt;してご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Visual Studioで別途拡張機能としてAzure MCPツールを使っていた方なら、あのお決まりの流れをご存知でしょう — VSIXをインストールし、再起動し、壊れないことを祈り、バージョンの不一致を管理する。その煩わしさはもう終わりです。&lt;/p&gt;
&lt;p&gt;Yun Jung Choiが&lt;a href="https://devblogs.microsoft.com/visualstudio/azure-mcp-tools-now-ship-built-into-visual-studio-2022-no-extension-required/"&gt;発表&lt;/a&gt;したとおり、Azure MCPツールはVisual Studio 2022のAzure開発ワークロードの一部として直接同梱されるようになりました。拡張機能なし。VSIXなし。再起動の手間なし。&lt;/p&gt;
&lt;h2 id="これが実際に意味すること"&gt;これが実際に意味すること&lt;/h2&gt;
&lt;p&gt;Visual Studio 2022 バージョン17.14.30以降、Azure MCP ServerはAzure開発ワークロードにバンドルされています。すでにそのワークロードがインストールされていれば、GitHub Copilot Chatで有効にするだけで完了です。&lt;/p&gt;
&lt;p&gt;45のAzureサービスにわたる230以上のツール — チャットウィンドウから直接アクセスできます。ストレージアカウントの一覧表示、ASP.NET Coreアプリのデプロイ、App Serviceの問題診断、Log Analyticsへのクエリ — すべてブラウザタブを開くことなく実行できます。&lt;/p&gt;
&lt;h2 id="なぜこれが見た目以上に重要なのか"&gt;なぜこれが見た目以上に重要なのか&lt;/h2&gt;
&lt;p&gt;開発ツールについて言えることはこれです：余分なステップはすべて摩擦であり、摩擦は普及を妨げます。MCPが別の拡張機能だった頃は、バージョンの不一致、インストールの失敗、そしてもう一つアップデートを管理するものが増えるということを意味していました。ワークロードへの組み込みは以下を意味します：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;単一の更新パス&lt;/strong&gt; — Visual Studio Installerを通じて&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;バージョンのずれなし&lt;/strong&gt; — 拡張機能とIDEの間で&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;常に最新&lt;/strong&gt; — MCP Serverは通常のVSリリースと一緒に更新&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Azureを標準化しているチームにとって、これは大きな前進です。ワークロードを一度インストールし、ツールを有効にすれば、毎回のセッションで利用可能です。&lt;/p&gt;
&lt;h2 id="これで何ができるか"&gt;これで何ができるか&lt;/h2&gt;
&lt;p&gt;ツールはCopilot Chatを通じて開発ライフサイクル全体をカバーします：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;学ぶ&lt;/strong&gt; — Azureサービス、ベストプラクティス、アーキテクチャパターンについて質問&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;設計・開発&lt;/strong&gt; — サービスの推奨を取得、アプリコードの設定&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;デプロイ&lt;/strong&gt; — リソースのプロビジョニングとIDEからの直接デプロイ&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;トラブルシューティング&lt;/strong&gt; — ログのクエリ、リソースの正常性チェック、本番環境の問題診断&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;簡単な例として、Copilot Chatで以下を入力してみてください：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;List my storage accounts in my current subscription.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Copilotは裏側でAzure MCPツールを呼び出し、サブスクリプションを照会し、名前、場所、SKUが記載されたフォーマット済みリストを返します。ポータルは不要です。&lt;/p&gt;
&lt;h2 id="有効にする方法"&gt;有効にする方法&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Visual Studio 2022 &lt;strong&gt;17.14.30&lt;/strong&gt;以降にアップデート&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure development&lt;/strong&gt;ワークロードがインストールされていることを確認&lt;/li&gt;
&lt;li&gt;GitHub Copilot Chatを開く&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Select tools&lt;/strong&gt;ボタン（レンチアイコン）をクリック&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure MCP Server&lt;/strong&gt;をオンに切り替え&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;以上です。セッション間で有効な状態が維持されます。&lt;/p&gt;
&lt;h2 id="注意点"&gt;注意点&lt;/h2&gt;
&lt;p&gt;ツールはデフォルトで無効になっています — オプトインが必要です。また、VS 2026固有のツールはVS 2022では利用できません。ツールの利用可能性はAzureサブスクリプションの権限にも依存します。ポータルと同じです。&lt;/p&gt;
&lt;h2 id="より大きな視点"&gt;より大きな視点&lt;/h2&gt;
&lt;p&gt;これは明確なトレンドの一部です：MCPは開発者IDEにクラウドツールを提供するための標準になりつつあります。すでに&lt;a href="https://devblogs.microsoft.com/azure-sdk/announcing-azure-mcp-server-2-0-stable-release/"&gt;Azure MCP Server 2.0の安定版リリース&lt;/a&gt;やVS Codeをはじめとする各種エディタでのMCP統合が進んでいます。Visual Studioのワークロードシステムへの組み込みは、その自然な進化です。&lt;/p&gt;
&lt;p&gt;Visual Studioで日々開発している.NET開発者にとって、Azureポータルへのコンテキストスイッチの理由がまた一つ減りました。正直なところ、タブの切り替えは少なければ少ないほど良いですからね。&lt;/p&gt;</content:encoded></item><item><title>azd update — すべてのパッケージマネージャーを統べる一つのコマンド</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azd-update-universal-upgrade-command/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azd-update-universal-upgrade-command/</guid><description>Azure Developer CLIに、インストール方法を問わず動作するユニバーサルなアップデートコマンドが追加されました — winget、Homebrew、Chocolatey、インストールスクリプトのいずれでも対応。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されています。オリジナル版は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azd-update-universal-upgrade-command/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;数週間ごとに表示される「azdの新しいバージョンが利用可能です」というメッセージ、知っていますか？ &lt;code&gt;azd&lt;/code&gt;をwingetでインストールしたのか、Homebrewなのか、それとも半年前に実行したcurlスクリプトなのか思い出せなくて、つい無視してしまうあのメッセージです。ついに解決しました。&lt;/p&gt;
&lt;p&gt;Microsoftが&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;&lt;code&gt;azd update&lt;/code&gt;&lt;/a&gt;をリリースしました — 元々のインストール方法に関係なく、Azure Developer CLIを最新バージョンにアップデートできる単一のコマンドです。Windows、macOS、Linux — 関係ありません。コマンド一つで完了です。&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;azd update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これだけです。新機能に早くアクセスしたい場合は、デイリーのInsidersビルドに切り替えることもできます：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd update --channel daily
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd update --channel stable
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このコマンドは現在のインストール方法を自動検出し、裏側で適切なアップデートメカニズムを使用します。もう「この PC では winget を使ったっけ、choco だったっけ？」と悩む必要はありません。&lt;/p&gt;
&lt;h2 id="一つだけ注意点"&gt;一つだけ注意点&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd update&lt;/code&gt;はバージョン1.23.x以降で利用可能です。それより古いバージョンを使っている場合は、元のインストール方法で最後の手動アップデートを行う必要があります。その後は&lt;code&gt;azd update&lt;/code&gt;がすべてのアップデートを引き受けてくれます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;azd version&lt;/code&gt;で現在のバージョンを確認してください。新規インストールが必要な場合は、&lt;a href="https://learn.microsoft.com/azure/developer/azure-developer-cli/install-azd"&gt;インストールドキュメント&lt;/a&gt;を参照してください。&lt;/p&gt;
&lt;h2 id="なぜ重要なのか"&gt;なぜ重要なのか&lt;/h2&gt;
&lt;p&gt;これは小さなQOL改善ですが、AIエージェントやAspireアプリをAzureにデプロイするために&lt;code&gt;azd&lt;/code&gt;を毎日使っている私たちにとって、最新の状態を保つことは「そのバグは最新バージョンで修正済みでした」という場面を減らすことを意味します。考えることが一つ減るのです。&lt;/p&gt;
&lt;p&gt;詳細は&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;公式アナウンス&lt;/a&gt;とJon Gallantの&lt;a href="https://blog.jongallant.com/2026/04/azd-update"&gt;詳しい解説&lt;/a&gt;をご覧ください。&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>VS Code 1.116 — Agentsアプリがキーボードナビゲーションとファイルコンテキスト補完を獲得</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/vscode-1-116-agents-app-updates/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/vscode-1-116-agents-app-updates/</guid><description>VS Code 1.116はAgentsアプリの磨き上げに注力 — 専用キーバインド、アクセシビリティの改善、ファイルコンテキスト補完、CSS @importリンク解決。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されました。原文は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/vscode-1-116-agents-app-updates/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;VS Code 1.116は2026年4月のリリースで、最近のいくつかのアップデートよりは軽めですが、変更点は的を絞った意味のあるものです — 特にAgentsアプリを日常的に使っている方にとっては。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.visualstudio.com/updates/v1_116"&gt;公式リリースノート&lt;/a&gt;に基づいて、何が追加されたか見ていきましょう。&lt;/p&gt;
&lt;h2 id="agentsアプリの改善"&gt;Agentsアプリの改善&lt;/h2&gt;
&lt;p&gt;Agentsアプリは、日常のワークフローに本当の違いをもたらすユーザビリティの磨き上げで成熟を続けています：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;専用キーバインド&lt;/strong&gt; — Changesビュー、Changes内のファイルツリー、Chat カスタマイズビューに専用のコマンドとキーボードショートカットでフォーカスできるようになりました。Agentsアプリ内をクリックして回っていた方には、これで完全にキーボード駆動のワークフローが実現します。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;アクセシビリティヘルプダイアログ&lt;/strong&gt; — チャット入力ボックスで&lt;code&gt;Alt+F1&lt;/code&gt;を押すと、利用可能なコマンドとキーバインドを表示するアクセシビリティヘルプダイアログが開くようになりました。スクリーンリーダーユーザーはアナウンスの詳細度も制御できます。良いアクセシビリティはすべての人に利益をもたらします。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ファイルコンテキスト補完&lt;/strong&gt; — Agentsアプリのチャットで&lt;code&gt;#&lt;/code&gt;を入力すると、現在のワークスペースにスコープされたファイルコンテキスト補完がトリガーされます。これはすべてのインタラクションを加速するあの小さなクオリティ・オブ・ライフの改善の一つです — コードを参照する際にフルファイルパスを入力する必要はもうありません。&lt;/p&gt;
&lt;h2 id="css-importリンク解決"&gt;CSS &lt;code&gt;@import&lt;/code&gt;リンク解決&lt;/h2&gt;
&lt;p&gt;フロントエンド開発者にうれしいニュース：VS Codeがnode_modulesパスを使用するCSS &lt;code&gt;@import&lt;/code&gt;参照を解決するようになりました。バンドラーを使用している場合、&lt;code&gt;@import &amp;quot;some-module/style.css&amp;quot;&lt;/code&gt;のようなインポートを&lt;code&gt;Ctrl+クリック&lt;/code&gt;で辿れます。小さいですがCSSワークフローの摩擦点を解消します。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;VS Code 1.116は洗練がテーマです — Agentsアプリをより操作しやすく、よりアクセシブルに、よりキーボードフレンドリーにすること。Agentsアプリでかなりの時間を過ごしているなら（そして多くの方がそうだと思いますが）、これらの変更は積み重なっていきます。&lt;/p&gt;
&lt;p&gt;完全なリストは&lt;a href="https://code.visualstudio.com/updates/v1_116"&gt;フルリリースノート&lt;/a&gt;をご確認ください。&lt;/p&gt;</content:encoded></item><item><title>知らなかったVisual Studioのフローティングウィンドウ設定（でも知るべき）</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/</guid><description>Visual Studioの隠れた設定でフローティングウィンドウを完全にコントロール — 独立したタスクバーエントリ、適切なマルチモニター動作、そして完璧なFancyZones統合。ドロップダウン一つですべてが変わります。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されました。原文は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Visual Studioで複数モニターを使っている方（正直に言って、今どきそうじゃない人っていますか？）は、おそらくこの煩わしさを経験したことがあるでしょう：フローティングツールウィンドウがメインIDEを最小化すると消えてしまう、常に他のすべての上に表示される、そしてタスクバーに別々のボタンとして表示されない。一部のワークフローには機能しますが、マルチモニター環境では苛立たしいものです。&lt;/p&gt;
&lt;p&gt;Visual Studioチームの Mads Kristensen が、フローティングウィンドウの動作を完全に変える&lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/"&gt;あまり知られていない設定を共有しました&lt;/a&gt;。ドロップダウン一つ。それだけです。&lt;/p&gt;
&lt;h2 id="設定"&gt;設定&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Tools &amp;gt; Options &amp;gt; Environment &amp;gt; Windows &amp;gt; Floating Windows&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ドロップダウン「These floating windows are owned by the main window」には3つのオプションがあります：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;None&lt;/strong&gt; — 完全な独立性。すべてのフローティングウィンドウが独自のタスクバーエントリを持ち、通常のWindowsウィンドウとして動作します。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tool Windows&lt;/strong&gt;（デフォルト）— ドキュメントは自由にフロート、ツールウィンドウはIDEに紐づけられます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Documents and Tool Windows&lt;/strong&gt; — クラシックなVisual Studioの動作、すべてがメインウィンドウに紐づけられます。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="マルチモニター環境でnoneが最適な理由"&gt;マルチモニター環境で「None」が最適な理由&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;None&lt;/strong&gt;に設定すると、すべてのフローティングツールウィンドウとドキュメントが本物のWindowsアプリケーションのように動作します。タスクバーに表示され、Visual Studioのメインウィンドウを最小化しても表示され続け、すべての前面に無理やり表示されることがなくなります。&lt;/p&gt;
&lt;p&gt;これを&lt;strong&gt;PowerToys FancyZones&lt;/strong&gt;と組み合わせると、まさにゲームチェンジャーです。モニター全体にカスタムレイアウトを作成し、ソリューションエクスプローラーを一つのゾーンに、デバッガーを別のゾーンに、コードファイルを好きな場所に配置できます。すべてがその場に留まり、すべてが独立してアクセスでき、ワークスペースが混沌ではなく整理されたものに感じられます。&lt;/p&gt;
&lt;h2 id="クイック推奨事項"&gt;クイック推奨事項&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;マルチモニターのパワーユーザー&lt;/strong&gt;：&lt;strong&gt;None&lt;/strong&gt;に設定し、FancyZonesと組み合わせる&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;たまにフロートする方&lt;/strong&gt;：&lt;strong&gt;Tool Windows&lt;/strong&gt;（デフォルト）が良いバランス&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;従来のワークフロー&lt;/strong&gt;：&lt;strong&gt;Documents and Tool Windows&lt;/strong&gt;でクラシックな動作を維持&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;プロのコツ：ツールウィンドウのタイトルバーを&lt;strong&gt;Ctrl + ダブルクリック&lt;/strong&gt;で即座にフロートまたはドッキングできます。設定変更後の再起動は不要です。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;これは典型的な「なんで今まで知らなかったんだ」系の設定です。Visual Studioのフローティングウィンドウに少しでも苛立ちを感じたことがあるなら、今すぐ変更しに行きましょう。&lt;/p&gt;
&lt;p&gt;詳細とスクリーンショットは&lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/"&gt;完全な記事&lt;/a&gt;をご覧ください。&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.115 — バックグラウンドターミナル通知、SSHエージェントモードなど</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/vscode-1-115-agent-improvements/</link><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/vscode-1-115-agent-improvements/</guid><description>VS Code 1.115では、エージェント向けバックグラウンドターミナル通知、SSHリモートエージェントホスティング、ターミナルへのファイル貼り付け、セッション対応の編集追跡が導入されました。.NET開発者にとって重要なポイントをまとめます。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されています。原文は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/vscode-1-115-agent-improvements/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;VS Code 1.115が&lt;a href="https://code.visualstudio.com/updates/v1_115"&gt;リリース&lt;/a&gt;されました。目玉機能という点では軽めのリリースですが、AIコーディングアシスタントを日常的に使っている方にとって、エージェント関連の改善は本当に役立つものです。&lt;/p&gt;
&lt;p&gt;実際に知っておく価値のあるポイントを紹介します。&lt;/p&gt;
&lt;h2 id="バックグラウンドターミナルがエージェントに通知するように"&gt;バックグラウンドターミナルがエージェントに通知するように&lt;/h2&gt;
&lt;p&gt;これが今回の目玉機能です。バックグラウンドターミナルが、コマンド完了時に終了コードとターミナル出力を含めて、エージェントに自動通知するようになりました。バックグラウンドターミナルでの入力プロンプトも検出されてユーザーに表示されます。&lt;/p&gt;
&lt;p&gt;なぜこれが重要なのか？Copilotのエージェントモードでビルドコマンドやテストスイートをバックグラウンドで実行したことがあるなら、「あれ、もう終わった？」という苦痛を知っているはずです。バックグラウンドターミナルは基本的に撃ちっぱなしでした。今ではエージェントが&lt;code&gt;dotnet build&lt;/code&gt;や&lt;code&gt;dotnet test&lt;/code&gt;の完了時に通知を受け取り、出力を確認して適切に対応できます。小さな変更ですが、エージェント駆動のワークフローの信頼性が大幅に向上します。&lt;/p&gt;
&lt;p&gt;また、新しい&lt;code&gt;send_to_terminal&lt;/code&gt;ツールにより、エージェントがユーザーの確認付きでバックグラウンドターミナルにコマンドを送信できるようになりました。これにより、&lt;code&gt;run_in_terminal&lt;/code&gt;でタイムアウトを設定するとターミナルがバックグラウンドに移動して読み取り専用になってしまう問題が解決されました。&lt;/p&gt;
&lt;h2 id="sshリモートエージェントホスティング"&gt;SSHリモートエージェントホスティング&lt;/h2&gt;
&lt;p&gt;VS Codeが SSH経由でリモートマシンに接続し、CLIを自動インストールしてエージェントホストモードで起動できるようになりました。これにより、AIエージェントセッションがリモート環境を直接ターゲットにできます。LinuxサーバーやクラウドVMでビルド・テストを行う.NET開発者にとって便利です。&lt;/p&gt;
&lt;h2 id="エージェントセッションでの編集追跡"&gt;エージェントセッションでの編集追跡&lt;/h2&gt;
&lt;p&gt;エージェントセッション中に行われたファイル編集が、diff、元に戻す/やり直し、状態復元とともに追跡・復元されるようになりました。エージェントがコードを変更して何か問題が起きた場合、何が変わったかを正確に確認してロールバックできます。エージェントにコードベースを変更させる際の安心感が得られます。&lt;/p&gt;
&lt;h2 id="ブラウザタブの認識とその他の改善"&gt;ブラウザタブの認識とその他の改善&lt;/h2&gt;
&lt;p&gt;その他のクオリティ・オブ・ライフの向上：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ブラウザタブの追跡&lt;/strong&gt; — チャットがセッション中に開いたブラウザタブを追跡・リンクできるようになり、エージェントが閲覧中のWebページを参照できます&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ターミナルへのファイル貼り付け&lt;/strong&gt; — Ctrl+V、ドラッグ&amp;amp;ドロップ、右クリックでターミナルにファイル（画像含む）を貼り付け可能&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ミニマップでのテストカバレッジ&lt;/strong&gt; — テストカバレッジインジケーターがミニマップに表示され、視覚的な概要を素早く確認できます&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Macでのピンチズーム&lt;/strong&gt; — 統合ブラウザがピンチズームジェスチャーをサポート&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;セッションでのCopilot使用権限&lt;/strong&gt; — ステータスバーのセッションビューに使用状況が表示されます&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ファイルに移動でのファビコン&lt;/strong&gt; — 開いているWebページがクイックピックリストにファビコンを表示&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;VS Code 1.115はインクリメンタルなリリースですが、エージェントの改善 — バックグラウンドターミナル通知、SSHエージェントホスティング、編集追跡 — が合わさって、AI支援開発の体験が目に見えてスムーズになりました。.NETプロジェクトでCopilotのエージェントモードを使っているなら、日々の摩擦を減らすクオリティ・オブ・ライフの改善そのものです。&lt;/p&gt;
&lt;p&gt;すべての詳細は&lt;a href="https://code.visualstudio.com/updates/v1_115"&gt;完全なリリースノート&lt;/a&gt;をご覧ください。&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>azdでAIエージェントをローカル実行・デバッグ可能に — 2026年3月の変更点まとめ</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/</guid><description>Azure Developer CLIが2026年3月に7つのリリースを公開。ハイライト：AIエージェントのローカル実行＆デバッグループ、GitHub Copilotのプロジェクトセットアップ統合、Container App Jobsサポート。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されました。オリジナル版は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;1ヶ月で7つのリリース。これがAzure Developer CLI（&lt;code&gt;azd&lt;/code&gt;）チームが2026年3月に出荷したもので、メイン機能は私が待っていたもの：&lt;strong&gt;AIエージェントのローカル実行＆デバッグループ&lt;/strong&gt;です。&lt;/p&gt;
&lt;p&gt;PC Chanが&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-march-2026/"&gt;完全なまとめを公開&lt;/a&gt;しましたが、内容が多いので、AI搭載アプリを構築する.NET開発者にとって本当に重要なことにフィルタリングしましょう。&lt;/p&gt;
&lt;h2 id="デプロイなしでaiエージェントを実行デバッグ"&gt;デプロイなしでAIエージェントを実行・デバッグ&lt;/h2&gt;
&lt;p&gt;これが一番大きいです。新しい&lt;code&gt;azure.ai.agents&lt;/code&gt;拡張機能がAIエージェントの適切なインナーループ体験を提供するコマンドを追加します：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;azd ai agent run&lt;/code&gt; — エージェントをローカルで起動&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt; — メッセージを送信（ローカルまたはデプロイ済み）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent show&lt;/code&gt; — コンテナのステータスとヘルスを表示&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt; — コンテナログをリアルタイムでストリーミング&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以前は、AIエージェントのテストは変更するたびにMicrosoft Foundryへのデプロイを意味しました。今ではローカルで反復し、エージェントの動作をテストし、準備ができたときだけデプロイできます。&lt;/p&gt;
&lt;h2 id="github-copilotがazdプロジェクトをセットアップ"&gt;GitHub Copilotがazdプロジェクトをセットアップ&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd init&lt;/code&gt;に「Set up with GitHub Copilot (Preview)」オプションが追加されました。プロジェクト構造についてのプロンプトに手動で回答する代わりに、Copilotエージェントが設定を生成します。コマンドが失敗した場合、&lt;code&gt;azd&lt;/code&gt;がAI支援のトラブルシューティングを提供します。&lt;/p&gt;
&lt;h2 id="container-app-jobsとデプロイの改善"&gt;Container App Jobsとデプロイの改善&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Container App Jobs&lt;/strong&gt;：&lt;code&gt;azd&lt;/code&gt;が既存の&lt;code&gt;host: containerapp&lt;/code&gt;設定で&lt;code&gt;Microsoft.App/jobs&lt;/code&gt;をデプロイ可能に&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;設定可能なデプロイタイムアウト&lt;/strong&gt;：&lt;code&gt;azd deploy&lt;/code&gt;の新しい&lt;code&gt;--timeout&lt;/code&gt;フラグと&lt;code&gt;azure.yaml&lt;/code&gt;の&lt;code&gt;deployTimeout&lt;/code&gt;フィールド&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;リモートビルドフォールバック&lt;/strong&gt;：ACRビルドが失敗するとローカルDocker/Podmanビルドに自動フォールバック&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ローカルプリフライト検証&lt;/strong&gt;：デプロイ前にBicepパラメータをローカルで検証&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="dxの改善"&gt;DXの改善&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;pnpm/yarn自動検出&lt;/strong&gt; — JS/TSプロジェクト向け&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;pyproject.tomlサポート&lt;/strong&gt; — Pythonパッケージング向け&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ローカルテンプレートディレクトリ&lt;/strong&gt; — &lt;code&gt;azd init --template&lt;/code&gt;がファイルシステムパスを受け入れ&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;改善されたエラーメッセージ&lt;/strong&gt; — &lt;code&gt;--no-prompt&lt;/code&gt;モード&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ビルド環境変数&lt;/strong&gt; — すべてのフレームワークビルドサブプロセスに注入（.NET、Node.js、Java、Python）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;ローカルAIエージェントデバッグループがこのリリースの主役ですが、デプロイ改善とDXポリッシュの積み重ねにより、&lt;code&gt;azd&lt;/code&gt;はかつてないほど成熟しています。AzureにDotNetアプリをデプロイしているなら — 特にAIエージェント — このアップデートは価値があります。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-march-2026/"&gt;完全なリリースノート&lt;/a&gt;で全詳細をご確認ください。&lt;/p&gt;</content:encoded></item><item><title>Azure DevOpsがついに全員が不満だったMarkdownエディタを修正</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</guid><description>Azure DevOpsのワークアイテム用Markdownエディタがプレビューと編集モードの明確な区別を獲得。小さな変更ですが、本当に厄介なワークフロー問題を解決します。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されました。オリジナル版は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Azure Boardsを使っているなら、きっとこの経験があるでしょう：ワークアイテムの説明を読んでいて、受け入れ条件を確認している最中に、うっかりダブルクリックしてしまう。ドカン — 編集モードに入ってしまった。何も編集したくなかった。ただ読んでいただけなのに。&lt;/p&gt;
&lt;p&gt;Dan Hellemが&lt;a href="https://devblogs.microsoft.com/devops/improving-the-markdown-editor-for-work-items/"&gt;修正を発表&lt;/a&gt;しました。小さく聞こえる変更ですが、日常のワークフローから本当の摩擦を取り除くものです。&lt;/p&gt;
&lt;h2 id="何が変わったか"&gt;何が変わったか&lt;/h2&gt;
&lt;p&gt;ワークアイテムのテキストフィールド用Markdownエディタが&lt;strong&gt;デフォルトでプレビューモード&lt;/strong&gt;で開くようになりました。コンテンツを読んだり操作したり — リンクをたどったり、フォーマットを確認したり — 誤って編集モードに入る心配なく行えます。&lt;/p&gt;
&lt;p&gt;実際に編集したい時は、フィールド上部の編集アイコンをクリックします。終わったら、明示的にプレビューモードに戻ります。シンプル、意図的、予測可能。&lt;/p&gt;
&lt;h2 id="なぜ見た目以上に重要か"&gt;なぜ見た目以上に重要か&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://developercommunity.visualstudio.com/t/Markdown-editor-for-work-item-multi-line/10935496"&gt;コミュニティフィードバックスレッド&lt;/a&gt;は長いものでした。ダブルクリックで編集の動作は2025年7月のMarkdownエディタで導入され、苦情はほぼ即座に始まりました。&lt;/p&gt;
&lt;p&gt;Azure Boardsでスプリント計画、バックログリファインメント、コードレビューを行うチームにとって、この種のマイクロ摩擦は積み重なります。&lt;/p&gt;
&lt;h2 id="ロールアウト状況"&gt;ロールアウト状況&lt;/h2&gt;
&lt;p&gt;すでに一部の顧客に展開中で、今後2〜3週間で全員に拡大されます。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;すべての改善がヘッドライン機能である必要はありません。時に最高のアップデートは、単に迷惑なものを取り除くことです。これはまさにそれ — ワークアイテムを静かに読みたい人にとってAzure Boardsをより親切にする小さなUX修正です。&lt;/p&gt;</content:encoded></item><item><title>Bookmark Studioがスロットベースのナビゲーションと共有をVisual Studioのブックマークに追加</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/</guid><description>Mads Kristensenの新しいBookmark Studio拡張機能がキーボード駆動のスロットナビゲーション、ブックマークマネージャー、色、ラベル、エクスポート機能をVisual Studioのブックマークに追加。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されました。オリジナル版は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Visual Studioのブックマークはずっと&amp;hellip;まあまあでした。ひとつ設定して、次に移動して、どれがどれか忘れる。機能するけど、パワフルと呼べるものではありませんでした。&lt;/p&gt;
&lt;p&gt;Mads Kristensenが&lt;a href="https://devblogs.microsoft.com/visualstudio/bookmark-studio-evolving-bookmarks-in-visual-studio/"&gt;Bookmark Studioをリリース&lt;/a&gt;しました。定期的にブックマークを使っているなら感じていたギャップを正確に埋める実験的な拡張機能です。&lt;/p&gt;
&lt;h2 id="スロットベースのナビゲーション"&gt;スロットベースのナビゲーション&lt;/h2&gt;
&lt;p&gt;ブックマークをスロット1〜9に割り当て、&lt;code&gt;Alt+Shift+1&lt;/code&gt;から&lt;code&gt;Alt+Shift+9&lt;/code&gt;で直接ジャンプできます。新しいブックマークは自動的に次の利用可能なスロットを取得します。&lt;/p&gt;
&lt;h2 id="ブックマークマネージャー"&gt;ブックマークマネージャー&lt;/h2&gt;
&lt;p&gt;新しいツールウィンドウですべてのブックマークを表示し、名前、ファイル、場所、色、スロットでフィルタリングできます。&lt;/p&gt;
&lt;h2 id="ラベル色フォルダーで整理"&gt;ラベル、色、フォルダーで整理&lt;/h2&gt;
&lt;p&gt;ブックマークにラベル、色を付けてフォルダーにグループ化できます。メタデータはソリューションごとに保存されます。&lt;/p&gt;
&lt;h2 id="エクスポートと共有"&gt;エクスポートと共有&lt;/h2&gt;
&lt;p&gt;Bookmark Studioはプレーンテキスト、Markdown、CSVとしてブックマークをエクスポートできます。&lt;/p&gt;
&lt;h2 id="コードの移動に追従するブックマーク"&gt;コードの移動に追従するブックマーク&lt;/h2&gt;
&lt;p&gt;Bookmark Studioはアンカーされたテキストに対してブックマークを追跡するので、編集中に間違った行にずれることがありません。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;Bookmark Studioは何も再発明しません。何年も「十分」だった機能を本当に便利にします。&lt;a href="https://marketplace.visualstudio.com/items?itemName=MadsKristensen.BookmarkStudio"&gt;Visual Studio Marketplace&lt;/a&gt;からダウンロードしてください。&lt;/p&gt;</content:encoded></item><item><title>Visual Studioの3月アップデートでカスタムCopilotエージェントが作成可能に — find_symbolが大きな進化</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/visual-studio-march-2026-custom-copilot-agents/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/visual-studio-march-2026-custom-copilot-agents/</guid><description>Visual Studioの2026年3月アップデートがカスタムCopilotエージェント、再利用可能なスキル、言語対応のfind_symbolツール、Test ExplorerからのCopilotプロファイリングを提供。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;この記事は自動翻訳されました。オリジナル版は&lt;a href="https://thedotnetblog.com/ja/news/emiliano-montesdeoca/visual-studio-march-2026-custom-copilot-agents/"&gt;こちら&lt;/a&gt;をご覧ください。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Visual Studioが最も重要なCopilotアップデートを受けました。Mark Downieが&lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-march-update-build-your-own-custom-agents/"&gt;3月リリースを発表&lt;/a&gt;し、見出しはカスタムエージェントですが、正直なところ&lt;code&gt;find_symbol&lt;/code&gt;ツールがワークフローを最も変える機能かもしれません。&lt;/p&gt;
&lt;h2 id="リポジトリ内のカスタムcopilotエージェント"&gt;リポジトリ内のカスタムCopilotエージェント&lt;/h2&gt;
&lt;p&gt;Copilotにチームのコーディング標準に従わせたい？カスタムエージェントはリポジトリの&lt;code&gt;.github/agents/&lt;/code&gt;に&lt;code&gt;.agent.md&lt;/code&gt;ファイルとして定義されます。各エージェントはワークスペース認識、コード理解、ツール、優先モデル、MCP接続へのフルアクセスを持ちます。&lt;/p&gt;
&lt;h2 id="エージェントスキル再利用可能なインストラクションパック"&gt;エージェントスキル：再利用可能なインストラクションパック&lt;/h2&gt;
&lt;p&gt;スキルはリポジトリの&lt;code&gt;.github/skills/&lt;/code&gt;またはプロファイルの&lt;code&gt;~/.copilot/skills/&lt;/code&gt;から自動的にロードされます。&lt;/p&gt;
&lt;h2 id="find_symbol言語対応ナビゲーション"&gt;find_symbol：言語対応ナビゲーション&lt;/h2&gt;
&lt;p&gt;新しい&lt;code&gt;find_symbol&lt;/code&gt;ツールはCopilotのエージェントモードに言語サービスベースのシンボルナビゲーションを提供します。テキスト検索の代わりに、シンボルのすべての参照を見つけ、型情報やスコープにアクセスできます。&lt;/p&gt;
&lt;p&gt;.NET開発者にとって、これは大きな改善です — 深い型階層を持つC#コードベースが大きく恩恵を受けます。&lt;/p&gt;
&lt;h2 id="copilotでテストをプロファイル"&gt;Copilotでテストをプロファイル&lt;/h2&gt;
&lt;p&gt;Test Explorerのコンテキストメニューに&lt;strong&gt;Profile with Copilot&lt;/strong&gt;が追加されました。Profiling Agentがテストを実行し、パフォーマンスを自動分析します。&lt;/p&gt;
&lt;h2 id="ライブデバッグ中のperf-tips"&gt;ライブデバッグ中のPerf Tips&lt;/h2&gt;
&lt;p&gt;パフォーマンス最適化がデバッグ中に行われるようになりました。Visual Studioがインラインで実行時間を表示します。遅い行を見つけたら、Perf Tipをクリックして最適化の提案をCopilotに依頼できます。&lt;/p&gt;
&lt;h2 id="solution-explorerからnuget脆弱性を修正"&gt;Solution ExplorerからNuGet脆弱性を修正&lt;/h2&gt;
&lt;p&gt;NuGetパッケージの脆弱性が検出されると、Solution Explorerに直接&lt;strong&gt;Fix with GitHub Copilot&lt;/strong&gt;リンクが表示されます。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;カスタムエージェントとスキルが見出しですが、&lt;code&gt;find_symbol&lt;/code&gt;が隠れた逸品です — .NETコードのリファクタリング時のCopilotの精度を根本的に変えます。&lt;a href="https://visualstudio.microsoft.com/downloads/"&gt;Visual Studio 2026 Insiders&lt;/a&gt;をダウンロードしてお試しください。&lt;/p&gt;</content:encoded></item><item><title>ラップトップから本番へ：2つのコマンドでAIエージェントをMicrosoft Foundryにデプロイ</title><link>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ja/news/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</guid><description>Azure Developer CLIに'azd ai agent'コマンドが追加され、AIエージェントをローカル開発から数分でFoundryの本番エンドポイントへ。完全なワークフローを紹介します。</description><content:encoded>&lt;p&gt;「自分のマシンでは動く」と「デプロイされてトラフィックを処理している」の間のギャップを知っていますか？AIエージェントにとって、そのギャップは痛いほど広かった。リソースのプロビジョニング、モデルのデプロイ、IDの設定、モニタリングの構築 — これら全ては、誰かが実際にエージェントを呼び出せるようになる前の話です。&lt;/p&gt;
&lt;p&gt;Azure Developer CLIがこれを&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;2つのコマンドで済む話&lt;/a&gt;にしました。&lt;/p&gt;
&lt;h2 id="新しいazd-ai-agentワークフロー"&gt;新しい&lt;code&gt;azd ai agent&lt;/code&gt;ワークフロー&lt;/h2&gt;
&lt;p&gt;実際にどんな感じか見せましょう。AIエージェントプロジェクトがあるとします — ホテルのコンシェルジュエージェントとしましょう。ローカルで動いています。Microsoft Foundry上で実行したい。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd up
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上です。2つのコマンド。&lt;code&gt;azd ai agent init&lt;/code&gt;がリポジトリにInfrastructure as Codeを生成し、&lt;code&gt;azd up&lt;/code&gt;がAzure上で全てをプロビジョニングしてエージェントを公開します。Foundryポータルでエージェントへの直接リンクが得られます。&lt;/p&gt;
&lt;h2 id="裏側で何が起きているか"&gt;裏側で何が起きているか&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;init&lt;/code&gt;コマンドはリポジトリに実際の、検査可能なBicepテンプレートを生成します：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Foundry Resource&lt;/strong&gt;（トップレベルコンテナ）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Foundry Project&lt;/strong&gt;（エージェントが存在する場所）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;モデルデプロイメント&lt;/strong&gt;設定（GPT-4oなど）&lt;/li&gt;
&lt;li&gt;適切なRBACロール割り当てを持つ&lt;strong&gt;マネージドID&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;サービスマップ用の&lt;code&gt;azure.yaml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;エージェントメタデータと環境変数を持つ&lt;code&gt;agent.yaml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;重要なポイント：これは全てあなたのものです。リポジトリ内のバージョン管理されたBicepです。検査し、カスタマイズし、エージェントコードと一緒にコミットできます。魔法のブラックボックスはありません。&lt;/p&gt;
&lt;h2 id="開発の内部ループ"&gt;開発の内部ループ&lt;/h2&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;azd ai agent run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これでエージェントをローカルで起動します。&lt;code&gt;azd ai agent invoke&lt;/code&gt;と組み合わせてテストプロンプトを送信すると、タイトなフィードバックループが得られます。コード編集、再起動、呼び出し、繰り返し。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;invoke&lt;/code&gt;コマンドはルーティングも賢く — ローカルエージェントが実行中なら自動的にそちらをターゲットにします。実行中でなければリモートエンドポイントにアクセスします。&lt;/p&gt;
&lt;h2 id="リアルタイムモニタリング"&gt;リアルタイムモニタリング&lt;/h2&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;azd ai agent monitor --follow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;エージェントを通過する全てのリクエストとレスポンスがリアルタイムでターミナルにストリームされます。本番環境の問題デバッグには計り知れない価値があります。Log Analyticsを掘り返す必要なし、メトリクス集計を待つ必要なし — 今何が起きているかが見えます。&lt;/p&gt;
&lt;h2 id="コマンドの完全セット"&gt;コマンドの完全セット&lt;/h2&gt;
&lt;p&gt;クイックリファレンスはこちら：&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent init&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;IaCでFoundryエージェントプロジェクトをスキャフォールド&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd up&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Azureリソースをプロビジョニングしてエージェントをデプロイ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;リモートまたはローカルエージェントにプロンプトを送信&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;開発用にエージェントをローカルで実行&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;公開エージェントからリアルタイムログをストリーム&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;エージェントの健全性とステータスを確認&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd down&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;全てのAzureリソースをクリーンアップ&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="net開発者にとってなぜ重要か"&gt;.NET開発者にとってなぜ重要か&lt;/h2&gt;
&lt;p&gt;アナウンスのサンプルはPythonベースですが、インフラストラクチャの話は言語に依存しません。あなたの.NETエージェントも同じBicepスキャフォールディング、同じマネージドID設定、同じモニタリングパイプラインを受け取ります。そして、すでに.NET Aspireアプリやazureデプロイメントに&lt;code&gt;azd&lt;/code&gt;を使っているなら、既存のワークフローにそのまま組み込めます。&lt;/p&gt;
&lt;p&gt;AIエージェントのデプロイメントギャップはエコシステムで最大の摩擦ポイントの一つでした。動くプロトタイプから適切なID、ネットワーキング、モニタリングを備えた本番エンドポイントへの移行に1週間のDevOps作業は必要ないはずです。今は2つのコマンドと数分で済みます。&lt;/p&gt;
&lt;h2 id="まとめ"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd ai agent&lt;/code&gt;は今すぐ利用可能です。インフラストラクチャ設定が大変そうだからとAIエージェントのデプロイを先延ばしにしていたなら、試してみてください。フロントエンドチャットアプリ統合を含む完全なステップバイステップガイドは&lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;完全なウォークスルー&lt;/a&gt;をご覧ください。&lt;/p&gt;</content:encoded></item></channel></rss>