<?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/hi/tags/developer-tools/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>hi</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Sat, 25 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/hi/tags/developer-tools/index.xml" rel="self" type="application/rss+xml"/><item><title>Azure MCP Server अब .mcpb है — बिना किसी Runtime के इंस्टॉल करें</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/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/hi/posts/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/"&gt;यहाँ क्लिक करें&lt;/a&gt;।&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;क्या आप जानते हैं MCP सर्वर सेटअप में क्या परेशान करता था? एक runtime की जरूरत थी। npm version के लिए Node.js, pip/uvx के लिए Python, dotnet variant के लिए .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 — के रूप में उपलब्ध है और सेटअप drag-and-drop है।&lt;/p&gt;
&lt;h2 id="mcp-bundle-कय-ह"&gt;MCP Bundle क्या है?&lt;/h2&gt;
&lt;p&gt;इसे VS Code extension (&lt;code&gt;.vsix&lt;/code&gt;) या browser extension (&lt;code&gt;.crx&lt;/code&gt;) की तरह सोचें, लेकिन MCP servers के लिए। एक &lt;code&gt;.mcpb&lt;/code&gt; फाइल एक self-contained ZIP archive है जिसमें server binary और सभी dependencies शामिल हैं।&lt;/p&gt;
&lt;h2 id="कस-इसटल-कर"&gt;कैसे इंस्टॉल करें&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. अपने प्लेटफॉर्म के लिए bundle डाउनलोड करें&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 page&lt;/a&gt; पर जाएं और अपने OS और architecture के लिए &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;सबसे आसान तरीका: Extensions settings page (&lt;code&gt;☰ → File → Settings → Extensions&lt;/code&gt;) खुलने पर &lt;code&gt;.mcpb&lt;/code&gt; फाइल को Claude Desktop window में drag और drop करें। Server details review करें, Install पर क्लिक करें, confirm करें।&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Azure में authenticate करें&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 credentials का उपयोग करता है।&lt;/p&gt;
&lt;h2 id="कय-कर-सकत-ह"&gt;क्या कर सकते हैं&lt;/h2&gt;
&lt;p&gt;अपने AI client से सीधे 100+ Azure service tools तक पहुंच:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cosmos DB, Storage, Key Vault, App Service, Foundry query और manage करें&lt;/li&gt;
&lt;li&gt;किसी भी task के लिए &lt;code&gt;az&lt;/code&gt; CLI commands generate करें&lt;/li&gt;
&lt;li&gt;Bicep और Terraform templates बनाएं&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="शरआत-करन-क-लए"&gt;शुरुआत करने के लिए&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Download&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;Repo&lt;/strong&gt;: &lt;a href="https://aka.ms/azmcp"&gt;aka.ms/azmcp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docs&lt;/strong&gt;: &lt;a href="https://aka.ms/azmcp/docs"&gt;aka.ms/azmcp/docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&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 Nightly ऑप्ट-इन मिला</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/vscode-1-118-copilot-cli-session-names-model-badge/</guid><description>Visual Studio Code 1.118 Copilot CLI सुधारों पर केंद्रित रिलीज़ है — सेशन नामकरण, मॉडल बैज, ऑटो मॉडल सिलेक्शन और TypeScript 7.0 Nightly ऑप्ट-इन।</description><content:encoded>&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल संस्करण के लिए &lt;a href="https://thedotnetblog.com/hi/posts/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 के सेशन टाइटल APIs अब सेशन नामों के स्रोत के रूप में उपयोग होते हैं। ऑटो-जेनरेटेड लेबल की बजाय 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; आदि से सेशन जल्दी बदले जा सकते हैं।&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 CLI एजेंट में भी काम करता है।&lt;/p&gt;
&lt;h2 id="typescript-70-nightly-ऑपट-इन"&gt;TypeScript 7.0 Nightly ऑप्ट-इन&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 Agents के लिए एक Unified Endpoint</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/</guid><description>Microsoft Foundry ने Toolboxes को Public Preview में launch किया है — AI Agent tools को एकल MCP-compatible endpoint के माध्यम से manage और expose करने का एक तरीका।</description><content:encoded>&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित की गई है। मूल संस्करण के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/"&gt;यहाँ क्लिक करें&lt;/a&gt;।&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;एक problem है जो boring लगती है जब तक खुद face न करो: organization multiple AI agents बना रही है, हर एक को tools चाहिए, और हर team scratch से configure कर रही है। Same web search integration, same Azure AI Search config, same GitHub MCP server connection — लेकिन अलग repository में, अलग team द्वारा, अलग credentials के साथ, और कोई shared governance नहीं।&lt;/p&gt;
&lt;p&gt;Microsoft Foundry ने &lt;a href="https://devblogs.microsoft.com/foundry/introducing-toolboxes-in-foundry/"&gt;Toolboxes&lt;/a&gt; को Public Preview में launch किया, और यह उस problem का direct answer है।&lt;/p&gt;
&lt;h2 id="toolbox-कय-ह"&gt;Toolbox क्या है&lt;/h2&gt;
&lt;p&gt;Toolbox एक named, reusable bundle of tools है जो एक बार Foundry में define होता है और single MCP-compatible endpoint के through expose होता है। कोई भी agent runtime जो MCP बोलता है वो इसे consume कर सकता है — Foundry Agents में कोई lock-in नहीं।&lt;/p&gt;
&lt;p&gt;Promise simple है: &lt;strong&gt;build once, consume anywhere&lt;/strong&gt;। Tools define करो, authentication centrally configure करो (OAuth passthrough, Entra managed identity), endpoint publish करो। जिस agent को वो tools चाहिए वो endpoint से connect करे और सभी मिल जाएं।&lt;/p&gt;
&lt;h2 id="चर-pillars-आज-द-available"&gt;चार pillars (आज दो available)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pillar&lt;/th&gt;
&lt;th&gt;Status&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;Coming soon&lt;/td&gt;
&lt;td&gt;Manual search बिना approved tools खोजना&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;Available&lt;/td&gt;
&lt;td&gt;Tools को reusable bundle में group करना&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;Available&lt;/td&gt;
&lt;td&gt;Single MCP endpoint सभी tools expose करता है&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;Coming soon&lt;/td&gt;
&lt;td&gt;Centralized auth + सभी tool calls की observability&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="practical-example"&gt;Practical Example&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;Documentation search करो और GitHub issues का जवाब दो&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;Public documentation search&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;Publish होने के बाद Foundry unified endpoint देता है। एक connection, सभी tools।&lt;/p&gt;
&lt;h2 id="foundry-agents-म-lock-in-नह"&gt;Foundry Agents में lock-in नहीं&lt;/h2&gt;
&lt;p&gt;Toolboxes Foundry में &lt;strong&gt;create और manage&lt;/strong&gt; होते हैं, लेकिन consumption surface open MCP protocol है। Microsoft Agent Framework या LangGraph के custom agents, GitHub Copilot और अन्य MCP-enabled IDEs, कोई भी MCP-speaking runtime इन्हें use कर सकता है।&lt;/p&gt;
&lt;h2 id="अभ-कय-important-ह"&gt;अभी क्यों important है&lt;/h2&gt;
&lt;p&gt;Multi-agent wave production में पहुंच रही है। हर नया agent duplicate configuration, stale credentials और inconsistent behavior की नई surface है। Build + Consume foundation centralization शुरू करने के लिए काफी है। जब Govern pillar आएगा, पूरी agent fleet के लिए fully observable, centrally controlled tool layer मिलेगी।&lt;/p&gt;
&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;यह अभी भी early है — Public Preview, Python SDK पहले, Discover और Govern अभी आने हैं। लेकिन model solid है और MCP-native design का मतलब है कि यह उन tools के साथ काम करता है जो already build हो रहे हैं। &lt;a href="https://devblogs.microsoft.com/foundry/introducing-toolboxes-in-foundry/"&gt;Official announcement&lt;/a&gt; देखें।&lt;/p&gt;</content:encoded></item><item><title>Python, TypeScript और .NET में azd Hooks: Shell Scripts से मुक्ति</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</guid><description>Azure Developer CLI अब Python, JavaScript, TypeScript या .NET में hooks लिखने की सुविधा देता है। माइग्रेशन स्क्रिप्ट के लिए Bash की ओर switch करने की जरूरत खत्म।</description><content:encoded>&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित की गई है। मूल संस्करण के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/"&gt;यहाँ क्लिक करें&lt;/a&gt;।&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;अगर आपने कभी पूरी तरह .NET में बना प्रोजेक्ट रखा हो और फिर भी azd hooks के लिए Bash scripts लिखनी पड़ी हों, तो वो दर्द आप समझते हैं। जब प्रोजेक्ट का बाकी सब कुछ C# है, तो pre-provisioning step के लिए shell syntax में क्यों जाएं?&lt;/p&gt;
&lt;p&gt;वो frustration अब officially solve हो गई है। Azure Developer CLI ने &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;hooks के लिए multi-language support launch&lt;/a&gt; किया है, और यह उतना ही अच्छा है जितना सुनाई देता है।&lt;/p&gt;
&lt;h2 id="hooks-कय-ह"&gt;Hooks क्या हैं&lt;/h2&gt;
&lt;p&gt;Hooks वो scripts हैं जो &lt;code&gt;azd&lt;/code&gt; lifecycle के key points पर run होती हैं — provisioning से पहले, deployment के बाद, और अन्य। ये &lt;code&gt;azure.yaml&lt;/code&gt; में define होती हैं और CLI को modify किए बिना custom logic inject करने देती हैं।&lt;/p&gt;
&lt;p&gt;पहले सिर्फ Bash और PowerShell support थे। अब &lt;strong&gt;Python, JavaScript, TypeScript या .NET&lt;/strong&gt; use कर सकते हैं — बाकी सब &lt;code&gt;azd&lt;/code&gt; automatically handle करता है।&lt;/p&gt;
&lt;h2 id="detection-कस-कम-करत-ह"&gt;Detection कैसे काम करती है&lt;/h2&gt;
&lt;p&gt;बस hook को एक file पर point करें और &lt;code&gt;azd&lt;/code&gt; extension से language infer करता है:&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;कोई extra config नहीं। अगर extension ambiguous हो तो &lt;code&gt;kind: python&lt;/code&gt; (या relevant language) explicitly specify कर सकते हैं।&lt;/p&gt;
&lt;h2 id="language-specific-details"&gt;Language-specific details&lt;/h2&gt;
&lt;h3 id="python"&gt;Python&lt;/h3&gt;
&lt;p&gt;Script के साथ (या किसी parent directory में) &lt;code&gt;requirements.txt&lt;/code&gt; या &lt;code&gt;pyproject.toml&lt;/code&gt; रखें। &lt;code&gt;azd&lt;/code&gt; automatically virtual environment बनाएगा, dependencies install करेगा और script run करेगा।&lt;/p&gt;
&lt;h3 id="javascript-और-typescript"&gt;JavaScript और TypeScript&lt;/h3&gt;
&lt;p&gt;Same pattern — script के पास &lt;code&gt;package.json&lt;/code&gt; रखें और &lt;code&gt;azd&lt;/code&gt; पहले &lt;code&gt;npm install&lt;/code&gt; run करेगा। TypeScript के लिए &lt;code&gt;npx tsx&lt;/code&gt; use होता है, बिना compile step और बिना &lt;code&gt;tsconfig.json&lt;/code&gt;।&lt;/p&gt;
&lt;h3 id="net"&gt;.NET&lt;/h3&gt;
&lt;p&gt;दो modes उपलब्ध:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Project mode&lt;/strong&gt;: Script के पास &lt;code&gt;.csproj&lt;/code&gt; हो तो &lt;code&gt;azd&lt;/code&gt; automatically &lt;code&gt;dotnet restore&lt;/code&gt; और &lt;code&gt;dotnet build&lt;/code&gt; run करता है।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Single-file mode&lt;/strong&gt;: .NET 10+ पर standalone &lt;code&gt;.cs&lt;/code&gt; files सीधे &lt;code&gt;dotnet run script.cs&lt;/code&gt; से run होती हैं। Project file की जरूरत नहीं।&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="executor-specific-configuration"&gt;Executor-specific configuration&lt;/h2&gt;
&lt;p&gt;हर language optional &lt;code&gt;config&lt;/code&gt; block support करती है:&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-developers-क-लए-कय-मयन-रखत-ह"&gt;.NET developers के लिए क्यों मायने रखता है&lt;/h2&gt;
&lt;p&gt;Hooks azd-based project में वो आखिरी जगह थी जो language switch करने पर मजबूर करती थी। अब पूरा deployment pipeline — app code से लेकर lifecycle hooks तक — एक ही language में रह सकता है। Existing .NET utilities hooks में reuse कर सकते हैं, shared libraries reference कर सकते हैं, और shell script maintenance से छुटकारा मिलता है।&lt;/p&gt;
&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;ये उन changes में से एक है जो छोटे लगते हैं लेकिन azd के daily workflow से बहुत friction हटाते हैं। Hooks के लिए multi-language support अभी available है — full documentation के लिए &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;official post&lt;/a&gt; देखें।&lt;/p&gt;</content:encoded></item><item><title>Windows App Dev CLI v0.3: टर्मिनल से F5 डीबग और एजेंट्स के लिए UI ऑटोमेशन</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/</guid><description>Windows App Development CLI v0.3 में winapp run (टर्मिनल से डीबग लॉन्च), winapp ui (UI ऑटोमेशन) और एक नया NuGet पैकेज आया है जो पैकेज्ड ऐप्स के साथ dotnet run को काम करने देता है।</description><content:encoded>&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित की गई है। मूल पोस्ट के लिए &lt;a href="https://thedotnetblog.com/hi/posts/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; और दो मुख्य फीचर्स के साथ इसका सीधा समाधान देती है: &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 डीबग लॉन्च में करता है: एक loose पैकेज रजिस्टर करना, ऐप लॉन्च करना और री-डिप्लॉय के बीच &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, Console, 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; संदेश और exceptions रियल-टाइम में कैप्चर करता है।&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; पूरा इनर लूप संभालता है: बिल्ड, loose-layout पैकेज तैयार करना, Windows में रजिस्टर करना और लॉन्च — सब एक स्टेप में।&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 Automation एक्सेस देता है।&lt;/p&gt;
&lt;p&gt;क्या किया जा सकता है:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;सभी टॉप-लेवल विंडो सूचीबद्ध करें&lt;/li&gt;
&lt;li&gt;किसी भी विंडो के पूर्ण UI Automation ट्री को नेविगेट करें&lt;/li&gt;
&lt;li&gt;नाम, टाइप या ऑटोमेशन ID से एलिमेंट खोजें&lt;/li&gt;
&lt;li&gt;क्लिक, invoke और मान सेट करें&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; को मिलाकर टर्मिनल से पूरा build → लॉन्च → वेरिफाई वर्कफ्लो बनाया जा सकता है। एक एजेंट ऐप चला सकता है, UI स्थिति देख सकता है, प्रोग्रामेटिकली इंटरेक्ट कर सकता है और परिणाम validate कर सकता है।&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;: काम पूरा होने पर sideloaded पैकेज हटाएं।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;winapp manifest add-alias&lt;/code&gt;&lt;/strong&gt;: टर्मिनल से नाम से ऐप लॉन्च करने के लिए alias जोड़ें।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tab completion&lt;/strong&gt;: PowerShell के लिए एक कमांड से completion सेटअप करें।&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: Agents को अपनी Git Branch मिल रही है — और मैं इसके साथ हूँ</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/vscode-1-117-agents-autopilot-worktrees/</guid><description>VS Code 1.117 में agent sessions के लिए worktree isolation, persistent Autopilot mode, और subagent support आई है। Agentic coding workflow अब और भी वास्तविक हो गई है।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/emiliano-montesdeoca/vscode-1-117-agents-autopilot-worktrees/"&gt;यहाँ क्लिक करें&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;ldquo;AI assistant&amp;rdquo; और &amp;ldquo;AI teammate&amp;rdquo; के बीच की रेखा लगातार पतली होती जा रही है। VS Code 1.117 अभी आया है और &lt;a href="https://code.visualstudio.com/updates/v1_117"&gt;full release notes&lt;/a&gt; भरे पड़े हैं, लेकिन यहाँ की कहानी साफ है: agents आपके dev workflow में first-class citizens बनते जा रहे हैं।&lt;/p&gt;
&lt;p&gt;यहाँ वो है जो वाकई मायने रखता है।&lt;/p&gt;
&lt;h2 id="autopilot-mode-आखरकर-आपक-preference-यद-रखत-ह"&gt;Autopilot mode आखिरकार आपकी preference याद रखता है&lt;/h2&gt;
&lt;p&gt;पहले, हर नई session शुरू करने पर Autopilot को फिर से enable करना पड़ता था। परेशान करने वाला। अब आपका permission mode sessions के पार persist होता है, और आप default configure कर सकते हैं।&lt;/p&gt;
&lt;p&gt;Agent Host तीन session configs support करता है:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Default&lt;/strong&gt; — tools चलने से पहले confirmation माँगते हैं&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bypass&lt;/strong&gt; — सब कुछ auto-approve करता है&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autopilot&lt;/strong&gt; — पूरी तरह autonomous, अपने सवालों के खुद जवाब देता है और चलता रहता है&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;अगर आप migrations, Docker, और CI के साथ एक नया .NET project scaffold कर रहे हैं — एक बार Autopilot set करें और भूल जाएं। वह preference बनी रहती है।&lt;/p&gt;
&lt;h2 id="agent-sessions-क-लए-worktree-और-git-isolation"&gt;Agent sessions के लिए Worktree और git isolation&lt;/h2&gt;
&lt;p&gt;यह बड़ी बात है। Agent sessions अब पूरी worktree और git isolation support करती हैं। इसका मतलब है जब कोई agent किसी task पर काम करता है, उसे अपनी branch और working directory मिलती है। आपकी main branch untouched रहती है।&lt;/p&gt;
&lt;p&gt;इससे भी बेहतर — Copilot CLI इन worktree sessions के लिए meaningful branch names generate करता है। अब &lt;code&gt;agent-session-abc123&lt;/code&gt; नहीं। आपको कुछ ऐसा मिलता है जो वास्तव में बताता है agent क्या कर रहा है।&lt;/p&gt;
&lt;p&gt;Multiple feature branches चलाने वाले या एक लंबे scaffolding task के दौरान bugs fix करने वाले .NET डेवलपर्स के लिए, यह game changer है। आपका एक agent एक worktree में API controllers बना सकता है जबकि आप दूसरे में service layer issue debug कर रहे हैं। कोई conflicts नहीं। कोई stashing नहीं। कोई mess नहीं।&lt;/p&gt;
&lt;h2 id="subagents-और-agent-teams"&gt;Subagents और agent teams&lt;/h2&gt;
&lt;p&gt;Agent Host Protocol अब subagents support करता है। एक agent किसी task के हिस्सों को handle करने के लिए दूसरे agents spin up कर सकता है। इसे delegation की तरह सोचें — आपका main agent coordinate करता है, और specialized agents टुकड़े handle करते हैं।&lt;/p&gt;
&lt;p&gt;यह early है, लेकिन .NET workflows के लिए potential स्पष्ट है। कल्पना करें एक agent आपके EF Core migrations handle करे जबकि दूसरा integration tests setup करे। हम पूरी तरह वहाँ नहीं हैं, लेकिन अभी protocol support land होने का मतलब है tooling जल्दी आएगी।&lt;/p&gt;
&lt;h2 id="agents-input-भजन-पर-terminal-output-automatically-include-हत-ह"&gt;Agents input भेजने पर terminal output automatically include होता है&lt;/h2&gt;
&lt;p&gt;छोटा लेकिन meaningful। जब कोई agent terminal को input भेजता है, terminal output अब automatically context में include हो जाता है। पहले, agent को बस यह देखने के लिए एक extra turn लेना पड़ता था कि क्या हुआ।&lt;/p&gt;
&lt;p&gt;अगर आपने कभी किसी agent को &lt;code&gt;dotnet build&lt;/code&gt; चलाते, fail होते, और फिर error देखने के लिए सिर्फ एक और round-trip लेते देखा है — वह friction खत्म हो गया। यह output तुरंत देखता है और react करता है।&lt;/p&gt;
&lt;h2 id="macos-पर-self-updating-agents-app"&gt;macOS पर self-updating Agents app&lt;/h2&gt;
&lt;p&gt;macOS पर standalone Agents app अब self-update करती है। अब manually नए versions download नहीं करने होंगे। यह बस current रहती है।&lt;/p&gt;
&lt;h2 id="जनन-लयक-छट-बत"&gt;जानने लायक छोटी बातें&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;package.json hovers&lt;/strong&gt; अब installed version और latest available दोनों दिखाते हैं। Useful है अगर आप .NET projects के साथ npm tooling manage करते हैं।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JSDoc&lt;/strong&gt; comments में &lt;strong&gt;Images&lt;/strong&gt; hovers और completions में सही render होती हैं।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot CLI sessions&lt;/strong&gt; अब indicate करती हैं कि वे VS Code द्वारा बनाई गईं या externally — handy जब आप terminals के बीच jump कर रहे हों।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot CLI, Claude Code, और Gemini CLI&lt;/strong&gt; shell types के रूप में recognize होते हैं। Editor जानता है आप क्या चला रहे हैं।&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;VS Code 1.117 कोई flashy feature dump नहीं है। यह infrastructure है। Worktree isolation, persistent permissions, subagent protocols — ये उस workflow के building blocks हैं जहाँ agents बिना आपके code पर कदम रखे real, parallel tasks handle करते हैं।&lt;/p&gt;
&lt;p&gt;अगर आप .NET से build कर रहे हैं और अभी तक agentic workflow में नहीं उतरे हैं, तो honestly, अब शुरू करने का समय है।&lt;/p&gt;</content:encoded></item><item><title>Docker Sandbox, Copilot Agents को आपकी मशीन को जोखिम में डाले बिना Code Refactor करने देता है</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/</guid><description>Docker Sandbox, GitHub Copilot agents को refactoring के लिए एक सुरक्षित microVM देता है — कोई permission prompt नहीं, host को कोई खतरा नहीं। यहाँ जानें यह बड़े पैमाने पर .NET modernization के लिए सब कुछ कैसे बदलता है।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/"&gt;यहाँ क्लिक करें&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;अगर आपने Copilot के agent mode का उपयोग छोटे edits से परे किसी काम के लिए किया है, तो आप वह तकलीफ जानते हैं। हर file write, हर terminal command — एक और permission prompt। अब कल्पना करें कि यह 50 projects में चलाना हो। मज़ेदार नहीं।&lt;/p&gt;
&lt;p&gt;Azure team ने &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 agents के लिए Docker Sandbox&lt;/a&gt; के बारे में एक post publish किया है, और सच में, यह सबसे practical agentic tooling improvements में से एक है जो मैंने देखी है। यह microVMs का उपयोग करता है ताकि Copilot को एक पूरी तरह से isolated environment मिल सके जहाँ यह खुलकर काम कर सके — packages install करना, builds चलाना, tests execute करना — आपके host system को छुए बिना।&lt;/p&gt;
&lt;h2 id="docker-sandbox-वसतव-म-कय-दत-ह"&gt;Docker Sandbox वास्तव में क्या देता है&lt;/h2&gt;
&lt;p&gt;Core idea सरल है: एक पूर्ण Linux environment के साथ एक lightweight microVM spin up करें, अपना workspace उसमें sync करें, और Copilot agent को उसके अंदर freely काम करने दें। जब यह हो जाए, changes sync back हो जाती हैं।&lt;/p&gt;
&lt;p&gt;यहाँ वह है जो इसे सिर्फ &amp;ldquo;container में चीज़ें चलाने&amp;rdquo; से अधिक बनाता है:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bidirectional workspace sync&lt;/strong&gt; जो absolute paths को preserve करता है। आपकी project structure sandbox के अंदर बिल्कुल एक जैसी दिखती है। Path-related build failures नहीं।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Private Docker daemon&lt;/strong&gt; जो microVM के अंदर चलता है। Agent containers build और run कर सकता है बिना कभी आपके host के Docker socket को mount किए। Security के लिए यह बहुत बड़ी बात है।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTTP/HTTPS filtering proxies&lt;/strong&gt; जो control करते हैं कि agent network पर क्या reach कर सकता है। आप तय करते हैं कि कौन-से registries और endpoints allowed हैं। Sandbox के अंदर एक rogue &lt;code&gt;npm install&lt;/code&gt; से supply chain attacks? Blocked।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;YOLO mode&lt;/strong&gt; — हाँ, यही वे इसे कहते हैं। Agent बिना permission prompts के चलता है क्योंकि यह literally आपके host को नुकसान नहीं पहुँचा सकता। हर destructive action contained है।&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="net-developers-क-कय-परवह-करन-चहए"&gt;.NET Developers को क्यों परवाह करनी चाहिए&lt;/h2&gt;
&lt;p&gt;उस modernization work के बारे में सोचें जिसका सामना इतनी सारी teams कर रही हैं। आपके पास 30 projects का एक .NET Framework solution है, और आपको इसे .NET 9 पर move करना है। वह सैकड़ों file changes हैं — project files, namespace updates, API replacements, NuGet migrations।&lt;/p&gt;
&lt;p&gt;Docker Sandbox के साथ, आप एक Copilot agent को किसी project पर point कर सकते हैं, उसे microVM के अंदर freely refactor करने दे सकते हैं, validate करने के लिए &lt;code&gt;dotnet build&lt;/code&gt; और &lt;code&gt;dotnet test&lt;/code&gt; चला सकते हैं, और केवल वे changes accept कर सकते हैं जो वास्तव में काम करती हैं। इस जोखिम के बिना कि experimenting करते समय यह आपके local dev environment को accidentally बर्बाद कर दे।&lt;/p&gt;
&lt;p&gt;Post में &lt;strong&gt;parallel agents की एक fleet&lt;/strong&gt; चलाने का भी वर्णन है — प्रत्येक अपने sandbox में — जो एक साथ अलग-अलग projects से निपटती हैं। बड़े .NET solutions या microservice architectures के लिए, यह बहुत बड़ा समय बचाने वाला है। एक agent per service, सभी isolated होकर चल रहे हैं, सभी independently validate हो रहे हैं।&lt;/p&gt;
&lt;h2 id="security-पकष-मयन-रखत-ह"&gt;Security पक्ष मायने रखता है&lt;/h2&gt;
&lt;p&gt;यहाँ वह बात है जो ज़्यादातर लोग छोड़ देते हैं: जब आप एक AI agent को arbitrary commands execute करने देते हैं, तो आप उस पर अपनी पूरी machine का भरोसा कर रहे हैं। Docker Sandbox उस model को पलट देता है। Agent को एक throwaway environment के अंदर पूरी autonomy मिलती है। Network proxy सुनिश्चित करता है कि यह केवल approved sources से pull कर सकता है। आपका host filesystem, Docker daemon, और credentials अछूते रहते हैं।&lt;/p&gt;
&lt;p&gt;Compliance requirements वाली teams के लिए — और ज़्यादातर enterprise .NET shops की यही स्थिति है — यह &amp;ldquo;हम agentic AI उपयोग नहीं कर सकते&amp;rdquo; और &amp;ldquo;हम इसे safely adopt कर सकते हैं&amp;rdquo; के बीच का अंतर है।&lt;/p&gt;
&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;Docker Sandbox agentic coding के मूलभूत tension को हल करता है: agents को उपयोगी होने के लिए स्वतंत्रता चाहिए, लेकिन आपकी host machine पर स्वतंत्रता खतरनाक है। MicroVMs आपको दोनों देते हैं। अगर आप कोई बड़े पैमाने का .NET refactoring या modernization plan कर रहे हैं, तो इसे अभी set up करना उचित है। Copilot की code intelligence को एक safe execution environment के साथ मिलाना ठीक वही है जिसका production teams इंतज़ार कर रही थीं।&lt;/p&gt;</content:encoded></item><item><title>Terminal की देखभाल बंद करें: Aspire का Detached Mode Workflow बदल देता है</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/aspire-detached-mode-free-your-terminal/</guid><description>Aspire 13.2 आपको AppHost को background में चलाने और अपना terminal वापस लेने देता है। नए CLI commands और agent support के साथ मिलाकर, यह उतना बड़ा deal है जितना सुनने में लगता है।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/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 चलाते हैं, तो आपका terminal चला जाता है। बंद। कब्ज़ा हो जाता है जब तक आप Ctrl+C से बाहर नहीं निकलते। एक quick command चलानी है? दूसरा tab खोलिए। Logs चेक करने हैं? एक और tab। यह एक छोटी सी रुकावट है जो जल्दी बड़ी हो जाती है।&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;, और सच कहूँ तो, यह उन features में से एक है जो तुरंत आपके काम करने का तरीका बदल देती है।&lt;/p&gt;
&lt;h2 id="detached-mode-एक-command-terminal-वपस"&gt;Detached mode: एक command, terminal वापस&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; का shorthand है। आपका AppHost background में boot होता है और आपको तुरंत terminal वापस मिल जाता है। कोई extra tab नहीं। कोई terminal multiplexer नहीं। बस आपका prompt, काम के लिए तैयार।&lt;/p&gt;
&lt;h2 id="ज-चल-रह-ह-उस-manage-करन"&gt;जो चल रहा है उसे manage करना&lt;/h2&gt;
&lt;p&gt;यहाँ बात यह है — background में चलाना तभी उपयोगी है जब आप वाकई manage कर सकें कि क्या चल रहा है। Aspire 13.2 इसके लिए CLI commands का पूरा सेट लेकर आता है:&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;# सभी running AppHosts की list&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;# किसी specific AppHost की state देखें&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;# किसी running AppHost के logs stream करें&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;# किसी 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 एक proper process manager बन जाता है। आप कई AppHosts शुरू कर सकते हैं, उनकी status चेक कर सकते हैं, उनके logs tail कर सकते हैं, और उन्हें बंद कर सकते हैं — सब एक ही terminal session से।&lt;/p&gt;
&lt;h2 id="isolated-mode-क-सथ-मलए"&gt;Isolated mode के साथ मिलाएं&lt;/h2&gt;
&lt;p&gt;Detached mode naturally isolated mode के साथ काम करता है। क्या आप बिना port conflicts के background में एक ही project के दो instances चलाना चाहते हैं?&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;हर एक को random ports, अलग secrets, और अपना lifecycle मिलता है। दोनों देखने के लिए &lt;code&gt;aspire ps&lt;/code&gt; का उपयोग करें, जिसे बंद करना हो उसके लिए &lt;code&gt;aspire stop&lt;/code&gt; का।&lt;/p&gt;
&lt;h2 id="coding-agents-क-लए-यह-कय-बड-बत-ह"&gt;Coding agents के लिए यह क्यों बड़ी बात है&lt;/h2&gt;
&lt;p&gt;यहीं चीज़ें वाकई दिलचस्प हो जाती हैं। आपके terminal में काम करने वाला एक coding agent अब यह कर सकता है:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;aspire start&lt;/code&gt; से app शुरू करें&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aspire describe&lt;/code&gt; से उसकी state query करें&lt;/li&gt;
&lt;li&gt;समस्याएं diagnose करने के लिए &lt;code&gt;aspire logs&lt;/code&gt; से logs चेक करें&lt;/li&gt;
&lt;li&gt;काम हो जाने पर &lt;code&gt;aspire stop&lt;/code&gt; से बंद करें&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;बिना terminal session खोए। Detached mode से पहले, एक agent जो आपका AppHost चलाता वह अपने ही terminal से lock out हो जाता। अब वह शुरू कर सकता है, observe कर सकता है, iterate कर सकता है, और cleanup कर सकता है — बिल्कुल वैसे जैसा आप एक autonomous agent से चाहते हैं।&lt;/p&gt;
&lt;p&gt;Aspire team ने इसी पर ध्यान दिया। &lt;code&gt;aspire agent init&lt;/code&gt; चलाने से एक Aspire skill file setup होती है जो agents को ये commands सिखाती है। तो Copilot का coding agent जैसे tools out of the box ही आपके Aspire workloads manage कर सकते हैं।&lt;/p&gt;
&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;Detached mode एक simple flag के रूप में छुपा हुआ workflow upgrade है। आप terminals के बीच context-switch करना बंद कर देते हैं, agents खुद को block करना बंद कर देते हैं, और नए CLI commands आपको यह देखने की असली visibility देते हैं कि क्या चल रहा है। यह practical है, यह clean है, और यह daily development loop को ध्यान देने योग्य रूप से smooth बनाता है।&lt;/p&gt;
&lt;p&gt;सभी details के लिए &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 Tools अब Visual Studio 2022 में बिल्ट-इन हैं — कोई Extension ज़रूरी नहीं</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/</guid><description>Azure MCP tools अब Visual Studio 2022 में Azure development workload के हिस्से के रूप में आते हैं। 230 से अधिक tools, 45 Azure services, और कोई extension इंस्टॉल नहीं करना।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/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 में अलग extension के ज़रिए Azure MCP tools use करते रहे हैं, तो आप उस झंझट से परिचित हैं — VSIX install करो, restart करो, उम्मीद करो कि टूटे नहीं, version mismatches manage करो। वो friction अब खत्म हो गई।&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 tools अब सीधे Visual Studio 2022 में Azure development workload के हिस्से के रूप में आते हैं। कोई extension नहीं। कोई VSIX नहीं। कोई restart dance नहीं।&lt;/p&gt;
&lt;h2 id="इसक-वसतव-म-कय-मतलब-ह"&gt;इसका वास्तव में क्या मतलब है&lt;/h2&gt;
&lt;p&gt;Visual Studio 2022 version 17.14.30 से शुरू होकर, Azure MCP Server Azure development workload के साथ bundled आता है। अगर आपके पास पहले से वो workload installed है, तो बस GitHub Copilot Chat में उसे toggle on करना है और आप तैयार हैं।&lt;/p&gt;
&lt;p&gt;45 Azure services में 230 से अधिक tools — सीधे chat window से accessible। अपने storage accounts list करें, ASP.NET Core app deploy करें, App Service issues diagnose करें, Log Analytics query करें — बिना browser tab खोले।&lt;/p&gt;
&lt;h2 id="यह-जतन-लगत-ह-उसस-जयद-मयन-कय-रखत-ह"&gt;यह जितना लगता है उससे ज़्यादा मायने क्यों रखता है&lt;/h2&gt;
&lt;p&gt;Developer tooling की असली बात यह है: हर extra step friction है, और friction adoption को मार देती है। MCP को एक अलग extension के रूप में रखने का मतलब था version mismatches, installation failures, और एक और चीज़ जो update रखनी होगी। इसे workload में बेक करने का मतलब है:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visual Studio Installer के ज़रिए &lt;strong&gt;एकल update path&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Extension और IDE के बीच &lt;strong&gt;कोई version drift नहीं&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;हमेशा current&lt;/strong&gt; — MCP Server VS के regular releases के साथ update होता है&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Azure पर standardize करने वाली teams के लिए यह बड़ी बात है। Workload एक बार install करें, tools enable करें, और वे हर session के लिए वहाँ मौजूद हैं।&lt;/p&gt;
&lt;h2 id="इसस-आप-कय-कर-सकत-ह"&gt;इससे आप क्या कर सकते हैं&lt;/h2&gt;
&lt;p&gt;Tools Copilot Chat के ज़रिए पूरे development lifecycle को cover करते हैं:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;सीखें&lt;/strong&gt; — Azure services, best practices, architecture patterns के बारे में पूछें&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Design और develop करें&lt;/strong&gt; — service recommendations पाएं, app code configure करें&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deploy करें&lt;/strong&gt; — resources provision करें और IDE से सीधे deploy करें&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Troubleshoot करें&lt;/strong&gt; — logs query करें, resource health check करें, production issues diagnose करें&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;एक quick example — Copilot Chat में यह type करें:&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 tools call करता है, आपके subscriptions query करता है, और names, locations, और SKUs के साथ एक formatted list return करता है। कोई portal ज़रूरी नहीं।&lt;/p&gt;
&lt;h2 id="इस-कस-enable-कर"&gt;इसे कैसे enable करें&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Visual Studio 2022 &lt;strong&gt;17.14.30&lt;/strong&gt; या उससे ऊपर update करें&lt;/li&gt;
&lt;li&gt;सुनिश्चित करें कि &lt;strong&gt;Azure development&lt;/strong&gt; workload installed है&lt;/li&gt;
&lt;li&gt;GitHub Copilot Chat खोलें&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Select tools&lt;/strong&gt; button (दो wrenches icon) पर क्लिक करें&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure MCP Server&lt;/strong&gt; को toggle on करें&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;बस इतना। यह sessions के बीच enabled रहता है।&lt;/p&gt;
&lt;h2 id="एक-धयन-दन-यगय-बत"&gt;एक ध्यान देने योग्य बात&lt;/h2&gt;
&lt;p&gt;Tools default रूप से disabled हैं — आपको opt in करना होगा। VS 2026-specific tools VS 2022 में उपलब्ध नहीं हैं। Tool availability आपके Azure subscription permissions पर भी निर्भर करती है, जैसे portal में होती है।&lt;/p&gt;
&lt;h2 id="बड-तसवर"&gt;बड़ी तस्वीर&lt;/h2&gt;
&lt;p&gt;यह एक स्पष्ट trend का हिस्सा है: MCP developer IDEs में cloud tools surface करने का मानक तरीका बनता जा रहा है। हम पहले ही &lt;a href="https://devblogs.microsoft.com/azure-sdk/announcing-azure-mcp-server-2-0-stable-release/"&gt;Azure MCP Server 2.0 stable release&lt;/a&gt; और VS Code तथा अन्य editors में MCP integrations देख चुके हैं। इसे Visual Studio के workload system में built in होना स्वाभाविक प्रगति है।&lt;/p&gt;
&lt;p&gt;हम .NET developers जो Visual Studio में काम करते हैं, उनके लिए यह Azure portal पर context-switch करने का एक और कारण हटाता है। और सच में, जितना कम tab-switching, उतना बेहतर।&lt;/p&gt;</content:encoded></item><item><title>azd update — आपके सभी Package Managers को एक Command से संभालें</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/azd-update-universal-upgrade-command/</guid><description>Azure Developer CLI में अब एक universal update command है जो काम करती है चाहे आपने इसे कैसे भी install किया हो — winget, Homebrew, Chocolatey, या install script।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/emiliano-montesdeoca/azd-update-universal-upgrade-command/"&gt;यहाँ क्लिक करें&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;आपने वो &amp;ldquo;azd का नया version उपलब्ध है&amp;rdquo; message ज़रूर देखा होगा जो हर कुछ हफ्तों में pop up होता है? वो जिसे आप dismiss कर देते हैं क्योंकि आपको याद नहीं कि आपने &lt;code&gt;azd&lt;/code&gt; winget से install किया था, Homebrew से, या उस curl script से जो आपने छह महीने पहले चलाई थी? हाँ, यह finally ठीक हो गया।&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; ship किया है — एक single command जो Azure Developer CLI को latest version में update करती है चाहे आपने इसे originally कैसे भी install किया हो। Windows, macOS, Linux — कोई फर्क नहीं। एक command।&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;बस इतना ही। अगर आप नए features का early access चाहते हैं, तो आप daily insiders build पर switch कर सकते हैं:&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;Command आपकी current installation method detect करती है और under the hood appropriate update mechanism use करती है। अब &amp;ldquo;रुको, इस machine पर मैंने winget use किया था या choco?&amp;rdquo; नहीं।&lt;/p&gt;
&lt;h2 id="छट-स-catch"&gt;छोटी सी catch&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd update&lt;/code&gt; version 1.23.x से शुरू होकर ship होती है। अगर आप पुराने version पर हैं, तो आपको अपनी original installation method से एक आखिरी manual update करनी होगी। उसके बाद, &lt;code&gt;azd update&lt;/code&gt; सब कुछ forward में handle करेगा।&lt;/p&gt;
&lt;p&gt;&lt;code&gt;azd version&lt;/code&gt; से अपना current version check करें। अगर आपको fresh install की ज़रूरत है, &lt;a href="https://learn.microsoft.com/azure/developer/azure-developer-cli/install-azd"&gt;install docs&lt;/a&gt; में सब है।&lt;/p&gt;
&lt;h2 id="यह-कय-मयन-रखत-ह"&gt;यह क्यों मायने रखता है&lt;/h2&gt;
&lt;p&gt;यह एक छोटा quality-of-life improvement है, लेकिन उन लोगों के लिए जो daily basis पर Azure पर AI agents और Aspire apps deploy करने के लिए &lt;code&gt;azd&lt;/code&gt; use करते हैं, current रहने का मतलब है कम &amp;ldquo;यह bug तो latest version में already fix हो गया था&amp;rdquo; moments। एक कम चीज़ जिसके बारे में सोचना पड़े।&lt;/p&gt;
&lt;p&gt;अधिक context के लिए &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;पूरी announcement&lt;/a&gt; और Jon Gallant का &lt;a href="https://blog.jongallant.com/2026/04/azd-update"&gt;deeper dive&lt;/a&gt; पढ़ें।&lt;/p&gt;</content:encoded></item><item><title>.NET Aspire 13.2 आपके AI Agent का सबसे अच्छा दोस्त बनना चाहता है</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/aspire-agentic-development-build-run-observe/</guid><description>Aspire 13.2 agentic development पर पूरी तरह दांव लगाता है — structured CLI output, isolated runs, auto-healing environments, और full OpenTelemetry data ताकि आपके AI agents वास्तव में आपके apps build, run और observe कर सकें।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/emiliano-montesdeoca/aspire-agentic-development-build-run-observe/"&gt;यहाँ क्लिक करें&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;क्या आप जानते हैं वह moment जब आपका AI coding agent कुछ solid code लिखता है, आप excited हो जाते हैं, और फिर वह चीज़ चलाने की कोशिश में सब बिखर जाता है? Port conflicts, phantom processes, गलत environment variables — अचानक आपका agent features बनाने की जगह startup issues troubleshoot करने में tokens जला रहा है।&lt;/p&gt;
&lt;p&gt;Aspire team ने &lt;a href="https://devblogs.microsoft.com/aspire/agentic-dev-aspirations/"&gt;एक thoughtful post&lt;/a&gt; छोड़ी है इसी problem के बारे में, और उनका जवाब compelling है: Aspire 13.2 सिर्फ humans के लिए नहीं, बल्कि AI agents के लिए भी design किया गया है।&lt;/p&gt;
&lt;h2 id="aspire-as-agent-infrastructure"&gt;Aspire as agent infrastructure&lt;/h2&gt;
&lt;p&gt;यहाँ है Aspire 13.2 agentic development के लिए क्या लाता है:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Typed code में पूरा stack।&lt;/strong&gt; AppHost पूरी topology define करता है — compilable 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;strong&gt;एक command सब कुछ के लिए।&lt;/strong&gt; &lt;code&gt;docker compose up&lt;/code&gt;, &lt;code&gt;npm run dev&lt;/code&gt;, और database startup scripts juggle करने के बजाय, सब कुछ बस &lt;code&gt;aspire start&lt;/code&gt; है।&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Parallel agents के लिए isolated mode।&lt;/strong&gt; &lt;code&gt;--isolated&lt;/code&gt; के साथ, हर Aspire run को अपने random ports और separate user secrets मिलते हैं।&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Telemetry के माध्यम से agent की नज़र।&lt;/strong&gt; Aspire CLI development के दौरान full OpenTelemetry data expose करता है — traces, metrics, structured logs।&lt;/p&gt;
&lt;h2 id="bowling-bumper-analogy"&gt;Bowling bumper analogy&lt;/h2&gt;
&lt;p&gt;Aspire team एक बढ़िया analogy उपयोग करती है: Aspire को AI agents के लिए bowling lane bumpers के रूप में सोचें। अगर agent perfect नहीं है, तो bumpers उसे gutter balls फेंकने से रोकते हैं।&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 install करें। पहले से Aspire use कर रहे हैं? &lt;code&gt;aspire update --self&lt;/code&gt; चलाएं। &lt;a href="https://devblogs.microsoft.com/aspire/agentic-dev-aspirations/"&gt;पूरी post&lt;/a&gt; पढ़ें।&lt;/p&gt;</content:encoded></item><item><title>Aspire का Isolated Mode Parallel Development के लिए Port Conflict के nightmare को ठीक करता है</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/aspire-isolated-mode-parallel-instances/</guid><description>Aspire 13.2 --isolated mode लेकर आता है: random ports, अलग secrets, और एक ही AppHost के कई instances चलाने पर शून्य collisions। AI agents, worktrees, और parallel workflows के लिए perfect।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/emiliano-montesdeoca/aspire-isolated-mode-parallel-instances/"&gt;यहाँ क्लिक करें&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;अगर आपने कभी एक ही project के दो instances एक साथ चलाने की कोशिश की है, तो आप इस दर्द को जानते हैं। Port 8080 already in use है। Port 17370 लिया हुआ है। कुछ terminate करो, restart करो, environment variables juggle करो — यह productivity killer है।&lt;/p&gt;
&lt;p&gt;यह समस्या बेहतर नहीं हो रही, बल्कि बदतर हो रही है। AI agents independently काम करने के लिए git worktrees बनाते हैं। Background agents अलग environments spin up करते हैं। Developers feature branches के लिए एक ही repo को दो बार checkout करते हैं। इन सभी scenarios में एक ही दीवार आती है: एक ही app के दो instances एक ही ports पर लड़ रहे हैं।&lt;/p&gt;
&lt;p&gt;Aspire 13.2 इसे एक single flag से ठीक करता है। Aspire team के James Newton-King ने &lt;a href="https://devblogs.microsoft.com/aspire/aspire-isolated-mode-parallel-development/"&gt;पूरी जानकारी लिखी है&lt;/a&gt;, और यह उन features में से एक है जिसके बारे में आप सोचते हैं &amp;ldquo;यह पहले क्यों नहीं था&amp;rdquo;।&lt;/p&gt;
&lt;h2 id="fix---isolated"&gt;Fix: &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;बस इतना ही। हर run को मिलता है:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Random ports&lt;/strong&gt; — instances के बीच कोई collision नहीं&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Isolated user secrets&lt;/strong&gt; — connection strings और API keys हर instance के लिए अलग रहते हैं&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;कोई manual port reassignment नहीं। कोई environment variable juggling नहीं। हर run को automatically एक fresh, collision-free environment मिलता है।&lt;/p&gt;
&lt;h2 id="real-scenarios-जह-यह-चमकत-ह"&gt;Real scenarios जहाँ यह चमकता है&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Multiple checkouts।&lt;/strong&gt; एक directory में feature branch है और दूसरे में bugfix:&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;दोनों बिना conflicts के चलते हैं। Dashboard दिखाता है कि क्या चल रहा है और कहाँ।&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VS Code में background agents।&lt;/strong&gt; जब Copilot Chat का background agent आपके code पर independently काम करने के लिए एक git worktree बनाता है, तो उसे आपका Aspire AppHost चलाना पड़ सकता है। &lt;code&gt;--isolated&lt;/code&gt; के बिना, यह आपके primary worktree के साथ port collision है। इसके साथ, दोनों instances बस काम करते हैं।&lt;/p&gt;
&lt;p&gt;&lt;code&gt;aspire agent init&lt;/code&gt; के साथ ship होने वाली Aspire skill automatically agents को worktrees में काम करते समय &lt;code&gt;--isolated&lt;/code&gt; use करने का निर्देश देती है। तो Copilot का background agent इसे out of the box handle करना चाहिए।&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Development के साथ-साथ integration tests।&lt;/strong&gt; Features build करते हुए एक live AppHost के against tests चलाने की ज़रूरत है? Isolated mode हर context को अपने ports और config देता है।&lt;/p&gt;
&lt;h2 id="यह-under-the-hood-कस-कम-करत-ह"&gt;यह under the hood कैसे काम करता है&lt;/h2&gt;
&lt;p&gt;जब आप &lt;code&gt;--isolated&lt;/code&gt; pass करते हैं, तो CLI run के लिए एक unique instance ID generate करता है। यह दो behaviors drive करता है:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Port randomization&lt;/strong&gt; — आपके AppHost config में defined predictable ports को bind करने की बजाय, isolated mode सब कुछ के लिए random available ports pick करता है — dashboard, service endpoints, सब कुछ। Service discovery automatically adjust होती है, इसलिए services एक-दूसरे को ढूंढ लेती हैं चाहे वे किसी भी port पर land करें।&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Secret isolation&lt;/strong&gt; — हर isolated run को अपना user secrets store मिलता है, instance ID से keyed। एक run के connection strings और API keys दूसरे में leak नहीं होते।&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;आपके code में कोई बदलाव नहीं चाहिए। Aspire की service discovery endpoints को runtime पर resolve करती है, इसलिए सब कुछ सही से connect होता है चाहे port assignment कुछ भी हो।&lt;/p&gt;
&lt;h2 id="इस-कब-use-कर"&gt;इसे कब use करें&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;--isolated&lt;/code&gt; तब use करें जब एक ही AppHost के कई instances एक साथ चला रहे हों — चाहे वह parallel development हो, automated tests हों, AI agents हों, या git worktrees हों। Single-instance development के लिए जहाँ आप predictable ports पसंद करते हैं, regular &lt;code&gt;aspire run&lt;/code&gt; अभी भी ठीक काम करता है।&lt;/p&gt;
&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;Isolated mode एक छोटी feature है जो एक असली, तेज़ी से common होती समस्या को हल करती है। जैसे-जैसे AI-assisted development हमें अधिक parallel workflows की तरफ धकेलता है — multiple agents, multiple worktrees, multiple contexts — ports पर लड़ाई के बिना बस एक और instance spin up करने की क्षमता ज़रूरी है।&lt;/p&gt;
&lt;p&gt;सभी technical details के लिए &lt;a href="https://devblogs.microsoft.com/aspire/aspire-isolated-mode-parallel-development/"&gt;पूरा पोस्ट&lt;/a&gt; पढ़ें और 13.2 आज़माने के लिए &lt;code&gt;aspire update --self&lt;/code&gt; से update करें।&lt;/p&gt;</content:encoded></item><item><title>Visual Studio की वो Floating Windows सेटिंग जो आप नहीं जानते थे (लेकिन जाननी चाहिए)</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/</guid><description>Visual Studio की एक छुपी सेटिंग आपको floating windows पर पूरा नियंत्रण देती है — independent taskbar entries, सही multi-monitor behavior, और FancyZones के साथ बेहतरीन integration। एक dropdown सब कुछ बदल देता है।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/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 के साथ multiple monitors इस्तेमाल करते हैं (और सच कहें तो आजकल कौन नहीं करता), तो आपने यह परेशानी जरूर झेली होगी: floating tool windows मुख्य IDE minimize करते ही गायब हो जाती हैं, वे हमेशा बाकी सब चीज़ों के ऊपर रहती हैं, और taskbar में अलग बटन के रूप में नहीं दिखतीं। कुछ workflows के लिए यह ठीक है, लेकिन multi-monitor setups के लिए यह बहुत frustrating है।&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;एक कम-जानी-मानी सेटिंग share की&lt;/a&gt; जो floating windows के व्यवहार को पूरी तरह बदल देती है। बस एक dropdown। बस।&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;&amp;ldquo;These floating windows are owned by the main window&amp;rdquo; dropdown में तीन विकल्प हैं:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;None&lt;/strong&gt; — पूरी स्वतंत्रता। हर floating window को अपना taskbar entry मिलता है और यह एक सामान्य Windows window की तरह व्यवहार करती है।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tool Windows&lt;/strong&gt; (default) — documents स्वतंत्र रूप से float होते हैं, tool windows IDE से जुड़ी रहती हैं।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Documents and Tool Windows&lt;/strong&gt; — Visual Studio का classic व्यवहार, सब कुछ main window से बंधा रहता है।&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="multi-monitor-setups-क-लए-none-ह-सह-वकलप-ह"&gt;Multi-monitor setups के लिए &amp;ldquo;None&amp;rdquo; ही सही विकल्प है&lt;/h2&gt;
&lt;p&gt;इसे &lt;strong&gt;None&lt;/strong&gt; पर सेट करें और अचानक आपकी सभी floating tool windows और documents असली Windows applications की तरह व्यवहार करने लगती हैं। वे taskbar में दिखती हैं, main Visual Studio window minimize करने पर भी visible रहती हैं, और खुद को बाकी सब चीज़ों के आगे नहीं रखतीं।&lt;/p&gt;
&lt;p&gt;इसे &lt;strong&gt;PowerToys FancyZones&lt;/strong&gt; के साथ combine करें और यह game changer साबित होता है। अपने monitors पर custom layouts बनाएं, Solution Explorer को एक zone में snap करें, debugger को दूसरे में, और code files जहाँ चाहें। सब कुछ अपनी जगह रहता है, सब कुछ independently accessible है, और आपका workspace अव्यवस्थित की बजाय organised लगता है।&lt;/p&gt;
&lt;h2 id="तवरत-सझव"&gt;त्वरित सुझाव&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-monitor power users&lt;/strong&gt;: &lt;strong&gt;None&lt;/strong&gt; सेट करें, FancyZones के साथ जोड़ें&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;कभी-कभार float करने वाले&lt;/strong&gt;: &lt;strong&gt;Tool Windows&lt;/strong&gt; (default) एक अच्छा middle ground है&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;पारंपरिक workflow&lt;/strong&gt;: &lt;strong&gt;Documents and Tool Windows&lt;/strong&gt; सब कुछ classic रखता है&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pro tip: किसी भी tool window title bar पर &lt;strong&gt;Ctrl + double-click&lt;/strong&gt; करके तुरंत float या dock करें। सेटिंग बदलने के बाद restart की जरूरत नहीं।&lt;/p&gt;
&lt;h2 id="अतम-बत"&gt;अंतिम बात&lt;/h2&gt;
&lt;p&gt;यह उन सेटिंग्स में से एक है जिनके बारे में सोचकर आप कहते हैं &amp;ldquo;मुझे यह पहले क्यों नहीं पता था&amp;rdquo;। अगर Visual Studio में floating windows ने कभी आपको परेशान किया है, तो अभी जाकर यह बदलें।&lt;/p&gt;
&lt;p&gt;विवरण और screenshots के लिए &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.116 — Agents App में Keyboard Navigation और File Context Completions</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/vscode-1-116-agents-app-updates/</guid><description>VS Code 1.116 का ध्यान Agents app की polish पर है — dedicated keybindings, accessibility improvements, file-context completions, और CSS @import link resolution।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/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 April 2026 release है, और हालाँकि यह कुछ recent updates से हल्की है, बदलाव focused और meaningful हैं — खासकर अगर आप रोज़ाना Agents app use कर रहे हैं।&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.visualstudio.com/updates/v1_116"&gt;official release notes&lt;/a&gt; के आधार पर, यहाँ क्या मिला है।&lt;/p&gt;
&lt;h2 id="agents-app-म-सधर"&gt;Agents app में सुधार&lt;/h2&gt;
&lt;p&gt;Agents app उपयोगिता polish के साथ mature होता जा रहा है जो रोज़मर्रा के workflows में वास्तविक फर्क डालती है:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dedicated keybindings&lt;/strong&gt; — अब आप dedicated commands और keyboard shortcuts से Changes view, Changes के अंदर files tree, और Chat Customizations view focus कर सकते हैं। अगर आप Agents app में navigate करने के लिए click करते रहे हैं, तो यह पूरी keyboard-driven workflows लाता है।&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Accessibility help dialog&lt;/strong&gt; — chat input box में &lt;code&gt;Alt+F1&lt;/code&gt; दबाने पर अब एक accessibility help dialog खुलता है जो available commands और keybindings दिखाता है। Screen reader users announcement verbosity भी control कर सकते हैं। अच्छी accessibility सभी को फायदा पहुँचाती है।&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;File-context completions&lt;/strong&gt; — Agents app chat में &lt;code&gt;#&lt;/code&gt; type करें और आपके current workspace तक scoped file-context completions trigger होती हैं। यह उन छोटे quality-of-life improvements में से एक है जो हर interaction को तेज़ बनाती है — code reference करते समय अब पूरे file paths type नहीं करने होंगे।&lt;/p&gt;
&lt;h2 id="css-import-link-resolution"&gt;CSS &lt;code&gt;@import&lt;/code&gt; link resolution&lt;/h2&gt;
&lt;p&gt;Frontend developers के लिए एक अच्छी addition: VS Code अब CSS &lt;code&gt;@import&lt;/code&gt; references resolve करता है जो node_modules paths use करते हैं। आप bundlers use करते समय &lt;code&gt;@import &amp;quot;some-module/style.css&amp;quot;&lt;/code&gt; जैसे imports को &lt;code&gt;Ctrl+click&lt;/code&gt; से follow कर सकते हैं। छोटा है लेकिन CSS workflows में एक friction point खत्म करता है।&lt;/p&gt;
&lt;h2 id="अतम-बत"&gt;अंतिम बात&lt;/h2&gt;
&lt;p&gt;VS Code 1.116 refinement के बारे में है — Agents app को अधिक navigable, अधिक accessible, और अधिक keyboard-friendly बनाना। अगर आप Agents app में काफी समय बिता रहे हैं (और मुझे लगता है हम में से कई बिता रहे हैं), तो ये बदलाव जुड़ते जाते हैं।&lt;/p&gt;
&lt;p&gt;पूरी list के लिए &lt;a href="https://code.visualstudio.com/updates/v1_116"&gt;full release notes&lt;/a&gt; देखें।&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.115 — Background Terminal Notifications, SSH Agent Mode, और भी बहुत कुछ</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/vscode-1-115-agent-improvements/</guid><description>VS Code 1.115 में agents के लिए background terminal notifications, SSH remote agent hosting, terminal में file paste, और session-aware edit tracking आई है। .NET डेवलपर्स के लिए क्या मायने रखता है।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/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;, और हालाँकि headline features के मामले में यह थोड़ी हल्की release है, agent-related सुधार genuinely useful हैं अगर आप रोज़ाना AI coding assistants के साथ काम करते हैं।&lt;/p&gt;
&lt;p&gt;आइए वो बातें highlight करें जो वाकई जानने लायक हैं।&lt;/p&gt;
&lt;h2 id="background-terminals-agents-क-जवब-दत-ह"&gt;Background terminals agents को जवाब देते हैं&lt;/h2&gt;
&lt;p&gt;यह standout feature है। Background terminals अब automatically agents को notify करते हैं जब commands पूरी होती हैं, जिसमें exit code और terminal output शामिल होता है। Background terminals में input prompts भी detect होते हैं और user को दिखाए जाते हैं।&lt;/p&gt;
&lt;p&gt;यह क्यों मायने रखता है? अगर आपने background में build commands या test suites चलाने के लिए Copilot के agent mode का उपयोग किया है, तो आप जानते हैं &amp;ldquo;क्या वो खत्म हुई?&amp;rdquo; वाली परेशानी — background terminals essentially fire-and-forget थे। अब agent notify होता है जब आपका &lt;code&gt;dotnet build&lt;/code&gt; या &lt;code&gt;dotnet test&lt;/code&gt; पूरा होता है, output देखता है, और उसी के अनुसार react करता है। यह एक छोटा बदलाव है जो agent-driven workflows को काफी ज्यादा reliable बनाता है।&lt;/p&gt;
&lt;p&gt;एक नया &lt;code&gt;send_to_terminal&lt;/code&gt; tool भी है जो agents को user confirmation के साथ background terminals में commands भेजने देता है, उस समस्या को fix करते हुए जहाँ timeout के साथ &lt;code&gt;run_in_terminal&lt;/code&gt; terminals को background में move कर देता था और उन्हें read-only बना देता था।&lt;/p&gt;
&lt;h2 id="ssh-remote-agent-hosting"&gt;SSH remote agent hosting&lt;/h2&gt;
&lt;p&gt;VS Code अब SSH के ज़रिए remote machines से connect करने, CLI automatically install करने, और उसे agent host mode में start करने को support करता है। इसका मतलब है आपके AI agent sessions सीधे remote environments को target कर सकते हैं — .NET डेवलपर्स के लिए useful जो Linux servers या cloud VMs पर build और test करते हैं।&lt;/p&gt;
&lt;h2 id="agent-sessions-म-edit-tracking"&gt;Agent sessions में edit tracking&lt;/h2&gt;
&lt;p&gt;Agent sessions के दौरान किए गए file edits अब track और restore होते हैं, diffs, undo/redo, और state restoration के साथ। अगर कोई agent आपके code में changes करता है और कुछ गलत हो जाता है, तो आप देख सकते हैं क्या बदला और उसे वापस ला सकते हैं। Agents को आपका codebase modify करने देने में मन की शांति।&lt;/p&gt;
&lt;h2 id="browser-tab-awareness-और-अनय-सधर"&gt;Browser tab awareness और अन्य सुधार&lt;/h2&gt;
&lt;p&gt;कुछ और quality-of-life additions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Browser tab tracking&lt;/strong&gt; — chat अब session के दौरान खोले गए browser tabs को track और link कर सकती है, ताकि agents आपके देख रहे web pages reference कर सकें&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terminal में file paste&lt;/strong&gt; — files (images सहित) Ctrl+V, drag-and-drop, या right-click से terminal में paste करें&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Minimap में test coverage&lt;/strong&gt; — quick visual overview के लिए test coverage indicators अब minimap में दिखते हैं&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mac पर pinch-to-zoom&lt;/strong&gt; — integrated browser pinch-to-zoom gestures support करता है&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sessions में Copilot entitlements&lt;/strong&gt; — status bar Sessions view में usage info दिखाता है&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Go to File में Favicon&lt;/strong&gt; — quick pick list में open web pages favicons दिखाते हैं&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="अतम-बत"&gt;अंतिम बात&lt;/h2&gt;
&lt;p&gt;VS Code 1.115 एक incremental release है, लेकिन agent improvements — background terminal notifications, SSH agent hosting, और edit tracking — AI-assisted development के लिए noticeably smoother experience बनाते हैं। अगर आप .NET projects के लिए Copilot के agent mode का उपयोग कर रहे हैं, तो ये वो quality-of-life fixes हैं जो रोज़ाना friction कम करते हैं।&lt;/p&gt;
&lt;p&gt;हर detail के लिए &lt;a href="https://code.visualstudio.com/updates/v1_115"&gt;full release notes&lt;/a&gt; देखें।&lt;/p&gt;</content:encoded></item><item><title>Aspire 13.2 एक Docs CLI लेकर आया है — और आपका AI Agent भी इसका उपयोग कर सकता है</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/aspire-docs-cli-ai-skills/</guid><description>.NET Aspire 13.2 में aspire docs जोड़ा गया है — terminal छोड़े बिना official documentation खोजने, browse करने और पढ़ने के लिए एक CLI। यह AI agents के लिए tool की तरह भी काम करता है। यहाँ जानें यह क्यों मायने रखता है।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/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 में गहरे डूबे हों, integrations wire up कर रहे हों, और आपको ठीक-ठीक जाँचना हो कि Redis integration किन parameters की उम्मीद करती है। आप browser पर alt-tab करते हैं, aspire.dev पर खोजते हैं, API docs को ध्यान से देखते हैं, फिर editor पर वापस आते हैं। Context खो गया। Flow टूट गया।&lt;/p&gt;
&lt;p&gt;Aspire 13.2 ने &lt;a href="https://devblogs.microsoft.com/aspire/aspire-docs-in-your-terminal/"&gt;इसका हल ship किया है&lt;/a&gt;। &lt;code&gt;aspire docs&lt;/code&gt; CLI आपको official Aspire documentation को सीधे अपने terminal से search, browse, और पढ़ने देता है। और चूंकि यह reusable services से backed है, AI agents और skills वही commands use करके docs lookup कर सकते हैं, न कि ऐसी APIs hallucinate करें जो exist ही नहीं करतीं।&lt;/p&gt;
&lt;h2 id="यह-वसतव-म-कस-समसय-क-हल-करत-ह"&gt;यह वास्तव में किस समस्या को हल करता है&lt;/h2&gt;
&lt;p&gt;David Pine original post में बिल्कुल सही बात कहते हैं: AI agents Aspire apps बनाने में developers की मदद करने में &lt;em&gt;बेकार&lt;/em&gt; थे। वे &lt;code&gt;aspire run&lt;/code&gt; की जगह &lt;code&gt;dotnet run&lt;/code&gt; recommend करते, aspire.dev के docs के लिए learn.microsoft.com reference करते, outdated NuGet packages suggest करते, और — मेरी personal favorite — ऐसी APIs hallucinate करते जो exist ही नहीं करतीं।&lt;/p&gt;
&lt;p&gt;क्यों? क्योंकि Aspire polyglot बनने से कहीं ज़्यादा समय तक .NET-specific था, और LLMs ऐसे training data से काम कर रहे हैं जो latest features से पहले का है। जब आप एक AI agent को actual docs lookup करने की क्षमता देते हैं, तो वह अंदाज़े लगाना बंद कर देता है और उपयोगी बनने लगता है।&lt;/p&gt;
&lt;h2 id="तन-commands-शनय-browser-tabs"&gt;तीन commands, शून्य browser tabs&lt;/h2&gt;
&lt;p&gt;CLI refreshingly simple है:&lt;/p&gt;
&lt;h3 id="सभ-docs-list-कर"&gt;सभी docs list करें&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 पर available हर documentation page return करता है। Machine-readable output चाहिए? &lt;code&gt;--format Json&lt;/code&gt; जोड़ें।&lt;/p&gt;
&lt;h3 id="कस-topic-क-search-कर"&gt;किसी topic को search करें&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;weighted relevance scoring के साथ titles और content दोनों में search करता है। वही search engine जो internally documentation tooling को power करता है। आपको titles, slugs, और relevance scores के साथ ranked results मिलते हैं।&lt;/p&gt;
&lt;h3 id="पर-page-पढ-य-सरफ-एक-section"&gt;पूरा page पढ़ें (या सिर्फ एक section)&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire docs get redis-integration
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;पूरा page markdown के रूप में आपके terminal में stream करता है। सिर्फ एक section चाहिए?&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire docs get redis-integration --section &lt;span class="s2"&gt;&amp;#34;Add Redis resource&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;सटीक precision। 500 lines scroll करने की ज़रूरत नहीं। बस वो हिस्सा जो आपको चाहिए।&lt;/p&gt;
&lt;h2 id="ai-agent-क-angle"&gt;AI agent का angle&lt;/h2&gt;
&lt;p&gt;यहाँ AI tooling के साथ build करने वाले developers के लिए दिलचस्प बात है। वही &lt;code&gt;aspire docs&lt;/code&gt; commands AI agents के लिए tools की तरह काम करते हैं — skills, MCP servers, या simple CLI wrappers के ज़रिये।&lt;/p&gt;
&lt;p&gt;आपके AI assistant के stale training data के आधार पर Aspire APIs बनाने की बजाय, वह &lt;code&gt;aspire docs search &amp;quot;postgres&amp;quot;&lt;/code&gt; call कर सकता है, official integration docs ढूंढ सकता है, सही page पढ़ सकता है, और आपको documented approach दे सकता है। Real-time, current documentation — model ने छह महीने पहले जो memorize किया था वह नहीं।&lt;/p&gt;
&lt;p&gt;इसके पीछे का architecture जानबूझकर बनाया गया है। Aspire team ने एक one-off integration की बजाय reusable services (&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;) बनाई हैं। इसका मतलब है कि वही search engine terminal में इंसानों के लिए, आपके editor में AI agents के लिए, और आपके CI pipeline में automation के लिए काम करता है।&lt;/p&gt;
&lt;h2 id="real-world-scenarios"&gt;Real-world scenarios&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Quick terminal lookups:&lt;/strong&gt; आप तीन files गहरे हैं और Redis config parameters चाहिए। दो commands, नब्बे सेकंड, काम पर वापस:&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-assisted development:&lt;/strong&gt; आपकी VS Code skill CLI commands को wrap करती है। आप पूछते हैं &amp;ldquo;Add a PostgreSQL database to my AppHost&amp;rdquo; और agent जवाब देने से पहले actual docs lookup करता है। कोई hallucinations नहीं।&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CI/CD validation:&lt;/strong&gt; आपकी pipeline AppHost configurations को programmatically official documentation के against validate करती है। &lt;code&gt;--format Json&lt;/code&gt; output &lt;code&gt;jq&lt;/code&gt; और अन्य tools में cleanly pipe होता है।&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Custom knowledge bases:&lt;/strong&gt; अपना AI tooling बना रहे हैं? Structured JSON output को directly अपने knowledge base में pipe करें:&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 scraping नहीं। कोई API keys नहीं। वही structured data जो docs tooling internally use करती है।&lt;/p&gt;
&lt;h2 id="documentation-हमश-live-ह"&gt;Documentation हमेशा live है&lt;/h2&gt;
&lt;p&gt;यही वह हिस्सा है जो मुझे सबसे ज़्यादा पसंद है। CLI एक snapshot download नहीं करता — यह ETag-based caching के साथ aspire.dev query करता है। जिस moment docs update होते हैं, आपका CLI और उस पर बना कोई भी skill उसे reflect करता है। कोई stale copies नहीं, कोई &amp;ldquo;but the wiki said&amp;hellip;&amp;rdquo; moments नहीं।&lt;/p&gt;
&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;aspire docs&lt;/code&gt; उन छोटी features में से एक है जो एक असली समस्या को cleanly हल करती है। इंसानों को terminal-native documentation access मिलती है। AI agents को अंदाज़े लगाना बंद करके actual docs reference करने का तरीका मिलता है। और यह सब एक ही source of truth से backed है।&lt;/p&gt;
&lt;p&gt;अगर आप .NET Aspire के साथ build कर रहे हैं और अभी तक CLI try नहीं किया है, तो &lt;code&gt;aspire docs search &amp;quot;your-topic-here&amp;quot;&lt;/code&gt; चलाएं और देखें कैसा लगता है। फिर उन commands को जो भी AI skill या automation setup आप use कर रहे हैं उसमें wrap करने पर विचार करें — आपके agents आपको धन्यवाद देंगे।&lt;/p&gt;
&lt;p&gt;&lt;a href="https://davidpine.dev/posts/aspire-docs-mcp-tools/"&gt;David Pine का deep dive&lt;/a&gt; देखें कि docs tooling कैसे बनी, और सभी details के लिए &lt;a href="https://aspire.dev/reference/cli/commands/aspire-docs/"&gt;official CLI reference&lt;/a&gt;।&lt;/p&gt;</content:encoded></item><item><title>azd अब आपको AI Agents को Locally Run और Debug करने देता है — March 2026 में क्या बदला</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/</guid><description>Azure Developer CLI ने March 2026 में सात releases ship कीं। मुख्य बातें: AI agents के लिए local run-and-debug loop, project setup में GitHub Copilot integration, और Container App Jobs support।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/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;एक महीने में सात releases। यही Azure Developer CLI (&lt;code&gt;azd&lt;/code&gt;) team ने March 2026 में deliver किया, और headline feature वही है जिसका मुझे इंतज़ार था: &lt;strong&gt;AI agents के लिए local run-and-debug loop&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;पूरा roundup publish किया है&lt;/a&gt;, और हालाँकि उसमें काफी कुछ है, लेकिन मुझे जो AI-powered apps build करने वाले .NET developers के लिए वाकई मायने रखता है वह filter करने दें।&lt;/p&gt;
&lt;h2 id="deploy-कए-बन-ai-agents-run-और-debug-कर"&gt;Deploy किए बिना AI agents run और debug करें&lt;/h2&gt;
&lt;p&gt;यही बड़ी बात है। नया &lt;code&gt;azure.ai.agents&lt;/code&gt; extension commands का एक set add करता है जो AI agents के लिए एक proper inner-loop experience देता है:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;azd ai agent run&lt;/code&gt; — आपके agent को locally start करता है&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt; — उसे messages भेजता है (local या deployed)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent show&lt;/code&gt; — container status और health display करता है&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt; — real time में container logs stream करता है&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;इससे पहले, एक AI agent को test करने का मतलब था हर बदलाव के बाद Microsoft Foundry में deploy करना। अब आप locally iterate कर सकते हैं, अपने agent के behavior को test कर सकते हैं, और deploy तभी करें जब आप ready हों। अगर आप Microsoft Agent Framework या Semantic Kernel के साथ agents build कर रहे हैं, तो यह आपके daily workflow को बदल देता है।&lt;/p&gt;
&lt;p&gt;Invoke command local और deployed दोनों agents के against काम करता है, जिसका मतलब है कि आप same testing workflow use कर सकते हैं चाहे agent कहीं भी run हो। यह वह detail है जो आपको दो sets of test scripts maintain करने से बचाती है।&lt;/p&gt;
&lt;h2 id="github-copilot-आपक-azd-project-scaffold-करत-ह"&gt;GitHub Copilot आपका azd project scaffold करता है&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd init&lt;/code&gt; अब &amp;ldquo;Set up with GitHub Copilot (Preview)&amp;rdquo; option offer करता है। अपने project structure के बारे में manually prompts का जवाब देने की बजाय, एक Copilot agent आपके लिए configuration scaffold करता है। यह कुछ modify करने से पहले dirty working directory check करता है और upfront MCP server tool consent माँगता है।&lt;/p&gt;
&lt;p&gt;जब कोई command fail होती है, &lt;code&gt;azd&lt;/code&gt; अब AI-assisted troubleshooting offer करता है: एक category चुनें (explain, guidance, troubleshoot, या skip), agent को fix suggest करने दें, और retry करें — terminal छोड़े बिना। Complex infrastructure setups के लिए, यह वाकई time saver है।&lt;/p&gt;
&lt;h2 id="container-app-jobs-और-deployment-improvements"&gt;Container App Jobs और deployment improvements&lt;/h2&gt;
&lt;p&gt;कुछ deployment features जो ध्यान देने योग्य हैं:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Container App Jobs&lt;/strong&gt;: &lt;code&gt;azd&lt;/code&gt; अब existing &lt;code&gt;host: containerapp&lt;/code&gt; config के ज़रिये &lt;code&gt;Microsoft.App/jobs&lt;/code&gt; deploy करता है। आपका Bicep template decide करता है कि target Container App है या Job — कोई extra setup नहीं।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configurable deployment timeouts&lt;/strong&gt;: &lt;code&gt;azd deploy&lt;/code&gt; पर नया &lt;code&gt;--timeout&lt;/code&gt; flag और &lt;code&gt;azure.yaml&lt;/code&gt; में &lt;code&gt;deployTimeout&lt;/code&gt; field। Default 1200-second limit का अंदाज़ा लगाना अब नहीं।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Remote build fallback&lt;/strong&gt;: जब remote ACR build fail हो, &lt;code&gt;azd&lt;/code&gt; automatically local Docker/Podman build पर fallback करता है।&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Local preflight validation&lt;/strong&gt;: Bicep parameters Azure को round-trip किए बिना locally validate होते हैं, missing params पहले ही पकड़े जाते हैं।&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="developer-experience-क-polish"&gt;Developer experience की polish&lt;/h2&gt;
&lt;p&gt;कुछ smaller improvements जो मिलकर फर्क डालती हैं:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;JS/TS projects के लिए &lt;strong&gt;Automatic pnpm/yarn detection&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Python packaging के लिए &lt;strong&gt;pyproject.toml support&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Local template directories&lt;/strong&gt; — &lt;code&gt;azd init --template&lt;/code&gt; अब offline iteration के लिए filesystem paths accept करता है&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--no-prompt&lt;/code&gt; mode में बेहतर error messages&lt;/strong&gt; — सभी missing values एक साथ resolution commands के साथ report होते हैं&lt;/li&gt;
&lt;li&gt;सभी framework build subprocesses (.NET, Node.js, Java, Python) में &lt;strong&gt;Build environment variables&lt;/strong&gt; inject होते हैं&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;वह आखिरी बात subtle लेकिन महत्वपूर्ण है: आपके .NET build को अब &lt;code&gt;azd&lt;/code&gt; environment variables का access है, जिसका मतलब है कि आप extra scripting के बिना build-time configuration injection कर सकते हैं।&lt;/p&gt;
&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;Local AI agent debugging loop इस release का star है, लेकिन deployment improvements और DX polish का जमावड़ा &lt;code&gt;azd&lt;/code&gt; को पहले से कहीं ज़्यादा mature feel कराता है। अगर आप Azure पर .NET apps deploy कर रहे हैं — खासकर AI agents — तो यह update install करने लायक है।&lt;/p&gt;
&lt;p&gt;हर detail के लिए &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-march-2026/"&gt;पूरे release notes&lt;/a&gt; देखें, या &lt;a href="https://learn.microsoft.com/azure/developer/azure-developer-cli/install-azd"&gt;azd install&lt;/a&gt; से शुरू करें।&lt;/p&gt;</content:encoded></item><item><title>Azure DevOps ने आखिरकार वो Markdown Editor UX ठीक किया जिसकी सबको शिकायत थी</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</guid><description>Azure DevOps में work items के Markdown editor को अब स्पष्ट preview और edit mode मिला है। यह एक छोटा बदलाव है जो एक वास्तविक परेशान करने वाली workflow समस्या को ठीक करता है।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/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 इस्तेमाल करते हैं, तो शायद आपने यह अनुभव किया होगा: आप किसी work item की description पढ़ रहे हैं, शायद acceptance criteria review कर रहे हैं, और गलती से double-click हो जाती है। बस — आप edit mode में चले जाते हैं। आप कुछ edit करना नहीं चाहते थे। आप बस पढ़ रहे थे।&lt;/p&gt;
&lt;p&gt;Dan Hellem ने &lt;a href="https://devblogs.microsoft.com/devops/improving-the-markdown-editor-for-work-items/"&gt;इस fix की घोषणा की&lt;/a&gt;, और यह उन बदलावों में से एक है जो सुनने में तो छोटा लगता है लेकिन वास्तव में आपकी रोज़ाना की workflow से असली परेशानी दूर करता है।&lt;/p&gt;
&lt;h2 id="कय-बदल"&gt;क्या बदला&lt;/h2&gt;
&lt;p&gt;work item text fields के लिए Markdown editor अब &lt;strong&gt;default रूप से preview mode में&lt;/strong&gt; खुलता है। आप content पढ़ और उसके साथ इंटरैक्ट कर सकते हैं — links follow कर सकते हैं, formatting review कर सकते हैं — बिना गलती से edit mode में जाने की चिंता किए।&lt;/p&gt;
&lt;p&gt;जब आप वास्तव में edit करना चाहते हैं, तो field के ऊपर edit icon पर क्लिक करें। जब काम हो जाए, तो explicitly preview mode पर वापस आ जाएं। सरल, जानबूझकर, और अनुमानित।&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;community feedback thread&lt;/a&gt; काफी लंबा था। double-click-to-edit का behavior जुलाई 2025 में Markdown editor के साथ आया था, और शिकायतें लगभग तुरंत शुरू हो गईं। समस्या केवल गलत edits तक सीमित नहीं थी — पूरा interaction अप्रत्याशित लगता था। आपको कभी पता नहीं चलता था कि click करने से read होगा या edit।&lt;/p&gt;
&lt;p&gt;जो teams Azure Boards के साथ sprint planning, backlog grooming, या code review करती हैं, उनके लिए इस तरह की micro-friction जमा होती रहती है। हर गलत edit mode entry एक context switch है। हर &amp;ldquo;रुको, क्या मैंने कुछ बदला?&amp;rdquo; वाला पल ध्यान की बर्बादी है।&lt;/p&gt;
&lt;p&gt;नया default सबसे आम interaction pattern का सम्मान करता है: आप work items को edit करने से कहीं ज़्यादा बार पढ़ते हैं।&lt;/p&gt;
&lt;h2 id="rollout-क-सथत"&gt;Rollout की स्थिति&lt;/h2&gt;
&lt;p&gt;यह पहले से ही कुछ customers के लिए rollout हो रहा है और अगले दो से तीन हफ्तों में सभी के लिए उपलब्ध हो जाएगा। अगर आपको अभी नहीं दिख रहा, तो जल्द ही दिखेगा।&lt;/p&gt;
&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;हर सुधार को headline feature नहीं होना चाहिए। कभी-कभी सबसे अच्छा update बस कुछ परेशान करने वाली चीज़ को हटाना होता है। यह उन्हीं में से एक है — एक छोटा UX fix जो Azure Boards को उन लोगों के लिए कम कठिन बनाता है जो बस शांति से अपने work items पढ़ना चाहते हैं।&lt;/p&gt;</content:encoded></item><item><title>Bookmark Studio, Visual Studio Bookmarks में Slot-Based Navigation और Sharing लाता है</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/</guid><description>Mads Kristensen का नया Bookmark Studio extension, Visual Studio bookmarks में keyboard-driven slot navigation, bookmark manager, रंग, लेबल, और export/share सुविधाएँ जोड़ता है।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/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 में Bookmarks हमेशा से&amp;hellip; ठीक-ठाक रही हैं। आप एक set करते हैं, अगले पर जाते हैं, और भूल जाते हैं कि कौन-सा bookmark किसके लिए था। वे काम करती हैं, लेकिन उन्हें कभी &amp;ldquo;शक्तिशाली&amp;rdquo; नहीं कहा जा सकता था।&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 release किया&lt;/a&gt;, एक experimental extension जो उन्हीं कमियों को भरता है जिनसे आप शायद तब परिचित हों जब bookmarks नियमित रूप से उपयोग करते हैं।&lt;/p&gt;
&lt;h2 id="slot-based-navigation"&gt;Slot-Based Navigation&lt;/h2&gt;
&lt;p&gt;मुख्य नई सुविधा: bookmarks को अब slots 1–9 में assign किया जा सकता है और सीधे &lt;code&gt;Alt+Shift+1&lt;/code&gt; से &lt;code&gt;Alt+Shift+9&lt;/code&gt; के ज़रिए उन पर jump किया जा सकता है। नई bookmarks स्वचालित रूप से अगले उपलब्ध slot में चली जाती हैं, इसलिए ज़्यादातर मामलों में बिना किसी setup के तेज़ navigation काम करती है।&lt;/p&gt;
&lt;p&gt;यह सरल लगता है, लेकिन इससे bookmarks &amp;ldquo;मेरे पास कुछ bookmarks हैं कहीं&amp;rdquo; से बदलकर &amp;ldquo;Slot 3 मेरा API controller है, Slot 5 service layer है, Slot 7 test है&amp;rdquo; हो जाती हैं। इस तरह की spatial memory, focused work sessions के दौरान navigation को लगभग तात्कालिक बना देती है।&lt;/p&gt;
&lt;h2 id="bookmark-manager"&gt;Bookmark Manager&lt;/h2&gt;
&lt;p&gt;एक नया tool window सभी bookmarks को एक जगह दिखाता है जिसमें नाम, फ़ाइल, location, रंग या slot के अनुसार filtering होती है। किसी भी bookmark पर jump करने के लिए double-click करें या keyboard से navigate करें।&lt;/p&gt;
&lt;p&gt;अगर आपके पास कभी पाँच-छह से अधिक bookmarks हों और आप ट्रैक न कर पाएँ कि कौन-सी किसके लिए थी, तो यह अकेले extension install करने के लिए पर्याप्त कारण है।&lt;/p&gt;
&lt;h2 id="लबल-रग-और-फलडर-क-सथ-organization"&gt;लेबल, रंग, और फ़ोल्डर के साथ organization&lt;/h2&gt;
&lt;p&gt;Bookmarks में वैकल्पिक रूप से लेबल, रंग हो सकते हैं और उन्हें फ़ोल्डर में group किया जा सकता है। इनमें से कुछ भी ज़रूरी नहीं है — आपका मौजूदा bookmark workflow काम करता रहेगा। लेकिन जब आप किसी जटिल समस्या को debug कर रहे हों या किसी अपरिचित codebase को explore कर रहे हों, तो bookmarks को color-code और label करने की क्षमता उपयोगी context जोड़ती है।&lt;/p&gt;
&lt;p&gt;सभी metadata per solution store होता है, इसलिए आपकी bookmark organization sessions के पार बनी रहती है।&lt;/p&gt;
&lt;h2 id="export-और-share"&gt;Export और Share&lt;/h2&gt;
&lt;p&gt;यह वह feature है जो मुझे पता नहीं था कि मुझे चाहिए था। Bookmark Studio आपको bookmarks को plain text, Markdown, या CSV के रूप में export करने देता है। इसका मतलब है कि आप:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pull request descriptions में bookmark paths शामिल कर सकते हैं&lt;/li&gt;
&lt;li&gt;Teammates के साथ investigation breadcrumbs share कर सकते हैं&lt;/li&gt;
&lt;li&gt;Repos या branches के बीच bookmark sets move कर सकते हैं&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bookmarks अब केवल एक solo navigation tool नहीं रहतीं — ये &amp;ldquo;इस code से गुज़रने का रास्ता यहाँ है&amp;rdquo; communicate करने का ज़रिया बन जाती हैं।&lt;/p&gt;
&lt;h2 id="code-movement-क-track-करन-वल-bookmarks"&gt;Code Movement को Track करने वाली Bookmarks&lt;/h2&gt;
&lt;p&gt;Bookmark Studio, bookmarks को उस text के सापेक्ष track करता है जिससे वे anchored हैं, इसलिए edit करते समय वे गलत lines पर नहीं चली जातीं। अगर आपने कभी debugging session के दौरान bookmarks set की हों और refactor के बाद वे सब गलत lines पर point करने लगी हों — यह उसे ठीक करता है।&lt;/p&gt;
&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;Bookmark Studio कुछ नया नहीं करता। यह एक ऐसी feature को लेता है जो सालों से &amp;ldquo;काफी अच्छी&amp;rdquo; रही है और उसे focused development के लिए वास्तव में उपयोगी बनाता है। Slot navigation, Bookmark Manager, और export capabilities इसकी मुख्य विशेषताएँ हैं।&lt;/p&gt;
&lt;p&gt;इसे &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 के March अपडेट में Custom Copilot Agents बनाने की सुविधा — और find_symbol टूल एक बड़ी बात है</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/visual-studio-march-2026-custom-copilot-agents/</guid><description>Visual Studio के March 2026 अपडेट में custom Copilot agents, reusable agent skills, language-aware find_symbol टूल, और Test Explorer से Copilot-powered profiling आई है। यहाँ जानिए क्या मायने रखता है।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/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;March release की घोषणा की&lt;/a&gt;, और headline custom agents की है — लेकिन सच कहें तो थोड़ा आगे छुपा &lt;code&gt;find_symbol&lt;/code&gt; टूल वह feature हो सकता है जो आपके workflow को सबसे ज्यादा बदलेगा।&lt;/p&gt;
&lt;p&gt;आइए देखें यहाँ वास्तव में क्या है।&lt;/p&gt;
&lt;h2 id="आपक-repo-म-custom-copilot-agents"&gt;आपके repo में Custom Copilot agents&lt;/h2&gt;
&lt;p&gt;चाहते हैं कि Copilot आपकी टीम के coding standards का पालन करे, आपका build pipeline चलाए, या आपके internal docs query करे? अब आप ठीक वैसा ही बना सकते हैं।&lt;/p&gt;
&lt;p&gt;Custom agents को &lt;code&gt;.agent.md&lt;/code&gt; files के रूप में परिभाषित किया जाता है जिन्हें आप अपने repository में &lt;code&gt;.github/agents/&lt;/code&gt; में रखते हैं। प्रत्येक agent को workspace awareness, code understanding, tools, आपका preferred model, और external services से MCP connections तक पूरी access मिलती है। वे built-in agents के साथ agent picker में दिखते हैं।&lt;/p&gt;
&lt;p&gt;यह वही pattern है जो VS Code support करता रहा है — और यह देखकर अच्छा लगता है कि Visual Studio भी catch up कर रहा है। जिन टीमों ने VS Code के लिए agents बनाए हैं, उनकी &lt;code&gt;.agent.md&lt;/code&gt; files दोनों IDEs में काम करनी चाहिए (हालाँकि tool names भिन्न हो सकते हैं, इसलिए test करें)।&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/github/awesome-copilot"&gt;awesome-copilot&lt;/a&gt; repo में community-contributed agent configurations हैं जिन्हें आप starting points के रूप में use कर सकते हैं।&lt;/p&gt;
&lt;h2 id="agent-skills-reusable-instruction-packs"&gt;Agent skills: reusable instruction packs&lt;/h2&gt;
&lt;p&gt;Skills आपके repo में &lt;code&gt;.github/skills/&lt;/code&gt; या आपके profile में &lt;code&gt;~/.copilot/skills/&lt;/code&gt; से automatically pick up होती हैं। प्रत्येक skill एक &lt;code&gt;SKILL.md&lt;/code&gt; file है जो &lt;a href="https://agentskills.io/specification"&gt;Agent Skills specification&lt;/a&gt; का पालन करती है।&lt;/p&gt;
&lt;p&gt;Skills को modular expertise के रूप में सोचें जिन्हें आप mix और match कर सकते हैं। आपके पास आपके API conventions के लिए एक skill हो सकती है, testing patterns के लिए एक और, और deployment workflow के लिए एक अलग। जब कोई skill activate होती है, तो वह chat में दिखती है ताकि आप जान सकें कि वह apply हो रही है।&lt;/p&gt;
&lt;p&gt;अगर आप VS Code में skills use कर रहे थे, तो अब वे Visual Studio में भी उसी तरह काम करती हैं।&lt;/p&gt;
&lt;h2 id="find_symbol-agents-क-लए-language-aware-navigation"&gt;find_symbol: agents के लिए language-aware navigation&lt;/h2&gt;
&lt;p&gt;यहाँ चीजें वाकई दिलचस्प हो जाती हैं। नया &lt;code&gt;find_symbol&lt;/code&gt; टूल Copilot के agent mode को actual language-service-powered symbol navigation देता है। आपके code को text के रूप में search करने की बजाय, एजेंट अब कर सकता है:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;पूरे project में किसी symbol के सभी references खोजना&lt;/li&gt;
&lt;li&gt;type information, declarations, और scope metadata access करना&lt;/li&gt;
&lt;li&gt;पूरी language awareness के साथ call sites पर navigate करना&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;व्यावहारिक रूप से इसका मतलब है: जब आप Copilot से कोई method refactor करने या call sites में parameter signature update करने को कहते हैं, तो वह वास्तव में आपके code की structure देख सकता है। अब &amp;ldquo;एजेंट ने method बदल दिया लेकिन तीन call sites miss कर दिए&amp;rdquo; जैसी स्थितियाँ नहीं होंगी।&lt;/p&gt;
&lt;p&gt;Supported languages में C#, C++, Razor, TypeScript, और supported LSP extension वाली कोई भी language शामिल है। .NET डेवलपर्स के लिए यह एक बड़ा सुधार है — deep type hierarchies और interfaces वाले C# codebases symbol-aware navigation से बहुत फायदा उठाते हैं।&lt;/p&gt;
&lt;h2 id="copilot-स-tests-profile-कर"&gt;Copilot से tests profile करें&lt;/h2&gt;
&lt;p&gt;Test Explorer context menu में अब &lt;strong&gt;Profile with Copilot&lt;/strong&gt; command है। कोई test select करें, profile पर click करें, और Profiling Agent automatically उसे run करके performance analyze करता है — actionable insights देने के लिए CPU usage और instrumentation data को मिलाकर।&lt;/p&gt;
&lt;p&gt;अब manually profiler sessions configure नहीं करने, test run नहीं करने, results export नहीं करने, और flame graph पढ़ने की कोशिश नहीं करनी होगी। एजेंट analysis करता है और बताता है क्या slow है और क्यों। अभी केवल .NET के लिए, जो Visual Studio के deep .NET diagnostics integration को देखते हुए समझ में आता है।&lt;/p&gt;
&lt;h2 id="live-debugging-क-दरन-performance-tips"&gt;Live debugging के दौरान performance tips&lt;/h2&gt;
&lt;p&gt;Performance optimization अब debug करने के बाद नहीं, debug करते समय होती है। जब आप code में step through करते हैं, Visual Studio execution time और performance signals inline दिखाता है। कोई slow line दिखे? Perf Tip पर click करें और Copilot से वहीं optimization suggestions माँगें।&lt;/p&gt;
&lt;p&gt;Profiling Agent automatically runtime data capture करता है — elapsed time, CPU usage, memory behavior — और Copilot उसका उपयोग hot spots पहचानने के लिए करता है। यह performance work को आपके debugging flow का हिस्सा बनाए रखता है, न कि एक अलग काम जिसे आप टालते रहते हैं।&lt;/p&gt;
&lt;h2 id="solution-explorer-स-nuget-vulnerabilities-fix-कर"&gt;Solution Explorer से NuGet vulnerabilities fix करें&lt;/h2&gt;
&lt;p&gt;जब किसी NuGet package में vulnerability detect होती है, तो अब Solution Explorer में सीधे &lt;strong&gt;Fix with GitHub Copilot&lt;/strong&gt; link के साथ notification दिखता है। Click करें और Copilot vulnerability analyze करता है, सही package updates recommend करता है, और उन्हें implement करता है।&lt;/p&gt;
&lt;p&gt;उन टीमों के लिए जो dependencies up to date रखने में संघर्ष करती हैं (यानी लगभग सभी), यह &amp;ldquo;मुझे पता है vulnerability है लेकिन सही update path निकालना अपने आप में एक project है&amp;rdquo; वाली परेशानी दूर करता है।&lt;/p&gt;
&lt;h2 id="अतम-बत"&gt;अंतिम बात&lt;/h2&gt;
&lt;p&gt;Custom agents और skills headline हैं, लेकिन &lt;code&gt;find_symbol&lt;/code&gt; sleeper hit है — यह मौलिक रूप से बदलता है कि Copilot .NET code refactor करते समय कितना accurate हो सकता है। Live profiling integration और vulnerability fixes के साथ मिलकर, यह अपडेट Visual Studio के AI features को demo-ready की बजाय genuinely practical बनाता है।&lt;/p&gt;
&lt;p&gt;इसे आज़माने के लिए &lt;a href="https://visualstudio.microsoft.com/downloads/"&gt;Visual Studio 2026 Insiders&lt;/a&gt; download करें।&lt;/p&gt;</content:encoded></item><item><title>Laptop से Production तक: दो Commands में Microsoft Foundry पर AI Agents Deploy करना</title><link>https://thedotnetblog.com/hi/posts/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/hi/posts/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</guid><description>Azure Developer CLI में अब 'azd ai agent' commands हैं जो आपके AI agent को minutes में local dev से live Foundry endpoint तक ले जाती हैं। यहाँ है पूरा workflow।</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;यह पोस्ट स्वचालित रूप से अनुवादित है। मूल के लिए, &lt;a href="https://thedotnetblog.com/hi/posts/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/"&gt;यहाँ क्लिक करें&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;आप उस gap को जानते हैं जो &amp;ldquo;मेरी machine पर काम करता है&amp;rdquo; और &amp;ldquo;यह deploy हो गया है और traffic serve कर रहा है&amp;rdquo; के बीच है? AI agents के लिए, वह gap दर्दनाक रूप से चौड़ी रही है। आपको resources provision करने हैं, models deploy करने हैं, identity wire up करनी है, monitoring set up करनी है — और यह सब किसी के भी आपके agent को call करने से पहले।&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;दो-command affair&lt;/a&gt; बना दिया है।&lt;/p&gt;
&lt;h2 id="नय-azd-ai-agent-workflow"&gt;नया &lt;code&gt;azd ai agent&lt;/code&gt; Workflow&lt;/h2&gt;
&lt;p&gt;आइए मैं बताता हूँ यह वास्तव में कैसा दिखता है। आपके पास एक AI agent project है — मान लीजिए एक hotel concierge agent। यह locally काम करता है। आप इसे 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;बस। दो commands। &lt;code&gt;azd ai agent init&lt;/code&gt; आपके repo में infrastructure-as-code scaffold करता है, और &lt;code&gt;azd up&lt;/code&gt; Azure पर सब कुछ provision करता है और आपका agent publish करता है। आपको Foundry portal में अपने agent का direct link मिलता है।&lt;/p&gt;
&lt;h2 id="under-the-hood-कय-हत-ह"&gt;Under the Hood क्या होता है&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;init&lt;/code&gt; command आपके repo में real, inspectable Bicep templates generate करता है:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;एक &lt;strong&gt;Foundry Resource&lt;/strong&gt; (top-level container)&lt;/li&gt;
&lt;li&gt;एक &lt;strong&gt;Foundry Project&lt;/strong&gt; (जहाँ आपका agent रहता है)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model deployment&lt;/strong&gt; configuration (GPT-4o, आदि)&lt;/li&gt;
&lt;li&gt;उचित RBAC role assignments के साथ &lt;strong&gt;Managed identity&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Service map के लिए &lt;code&gt;azure.yaml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Agent metadata और environment variables के साथ &lt;code&gt;agent.yaml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;यहाँ key part है: यह सब आपके पास है। यह आपके repo में versioned Bicep है। आप इसे inspect कर सकते हैं, customize कर सकते हैं, और अपने agent code के साथ commit कर सकते हैं। कोई magic black boxes नहीं।&lt;/p&gt;
&lt;h2 id="dev-inner-loop"&gt;Dev Inner Loop&lt;/h2&gt;
&lt;p&gt;मुझे जो वास्तव में पसंद है वह local development story है। जब आप agent logic पर iterate कर रहे हों, तो आप हर बार prompt बदलने पर redeploy नहीं करना चाहते:&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;यह आपके agent को locally start करता है। इसे &lt;code&gt;azd ai agent invoke&lt;/code&gt; के साथ pair करें test prompts भेजने के लिए, और आपके पास एक tight feedback loop है। Code edit करें, restart करें, invoke करें, दोहराएँ।&lt;/p&gt;
&lt;p&gt;&lt;code&gt;invoke&lt;/code&gt; command routing के बारे में भी smart है — जब एक local agent चल रहा होता है, तो यह automatically उसे target करता है। जब नहीं, तो यह remote endpoint को hit करता है।&lt;/p&gt;
&lt;h2 id="real-time-monitoring"&gt;Real-Time Monitoring&lt;/h2&gt;
&lt;p&gt;यही वह feature है जिसने मुझे convince किया। एक बार आपका agent deploy हो जाने पर:&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;आपके agent से गुज़रने वाला हर request और response real time में आपके terminal में stream होता है। Production issues debug करने के लिए, यह अमूल्य है। Log analytics खंगालने की ज़रूरत नहीं, metrics aggregate होने का इंतज़ार नहीं — आप देखते हैं कि अभी क्या हो रहा है।&lt;/p&gt;
&lt;h2 id="पर-command-set"&gt;पूरा Command Set&lt;/h2&gt;
&lt;p&gt;यहाँ quick reference है:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&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 agent project scaffold करें&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 resources provision करें और agent deploy करें&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;Remote या local agent को prompts भेजें&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;Development के लिए agent को locally चलाएँ&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;Published agent से real-time logs stream करें&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;Agent health और status check करें&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 resources cleanup करें&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="net-developers-क-लए-यह-कय-मयन-रखत-ह"&gt;.NET Developers के लिए यह क्यों मायने रखता है&lt;/h2&gt;
&lt;p&gt;भले ही announcement का sample Python-based है, infrastructure story language-agnostic है। आपके .NET agent को वही Bicep scaffolding, वही managed identity setup, वही monitoring pipeline मिलती है। और अगर आप पहले से अपने .NET Aspire apps या Azure deployments के लिए &lt;code&gt;azd&lt;/code&gt; उपयोग कर रहे हैं, तो यह आपके मौजूदा workflow में बिल्कुल fit होता है।&lt;/p&gt;
&lt;p&gt;AI agents के लिए deployment gap ecosystem में सबसे बड़े friction points में से एक रही है। एक working prototype से proper identity, networking, और monitoring वाले production endpoint तक पहुँचने में DevOps का एक हफ्ता नहीं लगना चाहिए। अब इसमें दो commands और कुछ minutes लगते हैं।&lt;/p&gt;
&lt;h2 id="नषकरष"&gt;निष्कर्ष&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd ai agent&lt;/code&gt; अभी available है। अगर आप अपने AI agents deploy करना टाल रहे थे क्योंकि infrastructure setup बहुत मुश्किल लग रहा था, तो इसे एक chance दें। Frontend chat app integration सहित पूरे step-by-step के लिए &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;पूरा walkthrough&lt;/a&gt; देखें।&lt;/p&gt;</content:encoded></item></channel></rss>