<?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/tr/tags/developer-tools/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>tr</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/tr/tags/developer-tools/index.xml" rel="self" type="application/rss+xml"/><item><title>Azure MCP Server Artık .mcpb — Herhangi Bir Runtime Olmadan Yükle</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</guid><description>Azure MCP Server artık MCP Bundle (.mcpb) olarak kullanılabilir — indirin, Claude Desktop'a sürükleyin ve bitti. Node.js, Python veya .NET gerekmiyor.</description><content:encoded>&lt;p&gt;&lt;em&gt;Bu gönderi otomatik olarak çevrilmiştir. Orijinal sürüm için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;MCP sunucularını kurarken can sıkıcı olan ne olduğunu biliyor musunuz? Bir runtime gerekiyordu. npm sürümü için Node.js, pip/uvx için Python, dotnet varyantı için .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 bunu değiştirdi&lt;/a&gt;. Artık &lt;code&gt;.mcpb&lt;/code&gt; — MCP Bundle — olarak kullanılabilir ve kurulum sürükle-bıraktır.&lt;/p&gt;
&lt;h2 id="mcp-bundle-nedir"&gt;MCP Bundle Nedir?&lt;/h2&gt;
&lt;p&gt;VS Code uzantısı (&lt;code&gt;.vsix&lt;/code&gt;) veya tarayıcı uzantısı (&lt;code&gt;.crx&lt;/code&gt;) gibi düşünün, ama MCP sunucuları için. &lt;code&gt;.mcpb&lt;/code&gt; dosyası, sunucu ikilisini ve tüm bağımlılıklarını içeren bağımsız bir ZIP arşividir.&lt;/p&gt;
&lt;h2 id="nasıl-kurulur"&gt;Nasıl Kurulur&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. Platformunuz için bundle&amp;rsquo;ı indirin&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 sayfasına&lt;/a&gt; gidin ve OS ve mimarinize uygun &lt;code&gt;.mcpb&lt;/code&gt; dosyasını indirin.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Claude Desktop&amp;rsquo;a kurun&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En kolay yol: Uzantılar ayarları sayfasındayken (&lt;code&gt;☰ → Dosya → Ayarlar → Uzantılar&lt;/code&gt;) &lt;code&gt;.mcpb&lt;/code&gt; dosyasını Claude Desktop penceresine sürükleyip bırakın. Sunucu ayrıntılarını inceleyin, Yükle&amp;rsquo;ye tıklayın, onaylayın.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Azure&amp;rsquo;da kimlik doğrulaması yapın&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;h2 id="başlamak-için"&gt;Başlamak için&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;İndirme&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;Depo&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;Belgeler&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;Tam makaleye&lt;/a&gt; bakın.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.118: Copilot CLI Oturum Adları, Model Rozetleri ve TypeScript 7.0 Nightly Alıyor</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/vscode-1-118-copilot-cli-session-names-model-badge/</guid><description>Visual Studio Code 1.118, Copilot CLI iyileştirmelerine odaklanmış bir sürüm — oturum adlandırma, model rozetleri, otomatik model seçimi ve TypeScript 7.0 Nightly katılımı.</description><content:encoded>&lt;p&gt;&lt;em&gt;Bu gönderi otomatik olarak çevrilmiştir. Orijinal sürüm için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/vscode-1-118-copilot-cli-session-names-model-badge/"&gt;buraya tıklayın&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;, ağırlıklı olarak Copilot CLI iyileştirmelerine odaklanan küçük bir sürümdür.&lt;/p&gt;
&lt;h2 id="copilot-cli-oturumlara-gerçek-adlar-geliyor"&gt;Copilot CLI: Oturumlara Gerçek Adlar Geliyor&lt;/h2&gt;
&lt;p&gt;Copilot CLI SDK oturum başlığı API&amp;rsquo;leri artık oturum adları için doğruluk kaynağı olarak kullanılıyor. Otomatik oluşturulan etiketler yerine SDK&amp;rsquo;daki gerçek ad gösteriliyor.&lt;/p&gt;
&lt;h2 id="klavye-kısayollarıyla-hızlı-oturum-değiştirme"&gt;Klavye Kısayollarıyla Hızlı Oturum Değiştirme&lt;/h2&gt;
&lt;p&gt;Agents uygulamasına artık oturumlar arasında hızla geçiş için &lt;code&gt;Ctrl+1&lt;/code&gt;, &lt;code&gt;Ctrl+2&lt;/code&gt; vb. tuş atamaları eklendi.&lt;/p&gt;
&lt;h2 id="sohbette-model-rozetleri"&gt;Sohbette Model Rozetleri&lt;/h2&gt;
&lt;p&gt;Copilot CLI&amp;rsquo;nin sohbet panelindeki yanıtlarında artık model rozeti gösteriliyor.&lt;/p&gt;
&lt;h2 id="copilot-clida-otomatik-model-seçimi"&gt;Copilot CLI&amp;rsquo;da Otomatik Model Seçimi&lt;/h2&gt;
&lt;p&gt;Otomatik model seçimi özelliği artık Copilot CLI ajanında da çalışıyor.&lt;/p&gt;
&lt;h2 id="typescript-70-nightly-katılımı"&gt;TypeScript 7.0 Nightly Katılımı&lt;/h2&gt;
&lt;p&gt;Artık VS Code ayarlarından doğrudan TypeScript 7.0 nightly sürümlerini test etmeyi etkinleştirebilirsiniz. TypeScript 7.0 önemli bir sürümdür (&lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/"&gt;beta birkaç gün önce yayınlandı&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.visualstudio.com/updates/v1_118"&gt;Tam sürüm notlarına&lt;/a&gt; bakın.&lt;/p&gt;</content:encoded></item><item><title>Foundry Toolboxes: Tüm Ajan Araçları için Tek Bir Endpoint</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/</guid><description>Microsoft Foundry, Toolboxes'ı genel önizleme olarak yayımladı — AI ajan araçlarını tek bir MCP uyumlu endpoint üzerinden yönetmenin ve sunmanın yolu.</description><content:encoded>&lt;p&gt;&lt;em&gt;Bu gönderi otomatik olarak çevrilmiştir. Orijinal sürüm için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Bizzat yaşayana kadar önemsiz görünen bir sorun var: Kuruluş birden fazla yapay zeka ajanı oluşturuyor, her birinin araçlara ihtiyacı var ve her ekip sıfırdan yapılandırıyor. Aynı web arama entegrasyonu, aynı Azure AI Search yapılandırması, aynı GitHub MCP sunucusu bağlantısı — ama farklı bir depoda, farklı bir ekip tarafından, farklı kimlik bilgileriyle ve paylaşılan yönetim olmadan.&lt;/p&gt;
&lt;p&gt;Microsoft Foundry, genel önizlemede &lt;a href="https://devblogs.microsoft.com/foundry/introducing-toolboxes-in-foundry/"&gt;Toolboxes&lt;/a&gt; yayımladı ve bu soruna doğrudan bir yanıt niteliğinde.&lt;/p&gt;
&lt;h2 id="toolbox-nedir"&gt;Toolbox nedir?&lt;/h2&gt;
&lt;p&gt;Toolbox, Foundry&amp;rsquo;de bir kez tanımlanıp tek bir MCP uyumlu endpoint üzerinden sunulan, adlandırılmış ve yeniden kullanılabilir bir araç paketidir. MCP konuşabilen herhangi bir ajan çalışma zamanı bunu tüketebilir — Foundry Agents&amp;rsquo;a bağımlılık yoktur.&lt;/p&gt;
&lt;p&gt;Vaat basittir: &lt;strong&gt;build once, consume anywhere&lt;/strong&gt;. Araçları tanımla, kimlik doğrulamayı merkezi olarak yapılandır (OAuth doğrudan geçiş, Entra yönetilen kimlik), endpoint&amp;rsquo;i yayımla. Bu araçlara ihtiyaç duyan her ajan endpoint&amp;rsquo;e bağlanır ve tümünü alır.&lt;/p&gt;
&lt;h2 id="dört-sütun-bugün-ikisi-mevcut"&gt;Dört sütun (bugün ikisi mevcut)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Sütun&lt;/th&gt;
&lt;th&gt;Durum&lt;/th&gt;
&lt;th&gt;Ne yapar&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;Yakında&lt;/td&gt;
&lt;td&gt;Elle arama yapmadan onaylı araçları bulma&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;Mevcut&lt;/td&gt;
&lt;td&gt;Araçları yeniden kullanılabilir pakete gruplama&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;Mevcut&lt;/td&gt;
&lt;td&gt;Tek MCP endpoint tüm araçları sunar&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;Yakında&lt;/td&gt;
&lt;td&gt;Merkezi kimlik doğrulama + tüm araç çağrılarının gözlemlenebilirliği&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="pratik-örnek"&gt;Pratik örnek&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;Dokümanlarda arama yap ve GitHub sorunlarına yanıt ver.&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;Genel belgelerde arama yap&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;Yayımlandıktan sonra Foundry birleşik bir endpoint sağlar. Tek bağlantı, tüm araçlar.&lt;/p&gt;
&lt;h2 id="foundry-agentsa-bağımlılık-yok"&gt;Foundry Agents&amp;rsquo;a bağımlılık yok&lt;/h2&gt;
&lt;p&gt;Toolboxes, Foundry&amp;rsquo;de &lt;strong&gt;oluşturulur ve yönetilir&lt;/strong&gt;; ancak tüketim yüzeyi açık MCP protokolüdür. Bunları özel ajanlardan (Microsoft Agent Framework, LangGraph), GitHub Copilot ve diğer MCP destekli IDE&amp;rsquo;lerden kullanabilirsiniz.&lt;/p&gt;
&lt;h2 id="neden-şimdi-önemli"&gt;Neden şimdi önemli?&lt;/h2&gt;
&lt;p&gt;Çoklu ajan dalgası üretime ulaşıyor. Her yeni ajan, yinelenen yapılandırma, eski kimlik bilgileri ve tutarsız davranış için yeni bir yüzeydir. Build + Consume temeli merkezileşmeye başlamak için yeterlidir. Govern sütunu geldiğinde, tüm ajan filosu için tam gözlemlenebilir ve merkezi olarak kontrol edilen bir araç katmanı elde edilmiş olacak.&lt;/p&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;Henüz erken — genel önizleme, önce Python SDK, Discover ve Govern henüz yolda. Ancak model sağlam ve MCP yerel tasarımı, zaten inşa ettiğiniz araçlarla çalıştığı anlamına geliyor. Ayrıntılar için &lt;a href="https://devblogs.microsoft.com/foundry/introducing-toolboxes-in-foundry/"&gt;resmi duyuruya&lt;/a&gt; bakın.&lt;/p&gt;</content:encoded></item><item><title>Python, TypeScript ve .NET ile azd Hook Yazma: Shell Script'lere Veda</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</guid><description>Azure Developer CLI artık Python, JavaScript, TypeScript veya .NET ile hook yazmayı destekliyor. Sadece bir migrasyon scripti çalıştırmak için Bash'e geçmek zorunda kalmayacaksınız.</description><content:encoded>&lt;p&gt;&lt;em&gt;Bu gönderi otomatik olarak çevrilmiştir. Orijinal sürüm için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Tamamen .NET ile yazılmış bir projeniz olmasına rağmen azd hook&amp;rsquo;ları için Bash scriptleri yazmak zorunda kaldıysanız, bu acıyı iyi biliyorsunuzdur. Projenin geri kalanı C# iken, neden bir pre-provisioning adımı için shell sözdizimine geçiş yapmak zorunda kalınsın?&lt;/p&gt;
&lt;p&gt;Bu hayal kırıklığı artık resmi bir çözüme kavuştu. Azure Developer CLI &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;hook&amp;rsquo;lar için çok dilli destek yayımladı&lt;/a&gt; ve tam olarak duyulduğu kadar iyi.&lt;/p&gt;
&lt;h2 id="hook-nedir"&gt;Hook nedir?&lt;/h2&gt;
&lt;p&gt;Hook&amp;rsquo;lar, &lt;code&gt;azd&lt;/code&gt; yaşam döngüsünün kritik noktalarında çalışan scriptlerdir — provisioning öncesi, deployment sonrası vb. &lt;code&gt;azure.yaml&lt;/code&gt; içinde tanımlanır ve CLI&amp;rsquo;yi değiştirmeden özel mantık eklemenizi sağlar.&lt;/p&gt;
&lt;p&gt;Önceden yalnızca Bash ve PowerShell destekleniyordu. Artık &lt;strong&gt;Python, JavaScript, TypeScript veya .NET&lt;/strong&gt; kullanılabilir — &lt;code&gt;azd&lt;/code&gt; geri kalanını otomatik olarak halleder.&lt;/p&gt;
&lt;h2 id="algılama-nasıl-çalışır"&gt;Algılama nasıl çalışır&lt;/h2&gt;
&lt;p&gt;Yalnızca hook&amp;rsquo;u bir dosyaya yönlendirin; &lt;code&gt;azd&lt;/code&gt; uzantıdan dili çıkarır:&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;Ek yapılandırma gerekmez. Uzantı belirsizse &lt;code&gt;kind: python&lt;/code&gt; (veya ilgili dil) ile açıkça belirtebilirsiniz.&lt;/p&gt;
&lt;h2 id="dile-göre-önemli-ayrıntılar"&gt;Dile göre önemli ayrıntılar&lt;/h2&gt;
&lt;h3 id="python"&gt;Python&lt;/h3&gt;
&lt;p&gt;Scriptin yanına (veya herhangi bir üst dizine) &lt;code&gt;requirements.txt&lt;/code&gt; ya da &lt;code&gt;pyproject.toml&lt;/code&gt; koyun. &lt;code&gt;azd&lt;/code&gt; otomatik olarak sanal ortam oluşturur, bağımlılıkları kurar ve scripti çalıştırır.&lt;/p&gt;
&lt;h3 id="javascript-ve-typescript"&gt;JavaScript ve TypeScript&lt;/h3&gt;
&lt;p&gt;Aynı desen — script yakınına &lt;code&gt;package.json&lt;/code&gt; koyun ve &lt;code&gt;azd&lt;/code&gt; önce &lt;code&gt;npm install&lt;/code&gt; çalıştırır. TypeScript için derleme adımı ve &lt;code&gt;tsconfig.json&lt;/code&gt; gerekmeden &lt;code&gt;npx tsx&lt;/code&gt; kullanılır.&lt;/p&gt;
&lt;h3 id="net"&gt;.NET&lt;/h3&gt;
&lt;p&gt;İki mod mevcuttur:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Proje modu&lt;/strong&gt;: Script yanında &lt;code&gt;.csproj&lt;/code&gt; varsa &lt;code&gt;azd&lt;/code&gt; otomatik olarak &lt;code&gt;dotnet restore&lt;/code&gt; ve &lt;code&gt;dotnet build&lt;/code&gt; çalıştırır.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tek dosya modu&lt;/strong&gt;: .NET 10+ sürümünde bağımsız &lt;code&gt;.cs&lt;/code&gt; dosyaları &lt;code&gt;dotnet run script.cs&lt;/code&gt; ile doğrudan çalıştırılabilir. Proje dosyası gerekmez.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="executora-özgü-yapılandırma"&gt;Executor&amp;rsquo;a özgü yapılandırma&lt;/h2&gt;
&lt;p&gt;Her dil isteğe bağlı bir &lt;code&gt;config&lt;/code&gt; bloğunu destekler:&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-geliştiricileri-için-önemi"&gt;.NET geliştiricileri için önemi&lt;/h2&gt;
&lt;p&gt;Hook&amp;rsquo;lar, azd tabanlı bir projede dil değiştirmeyi zorunlu kılan son yerdi. Artık uygulama kodu, altyapı scriptleri ve yaşam döngüsü hook&amp;rsquo;ları dahil tüm deployment pipeline&amp;rsquo;ı tek bir dilde yaşayabilir. Mevcut .NET yardımcı programlarını hook&amp;rsquo;larda yeniden kullanabilir, paylaşılan kütüphanelere referans verebilir ve shell script bakımından kurtulabilirsiniz.&lt;/p&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;Küçük görünse de azd günlük iş akışından çok fazla sürtünme kaldıran değişikliklerden biri. Hook&amp;rsquo;lar için çok dilli destek şu anda kullanılabilir — &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;resmi gönderi&lt;/a&gt;nde tam belgelere ulaşabilirsiniz.&lt;/p&gt;</content:encoded></item><item><title>Windows App Dev CLI v0.3: Terminalden F5 Hata Ayıklama ve Ajanlar için UI Otomasyonu</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/</guid><description>Windows App Development CLI v0.3, terminalden hata ayıklama başlatmak için winapp run, UI otomasyonu için winapp ui ve paketlenmiş uygulamalarla dotnet run'ı çalıştıran yeni bir NuGet paketi getiriyor.</description><content:encoded>&lt;p&gt;&lt;em&gt;Bu gönderi otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Visual Studio&amp;rsquo;nun F5 deneyimi harika. Ama yalnızca paketlenmiş bir Windows uygulamasını başlatıp hata ayıklamak için VS&amp;rsquo;yi açmak — bir CI boru hattında, otomatik bir iş akışında veya bir yapay zeka ajanı testleri çalıştırırken — fazla ağır bir yük.&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;yayınlandı&lt;/a&gt; ve bunu iki temel özellikle doğrudan ele alıyor: &lt;code&gt;winapp run&lt;/code&gt; ve &lt;code&gt;winapp ui&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="winapp-run-her-yerden-f5"&gt;winapp run: Her yerden F5&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;winapp run&lt;/code&gt; paketlenmemiş bir uygulama klasörü ve manifest alır; VS&amp;rsquo;nin hata ayıklama başlatmasında yaptığı her şeyi yapar: loose paket kaydeder, uygulamayı başlatır ve yeniden dağıtımlar arasında &lt;code&gt;LocalState&lt;/code&gt;&amp;lsquo;i korur.&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;# Uygulamayı derleyin, ardından paketlenmiş uygulama olarak çalıştırın&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 ve daha fazlası için çalışır. Modlar hem geliştiriciler hem de otomatik iş akışları için tasarlanmıştır:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--detach&lt;/code&gt;&lt;/strong&gt;: Başlatır ve hemen terminale kontrolü geri döndürür. CI için ideal.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--unregister-on-exit&lt;/code&gt;&lt;/strong&gt;: Uygulama kapatıldığında kayıtlı paketi temizler.&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; mesajlarını ve istisnaları gerçek zamanlı yakalar.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="yeni-nuget-paketi-paketlenmiş-uygulamalar-için-dotnet-run"&gt;Yeni NuGet Paketi: Paketlenmiş uygulamalar için dotnet run&lt;/h2&gt;
&lt;p&gt;.NET geliştiricileri için yeni bir NuGet paketi var: &lt;code&gt;Microsoft.Windows.SDK.BuildTools.WinApp&lt;/code&gt;. Kurulumdan sonra &lt;code&gt;dotnet run&lt;/code&gt; tüm iç döngüyü yönetir: derleme, loose-layout paketi hazırlama, Windows&amp;rsquo;ta kayıt ve başlatma — tek adımda.&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;# veya&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-komut-satırından-ui-otomasyonu"&gt;winapp ui: Komut satırından UI Otomasyonu&lt;/h2&gt;
&lt;p&gt;Bu, ajan senaryolarını açan özellik. &lt;code&gt;winapp ui&lt;/code&gt;, terminalden çalışan herhangi bir Windows uygulamasına (WPF, WinForms, Win32, Electron, WinUI3) tam UI Automation erişimi sağlar.&lt;/p&gt;
&lt;p&gt;Yapılabilecekler:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tüm üst düzey pencereleri listele&lt;/li&gt;
&lt;li&gt;Herhangi bir pencerenin tam UI Automation ağacında gezin&lt;/li&gt;
&lt;li&gt;Ad, tür veya otomasyon kimliğine göre öğe ara&lt;/li&gt;
&lt;li&gt;Tıkla, çağır ve değer ayarla&lt;/li&gt;
&lt;li&gt;Ekran görüntüsü al&lt;/li&gt;
&lt;li&gt;Öğelerin görünmesini bekle — test senkronizasyonu için ideal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;winapp ui&lt;/code&gt; ile &lt;code&gt;winapp run&lt;/code&gt;&amp;lsquo;ı birleştirmek, terminalden eksiksiz bir derleme → başlatma → doğrulama iş akışı sağlar. Bir ajan uygulamayı çalıştırabilir, UI durumunu inceleyebilir, programatik olarak etkileşime girebilir ve sonucu doğrulayabilir.&lt;/p&gt;
&lt;h2 id="diğer-yenilikler"&gt;Diğer yenilikler&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;winapp unregister&lt;/code&gt;&lt;/strong&gt;: Tamamlandığında yandan yüklenmiş paketi kaldırır.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;winapp manifest add-alias&lt;/code&gt;&lt;/strong&gt;: Terminalden adıyla uygulama başlatmak için takma ad ekler.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sekme tamamlama&lt;/strong&gt;: PowerShell tamamlamayı tek komutla yapılandırın.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="nasıl-edinilir"&gt;Nasıl edinilir&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;# veya&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 genel önizleme aşamasında. Tam belgeleme için &lt;a href="https://github.com/microsoft/WinAppCli"&gt;GitHub deposuna&lt;/a&gt;, tüm ayrıntılar için &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;orijinal duyuruya&lt;/a&gt; bakın.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.117: Agentlar Artık Kendi Git Dallarını Alıyor ve Ben Bunun İçin Buradayım</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/vscode-1-117-agents-autopilot-worktrees/</guid><description>VS Code 1.117, agent oturumları için worktree izolasyonu, kalıcı Autopilot modu ve alt-agent desteği sunuyor. Ajanlı kodlama iş akışı çok daha gerçek hale geldi.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/vscode-1-117-agents-autopilot-worktrees/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;ldquo;AI asistanı&amp;rdquo; ile &amp;ldquo;AI takım üyesi&amp;rdquo; arasındaki çizgi giderek inceliyor. VS Code 1.117 az önce yayınlandı ve &lt;a href="https://code.visualstudio.com/updates/v1_117"&gt;tam sürüm notları&lt;/a&gt; çok şey içeriyor, ancak buradaki hikaye açık: agentlar geliştirme iş akışınızda birinci sınıf vatandaş haline geliyor.&lt;/p&gt;
&lt;p&gt;İşte gerçekten önemli olan şeyler.&lt;/p&gt;
&lt;h2 id="autopilot-modu-artık-tercihinizi-hatırlıyor"&gt;Autopilot modu artık tercihinizi hatırlıyor&lt;/h2&gt;
&lt;p&gt;Daha önce her yeni oturum başlattığınızda Autopilot&amp;rsquo;u yeniden etkinleştirmeniz gerekiyordu. Can sıkıcıydı. Artık izin modunuz oturumlar arasında korunuyor ve varsayılanı yapılandırabiliyorsunuz.&lt;/p&gt;
&lt;p&gt;Agent Host üç oturum yapılandırmasını destekliyor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Default&lt;/strong&gt; — araçlar çalışmadan önce onay istiyor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bypass&lt;/strong&gt; — her şeyi otomatik onaylıyor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autopilot&lt;/strong&gt; — tamamen özerk, kendi sorularını yanıtlıyor ve devam ediyor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Migrasyonlar, Docker ve CI ile yeni bir .NET projesi kuruyorsanız — Autopilot&amp;rsquo;u bir kez ayarlayın ve unutun. O tercih kalıcı.&lt;/p&gt;
&lt;h2 id="agent-oturumları-için-worktree-ve-git-izolasyonu"&gt;Agent oturumları için worktree ve git izolasyonu&lt;/h2&gt;
&lt;p&gt;Bu en büyük özellik. Agent oturumları artık tam worktree ve git izolasyonunu destekliyor. Bu, bir agent bir görev üzerinde çalışırken kendi dalını ve çalışma dizinini aldığı anlamına geliyor. Ana dalınız dokunulmadan kalıyor.&lt;/p&gt;
&lt;p&gt;Daha da iyisi — Copilot CLI bu worktree oturumları için anlamlı dal adları üretiyor. Artık &lt;code&gt;agent-session-abc123&lt;/code&gt; yok. Agentin ne yaptığını gerçekten açıklayan bir şey alıyorsunuz.&lt;/p&gt;
&lt;p&gt;Birden fazla özellik dalı üzerinde çalışan veya uzun bir iskele görevi çalışırken hata düzelten .NET geliştiricileri için bu oyun değiştirici. Bir worktree&amp;rsquo;de API controller&amp;rsquo;larınızı oluşturan bir agent varken siz başka bir worktree&amp;rsquo;de servis katmanı sorununu ayıklıyor olabilirsiniz. Çakışma yok. Stash yok. Karmaşa yok.&lt;/p&gt;
&lt;h2 id="alt-agentlar-ve-agent-ekipleri"&gt;Alt-agentlar ve agent ekipleri&lt;/h2&gt;
&lt;p&gt;Agent Host Protocol artık alt-agentları destekliyor. Bir agent, bir görevin parçalarını yönetmek için başka agentlar çalıştırabilir. Görevlendirme gibi düşünün — ana agent koordine eder, uzman agentlar parçaları yönetir.&lt;/p&gt;
&lt;p&gt;Bu erken aşamada, ancak .NET iş akışları için potansiyel açık. EF Core migrasyonlarınızı yöneten bir agent varken diğeri entegrasyon testlerinizi kuruyor, bunu hayal edin. Tam olarak oraya henüz ulaşmadık, ancak protokol desteğinin şimdi gelmesi tooling&amp;rsquo;in hızla takip edeceği anlamına geliyor.&lt;/p&gt;
&lt;h2 id="agentlar-girdi-gönderdiğinde-terminal-çıktısı-otomatik-dahil-ediliyor"&gt;Agentlar girdi gönderdiğinde terminal çıktısı otomatik dahil ediliyor&lt;/h2&gt;
&lt;p&gt;Küçük ama anlamlı. Bir agent terminale girdi gönderdiğinde, terminal çıktısı artık otomatik olarak bağlama dahil ediliyor. Daha önce, agent ne olduğunu görmek için ekstra bir tur atmak zorundaydı.&lt;/p&gt;
&lt;p&gt;Bir agentin &lt;code&gt;dotnet build&lt;/code&gt; çalıştırdığını, başarısız olduğunu ve ardından hatayı görmek için başka bir gidiş-dönüş yaptığını izlediyseniz — bu sürtünme gitti. Çıktıyı hemen görüyor ve tepki veriyor.&lt;/p&gt;
&lt;h2 id="macosta-agents-uygulaması-kendi-kendini-güncelliyor"&gt;macOS&amp;rsquo;ta Agents uygulaması kendi kendini güncelliyor&lt;/h2&gt;
&lt;p&gt;macOS&amp;rsquo;taki bağımsız Agents uygulaması artık kendi kendini güncelliyor. Artık yeni sürümleri manuel olarak indirmeye gerek yok. Güncel kalıyor.&lt;/p&gt;
&lt;h2 id="bilmeye-değer-küçük-şeyler"&gt;Bilmeye değer küçük şeyler&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;package.json hover&amp;rsquo;ları&lt;/strong&gt; artık hem yüklü sürümü hem de mevcut en son sürümü gösteriyor. .NET projelerinizin yanında npm tooling yönetiyorsanız kullanışlı.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JSDoc&lt;/strong&gt; yorumlarındaki &lt;strong&gt;resimler&lt;/strong&gt; hover ve tamamlamalarda doğru şekilde render ediliyor.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot CLI oturumları&lt;/strong&gt; artık VS Code tarafından mı yoksa harici olarak mı oluşturulduklarını gösteriyor — terminaller arasında atlıyorsanız kullanışlı.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot CLI, Claude Code ve Gemini CLI&lt;/strong&gt; kabuk türleri olarak tanınıyor. Editör ne çalıştırdığınızı biliyor.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;VS Code 1.117 gösterişli bir özellik yığını değil. Altyapı. Worktree izolasyonu, kalıcı izinler, alt-agent protokolleri — bunlar, agentların kodunuza basmadan gerçek, paralel görevleri üstlendiği bir iş akışının yapı taşları.&lt;/p&gt;
&lt;p&gt;.NET ile geliştirme yapıyorsanız ve henüz ajanlı iş akışına girmediyseniz, dürüstçe söylemek gerekirse, başlamak için şimdi tam zamanı.&lt;/p&gt;</content:encoded></item><item><title>Docker Sandbox, Copilot Agent'larının Makinenizi Tehlikeye Atmadan Kodunuzu Yeniden Düzenlemesini Sağlıyor</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/</guid><description>Docker Sandbox, GitHub Copilot agent'larına yeniden düzenleme işlemleri için güvenli bir microVM ortamı sunuyor — izin isteği yok, ana sisteminize risk yok. Bu durum büyük ölçekli .NET modernizasyonunda neden her şeyi değiştiriyor, işte açıklıyoruz.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Copilot&amp;rsquo;un agent modunu küçük düzenlemelerin ötesinde bir şey için kullandıysanız, acısını bilirsiniz. Her dosya yazma işlemi, her terminal komutu — bir izin isteği daha. Bunu 50 proje boyunca çalıştırdığınızı düşünün. Hiç eğlenceli değil.&lt;/p&gt;
&lt;p&gt;Azure ekibi, &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 agent&amp;rsquo;ları için Docker Sandbox&lt;/a&gt; hakkında bir yazı yayımladı ve dürüst olmak gerekirse, bu gördüğüm en pratik agentic araç geliştirmelerinden biri. MicroVM&amp;rsquo;ler kullanarak Copilot&amp;rsquo;a tamamen izole bir ortam sağlıyor; orada istediği gibi davranabilir — paket yükleyebilir, build çalıştırabilir, testleri yürütebilir — ana sisteminize dokunmadan.&lt;/p&gt;
&lt;h2 id="docker-sandbox-size-gerçekte-ne-veriyor"&gt;Docker Sandbox size gerçekte ne veriyor&lt;/h2&gt;
&lt;p&gt;Temel fikir basit: tam Linux ortamıyla hafif bir microVM başlatın, çalışma alanınızı içine senkronize edin ve Copilot agent&amp;rsquo;ının içinde serbestçe çalışmasına izin verin. İşi bittiğinde değişiklikler geri senkronize edilir.&lt;/p&gt;
&lt;p&gt;Bunu sadece &amp;ldquo;bir container&amp;rsquo;da bir şeyler çalıştır&amp;quot;dan fazlası yapan şeyler şunlar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mutlak yolları koruyan çift yönlü çalışma alanı senkronizasyonu&lt;/strong&gt;. Proje yapınız sandbox içinde tamamen aynı görünür. Yol kaynaklı build hataları yok.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MicroVM içinde çalışan özel Docker daemon&lt;/strong&gt;. Agent, ana makinenizin Docker soketini bağlamak zorunda kalmadan container oluşturabilir ve çalıştırabilir. Güvenlik açısından bu büyük bir kazanım.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agent&amp;rsquo;ın ağda neye erişebileceğini kontrol eden HTTP/HTTPS filtreleme proxy&amp;rsquo;leri&lt;/strong&gt;. Hangi registry&amp;rsquo;lere ve endpoint&amp;rsquo;lere izin verildiğine siz karar verirsiniz. Sandbox içindeki bir &lt;code&gt;npm install&lt;/code&gt;&amp;lsquo;dan gelen tedarik zinciri saldırıları mı? Engellendi.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;YOLO modu&lt;/strong&gt; — evet, gerçekten böyle çağırıyorlar. Agent izin istemi olmadan çalışıyor çünkü ana makinenize gerçekten zarar veremez. Her yıkıcı eylem sandbox içinde kalıyor.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="net-geliştiricilerinin-neden-önemsemesi-gerekiyor"&gt;.NET geliştiricilerinin neden önemsemesi gerekiyor&lt;/h2&gt;
&lt;p&gt;Pek çok ekibin şu an karşı karşıya olduğu modernizasyon işini düşünün. .NET 9&amp;rsquo;a taşımanız gereken, 30 projelik bir .NET Framework çözümünüz var. Bu yüzlerce dosya değişikliği demek — proje dosyaları, namespace güncellemeleri, API değişiklikleri, NuGet geçişleri.&lt;/p&gt;
&lt;p&gt;Docker Sandbox ile bir Copilot agent&amp;rsquo;ını bir projeye yönlendirebilir, microVM içinde serbestçe yeniden düzenlemesine izin verebilir, doğrulama için &lt;code&gt;dotnet build&lt;/code&gt; ve &lt;code&gt;dotnet test&lt;/code&gt; çalıştırabilir ve yalnızca gerçekten çalışan değişiklikleri kabul edebilirsiniz. Denemeler yaparken yerel geliştirme ortamınızı yanlışlıkla mahvetme riski yok.&lt;/p&gt;
&lt;p&gt;Yazı ayrıca &lt;strong&gt;paralel agent filosu&lt;/strong&gt; çalıştırmayı da anlatıyor — her biri kendi sandbox&amp;rsquo;ında — farklı projeleri aynı anda ele alıyor. Büyük .NET çözümleri veya microservice mimarileri için bu muazzam bir zaman tasarrufu. Servis başına bir agent, hepsi izole çalışıyor, hepsi bağımsız olarak doğrulanıyor.&lt;/p&gt;
&lt;h2 id="güvenlik-boyutu-önemli"&gt;Güvenlik boyutu önemli&lt;/h2&gt;
&lt;p&gt;İnsanların çoğunlukla atladığı şey şu: bir AI agent&amp;rsquo;ının rastgele komutlar yürütmesine izin verdiğinizde, ona tüm makinenizle güveniyorsunuz demektir. Docker Sandbox bu modeli tersine çeviriyor. Agent, tek kullanımlık bir ortam içinde tam özerklik alıyor. Ağ proxy&amp;rsquo;si yalnızca onaylanan kaynaklardan çekebilmesini sağlıyor. Ana makine dosya sisteminiz, Docker daemon&amp;rsquo;unuz ve kimlik bilgileriniz dokunulmadan kalıyor.&lt;/p&gt;
&lt;p&gt;Uyumluluk gereksinimleri olan ekipler için — ki bu çoğu kurumsal .NET mağazasıdır — bu, &amp;ldquo;agentic AI kullanamayız&amp;rdquo; ile &amp;ldquo;güvenle benimseyelim&amp;rdquo; arasındaki farktır.&lt;/p&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;Docker Sandbox, agentic kodlamanın temel gerilimini çözüyor: agent&amp;rsquo;ların kullanışlı olabilmek için özgürlüğe ihtiyacı var, ama ana makinenizde özgürlük tehlikelidir. MicroVM&amp;rsquo;ler her ikisini de sunuyor. Büyük ölçekli herhangi bir .NET yeniden düzenleme veya modernizasyon planı yapıyorsanız, bunu şimdi kurmaya değer. Copilot&amp;rsquo;un kod zekasını güvenli bir yürütme ortamıyla birleştirmek, üretim ekiplerinin beklediği tam olarak bu.&lt;/p&gt;</content:encoded></item><item><title>Terminalinizi Serbest Bırakın: Aspire'ın Detached Modu İş Akışını Değiştiriyor</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/aspire-detached-mode-free-your-terminal/</guid><description>Aspire 13.2, AppHost'unuzu arka planda çalıştırmanıza ve terminalinizi geri almanıza olanak tanıyor. Yeni CLI komutları ve agent desteğiyle birlikte bu, göründüğünden çok daha büyük bir gelişme.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/aspire-detached-mode-free-your-terminal/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Bir Aspire AppHost çalıştırdığınız her seferinde terminaliniz kayboluyor. Kilitli. Ctrl+C ile çıkana kadar meşgul. Hızlı bir komut çalıştırmanız mı gerekiyor? Yeni bir sekme açın. Logları kontrol etmek ister misiniz? Başka bir sekme. Bu küçük sürtünme hızla birikerek büyüyor.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 bunu düzeltiyor. James Newton-King &lt;a href="https://devblogs.microsoft.com/aspire/aspire-detached-mode-and-process-management/"&gt;tüm ayrıntıları yazdı&lt;/a&gt; ve dürüstçe söylemek gerekirse bu, çalışma şeklinizi anında değiştiren özelliklerden biri.&lt;/p&gt;
&lt;h2 id="detached-mod-bir-komut-terminal-geri"&gt;Detached mod: bir komut, terminal geri&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;Bu, &lt;code&gt;aspire run --detach&lt;/code&gt; için kısayol. AppHost&amp;rsquo;unuz arka planda başlıyor ve terminalinizi anında geri alıyorsunuz. Ekstra sekme yok. Terminal çoğullayıcı yok. Sadece prompt&amp;rsquo;unuz, hazır ve bekliyor.&lt;/p&gt;
&lt;h2 id="çalışanları-yönetmek"&gt;Çalışanları yönetmek&lt;/h2&gt;
&lt;p&gt;İşte şu an — arka planda çalıştırmak yalnızca orada ne olduğunu gerçekten yönetebiliyorsanız işe yarıyor. Aspire 13.2 tam bunun için eksiksiz bir CLI komut seti sunuyor:&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;# Çalışan tüm AppHost&amp;#39;ları listele&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;# Belirli bir AppHost&amp;#39;un durumunu incele&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;# Çalışan bir AppHost&amp;#39;tan log akışı al&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;# Belirli bir AppHost&amp;#39;u durdur&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;Bu, Aspire CLI&amp;rsquo;ı gerçek anlamda bir süreç yöneticisine dönüştürüyor. Birden fazla AppHost başlatabilir, durumlarını kontrol edebilir, loglarını takip edebilir ve bunları kapatabilirsiniz — hepsi tek bir terminal oturumundan.&lt;/p&gt;
&lt;h2 id="isolated-modla-birleştirin"&gt;Isolated modla birleştirin&lt;/h2&gt;
&lt;p&gt;Detached mod, isolated modla doğal olarak uyum içinde çalışır. Port çakışması olmadan aynı projenin iki örneğini arka planda çalıştırmak ister misiniz?&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;Her biri rastgele portlar, ayrı secret&amp;rsquo;lar ve kendi yaşam döngüsü alıyor. Her ikisini görmek için &lt;code&gt;aspire ps&lt;/code&gt;, işi bitenini kapatmak için &lt;code&gt;aspire stop&lt;/code&gt; kullanın.&lt;/p&gt;
&lt;h2 id="bu-neden-kodlama-ajanları-için-büyük-bir-gelişme"&gt;Bu neden kodlama ajanları için büyük bir gelişme&lt;/h2&gt;
&lt;p&gt;İşte gerçekten ilgi çekici olan kısım. Terminalinizde çalışan bir kodlama ajanı artık şunları yapabiliyor:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;aspire start&lt;/code&gt; ile uygulamayı başlatmak&lt;/li&gt;
&lt;li&gt;&lt;code&gt;aspire describe&lt;/code&gt; ile durumunu sorgulamak&lt;/li&gt;
&lt;li&gt;Sorunları teşhis etmek için &lt;code&gt;aspire logs&lt;/code&gt; ile logları kontrol etmek&lt;/li&gt;
&lt;li&gt;İşi bittiğinde &lt;code&gt;aspire stop&lt;/code&gt; ile durdurmak&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Terminal oturumunu kaybetmeden. Detached moddan önce, AppHost&amp;rsquo;unuzu çalıştıran bir ajan kendi terminaline erişimini kaybederdi. Artık başlatabilir, gözlemleyebilir, yineleyebilir ve temizleyebilir — tam olarak özerk bir ajanın çalışmasını isteyeceğiniz şekilde.&lt;/p&gt;
&lt;p&gt;Aspire ekibi bunu benimsedi. &lt;code&gt;aspire agent init&lt;/code&gt; çalıştırmak, ajanlara bu komutları öğreten bir Aspire skill dosyası kuruyor. Bu sayede Copilot&amp;rsquo;un kodlama ajanı gibi araçlar Aspire iş yüklerinizi kutudan çıkar çıkmaz yönetebiliyor.&lt;/p&gt;
&lt;h2 id="özet"&gt;Özet&lt;/h2&gt;
&lt;p&gt;Detached mod, basit bir bayrak kılığında gizlenmiş bir iş akışı yükseltmesi. Terminaller arasında bağlam geçişlerini bırakıyorsunuz, ajanlar kendilerini bloke etmekten kurtuluyor ve yeni CLI komutları çalışanlar hakkında gerçek görünürlük sağlıyor. Pratik, temiz ve günlük geliştirme döngüsünü belirgin biçimde daha akıcı hale getiriyor.&lt;/p&gt;
&lt;p&gt;Tüm ayrıntılar için &lt;a href="https://devblogs.microsoft.com/aspire/aspire-detached-mode-and-process-management/"&gt;tam yazıyı&lt;/a&gt; okuyun ve &lt;code&gt;aspire update --self&lt;/code&gt; ile Aspire 13.2&amp;rsquo;yi edinin.&lt;/p&gt;</content:encoded></item><item><title>Azure MCP Araçları Artık Visual Studio 2022'ye Entegre — Uzantı Gerekmiyor</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/</guid><description>Azure MCP araçları, Visual Studio 2022'de Azure geliştirme iş yükünün bir parçası olarak geliyor. 230'dan fazla araç, 45 Azure servisi, yüklenecek sıfır uzantı.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Azure MCP araçlarını ayrı uzantı üzerinden Visual Studio&amp;rsquo;da kullandıysanız, süreci biliyorsunuzdur — VSIX&amp;rsquo;i kurun, yeniden başlatın, bir şeylerin bozulmamasını umun, sürüm uyumsuzluklarıyla uğraşın. O sürtünme artık tarihe karışıyor.&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;duyurdu&lt;/a&gt;: Azure MCP araçları artık Visual Studio 2022&amp;rsquo;de Azure geliştirme iş yükünün doğrudan bir parçası olarak geliyor. Uzantı yok. VSIX yok. Yeniden başlatma dansı yok.&lt;/p&gt;
&lt;h2 id="bu-aslında-ne-anlama-geliyor"&gt;Bu aslında ne anlama geliyor&lt;/h2&gt;
&lt;p&gt;Visual Studio 2022 sürüm 17.14.30 itibarıyla Azure MCP Server, Azure geliştirme iş yüküyle birlikte geliyor. Bu iş yükünü zaten yüklediyseniz, tek yapmanız gereken GitHub Copilot Chat&amp;rsquo;te etkinleştirip kullanmaya başlamak.&lt;/p&gt;
&lt;p&gt;45 Azure servisi genelinde 230&amp;rsquo;dan fazla araç — doğrudan sohbet penceresinden erişilebilir. Depolama hesaplarınızı listeleyin, ASP.NET Core uygulaması dağıtın, App Service sorunlarını tanılayın, Log Analytics&amp;rsquo;i sorgulayın — tek bir tarayıcı sekmesi açmadan.&lt;/p&gt;
&lt;h2 id="bu-neden-göründüğünden-daha-önemli"&gt;Bu neden göründüğünden daha önemli&lt;/h2&gt;
&lt;p&gt;Geliştirici araçlarındaki şu gerçeği biliyoruz: her ekstra adım sürtünmedir, sürtünme ise benimsemeyi öldürür. MCP&amp;rsquo;nin ayrı bir uzantı olması; sürüm uyumsuzlukları, kurulum hataları ve güncel tutulması gereken bir şey daha demekti. İş yüküne entegre etmek şu anlama geliyor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visual Studio Installer üzerinden &lt;strong&gt;tek güncelleme yolu&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Uzantı ile IDE arasında &lt;strong&gt;sürüm kayması yok&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Her zaman güncel&lt;/strong&gt; — MCP Server, düzenli VS sürümleriyle birlikte güncelleniyor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Azure üzerinde standartlaştıran ekipler için bu büyük bir avantaj. İş yükünü bir kez kuruyorsunuz, araçları etkinleştiriyorsunuz ve her oturumda hazır oluyorlar.&lt;/p&gt;
&lt;h2 id="bununla-neler-yapabilirsiniz"&gt;Bununla neler yapabilirsiniz&lt;/h2&gt;
&lt;p&gt;Araçlar Copilot Chat üzerinden tüm geliştirme yaşam döngüsünü kapsıyor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Öğrenin&lt;/strong&gt; — Azure servisleri, en iyi pratikler, mimari kalıplar hakkında sorular sorun&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tasarlayın ve geliştirin&lt;/strong&gt; — servis önerileri alın, uygulama kodunu yapılandırın&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dağıtın&lt;/strong&gt; — kaynakları sağlayın ve doğrudan IDE&amp;rsquo;den dağıtın&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sorun giderin&lt;/strong&gt; — günlükleri sorgulayın, kaynak sağlığını kontrol edin, üretim sorunlarını tanılayın&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hızlı bir örnek — Copilot Chat&amp;rsquo;e şunu yazın:&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, arka planda Azure MCP araçlarını çağırır, aboneliklerinizi sorgular ve isimler, konumlar ve SKU&amp;rsquo;larla birlikte biçimlendirilmiş bir liste döndürür. Portal gerekmez.&lt;/p&gt;
&lt;h2 id="nasıl-etkinleştirilir"&gt;Nasıl etkinleştirilir&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Visual Studio 2022 &lt;strong&gt;17.14.30&lt;/strong&gt; veya üzerine güncelleyin&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure development&lt;/strong&gt; iş yükünün yüklendiğinden emin olun&lt;/li&gt;
&lt;li&gt;GitHub Copilot Chat&amp;rsquo;i açın&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Select tools&lt;/strong&gt; düğmesine tıklayın (iki İngiliz anahtarı simgesi)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Azure MCP Server&lt;/strong&gt;&amp;lsquo;ı etkinleştirin&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Hepsi bu. Oturumlar arasında etkin kalır.&lt;/p&gt;
&lt;h2 id="bir-not"&gt;Bir not&lt;/h2&gt;
&lt;p&gt;Araçlar varsayılan olarak devre dışıdır — katılımınız gerekiyor. VS 2026&amp;rsquo;ya özgü araçlar VS 2022&amp;rsquo;de mevcut değil. Araç kullanılabilirliği de portaldaki gibi Azure abonelik izinlerinize bağlı.&lt;/p&gt;
&lt;h2 id="büyük-resim"&gt;Büyük resim&lt;/h2&gt;
&lt;p&gt;Bu, net bir trendin parçası: MCP, bulut araçlarını geliştirici IDE&amp;rsquo;lerinde sunmanın standart yolu haline geliyor. &lt;a href="https://devblogs.microsoft.com/azure-sdk/announcing-azure-mcp-server-2-0-stable-release/"&gt;Azure MCP Server 2.0 kararlı sürümünü&lt;/a&gt; ve VS Code ile diğer editörlerdeki MCP entegrasyonlarını zaten gördük. Visual Studio&amp;rsquo;nun iş yükü sistemine entegre olması doğal bir ilerleme.&lt;/p&gt;
&lt;p&gt;Visual Studio&amp;rsquo;da yaşayan .NET geliştiricileri olarak bu, Azure portalına bağlam değiştirmek için bir neden daha ortadan kalkıyor. Ve dürüst olmak gerekirse, ne kadar az sekme değiştirirsek o kadar iyi.&lt;/p&gt;</content:encoded></item><item><title>azd update — Tüm Paket Yöneticileriniz İçin Tek Bir Komut</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/azd-update-universal-upgrade-command/</guid><description>Azure Developer CLI artık, onu nasıl yüklediğinizden bağımsız olarak güncelleyen evrensel bir güncelleme komutuna sahip — winget, Homebrew, Chocolatey veya kurulum betiği.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azd-update-universal-upgrade-command/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Her birkaç haftada bir beliren &amp;ldquo;azd&amp;rsquo;nin yeni bir sürümü mevcut&amp;rdquo; mesajını biliyor musunuz? &lt;code&gt;azd&lt;/code&gt;&amp;lsquo;yi winget, Homebrew veya altı ay önce çalıştırdığınız curl betiğiyle mi yüklediğinizi hatırlayamadığınız için görmezden geldiğiniz mesajı? Evet, bu sonunda düzeldi.&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;&amp;lsquo;i piyasaya sürdü — Azure Developer CLI&amp;rsquo;ı, başlangıçta nasıl yüklediğinizden bağımsız olarak en son sürüme güncelleyen tek bir komut. Windows, macOS, Linux — fark etmiyor. Tek komut.&lt;/p&gt;
&lt;h2 id="nasıl-çalışıyor"&gt;Nasıl çalışıyor&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;Hepsi bu. Yeni özelliklere erken erişim istiyorsanız, günlük insiders derlemesine geçebilirsiniz:&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;Komut, mevcut kurulum yönteminizi algılar ve arka planda uygun güncelleme mekanizmasını kullanır. Artık &amp;ldquo;bu makinede winget mi yoksa choco mu kullandım?&amp;rdquo; sorusuna gerek yok.&lt;/p&gt;
&lt;h2 id="küçük-bir-uyarı"&gt;Küçük bir uyarı&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd update&lt;/code&gt;, 1.23.x sürümünden itibaren gönderilmeye başlandı. Daha eski bir sürümdeyseniz, orijinal kurulum yönteminizi kullanarak son bir manuel güncelleme yapmanız gerekecek. Bundan sonra &lt;code&gt;azd update&lt;/code&gt; her şeyi halleder.&lt;/p&gt;
&lt;p&gt;Mevcut sürümünüzü &lt;code&gt;azd version&lt;/code&gt; ile kontrol edin. Yeni bir kuruluma ihtiyacınız varsa, &lt;a href="https://learn.microsoft.com/azure/developer/azure-developer-cli/install-azd"&gt;kurulum dokümanları&lt;/a&gt; size yol gösterir.&lt;/p&gt;
&lt;h2 id="neden-önemli"&gt;Neden önemli&lt;/h2&gt;
&lt;p&gt;Bu küçük bir yaşam kalitesi iyileştirmesi, ancak Azure&amp;rsquo;a AI ajanları ve Aspire uygulamaları dağıtmak için &lt;code&gt;azd&lt;/code&gt;&amp;lsquo;yi günlük kullananlar için güncel kalmak daha az &amp;ldquo;bu hata zaten son sürümde düzeltilmişti&amp;rdquo; anı demek. Düşünmek zorunda kalmamanız gereken bir şey daha.&lt;/p&gt;
&lt;p&gt;Daha fazla bağlam için &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;tam duyuruyu&lt;/a&gt; ve Jon Gallant&amp;rsquo;ın &lt;a href="https://blog.jongallant.com/2026/04/azd-update"&gt;daha ayrıntılı incelemesini&lt;/a&gt; okuyun.&lt;/p&gt;</content:encoded></item><item><title>.NET Aspire 13.2 AI Ajanınızın En İyi Dostu Olmak İstiyor</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/aspire-agentic-development-build-run-observe/</guid><description>Aspire 13.2 ajansal geliştirmeye tam anlamıyla odaklanıyor — yapılandırılmış CLI çıktısı, izole çalıştırmalar, otomatik iyileştirme ortamları ve tam OpenTelemetry verisi sayesinde AI ajanlarınız uygulamalarınızı gerçekten derleyip çalıştırabilir ve izleyebilir.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/aspire-agentic-development-build-run-observe/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;AI kodlama ajanınızın sağlam bir kod yazdığı, heyecanlandığınız ve ardından uygulamayı çalıştırmaya çalışırken her şeyin dağıldığı o anı biliyor musunuz? Port çakışmaları, hayalet süreçler, yanlış ortam değişkenleri — ve bir anda ajanınız özellik geliştirmek yerine başlangıç sorunlarını çözmek için token harcamaya başlıyor.&lt;/p&gt;
&lt;p&gt;Aspire ekibi tam da bu sorun hakkında &lt;a href="https://devblogs.microsoft.com/aspire/agentic-dev-aspirations/"&gt;gerçekten düşünceli bir yazı&lt;/a&gt; yayımladı ve cevapları ikna edici: Aspire 13.2 yalnızca insanlar için değil, AI ajanları için de tasarlanmış.&lt;/p&gt;
&lt;h2 id="sorun-gerçek"&gt;Sorun gerçek&lt;/h2&gt;
&lt;p&gt;AI ajanları kod yazmakta inanılmaz derecede başarılı. Ancak çalışan bir full-stack uygulama göndermek, dosya oluşturmaktan çok daha fazlasını gerektiriyor. Servisleri doğru sırayla başlatmanız, portları yönetmeniz, ortam değişkenlerini ayarlamanız, veritabanlarını bağlamanız ve bir şeyler bozulduğunda geri bildirim almanız gerekiyor. Şu an çoğu ajan bunların hepsini deneme-yanılma yoluyla hallediypr — komutları çalıştırıyor, hata çıktısını okuyor, yeniden deniyor.&lt;/p&gt;
&lt;p&gt;Markdown talimatları, özel skill&amp;rsquo;ler ve prompt&amp;rsquo;lar ekleyerek onlara rehberlik etmeye çalışıyoruz, ancak bunlar öngörülemez, derlenemiyor ve ayrıştırılmaları bile token harcıyor. Aspire ekibi temel içgörüyü doğru yakaladı: ajanların daha fazla Markdown&amp;rsquo;a değil, &lt;strong&gt;derleyicilere ve yapılandırılmış API&amp;rsquo;lara&lt;/strong&gt; ihtiyacı var.&lt;/p&gt;
&lt;h2 id="ajan-altyapısı-olarak-aspire"&gt;Ajan altyapısı olarak Aspire&lt;/h2&gt;
&lt;p&gt;Aspire 13.2&amp;rsquo;nin ajansal geliştirme masasına getirdikleri:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tüm yığınınız yazılı kodda.&lt;/strong&gt; AppHost, tam topolojinizi — API, frontend, veritabanı, önbellek — derlenebilir TypeScript veya C# olarak tanımlıyor:&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;Bir ajan, uygulama topolojisini anlamak, kaynak eklemek, bağlantıları oluşturmak ve &lt;em&gt;doğrulamak için derlemek&lt;/em&gt; amacıyla bunu okuyabilir. Derleyici bir şeyin yanlış olduğunu anında söylüyor. Tahmin yok, yapılandırma dosyalarıyla deneme-yanılma yok.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Her şeyi yöneten tek komut.&lt;/strong&gt; Ajanların &lt;code&gt;docker compose up&lt;/code&gt;, &lt;code&gt;npm run dev&lt;/code&gt; ve veritabanı başlangıç betikleri arasında denge kurması yerine tek yapmaları gereken şey &lt;code&gt;aspire start&lt;/code&gt;. Tüm kaynaklar doğru sırayla, doğru portlarda, doğru yapılandırmayla başlıyor. Uzun süre çalışan süreçler ajanı engellemez — bunları Aspire yönetiyor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Paralel ajanlar için isolated mod.&lt;/strong&gt; &lt;code&gt;--isolated&lt;/code&gt; seçeneğiyle her Aspire çalıştırması kendi rastgele portlarını ve ayrı user secret&amp;rsquo;larını alıyor. Git worktree&amp;rsquo;lerinde çalışan birden fazla ajanınız mı var? Çakışmayacaklar. Bu, paralel ortamlar açan VS Code&amp;rsquo;un background agent&amp;rsquo;ları gibi araçlar için çok büyük bir gelişme.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Telemetri aracılığıyla ajan gözleri.&lt;/strong&gt; İşte burada gerçekten güçlü oluyor. Aspire CLI, geliştirme sırasında tam OpenTelemetry verilerini açığa çıkarıyor — trace&amp;rsquo;ler, metrikler, yapılandırılmış loglar. Ajanınız yalnızca konsol çıktısını okuyup en iyisini ummak zorunda değil. Başarısız bir isteği servisler arasında izleyebilir, yavaş endpoint&amp;rsquo;lerin profilini çıkarabilir ve neyin tam olarak nerede bozulduğunu saptayabilir. Bu, geliştirme döngüsünde üretim kalitesinde gözlemlenebilirlik demek.&lt;/p&gt;
&lt;h2 id="bowling-koruma-bandı-analojisi"&gt;Bowling koruma bandı analojisi&lt;/h2&gt;
&lt;p&gt;Aspire ekibi harika bir analoji kullanıyor: Aspire&amp;rsquo;ı AI ajanları için bowling koruma bantları olarak düşünün. Ajan mükemmel olmasa da (ve olmayacak), bantlar onu oluktan atmaktan koruyor. Yığın tanımı yanlış yapılandırmayı önlüyor, derleyici hataları yakalıyor, CLI süreç yönetimini üstleniyor ve telemetri geri bildirim döngüsünü sağlıyor.&lt;/p&gt;
&lt;p&gt;Bunu Playwright CLI gibi bir şeyle birleştirdiğinizde, ajanınız uygulamanızı gerçekten &lt;em&gt;kullanabilir&lt;/em&gt; — akışlara tıklayabilir, DOM&amp;rsquo;u kontrol edebilir, telemetride kırık şeyleri görebilir, kodu düzeltebilir, yeniden başlatabilir ve tekrar test edebilir. Derle, çalıştır, gözlemle, düzelt. Bu, peşinden koştuğumuz özerk geliştirme döngüsü.&lt;/p&gt;
&lt;h2 id="başlarken"&gt;Başlarken&lt;/h2&gt;
&lt;p&gt;Aspire&amp;rsquo;a yeni misiniz? CLI&amp;rsquo;ı &lt;a href="https://get.aspire.dev"&gt;get.aspire.dev&lt;/a&gt; adresinden yükleyin ve &lt;a href="https://aspire.dev/get-started/first-app"&gt;başlangıç rehberini&lt;/a&gt; takip edin.&lt;/p&gt;
&lt;p&gt;Zaten Aspire kullanıyor musunuz? 13.2&amp;rsquo;yi almak için &lt;code&gt;aspire update --self&lt;/code&gt; komutunu çalıştırın, ardından favori kodlama ajanınızı repoya yönlendirin. Aspire&amp;rsquo;ın koruma bantlarıyla ne kadar daha ileri gittiğini görünce şaşırabilirsiniz.&lt;/p&gt;
&lt;h2 id="özet"&gt;Özet&lt;/h2&gt;
&lt;p&gt;Aspire 13.2 artık sadece bir dağıtık uygulama framework&amp;rsquo;ü değil — temel ajan altyapısına dönüşüyor. Yapılandırılmış yığın tanımları, tek komutla başlangıç, izole paralel çalıştırmalar ve gerçek zamanlı telemetri, AI ajanlarına kod yazmaktan uygulama göndermek için tam olarak ihtiyaç duydukları şeyleri veriyor.&lt;/p&gt;
&lt;p&gt;Tüm ayrıntılar ve demo videolar için Aspire ekibinin &lt;a href="https://devblogs.microsoft.com/aspire/agentic-dev-aspirations/"&gt;tam yazısını&lt;/a&gt; okuyun.&lt;/p&gt;</content:encoded></item><item><title>Aspire'ın Isolated Modu Paralel Geliştirmedeki Port Çakışma Kabusu'nu Çözüyor</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/aspire-isolated-mode-parallel-instances/</guid><description>Aspire 13.2, --isolated modunu tanıtıyor: rastgele port ataması, ayrı secret'lar ve aynı AppHost'un birden fazla örneğini çalıştırırken sıfır çakışma. AI ajanları, worktree'ler ve paralel iş akışları için mükemmel.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/aspire-isolated-mode-parallel-instances/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Aynı projenin iki örneğini aynı anda çalıştırmayı hiç denediniz mi? O acıyı bilirsiniz. Port 8080 zaten kullanımda. Port 17370 alınmış. Bir şeyleri kapatın, yeniden başlatın, ortam değişkenlerini dengeleyin — bu, üretkenliği mahveden bir durum.&lt;/p&gt;
&lt;p&gt;Bu sorun daha da kötüleşiyor, iyileşmiyor. AI ajanlar bağımsız çalışmak için git worktree&amp;rsquo;ler oluşturuyor. Background agent&amp;rsquo;lar ayrı ortamlar başlatıyor. Geliştiriciler özellik dalları için aynı repoyu iki kez checkout yapıyor. Bu senaryoların her biri aynı engelle karşılaşıyor: aynı uygulamanın iki örneği aynı portlar için çarpışıyor.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 bunu tek bir bayrakla çözüyor. Aspire ekibinden James Newton-King &lt;a href="https://devblogs.microsoft.com/aspire/aspire-isolated-mode-parallel-development/"&gt;tüm ayrıntıları yazdı&lt;/a&gt; ve bu, &amp;ldquo;bunu neden daha önce yoktu?&amp;rdquo; diye düşündüren özelliklerden biri.&lt;/p&gt;
&lt;h2 id="çözüm---isolated"&gt;Çözüm: &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;Hepsi bu. Her çalıştırma şunları alıyor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rastgele portlar&lt;/strong&gt; — örnekler arasında artık çakışma yok&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;İzole user secret&amp;rsquo;lar&lt;/strong&gt; — bağlantı dizeleri ve API anahtarları örnek başına ayrı kalıyor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Manuel port yeniden ataması yok. Ortam değişkeni dengeleme yok. Her çalıştırma otomatik olarak taze, çakışmasız bir ortam alıyor.&lt;/p&gt;
&lt;h2 id="bunun-parladığı-gerçek-senaryolar"&gt;Bunun parladığı gerçek senaryolar&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Çoklu checkout&amp;rsquo;lar.&lt;/strong&gt; Bir dizinde özellik dalı, başka bir dizinde hata düzeltmesi var:&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;Her ikisi de çakışma olmadan çalışıyor. Dashboard neyin nerede çalıştığını gösteriyor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VS Code&amp;rsquo;daki background agent&amp;rsquo;lar.&lt;/strong&gt; Copilot Chat&amp;rsquo;in background agent&amp;rsquo;ı kodunuz üzerinde bağımsız çalışmak için bir git worktree oluşturduğunda, Aspire AppHost&amp;rsquo;unuzu çalıştırması gerekebilir. &lt;code&gt;--isolated&lt;/code&gt; olmadan, bu birincil worktree&amp;rsquo;nizle port çakışmasına yol açar. Bununla birlikte her iki örnek de çalışır.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;aspire agent init&lt;/code&gt; ile birlikte gelen Aspire skill&amp;rsquo;i, worktree&amp;rsquo;lerde çalışırken ajanlara otomatik olarak &lt;code&gt;--isolated&lt;/code&gt; kullanmalarını talimatlandırıyor. Dolayısıyla Copilot&amp;rsquo;un background agent&amp;rsquo;ı bunu kutudan çıkar çıkmaz halledebilmeli.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Geliştirmeyle eş zamanlı entegrasyon testleri.&lt;/strong&gt; Özellik geliştirmeye devam ederken canlı bir AppHost&amp;rsquo;a karşı test çalıştırmanız mı gerekiyor? Isolated mod, her bağlama kendi portlarını ve yapılandırmasını veriyor.&lt;/p&gt;
&lt;h2 id="arka-planda-nasıl-çalışıyor"&gt;Arka planda nasıl çalışıyor&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;--isolated&lt;/code&gt; geçirdiğinizde, CLI çalıştırma için benzersiz bir örnek kimliği oluşturuyor. Bu iki davranışı yönlendiriyor:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Port rastgeleleştirmesi&lt;/strong&gt; — AppHost yapılandırmanızda tanımlanan öngörülebilir portlara bağlanmak yerine, isolated mod her şey için — dashboard, servis endpoint&amp;rsquo;leri, hepsi — rastgele uygun portlar seçiyor. Servis keşfi otomatik olarak ayarlanıyor, bu nedenle servisler hangi portlara düşerlerse düşsünler birbirlerini buluyor.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Secret izolasyonu&lt;/strong&gt; — Her izole çalıştırma, örnek kimliğiyle anahtarlanan kendi user secret deposunu alıyor. Bir çalıştırmadan bağlantı dizeleri ve API anahtarları diğerine sızmıyor.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Kodunuzun değiştirilmesi gerekmiyor. Aspire&amp;rsquo;ın servis keşfi, endpoint&amp;rsquo;leri çalışma zamanında çözümlüyor, bu nedenle port atamasından bağımsız olarak her şey doğru şekilde bağlanıyor.&lt;/p&gt;
&lt;h2 id="ne-zaman-kullanmalı"&gt;Ne zaman kullanmalı&lt;/h2&gt;
&lt;p&gt;Aynı AppHost&amp;rsquo;un birden fazla örneğini aynı anda çalıştırırken &lt;code&gt;--isolated&lt;/code&gt; kullanın — ister paralel geliştirme, ister otomatik testler, ister AI ajanları, ister git worktree&amp;rsquo;ler olsun. Tahmin edilebilir portları tercih ettiğiniz tek örnekli geliştirme için, normal &lt;code&gt;aspire run&lt;/code&gt; hâlâ gayet iyi çalışıyor.&lt;/p&gt;
&lt;h2 id="özet"&gt;Özet&lt;/h2&gt;
&lt;p&gt;Isolated mod, gerçek ve giderek yaygınlaşan bir sorunu çözen küçük bir özellik. AI destekli geliştirme bizi daha fazla paralel iş akışına — birden fazla ajan, birden fazla worktree, birden fazla bağlam — doğru iterken, portlar için çakışmadan yeni bir örnek başlatabilme yeteneği vazgeçilmez hale geliyor.&lt;/p&gt;
&lt;p&gt;Tüm teknik ayrıntılar için &lt;a href="https://devblogs.microsoft.com/aspire/aspire-isolated-mode-parallel-development/"&gt;tam yazıyı&lt;/a&gt; okuyun ve 13.2&amp;rsquo;yi almak için &lt;code&gt;aspire update --self&lt;/code&gt; ile deneyin.&lt;/p&gt;</content:encoded></item><item><title>O Visual Studio Kayan Pencere Ayarını Hiç Duydunuz mu? (Duymanız Gerekiyor)</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/</guid><description>Gizli bir Visual Studio ayarı, kayan pencereler üzerinde tam kontrol sağlıyor — bağımsız görev çubuğu girişleri, düzgün çoklu monitör davranışı ve mükemmel FancyZones entegrasyonu. Tek bir açılır menü her şeyi değiştiriyor.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Birden fazla monitörle Visual Studio kullanıyorsanız (ve dürüstçe söylemek gerekirse, günümüzde kim kullanmıyor ki), muhtemelen o can sıkıcı durumu yaşamışsınızdır: ana IDE&amp;rsquo;yi küçülttüğünüzde kayan araç pencereleri kayboluyor, her zaman her şeyin üstünde kalıyor ve ayrı görev çubuğu butonları olarak görünmüyorlar. Bazı iş akışları için işe yarayabilir, ancak çoklu monitör kurulumlarında oldukça sinir bozucu.&lt;/p&gt;
&lt;p&gt;Visual Studio ekibinden Mads Kristensen, kayan pencerelerin davranışını kökten değiştiren &lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/"&gt;az bilinen bir ayarı paylaştı&lt;/a&gt;. Tek bir açılır menü. Hepsi bu kadar.&lt;/p&gt;
&lt;h2 id="ayar-nerede"&gt;Ayar nerede?&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; açılır menüsünde üç seçenek bulunuyor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;None&lt;/strong&gt; — tam bağımsızlık. Her kayan pencere kendi görev çubuğu girişini alır ve normal bir Windows penceresi gibi davranır.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tool Windows&lt;/strong&gt; (varsayılan) — belgeler serbestçe kalar, araç pencereleri IDE&amp;rsquo;ye bağlı kalır.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Documents and Tool Windows&lt;/strong&gt; — klasik Visual Studio davranışı, her şey ana pencereye bağlı.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="çoklu-monitör-kurulumlarında-neden-none-doğru-seçim"&gt;Çoklu monitör kurulumlarında neden &amp;ldquo;None&amp;rdquo; doğru seçim?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;None&lt;/strong&gt; olarak ayarlayın ve aniden tüm kayan araç pencereleriniz ve belgeleriniz gerçek Windows uygulamaları gibi davranmaya başlar. Görev çubuğunda görünürler, ana Visual Studio penceresini küçülttüğünüzde görünür kalmaya devam ederler ve artık her şeyin önüne zorla gelmiyor.&lt;/p&gt;
&lt;p&gt;Bunu &lt;strong&gt;PowerToys FancyZones&lt;/strong&gt; ile birleştirirseniz oyun değiştirucu bir deneyim elde edersiniz. Monitörlerinizde özel düzenler oluşturun, Solution Explorer&amp;rsquo;ınızı bir bölgeye, hata ayıklayıcıyı bir diğerine ve kod dosyalarını istediğiniz yere yerleştirin. Her şey yerinde kalır, her şeye bağımsız olarak erişilebilir ve çalışma alanınız kaotik yerine düzenli hissedilir.&lt;/p&gt;
&lt;h2 id="hızlı-öneriler"&gt;Hızlı öneriler&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Çoklu monitör güç kullanıcıları&lt;/strong&gt;: &lt;strong&gt;None&lt;/strong&gt; olarak ayarlayın, FancyZones ile birleştirin&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ara sıra kayan pencere kullananlar&lt;/strong&gt;: &lt;strong&gt;Tool Windows&lt;/strong&gt; (varsayılan) sağlam bir orta yol&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Geleneksel iş akışı&lt;/strong&gt;: &lt;strong&gt;Documents and Tool Windows&lt;/strong&gt; her şeyi klasik tutar&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;İpucu: Herhangi bir araç penceresi başlık çubuğuna &lt;strong&gt;Ctrl + çift tıklayarak&lt;/strong&gt; anında kayan veya yerleşik hale getirebilirsiniz. Ayarı değiştirdikten sonra yeniden başlatmaya gerek yok.&lt;/p&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;Bu, &amp;ldquo;bunu neden daha önce bilmiyordum&amp;rdquo; dedirten ayarlardan biri. Visual Studio&amp;rsquo;daki kayan pencereler sizi hiç rahatsız ettiyse şu anda gidip bunu değiştirin.&lt;/p&gt;
&lt;p&gt;Ayrıntılar ve ekran görüntüleri için &lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/"&gt;tam yazıyı&lt;/a&gt; okuyun.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.116 — Agents Uygulaması Klavye Navigasyonu ve Dosya Bağlamı Tamamlamaları Kazandı</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/vscode-1-116-agents-app-updates/</guid><description>VS Code 1.116, Agents uygulamasını geliştirmeye odaklanıyor — özel kısayol tuşları, erişilebilirlik iyileştirmeleri, dosya bağlamı tamamlamaları ve CSS @import bağlantı çözümlemesi.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/vscode-1-116-agents-app-updates/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;VS Code 1.116, Nisan 2026 sürümü; bazı yakın güncellemelerden daha hafif olsa da, değişiklikler odaklı ve anlamlı — özellikle Agents uygulamasını her gün kullanıyorsanız.&lt;/p&gt;
&lt;p&gt;İşte &lt;a href="https://code.visualstudio.com/updates/v1_116"&gt;resmi sürüm notlarına&lt;/a&gt; dayanarak neler geldi.&lt;/p&gt;
&lt;h2 id="agents-uygulaması-iyileştirmeleri"&gt;Agents uygulaması iyileştirmeleri&lt;/h2&gt;
&lt;p&gt;Agents uygulaması, günlük iş akışlarında gerçek fark yaratan kullanılabilirlik geliştirmeleriyle olgunlaşmaya devam ediyor:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Özel kısayol tuşları&lt;/strong&gt; — artık Changes görünümüne, Changes içindeki dosya ağacına ve Chat Customizations görünümüne özel komutlar ve klavye kısayollarıyla odaklanabilirsiniz. Agents uygulamasında gezinmek için tıklıyorsanız, bu tam klavye odaklı iş akışlarını getiriyor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Erişilebilirlik yardım diyaloğu&lt;/strong&gt; — sohbet giriş kutusunda &lt;code&gt;Alt+F1&lt;/code&gt; tuşuna basmak artık mevcut komutları ve kısayol tuşlarını gösteren bir erişilebilirlik yardım diyaloğu açıyor. Ekran okuyucu kullanıcıları ayrıca duyuru ayrıntısını kontrol edebiliyor. İyi erişilebilirlik herkesin işine yarar.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dosya bağlamı tamamlamaları&lt;/strong&gt; — Agents uygulaması sohbetinde &lt;code&gt;#&lt;/code&gt; yazarak mevcut çalışma alanınıza kapsamlı dosya bağlamı tamamlamalarını tetikleyin. Bu, her etkileşimi hızlandıran küçük bir yaşam kalitesi iyileştirmelerinden biri — koda referans verirken artık tam dosya yolları yazmak yok.&lt;/p&gt;
&lt;h2 id="css-import-bağlantı-çözümlemesi"&gt;CSS &lt;code&gt;@import&lt;/code&gt; bağlantı çözümlemesi&lt;/h2&gt;
&lt;p&gt;Frontend geliştiricileri için güzel bir özellik: VS Code artık node_modules yollarını kullanan CSS &lt;code&gt;@import&lt;/code&gt; referanslarını çözümlüyor. Bundler kullanırken &lt;code&gt;@import &amp;quot;some-module/style.css&amp;quot;&lt;/code&gt; gibi importlar üzerinden &lt;code&gt;Ctrl+click&lt;/code&gt; yapabilirsiniz. Küçük ama CSS iş akışlarındaki bir sürtünme noktasını ortadan kaldırıyor.&lt;/p&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;VS Code 1.116, iyileştirmeyle ilgili — Agents uygulamasını daha kolay gezilebilir, daha erişilebilir ve klavye dostu hale getiriyor. Agents uygulamasında önemli zaman harcıyorsanız (ki pek çoğumuzun harcadığını düşünüyorum), bu değişiklikler birikir.&lt;/p&gt;
&lt;p&gt;Tam liste için &lt;a href="https://code.visualstudio.com/updates/v1_116"&gt;sürüm notlarına&lt;/a&gt; bakın.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.115 — Arka Plan Terminal Bildirimleri, SSH Agent Modu ve Daha Fazlası</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/vscode-1-115-agent-improvements/</guid><description>VS Code 1.115, agentlar için arka plan terminal bildirimleri, SSH uzak agent barındırma, terminale dosya yapıştırma ve oturum bazlı düzenleme takibi getiriyor. .NET geliştiricileri için önemli olan şeyler burada.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/vscode-1-115-agent-improvements/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;VS Code 1.115 az önce &lt;a href="https://code.visualstudio.com/updates/v1_115"&gt;yayınlandı&lt;/a&gt; ve başlık özellikleri açısından hafif bir sürüm olsa da, AI kodlama asistanlarıyla her gün çalışıyorsanız agent ile ilgili iyileştirmeler gerçekten kullanışlı.&lt;/p&gt;
&lt;p&gt;Gerçekten bilinmeye değer olanları öne çıkarayım.&lt;/p&gt;
&lt;h2 id="arka-plan-terminalleri-agentlara-geri-bildirim-veriyor"&gt;Arka plan terminalleri agentlara geri bildirim veriyor&lt;/h2&gt;
&lt;p&gt;Bu, öne çıkan özellik. Arka plan terminalleri artık komutlar tamamlandığında çıkış kodu ve terminal çıktısını da içerecek şekilde otomatik olarak agentları bilgilendiriyor. Arka plan terminallerindeki giriş istemleri de tespit edilerek kullanıcıya iletiliyor.&lt;/p&gt;
&lt;p&gt;Bu neden önemli? Copilot&amp;rsquo;un agent modunu arka planda build komutları veya test dizileri çalıştırmak için kullandıysanız, &amp;ldquo;o bitti mi acaba?&amp;rdquo; sancısını bilirsiniz — arka plan terminalleri esasen ateş et ve unut mantığıyla çalışıyordu. Artık agent, &lt;code&gt;dotnet build&lt;/code&gt; veya &lt;code&gt;dotnet test&lt;/code&gt; tamamlandığında haberdar ediliyor, çıktıyı görüyor ve buna göre tepki verebiliyor. Küçük bir değişiklik, ama agent odaklı iş akışlarını önemli ölçüde daha güvenilir kılıyor.&lt;/p&gt;
&lt;p&gt;Ayrıca, agentların kullanıcı onayıyla arka plan terminallerine komut göndermesine olanak tanıyan yeni bir &lt;code&gt;send_to_terminal&lt;/code&gt; aracı var; bu da &lt;code&gt;run_in_terminal&lt;/code&gt;&amp;lsquo;in zaman aşımıyla terminalleri arka plana taşıdığı ve salt okunur hale getirdiği sorunu çözüyor.&lt;/p&gt;
&lt;h2 id="ssh-uzak-agent-barındırma"&gt;SSH uzak agent barındırma&lt;/h2&gt;
&lt;p&gt;VS Code artık SSH üzerinden uzak makinelere bağlanmayı, CLI&amp;rsquo;yi otomatik olarak yüklemeyi ve agent ana bilgisayar modunda başlatmayı destekliyor. Bu, AI agent oturumlarınızın uzak ortamları doğrudan hedefleyebileceği anlamına geliyor — Linux sunucularda veya bulut VM&amp;rsquo;lerinde geliştirme ve test yapan .NET geliştiricileri için kullanışlı.&lt;/p&gt;
&lt;h2 id="agent-oturumlarında-düzenleme-takibi"&gt;Agent oturumlarında düzenleme takibi&lt;/h2&gt;
&lt;p&gt;Agent oturumları sırasında yapılan dosya düzenlemeleri artık farklar, geri alma/yeniden yapma ve durum geri yükleme ile birlikte takip ediliyor ve geri yükleniyor. Bir agent kodunuzda değişiklik yapar ve bir şeyler ters giderse, tam olarak neyin değiştiğini görebilir ve geri alabilirsiniz. Agentların kod tabanınızı değiştirmesine izin vermek için gönül rahatlığı.&lt;/p&gt;
&lt;h2 id="tarayıcı-sekme-farkındalığı-ve-diğer-iyileştirmeler"&gt;Tarayıcı sekme farkındalığı ve diğer iyileştirmeler&lt;/h2&gt;
&lt;p&gt;Birkaç yaşam kalitesi iyileştirmesi daha:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tarayıcı sekme takibi&lt;/strong&gt; — sohbet artık bir oturum sırasında açılan tarayıcı sekmelerini takip edip bunlara bağlantı verebiliyor, böylece agentlar baktığınız web sayfalarına referans verebiliyor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terminale dosya yapıştırma&lt;/strong&gt; — Ctrl+V, sürükle-bırak veya sağ tıklamayla terminale dosya (resimler dahil) yapıştırın&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Minimap&amp;rsquo;te test kapsamı&lt;/strong&gt; — test kapsamı göstergeleri artık hızlı bir görsel özet için minimap&amp;rsquo;te gösteriliyor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mac&amp;rsquo;te sıkıştırarak yakınlaştırma&lt;/strong&gt; — entegre tarayıcı sıkıştırarak yakınlaştırma hareketlerini destekliyor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sessions&amp;rsquo;da Copilot yetkilendirmeleri&lt;/strong&gt; — durum çubuğu Sessions görünümünde kullanım bilgilerini gösteriyor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Go to File&amp;rsquo;da favicon&lt;/strong&gt; — açık web sayfaları hızlı seçim listesinde favicon gösteriyor&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;VS Code 1.115 artımlı bir sürüm, ancak agent iyileştirmeleri — arka plan terminal bildirimleri, SSH agent barındırma ve düzenleme takibi — AI destekli geliştirme için fark edilir şekilde daha akıcı bir deneyim oluşturuyor. .NET projeleri için Copilot&amp;rsquo;un agent modunu kullanıyorsanız, bunlar günlük sürtünmeyi azaltan yaşam kalitesi düzeltmeleri.&lt;/p&gt;
&lt;p&gt;Her ayrıntı için &lt;a href="https://code.visualstudio.com/updates/v1_115"&gt;tam sürüm notlarına&lt;/a&gt; bakın.&lt;/p&gt;</content:encoded></item><item><title>Aspire 13.2 Bir Dokümantasyon CLI'ı Sunuyor — ve AI Ajanınız da Kullanabilir</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/aspire-docs-cli-ai-skills/</guid><description>.NET Aspire 13.2, aspire docs'u ekliyor — terminali terk etmeden resmi belgeleri aramanızı, gezmenizi ve okumanızı sağlayan bir CLI. AI ajanları için de araç olarak çalışıyor. Bunun neden önemli olduğunu burada açıklıyoruz.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/aspire-docs-cli-ai-skills/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Bir Aspire AppHost&amp;rsquo;un içinde derinlere dalıp entegrasyonları bağlarken Redis entegrasyonunun tam olarak hangi parametreleri beklediğini kontrol etmeniz gereken o anı biliyor musunuz? Tarayıcınıza geçersiniz, aspire.dev&amp;rsquo;de arama yaparsınız, API dokümanlarını incelersiniz, sonra editörünüze dönersiniz. Bağlam kaybolmuş. Akış bozulmuş.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 tam da &lt;a href="https://devblogs.microsoft.com/aspire/aspire-docs-in-your-terminal/"&gt;bunun için bir çözüm sundu&lt;/a&gt;. &lt;code&gt;aspire docs&lt;/code&gt; CLI&amp;rsquo;ı, terminali terk etmeden resmi Aspire belgelerini doğrudan arayıp okuyabilmenizi sağlıyor. Yeniden kullanılabilir servisler tarafından desteklendiği için, AI ajanları ve skill&amp;rsquo;ler de var olmayan API&amp;rsquo;ları uydurmak yerine belge aramak amacıyla aynı komutları kullanabiliyor.&lt;/p&gt;
&lt;h2 id="bu-aslında-ne-sorunu-çözüyor"&gt;Bu aslında ne sorunu çözüyor&lt;/h2&gt;
&lt;p&gt;David Pine orijinal yazısında konuyu net olarak özetliyor: AI ajanlar, geliştiricilere Aspire uygulamaları geliştirmede yardım etmekte &lt;em&gt;berbattı&lt;/em&gt;. &lt;code&gt;aspire run&lt;/code&gt; yerine &lt;code&gt;dotnet run&lt;/code&gt; öneriyorlar, aspire.dev&amp;rsquo;deki belgeleri learn.microsoft.com&amp;rsquo;a yönlendiriyorlardı, güncel olmayan NuGet paketleri öneriyorlardı ve — kişisel favorim — var olmayan API&amp;rsquo;ları uyduruyorlardı.&lt;/p&gt;
&lt;p&gt;Neden? Çünkü Aspire, çok dilli olmadan çok daha uzun süre .NET&amp;rsquo;e özel kaldı ve LLM&amp;rsquo;ler en son özelliklerin öncesindeki eğitim verileriyle çalışıyor. Bir AI ajanına mevcut belgeleri gerçekten arama yeteneği verdiğinizde, tahmin etmeyi bırakıp işe yarar hale geliyor.&lt;/p&gt;
&lt;h2 id="üç-komut-sıfır-tarayıcı-sekmesi"&gt;Üç komut, sıfır tarayıcı sekmesi&lt;/h2&gt;
&lt;p&gt;CLI ferahlatıcı derecede basit:&lt;/p&gt;
&lt;h3 id="tüm-belgeleri-listele"&gt;Tüm belgeleri listele&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&amp;rsquo;de mevcut her belge sayfasını döndürür. Makine tarafından okunabilir çıktı mı istiyorsunuz? &lt;code&gt;--format Json&lt;/code&gt; ekleyin.&lt;/p&gt;
&lt;h3 id="bir-konu-arayın"&gt;Bir konu arayın&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;Ağırlıklı ilgi puanlamasıyla hem başlıkları hem içeriği arar. Dahili olarak dokümantasyon araçlarını destekleyen arama motorunun aynısı. Başlıklar, slug&amp;rsquo;lar ve ilgi puanlarıyla sıralı sonuçlar alırsınız.&lt;/p&gt;
&lt;h3 id="tam-sayfayı-okuyun-ya-da-yalnızca-bir-bölümü"&gt;Tam sayfayı okuyun (ya da yalnızca bir bölümü)&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;Tam sayfayı markdown olarak terminalinize akıtır. Yalnızca bir bölüme mi ihtiyacınız var?&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;Cerrahi hassasiyet. 500 satır kaydırma yok. Sadece ihtiyacınız olan kısım.&lt;/p&gt;
&lt;h2 id="ai-ajan-boyutu"&gt;AI ajan boyutu&lt;/h2&gt;
&lt;p&gt;İşte AI araçlarıyla geliştirme yapan bizim için ilginç olan kısım. Aynı &lt;code&gt;aspire docs&lt;/code&gt; komutları, AI ajanları için araç olarak çalışıyor — skill&amp;rsquo;ler, MCP sunucuları veya basit CLI sarmalayıcıları aracılığıyla.&lt;/p&gt;
&lt;p&gt;AI asistanınızın eski eğitim verilerine dayalı Aspire API&amp;rsquo;ları uydurmak yerine, &lt;code&gt;aspire docs search &amp;quot;postgres&amp;quot;&lt;/code&gt; çağırabilir, resmi entegrasyon belgelerini bulabilir, doğru sayfayı okuyabilir ve size belgelenmiş yaklaşımı sunabilir. Gerçek zamanlı, güncel belgeler — modelin altı ay önce ezberledikleri değil.&lt;/p&gt;
&lt;p&gt;Bunun arkasındaki mimari kasıtlı. Aspire ekibi tek seferlik bir entegrasyon yerine yeniden kullanılabilir servisler (&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;) inşa etti. Bu, aynı arama motorunun terminaldeki insanlar, editörünüzdeki AI ajanları ve CI pipeline&amp;rsquo;ınızdaki otomasyonlar için çalışması anlamına geliyor.&lt;/p&gt;
&lt;h2 id="gerçek-dünya-senaryoları"&gt;Gerçek dünya senaryoları&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Hızlı terminal aramaları:&lt;/strong&gt; Üç dosya derindesiniz ve Redis yapılandırma parametrelerine ihtiyacınız var. İki komut, doksan saniye, işe geri dönüş:&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 destekli geliştirme:&lt;/strong&gt; VS Code skill&amp;rsquo;iniz CLI komutlarını sarmalıyor. &amp;ldquo;AppHost&amp;rsquo;uma bir PostgreSQL veritabanı ekle&amp;rdquo; diyorsunuz ve ajan cevap vermeden önce gerçek belgelere bakıyor. Halüsinasyon yok.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CI/CD doğrulama:&lt;/strong&gt; Pipeline&amp;rsquo;ınız, AppHost yapılandırmalarını programatik olarak resmi belgelerle doğruluyor. &lt;code&gt;--format Json&lt;/code&gt; çıktısı &lt;code&gt;jq&lt;/code&gt; ve diğer araçlara temiz şekilde aktarılıyor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Özel bilgi tabanları:&lt;/strong&gt; Kendi AI araçlarınızı mı geliştiriyorsunuz? Yapılandırılmış JSON çıktısını doğrudan bilgi tabanınıza aktarın:&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 yok. API anahtarı yok. Dokümantasyon araçlarının dahili olarak kullandığı aynı yapılandırılmış veri.&lt;/p&gt;
&lt;h2 id="belgeler-her-zaman-canlı"&gt;Belgeler her zaman canlı&lt;/h2&gt;
&lt;p&gt;En çok takdir ettiğim kısım bu. CLI bir anlık görüntü indirmiyor — aspire.dev&amp;rsquo;i ETag tabanlı önbelleklemeyle sorguluyor. Belgeler güncellenir güncellenmez, CLI&amp;rsquo;ınız ve üzerine inşa edilmiş tüm skill&amp;rsquo;ler bunu yansıtıyor. Eski kopyalar yok, &amp;ldquo;ama wiki şöyle diyordu&amp;hellip;&amp;rdquo; anları yok.&lt;/p&gt;
&lt;h2 id="özet"&gt;Özet&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;aspire docs&lt;/code&gt;, gerçek bir sorunu temiz biçimde çözen küçük özelliklerden biri. İnsanlar terminale özgü belge erişimi kazanıyor. AI ajanları tahmin etmeyi bırakıp gerçek belgelere başvurmanın bir yolunu buluyor. Ve hepsi aynı gerçek kaynakla destekleniyor.&lt;/p&gt;
&lt;p&gt;.NET Aspire ile geliştirme yapıyorsanız ve CLI&amp;rsquo;ı henüz denemediyseniz, &lt;code&gt;aspire docs search &amp;quot;konunuz&amp;quot;&lt;/code&gt; çalıştırın ve nasıl hissettirdiğini görün. Sonra bu komutları kullandığınız AI skill veya otomasyon kurulumuna entegre etmeyi düşünün — ajanlarınız size teşekkür edecek.&lt;/p&gt;
&lt;p&gt;Dokümantasyon araçlarının nasıl oluşturulduğuna dair &lt;a href="https://davidpine.dev/posts/aspire-docs-mcp-tools/"&gt;David Pine&amp;rsquo;ın derinlemesine incelemesine&lt;/a&gt; ve tüm ayrıntılar için &lt;a href="https://aspire.dev/reference/cli/commands/aspire-docs/"&gt;resmi CLI referansına&lt;/a&gt; göz atın.&lt;/p&gt;</content:encoded></item><item><title>azd Artık AI Ajanlarınızı Yerel Ortamda Çalıştırıp Hata Ayıklamanıza İzin Veriyor — Mart 2026'daki Değişiklikler</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/</guid><description>Azure Developer CLI, Mart 2026'da yedi sürüm yayımladı. Öne çıkanlar: AI ajanları için yerel çalıştırma ve hata ayıklama döngüsü, proje kurulumunda GitHub Copilot entegrasyonu ve Container App Jobs desteği.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Bir ayda yedi sürüm. Azure Developer CLI (&lt;code&gt;azd&lt;/code&gt;) ekibinin Mart 2026&amp;rsquo;da yaptığı bu ve başlık özelliği benim beklediğim şey: &lt;strong&gt;AI ajanları için yerel çalıştırma ve hata ayıklama döngüsü&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;tam özeti yayımladı&lt;/a&gt; ve orada pek çok şey olsa da, AI destekli uygulamalar geliştiren .NET geliştiricileri için gerçekten önem taşıyan şeyleri özetleyeyim.&lt;/p&gt;
&lt;h2 id="ai-ajanlarını-dağıtmadan-çalıştırın-ve-hata-ayıklayın"&gt;AI ajanlarını dağıtmadan çalıştırın ve hata ayıklayın&lt;/h2&gt;
&lt;p&gt;En büyük yenilik bu. Yeni &lt;code&gt;azure.ai.agents&lt;/code&gt; uzantısı, AI ajanları için düzgün bir iç döngü deneyimi sunan bir dizi komut ekliyor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;azd ai agent run&lt;/code&gt; — ajanı yerel olarak başlatır&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt; — ona mesaj gönderir (yerel veya dağıtılmış)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent show&lt;/code&gt; — container durumunu ve sağlığını gösterir&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt; — container loglarını gerçek zamanlı akıtır&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bundan önce, bir AI ajanını test etmek her değişiklik yaptığınızda Microsoft Foundry&amp;rsquo;e dağıtmak anlamına geliyordu. Artık yerel olarak yineleyebilir, ajanın davranışını test edebilir ve yalnızca hazır olduğunuzda dağıtabilirsiniz. Microsoft Agent Framework veya Semantic Kernel ile ajan geliştiriyorsanız, bu günlük iş akışınızı değiştiriyor.&lt;/p&gt;
&lt;p&gt;invoke komutu hem yerel hem de dağıtılmış ajanlara karşı çalışıyor; bu, ajanın nerede çalıştığından bağımsız olarak aynı test iş akışını kullanabileceğiniz anlamına geliyor. Bu tür bir ayrıntı, iki ayrı test betiği setini sürdürmek zorunda kalmaktan sizi kurtarıyor.&lt;/p&gt;
&lt;h2 id="github-copilot-azd-projenizi-iskelet-oluşturuyor"&gt;GitHub Copilot azd projenizi iskelet oluşturuyor&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd init&lt;/code&gt; artık &amp;ldquo;GitHub Copilot ile Kur (Önizleme)&amp;rdquo; seçeneği sunuyor. Proje yapınız hakkındaki prompt&amp;rsquo;lara manuel olarak yanıt vermek yerine, bir Copilot ajanı yapılandırmayı sizin için iskelet oluşturuyor. Herhangi bir şeyi değiştirmeden önce kirli çalışma dizinini kontrol ediyor ve MCP sunucusu araç iznini önceden istiyor.&lt;/p&gt;
&lt;p&gt;Bir komut başarısız olduğunda, &lt;code&gt;azd&lt;/code&gt; artık AI destekli sorun giderme sunuyor: bir kategori seçin (açıkla, rehberlik, sorun gider veya atla), ajanın bir düzeltme önermesine izin verin ve yeniden deneyin — hepsi terminali terk etmeden. Karmaşık altyapı kurulumları için bu gerçek anlamda zaman kazandırıyor.&lt;/p&gt;
&lt;h2 id="container-app-jobs-ve-dağıtım-iyileştirmeleri"&gt;Container App Jobs ve dağıtım iyileştirmeleri&lt;/h2&gt;
&lt;p&gt;Dikkat çekmeye değer birkaç dağıtım özelliği:&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; artık mevcut &lt;code&gt;host: containerapp&lt;/code&gt; yapılandırması aracılığıyla &lt;code&gt;Microsoft.App/jobs&lt;/code&gt; dağıtıyor. Bicep şablonunuz hedefin Container App mı yoksa Job mu olduğunu belirliyor — ekstra kurulum gerekmez.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Yapılandırılabilir dağıtım zaman aşımları&lt;/strong&gt;: &lt;code&gt;azd deploy&lt;/code&gt; üzerinde yeni &lt;code&gt;--timeout&lt;/code&gt; bayrağı ve &lt;code&gt;azure.yaml&lt;/code&gt;&amp;lsquo;da &lt;code&gt;deployTimeout&lt;/code&gt; alanı. Varsayılan 1200 saniyelik sınırı artık tahmin etmek zorunda değilsiniz.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uzak derleme yedeklemesi&lt;/strong&gt;: Uzak ACR derlemesi başarısız olduğunda, &lt;code&gt;azd&lt;/code&gt; otomatik olarak yerel Docker/Podman derlemesine geri düşüyor.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Yerel ön uçuş doğrulama&lt;/strong&gt;: Bicep parametreleri, Azure&amp;rsquo;a bir gidiş-dönüş yapmadan eksik parametreleri yakalamak için dağıtımdan önce yerel olarak doğrulanıyor.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="geliştirici-deneyimi-iyileştirmeleri"&gt;Geliştirici deneyimi iyileştirmeleri&lt;/h2&gt;
&lt;p&gt;Toplanınca fark yaratan küçük iyileştirmeler:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;JS/TS projeleri için &lt;strong&gt;otomatik pnpm/yarn algılama&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Python paketleme için &lt;strong&gt;pyproject.toml desteği&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Yerel şablon dizinleri&lt;/strong&gt; — &lt;code&gt;azd init --template&lt;/code&gt; artık çevrimdışı yineleme için dosya sistemi yollarını kabul ediyor&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--no-prompt&lt;/code&gt; modunda &lt;strong&gt;daha iyi hata mesajları&lt;/strong&gt; — eksik tüm değerler çözüm komutlarıyla birlikte bir kerede raporlanıyor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Derleme ortam değişkenleri&lt;/strong&gt; tüm framework derleme alt süreçlerine enjekte ediliyor (.NET, Node.js, Java, Python)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Son madde ince ama önemli: .NET derlemeniz artık &lt;code&gt;azd&lt;/code&gt; ortam değişkenlerine erişebilir; bu, ekstra betik yazmadan derleme zamanı yapılandırma enjeksiyonu yapabileceğiniz anlamına geliyor.&lt;/p&gt;
&lt;h2 id="özet"&gt;Özet&lt;/h2&gt;
&lt;p&gt;Yerel AI ajan hata ayıklama döngüsü bu sürümün yıldızı, ancak dağıtım iyileştirmeleri ve geliştirici deneyimi cilasının birikmesi &lt;code&gt;azd&lt;/code&gt;&amp;lsquo;yi her zamankinden daha olgun hissettiriyor. .NET uygulamalarını Azure&amp;rsquo;a — özellikle AI ajanlarını — dağıtıyorsanız, bu güncelleme kuruluma değer.&lt;/p&gt;
&lt;p&gt;Her ayrıntı için &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-march-2026/"&gt;tam sürüm notlarına&lt;/a&gt; bakın ya da &lt;a href="https://learn.microsoft.com/azure/developer/azure-developer-cli/install-azd"&gt;azd kurulumu&lt;/a&gt; ile başlayın.&lt;/p&gt;</content:encoded></item><item><title>Azure DevOps Sonunda Herkesin Şikayet Ettiği Markdown Editörü UX'ini Düzeltiyor</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</guid><description>Azure DevOps iş öğeleri için Markdown editörü, önizleme ile düzenleme modu arasında daha net bir ayrım alıyor. Bu küçük bir değişiklik gibi görünse de gerçekten can sıkıcı bir iş akışı sorununu çözüyor.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Azure Boards kullanıyorsanız, muhtemelen bunu yaşamışsınızdır: bir iş öğesi açıklamasını okuyorsunuz, belki kabul kriterlerini gözden geçiriyorsunuz ve yanlışlıkla çift tıklıyorsunuz. Bum — düzenleme modundasınız. Hiçbir şeyi düzenlemek istemiyordunuz. Sadece okuyordunuz.&lt;/p&gt;
&lt;p&gt;Dan Hellem &lt;a href="https://devblogs.microsoft.com/devops/improving-the-markdown-editor-for-work-items/"&gt;düzeltmeyi duyurdu&lt;/a&gt;, ve bu, küçük gibi görünse de günlük iş akışınızdan gerçek sürtüşmeyi kaldıran değişikliklerden biri.&lt;/p&gt;
&lt;h2 id="ne-değişti"&gt;Ne değişti&lt;/h2&gt;
&lt;p&gt;İş öğesi metin alanları için Markdown editörü artık varsayılan olarak &lt;strong&gt;önizleme modunda&lt;/strong&gt; açılıyor. İçerikle okuyabilir ve etkileşime girebilirsiniz — bağlantıları takip etmek, biçimlendirmeyi gözden geçirmek — yanlışlıkla düzenleme moduna girme endişesi olmadan.&lt;/p&gt;
&lt;p&gt;Gerçekten düzenlemek istediğinizde, alanın üstündeki düzenleme simgesine tıklarsınız. Bitirdiğinizde, açıkça önizleme moduna geri çıkarsınız.&lt;/p&gt;
&lt;h2 id="neden-göründüğünden-daha-önemli"&gt;Neden göründüğünden daha önemli&lt;/h2&gt;
&lt;p&gt;Bu konudaki &lt;a href="https://developercommunity.visualstudio.com/t/Markdown-editor-for-work-item-multi-line/10935496"&gt;topluluk geri bildirim dizisi&lt;/a&gt; uzundu. Çift tıklama-düzenleme davranışı Temmuz 2025&amp;rsquo;te Markdown editörüyle tanıtıldı ve şikayetler neredeyse hemen başladı.&lt;/p&gt;
&lt;h2 id="yayılım-durumu"&gt;Yayılım durumu&lt;/h2&gt;
&lt;p&gt;Bu zaten bir müşteri alt kümesine yayılıyor ve önümüzdeki iki ila üç hafta içinde herkese genişleyecek.&lt;/p&gt;</content:encoded></item><item><title>Bookmark Studio, Visual Studio Yer İşaretlerine Slot Tabanlı Gezinti ve Paylaşım Getiriyor</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/</guid><description>Mads Kristensen'in yeni Bookmark Studio uzantısı, Visual Studio yer işaretlerine klavye odaklı slot gezintisi, bir yer işareti yöneticisi, renkler, etiketler ve dışa aktarma/paylaşma özellikleri ekliyor.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Visual Studio&amp;rsquo;daki yer işaretleri her zaman&amp;hellip; idare ederdi. Bir tane koyarsınız, bir sonrakine geçersiniz, hangisinin ne olduğunu unutursunuz. Çalışırlar, ama hiçbir zaman güçlü diyebileceğiniz bir özellik olmadılar.&lt;/p&gt;
&lt;p&gt;Mads Kristensen, eğer yer işaretlerini düzenli kullanıyorsanız muhtemelen karşılaştığınız boşlukları tam olarak dolduran deneysel bir uzantı olan &lt;a href="https://devblogs.microsoft.com/visualstudio/bookmark-studio-evolving-bookmarks-in-visual-studio/"&gt;Bookmark Studio&amp;rsquo;yu yayımladı&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="slot-tabanlı-gezinti"&gt;Slot tabanlı gezinti&lt;/h2&gt;
&lt;p&gt;Temel yenilik şu: yer işaretleri artık 1–9 numaralı slotlara atanabilir ve doğrudan &lt;code&gt;Alt+Shift+1&lt;/code&gt; ile &lt;code&gt;Alt+Shift+9&lt;/code&gt; tuş kombinasyonlarıyla erişilebilir. Yeni yer işaretleri otomatik olarak bir sonraki boş slotu alır; dolayısıyla çoğu durumda herhangi bir yapılandırma gerektirmeden hızlı gezinti çalışır.&lt;/p&gt;
&lt;p&gt;Bu basit görünüyor, ama yer işaretlerini &amp;ldquo;bir yerlerde bazı yer işaretlerim var&amp;rdquo; durumundan &amp;ldquo;Slot 3 API controller&amp;rsquo;ım, Slot 5 servis katmanı, Slot 7 test&amp;rdquo; haline getiriyor. Bu tür uzamsal bellek, odaklanılmış çalışma oturumlarında gezintiyi neredeyse anında yapıyor.&lt;/p&gt;
&lt;h2 id="yer-işareti-yöneticisi"&gt;Yer İşareti Yöneticisi&lt;/h2&gt;
&lt;p&gt;Yeni bir araç penceresi, tüm yer işaretlerinizi tek bir yerde ad, dosya, konum, renk veya slota göre filtreleme seçeneğiyle gösteriyor. Herhangi bir yer işaretine atlamak için çift tıklayabilir ya da klavyeyle gezinebilirsiniz.&lt;/p&gt;
&lt;p&gt;Eğer hiç beş-altı yer işaretinden fazlasına sahip olup hangisinin ne olduğunu takip edemediğiniz olduysa, bu tek başına uzantıyı kurmaya değer.&lt;/p&gt;
&lt;h2 id="etiketler-renkler-ve-klasörlerle-organizasyon"&gt;Etiketler, renkler ve klasörlerle organizasyon&lt;/h2&gt;
&lt;p&gt;Yer işaretlerine isteğe bağlı olarak etiket ve renk eklenebilir, klasörlere gruplandırılabilir. Bunların hiçbiri zorunlu değil — mevcut yer işareti iş akışınız çalışmaya devam eder. Ancak karmaşık bir sorunu hata ayıkladığınızda ya da tanıdık olmayan bir kod tabanını keşfettiğinizde, yer işaretlerinizi renklendirebilmek ve etiketleyebilmek yararlı bir bağlam katıyor.&lt;/p&gt;
&lt;p&gt;Tüm meta veriler çözüm başına saklanır; dolayısıyla yer işareti organizasyonunuz oturumlar arasında kalıcı olur.&lt;/p&gt;
&lt;h2 id="dışa-aktarma-ve-paylaşma"&gt;Dışa aktarma ve paylaşma&lt;/h2&gt;
&lt;p&gt;Bilmeden istediğim özellik bu. Bookmark Studio, yer işaretlerini düz metin, Markdown veya CSV olarak dışa aktarmanıza izin veriyor. Yani şunları yapabilirsiniz:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pull request açıklamalarına yer işareti yollarını eklemek&lt;/li&gt;
&lt;li&gt;İnceleme izlerini takım arkadaşlarıyla paylaşmak&lt;/li&gt;
&lt;li&gt;Yer işareti kümelerini repolar veya dallar arasında taşımak&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Yer işaretleri yalnızca kişisel bir gezinti aracı olmaktan çıkıp &amp;ldquo;işte bu kodun geçtiği yol&amp;rdquo; mesajını iletmenin bir yoluna dönüşüyor.&lt;/p&gt;
&lt;h2 id="kod-hareketini-izleyen-yer-işaretleri"&gt;Kod hareketini izleyen yer işaretleri&lt;/h2&gt;
&lt;p&gt;Bookmark Studio, yer işaretlerini bağlandıkları metne göre takip eder; böylece düzenleme yaparken yanlış satırlara kaymazlar. Hiç bir hata ayıklama oturumunda yer işaretleri koyup bir yeniden yapılandırmanın ardından hepsinin yanlış satırlara işaret ettiğini gördüyseniz — bu durumu düzeltiyor.&lt;/p&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;Bookmark Studio hiçbir şeyi yeniden icat etmiyor. Yıllardır &amp;ldquo;yeterince iyi&amp;rdquo; olan bir özelliği alıp odaklanılmış geliştirme için gerçekten kullanışlı hale getiriyor. Slot gezintisi, Yer İşareti Yöneticisi ve dışa aktarma özellikleri öne çıkanlardır.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=MadsKristensen.BookmarkStudio"&gt;Visual Studio Marketplace&lt;/a&gt;&amp;lsquo;dan indirin ve deneyin.&lt;/p&gt;</content:encoded></item><item><title>Visual Studio'nun Mart Güncellemesiyle Özel Copilot Agentları Oluşturabilirsiniz — find_symbol Aracı Gerçekten Büyük</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/visual-studio-march-2026-custom-copilot-agents/</guid><description>Visual Studio'nun Mart 2026 güncellemesi özel Copilot agentları, yeniden kullanılabilir agent becerileri, dile duyarlı bir find_symbol aracı ve Test Gezgini'nden Copilot destekli profil oluşturmayı içeriyor. İşte önemli olanlar.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/visual-studio-march-2026-custom-copilot-agents/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Visual Studio bugüne kadarki en önemli Copilot güncellemesini aldı. Mark Downie &lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-march-update-build-your-own-custom-agents/"&gt;Mart sürümünü duyurdu&lt;/a&gt; ve başlık özel agentlar — ama dürüstçe söylemek gerekirse, daha aşağılarda geçen &lt;code&gt;find_symbol&lt;/code&gt; aracı iş akışınızı en çok değiştirecek özellik olabilir.&lt;/p&gt;
&lt;p&gt;Gerçekte neler olduğunu açıklayayım.&lt;/p&gt;
&lt;h2 id="reponuzda-özel-copilot-agentları"&gt;Reponuzda özel Copilot agentları&lt;/h2&gt;
&lt;p&gt;Copilot&amp;rsquo;un ekibinizin kodlama standartlarını izlemesini, build pipeline&amp;rsquo;ınızı çalıştırmasını veya dahili belgelerinizi sorgulamasını ister misiniz? Artık tam olarak bunu oluşturabilirsiniz.&lt;/p&gt;
&lt;p&gt;Özel agentlar, reponuzdaki &lt;code&gt;.github/agents/&lt;/code&gt; klasörüne bıraktığınız &lt;code&gt;.agent.md&lt;/code&gt; dosyaları olarak tanımlanıyor. Her agent, çalışma alanı farkındalığına, kod anlayışına, araçlara, tercih ettiğiniz modele ve harici servislere MCP bağlantılarına tam erişim elde ediyor. Yerleşik agentların yanında agent seçicisinde görünüyorlar.&lt;/p&gt;
&lt;p&gt;Bu, VS Code&amp;rsquo;un süredir desteklediği desenin aynısı — ve Visual Studio&amp;rsquo;nun yetişmesini görmek harika. VS Code için zaten agent oluşturmuş ekipler için &lt;code&gt;.agent.md&lt;/code&gt; dosyalarınız her iki IDE&amp;rsquo;de de çalışmalı (ancak araç adları farklılık gösterebilir, bu yüzden test edin).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/github/awesome-copilot"&gt;awesome-copilot&lt;/a&gt; reposunda başlangıç noktası olarak kullanabileceğiniz topluluk katkılı agent yapılandırmaları var.&lt;/p&gt;
&lt;h2 id="agent-becerileri-yeniden-kullanılabilir-talimat-paketleri"&gt;Agent becerileri: yeniden kullanılabilir talimat paketleri&lt;/h2&gt;
&lt;p&gt;Beceriler, reponuzdaki &lt;code&gt;.github/skills/&lt;/code&gt; klasöründen veya profilinizdeki &lt;code&gt;~/.copilot/skills/&lt;/code&gt; konumundan otomatik olarak alınıyor. Her beceri, &lt;a href="https://agentskills.io/specification"&gt;Agent Skills spesifikasyonunu&lt;/a&gt; takip eden bir &lt;code&gt;SKILL.md&lt;/code&gt; dosyası.&lt;/p&gt;
&lt;p&gt;Becerileri, karıştırıp eşleştirebileceğiniz modüler uzmanlık alanları olarak düşünün. API kurallarınız için bir beceri, test desenleriniz için bir diğeri ve dağıtım iş akışınız için başka biri olabilir. Bir beceri etkinleştiğinde, uygulandığını bilmeniz için sohbette görünüyor.&lt;/p&gt;
&lt;p&gt;VS Code&amp;rsquo;da beceri kullandıysanız Visual Studio&amp;rsquo;da da aynı şekilde çalışıyorlar.&lt;/p&gt;
&lt;h2 id="find_symbol-agentlar-için-dile-duyarlı-navigasyon"&gt;find_symbol: agentlar için dile duyarlı navigasyon&lt;/h2&gt;
&lt;p&gt;İşler burada gerçekten ilginçleşiyor. Yeni &lt;code&gt;find_symbol&lt;/code&gt; aracı, Copilot&amp;rsquo;un agent moduna gerçek dil servisi destekli sembol navigasyonu sağlıyor. Kodunuzu metin olarak aramak yerine agent şunları yapabiliyor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Projeniz genelinde bir sembole yapılan tüm referansları bul&lt;/li&gt;
&lt;li&gt;Tür bilgisine, bildirimlere ve kapsam meta verilerine eriş&lt;/li&gt;
&lt;li&gt;Tam dil farkındalığıyla çağrı noktalarında gezin&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pratikte ne anlama geliyor: Copilot&amp;rsquo;tan bir metodu yeniden düzenlemesini veya çağrı noktaları genelinde parametre imzasını güncellemesini istediğinizde, kodunuzun yapısını gerçekten görebiliyor. Artık &amp;ldquo;agent metodu değiştirdi ama üç çağrı noktasını kaçırdı&amp;rdquo; durumu yok.&lt;/p&gt;
&lt;p&gt;Desteklenen diller arasında C#, C++, Razor, TypeScript ve desteklenen LSP uzantısına sahip her şey yer alıyor. .NET geliştiricileri için bu büyük bir iyileştirme — derin tür hiyerarşileri ve arayüzlere sahip C# kod tabanları, sembol farkındalıklı navigasyondan büyük ölçüde yararlanıyor.&lt;/p&gt;
&lt;h2 id="copilot-ile-testleri-profilleyin"&gt;Copilot ile testleri profilleyin&lt;/h2&gt;
&lt;p&gt;Test Gezgini bağlam menüsünde artık bir &lt;strong&gt;Profile with Copilot&lt;/strong&gt; komutu var. Bir test seçin, profile tıklayın ve Profiling Agent onu otomatik olarak çalıştırıp performansı analiz eder — uygulanabilir içgörüler sunmak için CPU kullanımı ve enstrümantasyon verilerini birleştirir.&lt;/p&gt;
&lt;p&gt;Artık profil oluşturucu oturumlarını manuel olarak yapılandırmak, testi çalıştırmak, sonuçları dışa aktarmak ve bir flame graph okumaya çalışmak yok. Agent analizi yapıp neyin yavaş olduğunu ve neden olduğunu söylüyor. Şu anda yalnızca .NET, ki bu Visual Studio&amp;rsquo;nun derin .NET tanı entegrasyonu göz önüne alındığında mantıklı.&lt;/p&gt;
&lt;h2 id="canlı-hata-ayıklama-sırasında-performans-ipuçları"&gt;Canlı hata ayıklama sırasında performans ipuçları&lt;/h2&gt;
&lt;p&gt;Performans optimizasyonu artık sonrasında değil, hata ayıklarken gerçekleşiyor. Kod üzerinde adım adım ilerlerken Visual Studio satır içinde yürütme süresini ve performans sinyallerini gösteriyor. Yavaş bir satır mı gördünüz? Perf İpucu&amp;rsquo;na tıklayın ve Copilot&amp;rsquo;tan hemen orada optimizasyon önerileri isteyin.&lt;/p&gt;
&lt;p&gt;Profiling Agent çalışma zamanı verilerini otomatik olarak yakalıyor — geçen süre, CPU kullanımı, bellek davranışı — ve Copilot bunu sıcak noktaları tespit etmek için kullanıyor. Bu, performans çalışmasını ertelediğiniz ayrı bir görev yerine hata ayıklama akışınızın bir parçası olarak tutuyor.&lt;/p&gt;
&lt;h2 id="solution-explorerdan-nuget-güvenlik-açıklarını-düzeltin"&gt;Solution Explorer&amp;rsquo;dan NuGet güvenlik açıklarını düzeltin&lt;/h2&gt;
&lt;p&gt;Bir NuGet paketinde güvenlik açığı tespit edildiğinde, artık doğrudan Solution Explorer&amp;rsquo;da &lt;strong&gt;Fix with GitHub Copilot&lt;/strong&gt; bağlantısıyla bir bildirim görüyorsunuz. Tıklayın ve Copilot güvenlik açığını analiz eder, doğru paket güncellemelerini önerir ve uygular.&lt;/p&gt;
&lt;p&gt;Bağımlılıkları güncel tutmakta zorlanan ekipler için (ki bu esasen herkes), &amp;ldquo;bir güvenlik açığı olduğunu biliyorum ama doğru güncelleme yolunu bulmak başlı başına bir proje&amp;rdquo; sürtünmesini ortadan kaldırıyor.&lt;/p&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;Özel agentlar ve beceriler başlık haberi, ancak &lt;code&gt;find_symbol&lt;/code&gt; uyuyan dev — .NET kodunu yeniden düzenlerken Copilot&amp;rsquo;un ne kadar doğru olabileceğini temelden değiştiriyor. Canlı profil oluşturma entegrasyonu ve güvenlik açığı düzeltmeleriyle birleşince bu güncelleme, Visual Studio&amp;rsquo;nun AI özelliklerini demo hazır değil gerçekten pratik hissettiriyor.&lt;/p&gt;
&lt;p&gt;Her şeyi denemek için &lt;a href="https://visualstudio.microsoft.com/downloads/"&gt;Visual Studio 2026 Insiders&lt;/a&gt;&amp;lsquo;ı indirin.&lt;/p&gt;</content:encoded></item><item><title>Dizüstü Bilgisayardan Üretime: İki Komutla AI Agent'larını Microsoft Foundry'ye Dağıtma</title><link>https://thedotnetblog.com/tr/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/tr/posts/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</guid><description>Azure Developer CLI artık 'azd ai agent' komutlarına sahip; bu komutlar AI agent'ınızı yerel geliştirmeden canlı bir Foundry endpoint'ine dakikalar içinde taşıyor. İşte tam iş akışı.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Bu yazı otomatik olarak çevrilmiştir. Orijinal için &lt;a href="https://thedotnetblog.com/tr/posts/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;ldquo;Makinemde çalışıyor&amp;rdquo; ile &amp;ldquo;dağıtıldı ve trafik sunuyor&amp;rdquo; arasındaki o boşluğu bilirsiniz? AI agent&amp;rsquo;ları için bu boşluk acı verici derecede geniş oldu. Kaynak sağlamanız, modelleri dağıtmanız, kimliği bağlamanız, izlemeyi kurmanız gerekiyor — ve bütün bunlar herhangi biri agent&amp;rsquo;ınızı çağırabilmeden önce.&lt;/p&gt;
&lt;p&gt;Azure Developer CLI bunu &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;iki komutluk bir iş&lt;/a&gt; haline getirdi.&lt;/p&gt;
&lt;h2 id="yeni-azd-ai-agent-iş-akışı"&gt;Yeni &lt;code&gt;azd ai agent&lt;/code&gt; iş akışı&lt;/h2&gt;
&lt;p&gt;Bunun gerçekte nasıl göründüğünü anlatalım. Bir AI agent projeniz var — diyelim ki bir otel danışman agent&amp;rsquo;ı. Yerel olarak çalışıyor. Microsoft Foundry üzerinde çalışmasını istiyorsunuz.&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;Hepsi bu. İki komut. &lt;code&gt;azd ai agent init&lt;/code&gt;, reponuzda altyapı-kod olarak iskele oluşturur ve &lt;code&gt;azd up&lt;/code&gt; her şeyi Azure&amp;rsquo;da sağlayıp agent&amp;rsquo;ınızı yayımlar. Foundry portalında agent&amp;rsquo;ınıza doğrudan bir bağlantı alırsınız.&lt;/p&gt;
&lt;h2 id="arka-planda-ne-oluyor"&gt;Arka planda ne oluyor&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;init&lt;/code&gt; komutu reponuzda gerçek, incelenebilir Bicep şablonları oluşturuyor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bir &lt;strong&gt;Foundry Kaynağı&lt;/strong&gt; (üst düzey kapsayıcı)&lt;/li&gt;
&lt;li&gt;Bir &lt;strong&gt;Foundry Projesi&lt;/strong&gt; (agent&amp;rsquo;ınızın bulunduğu yer)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model dağıtımı&lt;/strong&gt; yapılandırması (GPT-4o vb.)&lt;/li&gt;
&lt;li&gt;Uygun RBAC rol atamalarıyla &lt;strong&gt;Yönetilen kimlik&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Servis haritası için &lt;code&gt;azure.yaml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Agent meta verileri ve ortam değişkenleriyle &lt;code&gt;agent.yaml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;İşte kilit nokta: bunların hepsi size ait. Reponuzda sürümlendirilmiş Bicep. İnceleyebilir, özelleştirebilir ve agent kodunuzun yanı sıra commit edebilirsiniz. Sihirli kara kutular yok.&lt;/p&gt;
&lt;h2 id="geliştirme-döngüsü"&gt;Geliştirme döngüsü&lt;/h2&gt;
&lt;p&gt;Gerçekten beğendiğim şey yerel geliştirme hikayesi. Agent mantığını geliştirirken, her prompt değişikliğinde yeniden dağıtmak istemezsiniz:&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;Bu, agent&amp;rsquo;ınızı yerel olarak başlatır. Bunu test promptları göndermek için &lt;code&gt;azd ai agent invoke&lt;/code&gt; ile eşleştirin, sıkı bir geri bildirim döngüsü elde edersiniz. Kodu düzenleyin, yeniden başlatın, çağırın, tekrarlayın.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;invoke&lt;/code&gt; komutu yönlendirme konusunda da akıllı — yerel bir agent çalışırken otomatik olarak onu hedefler. Çalışmıyorken uzak endpoint&amp;rsquo;e isabet eder.&lt;/p&gt;
&lt;h2 id="gerçek-zamanlı-izleme"&gt;Gerçek zamanlı izleme&lt;/h2&gt;
&lt;p&gt;Bu beni ikna eden özellik. Agent&amp;rsquo;ınız dağıtıldığında:&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&amp;rsquo;ınızdan geçen her istek ve yanıt gerçek zamanlı olarak terminalinize akıyor. Üretim sorunlarını hata ayıklamak için bu paha biçilmez. Log analitiğini karıştırmak yok, metriklerin toplanmasını beklemek yok — şu an ne olduğunu görüyorsunuz.&lt;/p&gt;
&lt;h2 id="tam-komut-seti"&gt;Tam komut seti&lt;/h2&gt;
&lt;p&gt;İşte hızlı referans:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Komut&lt;/th&gt;
&lt;th&gt;Ne yapıyor&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 ile bir Foundry agent projesi iskele oluşturur&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 kaynaklarını sağlar ve agent&amp;rsquo;ı dağıtır&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;Uzak veya yerel agent&amp;rsquo;a prompt gönderir&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;Geliştirme için agent&amp;rsquo;ı yerel olarak çalıştırır&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;Yayımlanan agent&amp;rsquo;dan gerçek zamanlı logları akıtır&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 sağlığını ve durumunu kontrol eder&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;Tüm Azure kaynaklarını temizler&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="net-geliştiricileri-için-neden-önemli"&gt;.NET geliştiricileri için neden önemli&lt;/h2&gt;
&lt;p&gt;Duyuruda örnek Python tabanlı olsa da, altyapı hikayesi dilden bağımsız. .NET agent&amp;rsquo;ınız aynı Bicep iskeleleme, aynı yönetilen kimlik kurulumu, aynı izleme pipeline&amp;rsquo;ı alıyor. .NET Aspire uygulamalarınız veya Azure dağıtımları için zaten &lt;code&gt;azd&lt;/code&gt; kullanıyorsanız, bu mevcut iş akışınıza tam oturuyor.&lt;/p&gt;
&lt;p&gt;AI agent&amp;rsquo;ları için dağıtım boşluğu, ekosistemdeki en büyük sürtüşme noktalarından biri oldu. Çalışan bir prototipi uygun kimlik, ağ ve izlemeyle bir üretim endpoint&amp;rsquo;ine götürmek bir haftalık DevOps çalışması gerektirmemeli. Artık iki komut ve birkaç dakika gerektiriyor.&lt;/p&gt;
&lt;h2 id="sonuç"&gt;Sonuç&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd ai agent&lt;/code&gt; şu an mevcut. AI agent&amp;rsquo;larınızı dağıtmayı erteliyorsanız çünkü altyapı kurulumu çok fazla iş gibi geliyordu, bunu bir deneyin. Ön uç sohbet uygulaması entegrasyonu dahil adım adım tam kılavuz için &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;tam anlatıma&lt;/a&gt; göz atın.&lt;/p&gt;</content:encoded></item></channel></rss>