<?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/pl/tags/developer-tools/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>pl</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/pl/tags/developer-tools/index.xml" rel="self" type="application/rss+xml"/><item><title>Azure MCP Server jest Teraz .mcpb — Instaluj bez Żadnego Runtime</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/</guid><description>Azure MCP Server jest teraz dostępny jako MCP Bundle (.mcpb) — pobierz, przeciągnij do Claude Desktop i gotowe. Bez Node.js, Python czy .NET.</description><content:encoded>&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby zobaczyć oryginalną wersję, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/azure-mcp-server-mcpb-no-runtime-install/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Wiesz, co było irytujące w konfiguracji serwerów MCP? Potrzebowałeś runtime. Node.js dla wersji npm, Python dla pip/uvx, .NET SDK dla wariantu dotnet.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;Azure MCP Server właśnie to zmienił&lt;/a&gt;. Jest teraz dostępny jako &lt;code&gt;.mcpb&lt;/code&gt; — MCP Bundle — a konfiguracja to przeciągnij i upuść.&lt;/p&gt;
&lt;h2 id="czym-jest-mcp-bundle"&gt;Czym jest MCP Bundle?&lt;/h2&gt;
&lt;p&gt;Pomyśl o tym jak o rozszerzeniu VS Code (&lt;code&gt;.vsix&lt;/code&gt;) lub rozszerzeniu przeglądarki (&lt;code&gt;.crx&lt;/code&gt;), ale dla serwerów MCP. Plik &lt;code&gt;.mcpb&lt;/code&gt; to samodzielne archiwum ZIP zawierające binarny plik serwera i wszystkie jego zależności.&lt;/p&gt;
&lt;h2 id="jak-zainstalować"&gt;Jak zainstalować&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. Pobierz bundle dla swojej platformy&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Przejdź na &lt;a href="https://github.com/microsoft/mcp/releases?q=Azure.Mcp.Server"&gt;stronę GitHub Releases&lt;/a&gt; i pobierz plik &lt;code&gt;.mcpb&lt;/code&gt; dla swojego OS i architektury.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Zainstaluj w Claude Desktop&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Najłatwiej: przeciągnij plik &lt;code&gt;.mcpb&lt;/code&gt; do okna Claude Desktop na stronie ustawień Rozszerzeń (&lt;code&gt;☰ → Plik → Ustawienia → Rozszerzenia&lt;/code&gt;). Przejrzyj szczegóły serwera, kliknij Zainstaluj, potwierdź.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Uwierzytelnij się w Azure&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;az login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="na-początek"&gt;Na początek&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pobieranie&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;Repozytorium&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;Dokumentacja&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;Sprawdź &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-mcp-server-mcpb-support/"&gt;pełny post&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.118: Copilot CLI Dostaje Nazwy Sesji, Odznaki Modelu i TypeScript 7.0 Nightly</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/vscode-1-118-copilot-cli-session-names-model-badge/</guid><description>Visual Studio Code 1.118 to skoncentrowane wydanie skupione na ulepszeniach Copilot CLI — nazwy sesji, odznaki modelu, automatyczny wybór modelu i opt-in do TypeScript 7.0 Nightly.</description><content:encoded>&lt;p&gt;&lt;em&gt;Ten post został przetłumaczony automatycznie. Aby zobaczyć wersję oryginalną, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/vscode-1-118-copilot-cli-session-names-model-badge/"&gt;kliknij tutaj&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; to mniejsze, skoncentrowane wydanie — głównie usprawnienia Copilot CLI.&lt;/p&gt;
&lt;h2 id="copilot-cli-sesje-mają-prawdziwe-nazwy"&gt;Copilot CLI: sesje mają prawdziwe nazwy&lt;/h2&gt;
&lt;p&gt;API tytułów sesji SDK Copilot CLI jest teraz używane jako źródło prawdy dla nazw sesji. Zamiast automatycznie generowanych etykiet, sesje wyświetlają prawdziwą nazwę z SDK.&lt;/p&gt;
&lt;h2 id="szybsze-przełączanie-sesji"&gt;Szybsze przełączanie sesji&lt;/h2&gt;
&lt;p&gt;Aplikacja Agents ma teraz przypisane &lt;code&gt;Ctrl+1&lt;/code&gt;, &lt;code&gt;Ctrl+2&lt;/code&gt; itp. do szybkiego przełączania między sesjami.&lt;/p&gt;
&lt;h2 id="odznaki-modelu-w-czacie"&gt;Odznaki modelu w czacie&lt;/h2&gt;
&lt;p&gt;Odpowiedzi Copilot CLI w panelu czatu pokazują teraz odznakę modelu — na pierwszy rzut oka widać, który model obsłużył każde żądanie.&lt;/p&gt;
&lt;h2 id="automatyczny-wybór-modelu-w-copilot-cli"&gt;Automatyczny wybór modelu w Copilot CLI&lt;/h2&gt;
&lt;p&gt;Funkcja automatycznego wyboru modelu działa teraz również w agencie Copilot CLI.&lt;/p&gt;
&lt;h2 id="opt-in-do-typescript-70-nightly"&gt;Opt-in do TypeScript 7.0 Nightly&lt;/h2&gt;
&lt;p&gt;Możesz teraz wybrać testowanie TypeScript 7.0 nightly bezpośrednio z ustawień VS Code. TypeScript 7.0 to znaczące wydanie (&lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/"&gt;beta wyszła kilka dni temu&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Zobacz &lt;a href="https://code.visualstudio.com/updates/v1_118"&gt;pełne informacje o wydaniu&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Foundry Toolboxes: Jeden endpoint dla wszystkich narzędzi agentów AI</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/</guid><description>Microsoft Foundry uruchomił Toolboxes w publicznym podglądzie — sposób na zarządzanie narzędziami agentów AI i ich udostępnianie przez jeden endpoint zgodny z MCP.</description><content:encoded>&lt;p&gt;&lt;em&gt;Ten artykuł został przetłumaczony automatycznie. Aby zobaczyć oryginalną wersję, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/foundry-toolboxes-curate-manage-tools-ai-agents/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Jest problem, który wydaje się błahy — dopóki się na niego nie natrafi. Organizacja buduje wiele agentów AI, każdy wymaga narzędzi, a każdy zespół konfiguruje je od zera. Ta sama integracja wyszukiwania, ta sama konfiguracja Azure AI Search, to samo połączenie z serwerem GitHub MCP — ale w innym repozytorium, przez inny zespół, z innymi danymi uwierzytelniającymi i bez wspólnego zarządzania.&lt;/p&gt;
&lt;p&gt;Microsoft Foundry właśnie uruchomił &lt;a href="https://devblogs.microsoft.com/foundry/introducing-toolboxes-in-foundry/"&gt;Toolboxes&lt;/a&gt; w publicznym podglądzie — bezpośrednia odpowiedź na ten problem.&lt;/p&gt;
&lt;h2 id="czym-jest-toolbox"&gt;Czym jest Toolbox?&lt;/h2&gt;
&lt;p&gt;Toolbox to nazwany, wielokrotnie używalny zestaw narzędzi, który definiuje się raz w Foundry i udostępnia przez jeden endpoint zgodny z MCP. Każde środowisko uruchomieniowe agenta obsługujące MCP może je konsumować — bez uzależnienia od Foundry Agents.&lt;/p&gt;
&lt;p&gt;Obietnica jest prosta: &lt;strong&gt;build once, consume anywhere&lt;/strong&gt;. Zdefiniuj narzędzia, skonfiguruj uwierzytelnianie centralnie (OAuth passthrough, tożsamość zarządzana Entra), opublikuj endpoint. Każdy agent potrzebujący tych narzędzi łączy się raz i dostaje je wszystkie.&lt;/p&gt;
&lt;h2 id="cztery-filary-dwa-dostępne-dziś"&gt;Cztery filary (dwa dostępne dziś)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Filar&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Co robi&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;Wkrótce&lt;/td&gt;
&lt;td&gt;Znajdowanie zatwierdzonych narzędzi bez ręcznego szukania&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;Dostępny&lt;/td&gt;
&lt;td&gt;Grupowanie narzędzi w wielokrotnie używalny bundle&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;Dostępny&lt;/td&gt;
&lt;td&gt;Jeden endpoint MCP udostępnia wszystkie narzędzia&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;Wkrótce&lt;/td&gt;
&lt;td&gt;Centralne uwierzytelnianie + obserwowalność wszystkich wywołań&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="przykład-praktyczny"&gt;Przykład praktyczny&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;Przeszukaj dokumentację i odpowiedz na issues GitHub.&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;Szukaj publicznej dokumentacji&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;Po opublikowaniu Foundry udostępnia ujednolicony endpoint. Jedno połączenie — wszystkie narzędzia.&lt;/p&gt;
&lt;h2 id="brak-uzależnienia-od-foundry-agents"&gt;Brak uzależnienia od Foundry Agents&lt;/h2&gt;
&lt;p&gt;Toolboxes są &lt;strong&gt;tworzone i zarządzane&lt;/strong&gt; w Foundry, ale powierzchnią konsumpcji jest otwarty protokół MCP. Można ich używać z niestandardowych agentów (Microsoft Agent Framework, LangGraph), GitHub Copilot i innych środowisk IDE zgodnych z MCP.&lt;/p&gt;
&lt;h2 id="dlaczego-to-ważne-teraz"&gt;Dlaczego to ważne teraz&lt;/h2&gt;
&lt;p&gt;Fala wielu agentów dociera do produkcji. Każdy nowy agent to nowa powierzchnia zduplikowanej konfiguracji, przestarzałych danych uwierzytelniających i niespójnego zachowania. Podstawa Build + Consume wystarczy, by zacząć centralizować. Gdy pojawi się filar Govern, będzie dostępna w pełni obserwowalna, centralnie kontrolowana warstwa narzędzi dla całej floty agentów.&lt;/p&gt;
&lt;h2 id="podsumowanie"&gt;Podsumowanie&lt;/h2&gt;
&lt;p&gt;To jeszcze wczesny etap — publiczny podgląd, Python SDK na początku, Discover i Govern jeszcze przed nami. Ale model jest solidny, a natywny design MCP oznacza, że działa z narzędziami, które już się buduje. Szczegóły w &lt;a href="https://devblogs.microsoft.com/foundry/introducing-toolboxes-in-foundry/"&gt;oficjalnym ogłoszeniu&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Hooki azd w Python, TypeScript i .NET: koniec ze skryptami shell</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</guid><description>Azure Developer CLI obsługuje teraz hooki w Python, JavaScript, TypeScript i .NET. Koniec z przełączaniem się na Bash tylko po to, żeby uruchomić skrypt migracji.</description><content:encoded>&lt;p&gt;&lt;em&gt;Ten artykuł został przetłumaczony automatycznie. Aby zobaczyć oryginalną wersję, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Jeśli kiedykolwiek miałeś projekt w całości napisany w .NET i mimo to musiałeś pisać skrypty Bash dla hooków azd — znasz ten ból. Po co przełączać się na składnię shell w kroku pre-provisioning, skoro reszta projektu to C#?&lt;/p&gt;
&lt;p&gt;Ta frustracja ma teraz oficjalne rozwiązanie. Azure Developer CLI &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;właśnie wprowadził obsługę wielu języków dla hooków&lt;/a&gt;, i jest dokładnie tak dobre, jak brzmi.&lt;/p&gt;
&lt;h2 id="czym-są-hooki"&gt;Czym są hooki&lt;/h2&gt;
&lt;p&gt;Hooki to skrypty wykonywane w kluczowych punktach cyklu życia &lt;code&gt;azd&lt;/code&gt; — przed provisioningiem, po deploymencie i nie tylko. Definiuje się je w &lt;code&gt;azure.yaml&lt;/code&gt; i pozwalają na wstrzyknięcie własnej logiki bez modyfikowania CLI.&lt;/p&gt;
&lt;p&gt;Wcześniej obsługiwane były tylko Bash i PowerShell. Teraz można używać &lt;strong&gt;Pythona, JavaScript, TypeScript lub .NET&lt;/strong&gt; — resztą zajmuje się &lt;code&gt;azd&lt;/code&gt; automatycznie.&lt;/p&gt;
&lt;h2 id="jak-działa-wykrywanie"&gt;Jak działa wykrywanie&lt;/h2&gt;
&lt;p&gt;Wystarczy wskazać hook na plik, a &lt;code&gt;azd&lt;/code&gt; wywnioskuje język z rozszerzenia:&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;Bez dodatkowej konfiguracji. Jeśli rozszerzenie jest niejednoznaczne, można jawnie podać &lt;code&gt;kind: python&lt;/code&gt; (lub odpowiedni język).&lt;/p&gt;
&lt;h2 id="ważne-szczegóły-według-języka"&gt;Ważne szczegóły według języka&lt;/h2&gt;
&lt;h3 id="python"&gt;Python&lt;/h3&gt;
&lt;p&gt;Umieść &lt;code&gt;requirements.txt&lt;/code&gt; lub &lt;code&gt;pyproject.toml&lt;/code&gt; obok skryptu (lub w dowolnym katalogu nadrzędnym). &lt;code&gt;azd&lt;/code&gt; automatycznie tworzy środowisko wirtualne, instaluje zależności i uruchamia skrypt.&lt;/p&gt;
&lt;h3 id="javascript-i-typescript"&gt;JavaScript i TypeScript&lt;/h3&gt;
&lt;p&gt;Ten sam wzorzec — &lt;code&gt;package.json&lt;/code&gt; blisko skryptu, a &lt;code&gt;azd&lt;/code&gt; najpierw wykona &lt;code&gt;npm install&lt;/code&gt;. Dla TypeScript używa &lt;code&gt;npx tsx&lt;/code&gt; bez etapu kompilacji i bez &lt;code&gt;tsconfig.json&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="net"&gt;.NET&lt;/h3&gt;
&lt;p&gt;Dwa dostępne tryby:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tryb projektu&lt;/strong&gt;: jeśli obok skryptu jest &lt;code&gt;.csproj&lt;/code&gt;, &lt;code&gt;azd&lt;/code&gt; automatycznie uruchamia &lt;code&gt;dotnet restore&lt;/code&gt; i &lt;code&gt;dotnet build&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tryb single-file&lt;/strong&gt;: na .NET 10+ samodzielne pliki &lt;code&gt;.cs&lt;/code&gt; uruchamiają się bezpośrednio przez &lt;code&gt;dotnet run script.cs&lt;/code&gt;. Plik projektu nie jest wymagany.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="konfiguracja-dla-konkretnego-executora"&gt;Konfiguracja dla konkretnego executora&lt;/h2&gt;
&lt;p&gt;Każdy język obsługuje opcjonalny blok &lt;code&gt;config&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;hooks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;preprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/setup.ts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;packageManager&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;pnpm&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/migrate.cs&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;configuration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Release&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;framework&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;net10.0&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="dlaczego-to-ważne-dla-programistów-net"&gt;Dlaczego to ważne dla programistów .NET&lt;/h2&gt;
&lt;p&gt;Hooki były ostatnim miejscem w projekcie opartym na azd, które wymuszało zmianę języka. Teraz cały pipeline deploymentu — od kodu aplikacji po hooki cyklu życia — może żyć w jednym języku. Można ponownie wykorzystywać istniejące narzędzia .NET w hookach, referencować współdzielone biblioteki i porzucić utrzymywanie skryptów shell.&lt;/p&gt;
&lt;h2 id="podsumowanie"&gt;Podsumowanie&lt;/h2&gt;
&lt;p&gt;Jedna z tych zmian, które wydają się drobne, ale naprawdę redukują codzienne tarcia w pracy z azd. Obsługa wielu języków dla hooków jest dostępna teraz — pełna dokumentacja w &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;oficjalnym poście&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Windows App Dev CLI v0.3: F5 z terminala i UI Automation dla agentów</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/</guid><description>Windows App Development CLI v0.3 przynosi winapp run do uruchamiania i debugowania z terminala, winapp ui do automatyzacji interfejsu oraz nowy pakiet NuGet umożliwiający działanie dotnet run z zapakowanymi aplikacjami.</description><content:encoded>&lt;p&gt;&lt;em&gt;Ten artykuł został przetłumaczony automatycznie. Aby zobaczyć oryginał, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Doświadczenie F5 w Visual Studio jest świetne. Ale otwieranie VS tylko po to, żeby uruchomić i debugować zapakowaną aplikację Windows — czy to w potoku CI, zautomatyzowanym workflowie, czy gdy agent AI wykonuje testy — to zbędny narzut.&lt;/p&gt;
&lt;p&gt;Windows App Development CLI v0.3 właśnie &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;wyszło&lt;/a&gt; i rozwiązuje ten problem bezpośrednio dzięki dwóm głównym funkcjom: &lt;code&gt;winapp run&lt;/code&gt; i &lt;code&gt;winapp ui&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="winapp-run-f5-z-dowolnego-miejsca"&gt;winapp run: F5 z dowolnego miejsca&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;winapp run&lt;/code&gt; przyjmuje folder niezapakowanej aplikacji i manifest, wykonując wszystko, co VS robi przy uruchamianiu debugowania: rejestruje luźny pakiet, uruchamia aplikację i zachowuje &lt;code&gt;LocalState&lt;/code&gt; między ponownymi deploymentami.&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;# Zbuduj aplikację, a następnie uruchom ją jako zapakowaną aplikację&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;Działa dla WinUI, WPF, WinForms, Console, Avalonia i innych. Tryby są zaprojektowane zarówno dla deweloperów, jak i zautomatyzowanych workflowów:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--detach&lt;/code&gt;&lt;/strong&gt;: Uruchamia i natychmiast zwraca kontrolę do terminala. Idealny dla CI.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--unregister-on-exit&lt;/code&gt;&lt;/strong&gt;: Usuwa zarejestrowany pakiet przy zamknięciu aplikacji.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--debug-output&lt;/code&gt;&lt;/strong&gt;: Przechwytuje komunikaty &lt;code&gt;OutputDebugString&lt;/code&gt; i wyjątki w czasie rzeczywistym.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="nowy-pakiet-nuget-dotnet-run-dla-zapakowanych-aplikacji"&gt;Nowy pakiet NuGet: dotnet run dla zapakowanych aplikacji&lt;/h2&gt;
&lt;p&gt;Dla deweloperów .NET jest nowy pakiet NuGet: &lt;code&gt;Microsoft.Windows.SDK.BuildTools.WinApp&lt;/code&gt;. Po instalacji &lt;code&gt;dotnet run&lt;/code&gt; obsługuje cały inner loop: budowanie, przygotowanie pakietu loose-layout, rejestrację w Windows i uruchomienie — wszystko w jednym kroku.&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;# lub&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet add package Microsoft.Windows.SDK.BuildTools.WinApp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="winapp-ui-ui-automation-z-wiersza-poleceń"&gt;winapp ui: UI Automation z wiersza poleceń&lt;/h2&gt;
&lt;p&gt;To funkcja otwierająca scenariusze agentyczne. &lt;code&gt;winapp ui&lt;/code&gt; zapewnia pełny dostęp UI Automation do dowolnej działającej aplikacji Windows — WPF, WinForms, Win32, Electron, WinUI3 — bezpośrednio z terminala.&lt;/p&gt;
&lt;p&gt;Co można robić:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wylistować wszystkie okna najwyższego poziomu&lt;/li&gt;
&lt;li&gt;Nawigować po pełnym drzewie UI Automation dowolnego okna&lt;/li&gt;
&lt;li&gt;Wyszukiwać elementy po nazwie, typie lub ID automatyzacji&lt;/li&gt;
&lt;li&gt;Klikać, wywoływać i ustawiać wartości&lt;/li&gt;
&lt;li&gt;Robić zrzuty ekranu&lt;/li&gt;
&lt;li&gt;Czekać na pojawienie się elementów — idealne do synchronizacji testów&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Połączenie &lt;code&gt;winapp ui&lt;/code&gt; z &lt;code&gt;winapp run&lt;/code&gt; daje kompletny workflow build → uruchomienie → weryfikacja z terminala. Agent może uruchomić aplikację, sprawdzić stan UI, programowo z nią interagować i zwalidować wynik.&lt;/p&gt;
&lt;h2 id="inne-nowości"&gt;Inne nowości&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;winapp unregister&lt;/code&gt;&lt;/strong&gt;: Usuwa sideloadowany pakiet po zakończeniu pracy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;winapp manifest add-alias&lt;/code&gt;&lt;/strong&gt;: Dodaje alias do uruchamiania aplikacji po nazwie z terminala.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uzupełnianie tabulatorem&lt;/strong&gt;: Jedno polecenie do skonfigurowania uzupełniania w PowerShell.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="jak-zdobyć"&gt;Jak zdobyć&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;# lub&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 jest w publicznym podglądzie. Pełna dokumentacja dostępna w &lt;a href="https://github.com/microsoft/WinAppCli"&gt;repozytorium GitHub&lt;/a&gt;, a wszystkie szczegóły w &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;oryginalnym ogłoszeniu&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.117: Agenty dostają własne gałęzie Git i jestem za tym wszystkimi czterema</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/vscode-1-117-agents-autopilot-worktrees/</guid><description>VS Code 1.117 dostarcza izolację worktree dla sesji agentów, trwały tryb Autopilot i wsparcie dla subagentów. Agentyczny przepływ pracy kodowania właśnie stał się znacznie bardziej realny.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/vscode-1-117-agents-autopilot-worktrees/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Linia między &amp;ldquo;asystentem AI&amp;rdquo; a &amp;ldquo;kolegą AI&amp;rdquo; nieustannie się zaciera. VS Code 1.117 właśnie wyszedł i &lt;a href="https://code.visualstudio.com/updates/v1_117"&gt;pełne notatki wydania&lt;/a&gt; są pełne treści, ale historia jest tu jasna: agenty stają się pierwszoklasowymi obywatelami w twoim przepływie pracy deweloperskiej.&lt;/p&gt;
&lt;p&gt;Oto co naprawdę ważne.&lt;/p&gt;
&lt;h2 id="tryb-autopilot-wreszcie-pamięta-twoje-preferencje"&gt;Tryb Autopilot wreszcie pamięta twoje preferencje&lt;/h2&gt;
&lt;p&gt;Wcześniej musiałeś ponownie włączać Autopilot przy każdej nowej sesji. Irytujące. Teraz twój tryb uprawnień utrzymuje się między sesjami i możesz skonfigurować domyślny.&lt;/p&gt;
&lt;p&gt;Host Agenta obsługuje trzy konfiguracje sesji:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Domyślny&lt;/strong&gt; — narzędzia proszą o potwierdzenie przed uruchomieniem&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pomiń&lt;/strong&gt; — automatycznie zatwierdza wszystko&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autopilot&lt;/strong&gt; — pełna autonomia, odpowiada na własne pytania i kontynuuje&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Jeśli szkieletujesz nowy projekt .NET z migracjami, Docker i CI — ustaw go na Autopilot raz i zapomnij o tym. Ta preferencja zostaje.&lt;/p&gt;
&lt;h2 id="izolacja-worktree-i-git-dla-sesji-agentów"&gt;Izolacja worktree i git dla sesji agentów&lt;/h2&gt;
&lt;p&gt;To jest ta duża. Sesje agentów obsługują teraz pełną izolację worktree i git. To oznacza, że gdy agent pracuje nad zadaniem, dostaje własną gałąź i katalog roboczy. Twoja gałąź główna pozostaje nienaruszona.&lt;/p&gt;
&lt;p&gt;Co więcej — Copilot CLI generuje znaczące nazwy gałęzi dla tych sesji worktree. Koniec z &lt;code&gt;agent-session-abc123&lt;/code&gt;. Dostajesz coś, co faktycznie opisuje co agent robi.&lt;/p&gt;
&lt;p&gt;Dla programistów .NET pracujących na wielu gałęziach funkcji lub naprawiających błędy, gdy długie zadanie szkieletowania działa, to zmiana zasad gry. Możesz mieć agenta budującego kontrolery API w jednym worktree, podczas gdy ty debugujesz warstwę usługową w innym. Żadnych konfliktów. Żadnego stashowania. Żadnego bałaganu.&lt;/p&gt;
&lt;h2 id="subagenty-i-zespoły-agentów"&gt;Subagenty i zespoły agentów&lt;/h2&gt;
&lt;p&gt;Protokół Hosta Agenta obsługuje teraz subagenty. Agent może uruchamiać inne agenty do obsługi części zadania. Pomyśl o tym jak o delegowaniu — twój główny agent koordynuje, a wyspecjalizowane agenty obsługują kawałki.&lt;/p&gt;
&lt;p&gt;To wczesne, ale potencjał dla przepływów pracy .NET jest oczywisty. Wyobraź sobie jednego agenta obsługującego twoje migracje EF Core podczas gdy inny konfiguruje testy integracyjne. Jeszcze tam nie jesteśmy w pełni, ale wsparcie protokołu lądujące teraz oznacza, że narzędzia pojawią się szybko.&lt;/p&gt;
&lt;h2 id="wyjście-terminala-automatycznie-włączone-gdy-agenty-wysyłają-dane-wejściowe"&gt;Wyjście terminala automatycznie włączone gdy agenty wysyłają dane wejściowe&lt;/h2&gt;
&lt;p&gt;Małe, ale znaczące. Gdy agent wysyła dane wejściowe do terminala, wyjście terminala jest teraz automatycznie dołączane do kontekstu. Wcześniej agent musiał wykonać dodatkową turę tylko by zobaczyć co się stało.&lt;/p&gt;
&lt;p&gt;Jeśli kiedykolwiek obserwowałeś agenta uruchamiającego &lt;code&gt;dotnet build&lt;/code&gt;, niepowodzenie i następnie kolejny przebieg tylko by zobaczyć błąd — to tarcie zniknęło. Widzi wyjście natychmiast i reaguje.&lt;/p&gt;
&lt;h2 id="samooaktualizacja-aplikacji-agents-na-macos"&gt;Samooaktualizacja aplikacji Agents na macOS&lt;/h2&gt;
&lt;p&gt;Samodzielna aplikacja Agents na macOS teraz się samooaktualizuje. Koniec z ręcznym pobieraniem nowych wersji. Po prostu pozostaje aktualna.&lt;/p&gt;
&lt;h2 id="mniejsze-rzeczy-warte-wiedzy"&gt;Mniejsze rzeczy warte wiedzy&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Podglądy package.json&lt;/strong&gt; teraz pokazują zarówno zainstalowaną wersję jak i ostatnio dostępną. Przydatne jeśli zarządzasz narzędziami npm obok projektów .NET.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Obrazy w komentarzach JSDoc&lt;/strong&gt; renderują się poprawnie w podglądach i uzupełnieniach.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sesje Copilot CLI&lt;/strong&gt; teraz wskazują czy zostały utworzone przez VS Code czy zewnętrznie — przydatne gdy przeskakujesz między terminalami.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copilot CLI, Claude Code i Gemini CLI&lt;/strong&gt; są rozpoznawane jako typy powłoki. Edytor wie co uruchamiasz.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="wnioski"&gt;Wnioski&lt;/h2&gt;
&lt;p&gt;VS Code 1.117 nie jest efektownym zrzutem funkcji. To infrastruktura. Izolacja worktree, trwałe uprawnienia, protokoły subagentów — to są cegiełki dla przepływu pracy, gdzie agenty obsługują prawdziwe, równoległe zadania bez nadepnięcia na twój kod.&lt;/p&gt;
&lt;p&gt;Jeśli budujesz z .NET i jeszcze nie zanurzyłeś się w agentyczny przepływ pracy, szczerze, teraz jest czas, by zacząć.&lt;/p&gt;</content:encoded></item><item><title>Docker Sandbox Pozwala Agentom Copilot Refaktoryzować Kod Bez Ryzyka dla Twojej Maszyny</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/</guid><description>Docker Sandbox daje agentom GitHub Copilot bezpieczne mikroVM do szalonych refaktoryzacji — bez monitów o uprawnienia, bez ryzyka dla hosta. Oto dlaczego to zmienia wszystko dla dużoskalowej modernizacji .NET.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/copilot-docker-sandbox-agentic-refactoring/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Jeśli używałeś trybu agenta Copilota do czegoś poza małymi edytami, znasz ten ból. Każdy zapis pliku, każde polecenie terminala — kolejny monit o uprawnienia.&lt;/p&gt;
&lt;p&gt;Zespół Azure właśnie opublikował post o &lt;a href="https://devblogs.microsoft.com/all-things-azure/best-of-both-worlds-for-agentic-refactoring-github-copilot-microvms-via-docker-sandbox/"&gt;Docker Sandbox dla agentów GitHub Copilot&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="co-docker-sandbox-faktycznie-daje"&gt;Co Docker Sandbox faktycznie daje&lt;/h2&gt;
&lt;p&gt;Podstawowy pomysł jest prosty: uruchom lekkie mikroVM z pełnym środowiskiem Linux, zsynchronizuj workspace, i pozwól agentowi Copilota działać swobodnie wewnątrz.&lt;/p&gt;
&lt;p&gt;To więcej niż &amp;ldquo;uruchamiaj rzeczy w kontenerze&amp;rdquo;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dwukierunkowa synchronizacja workspace&lt;/strong&gt; z zachowaniem ścieżek absolutnych&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prywatny demon Docker&lt;/strong&gt; działający w mikroVM&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Filtrujące proxy HTTP/HTTPS&lt;/strong&gt; kontrolujące dostęp sieciowy&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tryb YOLO&lt;/strong&gt; — agent działa bez monitów o uprawnienia&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="dlaczego-deweloperzy-net-powinni-to-wziąć-pod-uwagę"&gt;Dlaczego deweloperzy .NET powinni to wziąć pod uwagę&lt;/h2&gt;
&lt;p&gt;Dzięki Docker Sandbox możesz wskazać agenta Copilota na projekt, pozwolić mu swobodnie refaktoryzować wewnątrz mikroVM, uruchomić &lt;code&gt;dotnet build&lt;/code&gt; i &lt;code&gt;dotnet test&lt;/code&gt;, i akceptować tylko zmiany, które faktycznie działają.&lt;/p&gt;
&lt;p&gt;Post opisuje uruchamianie &lt;strong&gt;floty równoległych agentów&lt;/strong&gt; — każdy we własnym sandboxie — pracujących nad różnymi projektami jednocześnie.&lt;/p&gt;
&lt;h2 id="wniosek"&gt;Wniosek&lt;/h2&gt;
&lt;p&gt;Docker Sandbox rozwiązuje fundamentalne napięcie w agentic coding: agenty potrzebują wolności, żeby być użyteczne, ale wolność na Twojej maszynie hosta jest niebezpieczna. MicroVM dają ci obie.&lt;/p&gt;</content:encoded></item><item><title>Przestań Pilnować Terminala: Tryb Odłączony Aspire Zmienia Przepływ Pracy</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/aspire-detached-mode-free-your-terminal/</guid><description>Aspire 13.2 pozwala uruchomić AppHost w tle i odzyskać terminal. W połączeniu z nowymi poleceniami CLI i obsługą agentów, to większa sprawa niż się wydaje.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/aspire-detached-mode-free-your-terminal/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Za każdym razem gdy uruchamiasz Aspire AppHost, twój terminal znika. Zablokowany. Zajęty do Ctrl+C. Chcesz uruchomić szybkie polecenie? Nowa karta. Sprawdzić logi? Kolejna karta. To małe tarcie szybko się kumuluje.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 to naprawia. James Newton-King &lt;a href="https://devblogs.microsoft.com/aspire/aspire-detached-mode-and-process-management/"&gt;opisał wszystkie szczegóły&lt;/a&gt;, i szczerze, to jedna z tych funkcji, która natychmiast zmienia sposób pracy.&lt;/p&gt;
&lt;h2 id="tryb-odłączony-jedno-polecenie-terminal-wraca"&gt;Tryb odłączony: jedno polecenie, terminal wraca&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;To skrót dla &lt;code&gt;aspire run --detach&lt;/code&gt;. Twój AppHost uruchamia się w tle i natychmiast odzyskujesz terminal.&lt;/p&gt;
&lt;h2 id="zarządzanie-tym-co-działa"&gt;Zarządzanie tym, co działa&lt;/h2&gt;
&lt;p&gt;Uruchamianie w tle jest przydatne tylko wtedy, gdy możesz faktycznie zarządzać tym, co jest uruchomione. Aspire 13.2 dostarcza pełny zestaw poleceń CLI:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Lista wszystkich działających AppHostów&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;# Sprawdź stan konkretnego AppHosta&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;# Strumieniuj logi z działającego AppHosta&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;# Zatrzymaj konkretny AppHost&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire stop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="połącz-z-trybem-izolowanym"&gt;Połącz z trybem izolowanym&lt;/h2&gt;
&lt;p&gt;Tryb odłączony naturalnie łączy się z trybem izolowanym:&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;Każda instancja otrzymuje losowe porty, oddzielne sekrety i własny cykl życia.&lt;/p&gt;
&lt;h2 id="dlaczego-to-jest-ogromne-dla-agentów-kodowania"&gt;Dlaczego to jest ogromne dla agentów kodowania&lt;/h2&gt;
&lt;p&gt;Agent kodujący w twoim terminalu może teraz:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Uruchomić aplikację z &lt;code&gt;aspire start&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Zapytać o jej stan za pomocą &lt;code&gt;aspire describe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Sprawdzić logi &lt;code&gt;aspire logs&lt;/code&gt; w celu diagnozy problemów&lt;/li&gt;
&lt;li&gt;Zatrzymać ją &lt;code&gt;aspire stop&lt;/code&gt; po zakończeniu&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Uruchomienie &lt;code&gt;aspire agent init&lt;/code&gt; konfiguruje plik umiejętności Aspire, który uczy agentów tych poleceń.&lt;/p&gt;
&lt;h2 id="podsumowanie"&gt;Podsumowanie&lt;/h2&gt;
&lt;p&gt;Tryb odłączony to ulepszenie przepływu pracy ukryte jako prosta flaga. Przeczytaj &lt;a href="https://devblogs.microsoft.com/aspire/aspire-detached-mode-and-process-management/"&gt;pełny post&lt;/a&gt; i pobierz Aspire 13.2 z &lt;code&gt;aspire update --self&lt;/code&gt;.&lt;/p&gt;</content:encoded></item><item><title>Narzędzia Azure MCP Są Teraz Wbudowane w Visual Studio 2022 — Żadnego Rozszerzenia</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/</guid><description>Narzędzia Azure MCP są dostarczane jako część obciążenia deweloperskiego Azure w Visual Studio 2022. Ponad 230 narzędzi, 45 usług Azure, zero rozszerzeń do zainstalowania.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/azure-mcp-tools-built-into-visual-studio-2022/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Jeśli korzystałeś z narzędzi Azure MCP w Visual Studio przez oddzielne rozszerzenie, znasz procedurę — zainstaluj VSIX, zrestartuj, miej nadzieję, że nie popsuje, zarządzaj niezgodnościami wersji. To tarcie zniknęło.&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;ogłosiła&lt;/a&gt;, że narzędzia Azure MCP są teraz dostarczane bezpośrednio jako część obciążenia deweloperskiego Azure w Visual Studio 2022. Żadnego rozszerzenia. Żadnego VSIX.&lt;/p&gt;
&lt;h2 id="co-to-faktycznie-oznacza"&gt;Co to faktycznie oznacza&lt;/h2&gt;
&lt;p&gt;Ponad 230 narzędzi w 45 usługach Azure — dostępnych bezpośrednio z okna czatu. Wylistuj swoje konta pamięci masowej, wdróż aplikację ASP.NET Core, diagnostykuj problemy App Service — wszystko bez otwierania karty przeglądarki.&lt;/p&gt;
&lt;h2 id="jak-włączyć"&gt;Jak włączyć&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Zaktualizuj do Visual Studio 2022 &lt;strong&gt;17.14.30&lt;/strong&gt; lub nowszego&lt;/li&gt;
&lt;li&gt;Upewnij się, że obciążenie &lt;strong&gt;Azure development&lt;/strong&gt; jest zainstalowane&lt;/li&gt;
&lt;li&gt;Otwórz GitHub Copilot Chat&lt;/li&gt;
&lt;li&gt;Kliknij przycisk &lt;strong&gt;Wybierz narzędzia&lt;/strong&gt; (ikona dwóch kluczy)&lt;/li&gt;
&lt;li&gt;Włącz &lt;strong&gt;Azure MCP Server&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Pozostaje włączone między sesjami.&lt;/p&gt;
&lt;h2 id="zastrzeżenie"&gt;Zastrzeżenie&lt;/h2&gt;
&lt;p&gt;Narzędzia są domyślnie wyłączone — musisz je włączyć. Dla .NET deweloperów korzystających z Visual Studio oznacza to jeszcze mniej powodów do przełączania kontekstu do portalu Azure.&lt;/p&gt;</content:encoded></item><item><title>azd update — Jedno Polecenie do Wszystkich Menedżerów Pakietów</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/azd-update-universal-upgrade-command/</guid><description>Azure Developer CLI ma teraz uniwersalne polecenie aktualizacji, które działa niezależnie od metody instalacji — winget, Homebrew, Chocolatey lub skrypt instalacyjny.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/azd-update-universal-upgrade-command/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Znasz ten komunikat &amp;ldquo;Dostępna jest nowa wersja azd&amp;rdquo;, który pojawia się co kilka tygodni? Ten, który odrzucasz, bo nie pamiętasz, czy zainstalowałeś &lt;code&gt;azd&lt;/code&gt; przez winget, Homebrew czy ten skrypt curl z sześciu miesięcy temu? To jest w końcu naprawione.&lt;/p&gt;
&lt;p&gt;Microsoft właśnie dostarczył &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;&lt;code&gt;azd update&lt;/code&gt;&lt;/a&gt; — pojedyncze polecenie, które aktualizuje Azure Developer CLI do najnowszej wersji niezależnie od tego, jak go pierwotnie zainstalowałeś.&lt;/p&gt;
&lt;h2 id="jak-to-działa"&gt;Jak to działa&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;To wszystko. Dla wczesnego dostępu do nowych funkcji:&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;Polecenie wykrywa Twoją aktualną metodę instalacji i używa odpowiedniego mechanizmu aktualizacji.&lt;/p&gt;
&lt;h2 id="mały-haczyk"&gt;Mały haczyk&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd update&lt;/code&gt; jest dostarczany od wersji 1.23.x. Jeśli jesteś na starszej wersji, będziesz musiał wykonać jedną ostatnią ręczną aktualizację. Potem &lt;code&gt;azd update&lt;/code&gt; zajmuje się wszystkim.&lt;/p&gt;
&lt;h2 id="dlaczego-to-ważne"&gt;Dlaczego to ważne&lt;/h2&gt;
&lt;p&gt;To małe ulepszenie jakości życia, ale dla tych z nas, którzy używają &lt;code&gt;azd&lt;/code&gt; na co dzień do wdrażania agentów AI i aplikacji Aspire do Azure, bycie na bieżąco ma znaczenie.&lt;/p&gt;
&lt;p&gt;Przeczytaj &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;pełne ogłoszenie&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>.NET Aspire 13.2 Chce Być Najlepszym Przyjacielem Twojego Agenta AI</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/aspire-agentic-development-build-run-observe/</guid><description>Aspire 13.2 stawia wszystko na agentic development — ustrukturyzowane wyjście CLI, izolowane uruchomienia, środowiska samoleczące i pełne dane OpenTelemetry, żeby agenci AI mogli faktycznie budować, uruchamiać i obserwować twoje aplikacje.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/aspire-agentic-development-build-run-observe/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Znasz ten moment, kiedy twój agent kodowania AI pisze świetny kod, ekscytujesz się, a potem wszystko się sypie, kiedy próbuje to &lt;em&gt;uruchomić&lt;/em&gt;? Konflikty portów, phantom processes, złe zmienne środowiskowe — nagle agent spala tokeny na rozwiązywanie problemów ze startem zamiast budować funkcje.&lt;/p&gt;
&lt;p&gt;Zespół Aspire opublikował &lt;a href="https://devblogs.microsoft.com/aspire/agentic-dev-aspirations/"&gt;bardzo przemyślany post&lt;/a&gt; dokładnie o tym problemie, a ich odpowiedź jest przekonująca: Aspire 13.2 jest zaprojektowany nie tylko dla ludzi, ale dla agentów AI.&lt;/p&gt;
&lt;h2 id="aspire-jako-infrastruktura-agentów"&gt;Aspire jako infrastruktura agentów&lt;/h2&gt;
&lt;p&gt;Oto co Aspire 13.2 wnosi do stołu agentic development:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cały stos w typowanym kodzie.&lt;/strong&gt; AppHost definiuje pełną topologię — w kompilowanym TypeScript lub C#:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createBuilder&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="kr"&gt;from&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;./.modules/aspire.js&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;createBuilder&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;postgres&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addPostgres&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;pg&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;addDatabase&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;catalog&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cache&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addRedis&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;cache&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;api&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addNodeApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;api&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;./api&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;src/index.ts&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;withHttpEndpoint&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;PORT&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;withReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;postgres&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;withReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;cache&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addViteApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;frontend&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;./frontend&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;withReference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;api&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;waitFor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;api&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;build&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Jedno polecenie do wszystkiego.&lt;/strong&gt; Zamiast żonglowania &lt;code&gt;docker compose up&lt;/code&gt;, &lt;code&gt;npm run dev&lt;/code&gt; i skryptami startowymi bazy danych — wszystko to po prostu &lt;code&gt;aspire start&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Izolowany tryb dla równoległych agentów.&lt;/strong&gt; Z &lt;code&gt;--isolated&lt;/code&gt;, każde uruchomienie Aspire dostaje własne losowe porty i oddzielne sekrety użytkownika.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Oczy agenta przez telemetrię.&lt;/strong&gt; CLI Aspire eksponuje pełne dane OpenTelemetry podczas developmentu — ślady, metryki, ustrukturyzowane logi.&lt;/p&gt;
&lt;h2 id="analogia-do-kul-w-kręglach"&gt;Analogia do kul w kręglach&lt;/h2&gt;
&lt;p&gt;Zespół Aspire używa świetnej analogii: pomyśl o Aspire jak o odbojnikach toru do kręgli dla agentów AI. Jeśli agent nie jest doskonały (a nie będzie), odbojniki nie pozwolą mu rzucać na rynsztok.&lt;/p&gt;
&lt;h2 id="podsumowanie"&gt;Podsumowanie&lt;/h2&gt;
&lt;p&gt;Aspire 13.2 to nie tylko framework dla aplikacji rozproszonych — staje się niezbędną infrastrukturą agentów. Przeczytaj &lt;a href="https://devblogs.microsoft.com/aspire/agentic-dev-aspirations/"&gt;pełny post&lt;/a&gt; od zespołu Aspire.&lt;/p&gt;</content:encoded></item><item><title>To ustawienie Visual Studio dla pływających okien, o którym nie wiedziałeś (a powinieneś)</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/</guid><description>Ukryte ustawienie Visual Studio daje ci pełną kontrolę nad pływającymi oknami — niezależne wpisy na pasku zadań, prawidłowe zachowanie na wielu monitorach i idealna integracja z FancyZones. Jedna lista rozwijana zmienia wszystko.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/visual-studio-floating-windows-powertoys/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Jeśli używasz wielu monitorów z Visual Studio (a szczerze, kto tego nie robi w dzisiejszych czasach), prawdopodobnie doświadczyłeś irytacji: pływające okna narzędziowe znikają po zminimalizowaniu głównego IDE, zawsze pozostają na wierzchu wszystkiego innego i nie pojawiają się jako oddzielne przyciski na pasku zadań. To działa w niektórych przepływach pracy, ale przy konfiguracji wielomonitorowej jest frustrujące.&lt;/p&gt;
&lt;p&gt;Mads Kristensen z zespołu Visual Studio &lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/"&gt;podzielił się mało znanum ustawieniem&lt;/a&gt;, które całkowicie zmienia sposób zachowania pływających okien. Jedna lista rozwijana. To wszystko.&lt;/p&gt;
&lt;h2 id="ustawienie"&gt;Ustawienie&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Narzędzia &amp;gt; Opcje &amp;gt; Środowisko &amp;gt; Okna &amp;gt; Pływające okna&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lista rozwijana &amp;ldquo;Te pływające okna należą do głównego okna&amp;rdquo; ma trzy opcje:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Żadne&lt;/strong&gt; — pełna niezależność. Każde pływające okno dostaje własny wpis na pasku zadań i zachowuje się jak normalne okno Windows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Okna narzędziowe&lt;/strong&gt; (domyślne) — dokumenty pływają swobodnie, okna narzędziowe pozostają powiązane z IDE.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dokumenty i okna narzędziowe&lt;/strong&gt; — klasyczne zachowanie Visual Studio, wszystko powiązane z głównym oknem.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="dlaczego-żadne-to-właściwy-wybór-przy-konfiguracji-wielomonitorowej"&gt;Dlaczego &amp;ldquo;Żadne&amp;rdquo; to właściwy wybór przy konfiguracji wielomonitorowej&lt;/h2&gt;
&lt;p&gt;Ustaw na &lt;strong&gt;Żadne&lt;/strong&gt; i nagle wszystkie twoje pływające okna narzędziowe i dokumenty zachowują się jak prawdziwe aplikacje Windows. Pojawiają się na pasku zadań, pozostają widoczne po zminimalizowaniu głównego okna Visual Studio i przestają wymuszać się na pierwszym planie.&lt;/p&gt;
&lt;p&gt;Połącz to z &lt;strong&gt;PowerToys FancyZones&lt;/strong&gt; i to jest zmiana zasad gry. Twórz niestandardowe układy na swoich monitorach, przyciągaj Eksploratora rozwiązań do jednej strefy, debugger do innej i pliki kodu gdzie chcesz. Wszystko pozostaje na swoim miejscu, wszystko jest niezależnie dostępne, a przestrzeń robocza wydaje się zorganizowana zamiast chaotyczna.&lt;/p&gt;
&lt;h2 id="szybkie-rekomendacje"&gt;Szybkie rekomendacje&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Użytkownicy wielomonitorowi&lt;/strong&gt;: Ustaw na &lt;strong&gt;Żadne&lt;/strong&gt;, połącz z FancyZones&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Okazjonalni użytkownicy pływających okien&lt;/strong&gt;: &lt;strong&gt;Okna narzędziowe&lt;/strong&gt; (domyślne) to solidny kompromis&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tradycyjny przepływ pracy&lt;/strong&gt;: &lt;strong&gt;Dokumenty i okna narzędziowe&lt;/strong&gt; zachowuje wszystko klasycznie&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Wskazówka: &lt;strong&gt;Ctrl + dwukliknięcie&lt;/strong&gt; na pasku tytułu dowolnego okna narzędziowego, by natychmiast pływać lub zadokować. Po zmianie ustawienia nie jest wymagane ponowne uruchomienie.&lt;/p&gt;
&lt;h2 id="podsumowanie"&gt;Podsumowanie&lt;/h2&gt;
&lt;p&gt;To jedno z tych ustawień &amp;ldquo;nie mogę uwierzyć, że o tym nie wiedziałem&amp;rdquo;. Jeśli kiedykolwiek pływające okna w Visual Studio cię irytowały, idź i zmień to teraz.&lt;/p&gt;
&lt;p&gt;Przeczytaj &lt;a href="https://devblogs.microsoft.com/visualstudio/take-full-control-of-your-floating-windows-in-visual-studio/"&gt;pełny post&lt;/a&gt; po szczegóły i zrzuty ekranu.&lt;/p&gt;</content:encoded></item><item><title>Tryb Izolowany Aspire Rozwiązuje Problem Konfliktów Portów w Równoległym Programowaniu</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/aspire-isolated-mode-parallel-instances/</guid><description>Aspire 13.2 wprowadza tryb --isolated: losowe porty, oddzielne sekrety i zero kolizji przy uruchamianiu wielu instancji tego samego AppHosta. Idealne dla agentów AI, worktrees i równoległych przepływów pracy.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/aspire-isolated-mode-parallel-instances/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Jeśli próbowałeś uruchomić dwie instancje tego samego projektu jednocześnie, znasz ten ból. Port 8080 jest już zajęty.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 naprawia to jedną flagą. James Newton-King &lt;a href="https://devblogs.microsoft.com/aspire/aspire-isolated-mode-parallel-development/"&gt;opisał pełne szczegóły&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="rozwiązanie---isolated"&gt;Rozwiązanie: &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;Każde uruchomienie dostaje:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Losowe porty&lt;/strong&gt; — brak kolizji między instancjami&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Izolowane sekrety użytkownika&lt;/strong&gt; — ciągi połączeń i klucze API zostają oddzielne dla każdej instancji&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prawdziwe-scenariusze-gdzie-to-błyszczy"&gt;Prawdziwe scenariusze gdzie to błyszczy&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Wiele checkoutów:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Terminal 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/projects/my-app-feature
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire run --isolated
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Terminal 2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/projects/my-app-bugfix
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire run --isolated
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Oba działają bez konfliktów.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agenty w tle w VS Code.&lt;/strong&gt; Gdy agent w tle Copilot Chat tworzy git worktree, tryb izolowany zapewnia, że obie instancje po prostu działają.&lt;/p&gt;
&lt;h2 id="jak-to-działa-pod-maską"&gt;Jak to działa pod maską&lt;/h2&gt;
&lt;p&gt;Gdy przekażesz &lt;code&gt;--isolated&lt;/code&gt;, CLI generuje unikalny identyfikator instancji dla uruchomienia, który napędza randomizację portów i izolację sekretów.&lt;/p&gt;
&lt;h2 id="podsumowanie"&gt;Podsumowanie&lt;/h2&gt;
&lt;p&gt;Tryb izolowany to mała funkcja, która rozwiązuje prawdziwy, coraz bardziej powszechny problem. Zdobądź 13.2 z &lt;code&gt;aspire update --self&lt;/code&gt;.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.116 — aplikacja Agents otrzymuje nawigację klawiaturową i uzupełnienia kontekstu pliku</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/vscode-1-116-agents-app-updates/</guid><description>VS Code 1.116 skupia się na dopracowaniu aplikacji Agents — dedykowane skróty klawiaturowe, ulepszenia dostępności, uzupełnienia kontekstu pliku i rozpoznawanie linków @import CSS.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/vscode-1-116-agents-app-updates/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;VS Code 1.116 to wydanie z kwietnia 2026, i choć jest lżejsze niż niektóre ostatnie aktualizacje, zmiany są skoncentrowane i znaczące — szczególnie jeśli codziennie używasz aplikacji Agents.&lt;/p&gt;
&lt;p&gt;Oto co wylądowało, na podstawie &lt;a href="https://code.visualstudio.com/updates/v1_116"&gt;oficjalnych notatek wydania&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="ulepszenia-aplikacji-agents"&gt;Ulepszenia aplikacji Agents&lt;/h2&gt;
&lt;p&gt;Aplikacja Agents nadal dojrzewa z dopracowaniem użyteczności, które robi realną różnicę w codziennych przepływach pracy:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dedykowane skróty klawiaturowe&lt;/strong&gt; — możesz teraz skupić widok Changes, drzewo plików w Changes i widok Chat Customizations za pomocą dedykowanych poleceń i skrótów klawiaturowych. Jeśli klikałeś po aplikacji Agents, by nawigować, to przynosi pełne przepływy pracy oparte na klawiaturze.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dialog pomocy dostępności&lt;/strong&gt; — naciśnięcie &lt;code&gt;Alt+F1&lt;/code&gt; w polu wejściowym czatu teraz otwiera dialog pomocy dostępności pokazujący dostępne polecenia i skróty klawiaturowe. Użytkownicy czytników ekranu mogą też kontrolować szczegółowość ogłoszeń. Dobra dostępność przynosi korzyści wszystkim.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Uzupełnienia kontekstu pliku&lt;/strong&gt; — wpisz &lt;code&gt;#&lt;/code&gt; w czacie aplikacji Agents, by wywołać uzupełnienia kontekstu pliku ograniczone do twojego bieżącego obszaru roboczego. To jedno z tych małych ulepszeń komfortu pracy, które przyspiesza każdą interakcję — nie trzeba już wpisywać pełnych ścieżek pliku przy odwoływaniu się do kodu.&lt;/p&gt;
&lt;h2 id="rozpoznawanie-linków-import-css"&gt;Rozpoznawanie linków &lt;code&gt;@import&lt;/code&gt; CSS&lt;/h2&gt;
&lt;p&gt;Miłe dla programistów frontend: VS Code teraz rozpoznaje odwołania CSS &lt;code&gt;@import&lt;/code&gt; używające ścieżek node_modules. Możesz &lt;code&gt;Ctrl+kliknąć&lt;/code&gt; przez importy jak &lt;code&gt;@import &amp;quot;some-module/style.css&amp;quot;&lt;/code&gt; przy używaniu bundlerów. Mała rzecz, ale eliminuje punkt tarcia w przepływach pracy CSS.&lt;/p&gt;
&lt;h2 id="podsumowanie"&gt;Podsumowanie&lt;/h2&gt;
&lt;p&gt;VS Code 1.116 dotyczy dopracowania — sprawia, że aplikacja Agents jest bardziej nawigowalna, bardziej dostępna i bardziej przyjazna dla klawiatury. Jeśli spędzasz znaczny czas w aplikacji Agents (a podejrzewam, że wielu z nas tak), te zmiany sumują się.&lt;/p&gt;
&lt;p&gt;Sprawdź &lt;a href="https://code.visualstudio.com/updates/v1_116"&gt;pełne notatki wydania&lt;/a&gt; po kompletną listę.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.115 — powiadomienia terminala w tle, tryb agenta przez SSH i więcej</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/vscode-1-115-agent-improvements/</guid><description>VS Code 1.115 przynosi powiadomienia terminala w tle dla agentów, zdalne hostowanie agentów przez SSH, wklejanie plików do terminali i śledzenie edycji uwzględniające sesje. Oto co ważne dla programistów .NET.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/vscode-1-115-agent-improvements/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;VS Code 1.115 właśnie &lt;a href="https://code.visualstudio.com/updates/v1_115"&gt;wyszedł&lt;/a&gt; i choć jest to lżejsze wydanie pod względem nagłówkowych funkcji, ulepszenia związane z agentami są naprawdę przydatne, jeśli codziennie pracujesz z asystentami AI.&lt;/p&gt;
&lt;p&gt;Pozwól, że wyróżnię to, co naprawdę warto wiedzieć.&lt;/p&gt;
&lt;h2 id="terminale-w-tle-informują-agentów"&gt;Terminale w tle informują agentów&lt;/h2&gt;
&lt;p&gt;To jest wyróżniająca się funkcja. Terminale w tle teraz automatycznie powiadamiają agentów o zakończeniu poleceń, w tym o kodzie wyjścia i wyjściu terminala. Monity wejściowe w terminalach w tle są również wykrywane i udostępniane użytkownikowi.&lt;/p&gt;
&lt;p&gt;Dlaczego to ważne? Jeśli używałeś trybu agenta Copilot do uruchamiania poleceń kompilacji lub zestawów testów w tle, znasz ból &amp;ldquo;czy to już skończyło?&amp;rdquo; — terminale w tle były praktycznie na zasadzie &amp;ldquo;odpal i zapomnij&amp;rdquo;. Teraz agent dostaje powiadomienie, gdy twoje &lt;code&gt;dotnet build&lt;/code&gt; lub &lt;code&gt;dotnet test&lt;/code&gt; zakończy się, widzi wyjście i może odpowiednio zareagować. To mała zmiana, która sprawia, że przepływy pracy oparte na agentach są znacznie bardziej niezawodne.&lt;/p&gt;
&lt;p&gt;Jest też nowe narzędzie &lt;code&gt;send_to_terminal&lt;/code&gt;, które pozwala agentom wysyłać polecenia do terminali w tle z potwierdzeniem użytkownika, naprawiając problem gdzie &lt;code&gt;run_in_terminal&lt;/code&gt; z limitem czasu przenosiło terminale do tła i czyniło je tylko do odczytu.&lt;/p&gt;
&lt;h2 id="zdalne-hostowanie-agentów-przez-ssh"&gt;Zdalne hostowanie agentów przez SSH&lt;/h2&gt;
&lt;p&gt;VS Code obsługuje teraz połączenie ze zdalnymi maszynami przez SSH, automatycznie instalując CLI i uruchamiając go w trybie hosta agenta. Oznacza to, że twoje sesje agenta AI mogą bezpośrednio celować w zdalne środowiska — przydatne dla programistów .NET, którzy kompilują i testują na serwerach Linux lub maszynach wirtualnych w chmurze.&lt;/p&gt;
&lt;h2 id="śledzenie-edycji-w-sesjach-agenta"&gt;Śledzenie edycji w sesjach agenta&lt;/h2&gt;
&lt;p&gt;Edycje plików dokonane podczas sesji agenta są teraz śledzone i przywracane, z diff, cofnij/ponów i przywróceniem stanu. Jeśli agent wprowadza zmiany do twojego kodu i coś pójdzie nie tak, możesz zobaczyć dokładnie co się zmieniło i to cofnąć. Spokój ducha przy pozwalaniu agentom modyfikować twoją bazę kodu.&lt;/p&gt;
&lt;h2 id="świadomość-kart-przeglądarki-i-inne-ulepszenia"&gt;Świadomość kart przeglądarki i inne ulepszenia&lt;/h2&gt;
&lt;p&gt;Kilka kolejnych ulepszeń komfortu pracy:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Śledzenie kart przeglądarki&lt;/strong&gt; — czat może teraz śledzić i linkować do kart przeglądarki otwartych podczas sesji, by agenty mogły odwoływać się do stron internetowych, na które patrzysz&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wklejanie plików do terminala&lt;/strong&gt; — wklej pliki (w tym obrazy) do terminala przez Ctrl+V, przeciągnij i upuść lub kliknij prawym przyciskiem&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pokrycie testów w minimapie&lt;/strong&gt; — wskaźniki pokrycia testów są teraz widoczne w minimapie dla szybkiego przeglądu wizualnego&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Szczypanie do powiększenia na Mac&lt;/strong&gt; — zintegrowana przeglądarka obsługuje gesty szczypania do powiększenia&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uprawnienia Copilot w sesjach&lt;/strong&gt; — pasek stanu pokazuje informacje o użyciu w widoku Sesji&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Favicon w Przejdź do pliku&lt;/strong&gt; — otwarte strony internetowe pokazują favicon na liście szybkiego wyboru&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="podsumowanie"&gt;Podsumowanie&lt;/h2&gt;
&lt;p&gt;VS Code 1.115 to wydanie przyrostowe, ale ulepszenia agentów — powiadomienia terminala w tle, zdalne hostowanie agentów przez SSH i śledzenie edycji — składają się na zauważalnie płynniejsze doświadczenie przy programowaniu wspomaganym przez AI. Jeśli używasz trybu agenta Copilot dla projektów .NET, to właśnie takie poprawki komfortu pracy redukują codzienne tarcie.&lt;/p&gt;
&lt;p&gt;Sprawdź &lt;a href="https://code.visualstudio.com/updates/v1_115"&gt;pełne notatki wydania&lt;/a&gt; po każdy szczegół.&lt;/p&gt;</content:encoded></item><item><title>Aspire 13.2 Dostarcza CLI do Dokumentacji — i Twój Agent AI Też Może Go Używać</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/aspire-docs-cli-ai-skills/</guid><description>.NET Aspire 13.2 dodaje aspire docs — CLI do wyszukiwania, przeglądania i czytania oficjalnej dokumentacji bez opuszczania terminala. Działa też jako narzędzie dla agentów AI.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/aspire-docs-cli-ai-skills/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Znasz ten moment, kiedy siedzisz głęboko w Aspire AppHost, łączysz integracje i musisz sprawdzić dokładnie, jakich parametrów oczekuje integracja Redis? Alt-tab do przeglądarki, szukasz na aspire.dev. Kontekst utracony.&lt;/p&gt;
&lt;p&gt;Aspire 13.2 właśnie &lt;a href="https://devblogs.microsoft.com/aspire/aspire-docs-in-your-terminal/"&gt;dostarczył rozwiązanie&lt;/a&gt;. CLI &lt;code&gt;aspire docs&lt;/code&gt; pozwala wyszukiwać, przeglądać i czytać oficjalną dokumentację Aspire bezpośrednio z terminala.&lt;/p&gt;
&lt;h2 id="trzy-polecenia-zero-kart-przeglądarki"&gt;Trzy polecenia, zero kart przeglądarki&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;&lt;span class="c1"&gt;# Lista wszystkich dokumentów&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire docs list
&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;# Szukaj tematu&lt;/span&gt;
&lt;/span&gt;&lt;/span&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;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;# Przeczytaj pełną stronę&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aspire docs get redis-integration
&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;# Tylko jedna sekcja&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;Add Redis resource&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="kąt-agentów-ai"&gt;Kąt agentów AI&lt;/h2&gt;
&lt;p&gt;To samo sprawia, że jest to interesujące dla deweloperów budujących z narzędziami AI. Te same polecenia &lt;code&gt;aspire docs&lt;/code&gt; działają jako narzędzia dla agentów AI.&lt;/p&gt;
&lt;p&gt;Zamiast halucynować Aspire API na podstawie przestarzałych danych treningowych, agent może wywołać &lt;code&gt;aspire docs search &amp;quot;postgres&amp;quot;&lt;/code&gt;, znaleźć oficjalne dokumenty integracji i przeczytać właściwą stronę.&lt;/p&gt;
&lt;h2 id="podsumowanie"&gt;Podsumowanie&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;aspire docs&lt;/code&gt; to mała funkcja, która czysto rozwiązuje prawdziwy problem. Zobacz &lt;a href="https://davidpine.dev/posts/aspire-docs-mcp-tools/"&gt;deep dive Davida Pine&amp;rsquo;a&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Aktualizacja Visual Studio z marca pozwala budować własne agenty Copilot — a narzędzie find_symbol to poważna sprawa</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/visual-studio-march-2026-custom-copilot-agents/</guid><description>Aktualizacja Visual Studio z marca 2026 dostarcza własne agenty Copilot, wielokrotnego użytku umiejętności agentów, świadome języka narzędzie find_symbol i profilowanie wspomagane przez Copilot z Test Explorer. Oto co ważne.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/visual-studio-march-2026-custom-copilot-agents/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Visual Studio właśnie otrzymało swoją najważniejszą aktualizację Copilot do tej pory. Mark Downie &lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-march-update-build-your-own-custom-agents/"&gt;ogłosił wydanie marcowe&lt;/a&gt;, a nagłówek to własne agenty — ale szczerze, narzędzie &lt;code&gt;find_symbol&lt;/code&gt; zakopane głębiej może być funkcją, która najbardziej zmieni twój przepływ pracy.&lt;/p&gt;
&lt;p&gt;Pozwól, że rozbiję to, co tu faktycznie jest.&lt;/p&gt;
&lt;h2 id="własne-agenty-copilot-w-twoim-repozytorium"&gt;Własne agenty Copilot w twoim repozytorium&lt;/h2&gt;
&lt;p&gt;Chcesz, by Copilot przestrzegał standardów kodowania twojego zespołu, uruchamiał twój potok kompilacji lub odpytywał wewnętrzną dokumentację? Teraz możesz zbudować dokładnie to.&lt;/p&gt;
&lt;p&gt;Własne agenty są definiowane jako pliki &lt;code&gt;.agent.md&lt;/code&gt;, które wrzucasz do &lt;code&gt;.github/agents/&lt;/code&gt; w swoim repozytorium. Każdy agent ma pełny dostęp do świadomości przestrzeni roboczej, zrozumienia kodu, narzędzi, preferowanego modelu i połączeń MCP z zewnętrznymi usługami. Pojawiają się w selektorze agentów obok wbudowanych.&lt;/p&gt;
&lt;p&gt;To ten sam wzorzec, który VS Code wspierał — i wspaniale zobaczyć, że Visual Studio nadrabia. Dla zespołów, które już zbudowały agenty dla VS Code, twoje pliki &lt;code&gt;.agent.md&lt;/code&gt; powinny działać w obu IDE (choć nazwy narzędzi mogą się różnić, więc testuj).&lt;/p&gt;
&lt;p&gt;Repozytorium &lt;a href="https://github.com/github/awesome-copilot"&gt;awesome-copilot&lt;/a&gt; ma konfiguracje agentów dostarczane przez społeczność, których możesz użyć jako punktów startowych.&lt;/p&gt;
&lt;h2 id="umiejętności-agentów-wielokrotnego-użytku-pakiety-instrukcji"&gt;Umiejętności agentów: wielokrotnego użytku pakiety instrukcji&lt;/h2&gt;
&lt;p&gt;Umiejętności są automatycznie wykrywane z &lt;code&gt;.github/skills/&lt;/code&gt; w twoim repozytorium lub &lt;code&gt;~/.copilot/skills/&lt;/code&gt; w twoim profilu. Każda umiejętność to plik &lt;code&gt;SKILL.md&lt;/code&gt; zgodny ze &lt;a href="https://agentskills.io/specification"&gt;specyfikacją Agent Skills&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pomyśl o umiejętnościach jak o modułowej wiedzy specjalistycznej, którą możesz mieszać i dopasowywać. Możesz mieć umiejętność dla konwencji API, inną dla wzorców testowania i jeszcze inną dla przepływu wdrożenia. Gdy umiejętność jest aktywowana, pojawia się w czacie, abyś wiedział, że jest stosowana.&lt;/p&gt;
&lt;p&gt;Jeśli używasz umiejętności w VS Code, działają one tak samo w Visual Studio teraz.&lt;/p&gt;
&lt;h2 id="find_symbol-nawigacja-z-wiedzą-o-języku-dla-agentów"&gt;find_symbol: nawigacja z wiedzą o języku dla agentów&lt;/h2&gt;
&lt;p&gt;Tu robi się naprawdę interesująco. Nowe narzędzie &lt;code&gt;find_symbol&lt;/code&gt; daje trybowi agenta Copilot faktyczną nawigację po symbolach zasilaną przez usługi językowe. Zamiast przeszukiwać kod jak tekst, agent może:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Znaleźć wszystkie odwołania do symbolu w twoim projekcie&lt;/li&gt;
&lt;li&gt;Uzyskać informacje o typach, deklaracje i metadane zakresu&lt;/li&gt;
&lt;li&gt;Nawigować po miejscach wywołania z pełną świadomością językową&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Co to oznacza w praktyce: gdy pytasz Copilot o refaktoryzację metody lub aktualizację sygnatury parametru w miejscach wywołania, może faktycznie zobaczyć strukturę twojego kodu. Koniec z sytuacjami &amp;ldquo;agent zmienił metodę, ale pominął trzy miejsca wywołania&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Obsługiwane języki to C#, C++, Razor, TypeScript i wszystko z obsługiwanym rozszerzeniem LSP. Dla programistów .NET to ogromna poprawa — bazy kodu C# z głębokimi hierarchiami typów i interfejsami ogromnie korzystają z nawigacji świadomej symboli.&lt;/p&gt;
&lt;h2 id="profilowanie-testów-z-copilot"&gt;Profilowanie testów z Copilot&lt;/h2&gt;
&lt;p&gt;W menu kontekstowym Test Explorer jest teraz polecenie &lt;strong&gt;Profiluj z Copilot&lt;/strong&gt;. Wybierz test, kliknij profiluj, a Agent Profilowania automatycznie go uruchamia i analizuje wydajność — łącząc dane użycia CPU i instrumentacji, by dostarczyć praktycznych spostrzeżeń.&lt;/p&gt;
&lt;p&gt;Koniec z ręcznym konfigurowaniem sesji profilera, uruchamianiem testu, eksportowaniem wyników i próbą odczytania wykresu płomieni. Agent robi analizę i mówi ci, co jest wolne i dlaczego. Aktualnie tylko dla .NET, co ma sens, biorąc pod uwagę głęboką integrację diagnostyki .NET w Visual Studio.&lt;/p&gt;
&lt;h2 id="wskazówki-dotyczące-wydajności-podczas-debugowania-na-żywo"&gt;Wskazówki dotyczące wydajności podczas debugowania na żywo&lt;/h2&gt;
&lt;p&gt;Optymalizacja wydajności dzieje się teraz podczas debugowania, a nie po. Gdy przechodzisz przez kod, Visual Studio wyświetla czas wykonania i sygnały wydajności inline. Widzisz wolną linię? Kliknij Wskazówkę Wydajności i poproś Copilot o sugestie optymalizacji zaraz tam.&lt;/p&gt;
&lt;p&gt;Agent Profilowania automatycznie przechwytuje dane czasu działania — czas, użycie CPU, zachowanie pamięci — a Copilot używa ich do wskazania gorących miejsc. Dzięki temu praca z wydajnością jest częścią twojego przepływu debugowania, a nie osobnym zadaniem, które ciągle odkładasz.&lt;/p&gt;
&lt;h2 id="naprawianie-luk-bezpieczeństwa-nuget-z-eksploratora-rozwiązań"&gt;Naprawianie luk bezpieczeństwa NuGet z Eksploratora rozwiązań&lt;/h2&gt;
&lt;p&gt;Gdy zostanie wykryta luka w pakiecie NuGet, zobaczysz teraz powiadomienie z linkiem &lt;strong&gt;Napraw z GitHub Copilot&lt;/strong&gt; bezpośrednio w Eksploratorze rozwiązań. Kliknij i Copilot analizuje lukę, rekomenduje odpowiednie aktualizacje pakietów i je implementuje.&lt;/p&gt;
&lt;p&gt;Dla zespołów, które mają problem z utrzymywaniem aktualnych zależności (a to właściwie wszyscy), usuwa to tarcie &amp;ldquo;wiem, że jest luka, ale wypracowanie właściwej ścieżki aktualizacji to projekt sam w sobie.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="podsumowanie"&gt;Podsumowanie&lt;/h2&gt;
&lt;p&gt;Własne agenty i umiejętności to nagłówek, ale &lt;code&gt;find_symbol&lt;/code&gt; to ukryty hit — fundamentalnie zmienia dokładność Copilot przy refaktoryzacji kodu .NET. W połączeniu z integracją profilowania na żywo i naprawianiem luk bezpieczeństwa, ta aktualizacja sprawia, że funkcje AI Visual Studio wydają się naprawdę praktyczne, a nie tylko gotowe do demonstracji.&lt;/p&gt;
&lt;p&gt;Pobierz &lt;a href="https://visualstudio.microsoft.com/downloads/"&gt;Visual Studio 2026 Insiders&lt;/a&gt;, by wypróbować wszystko.&lt;/p&gt;</content:encoded></item><item><title>azd Pozwala Teraz Uruchamiać i Debugować Agenty AI Lokalnie — Co Zmieniło Się w Marcu 2026</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/</guid><description>Azure Developer CLI wypuścił siedem wydań w marcu 2026. Najważniejsze: lokalna pętla uruchamiania i debugowania dla agentów AI, integracja GitHub Copilot w konfiguracji projektu i obsługa Container App Jobs.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Siedem wydań w jednym miesiącu. To co zespół Azure Developer CLI (&lt;code&gt;azd&lt;/code&gt;) wypchnął w marcu 2026, a główna funkcja to ta, na którą czekałem: &lt;strong&gt;lokalna pętla uruchamiania i debugowania dla agentów AI&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="uruchamiaj-i-debuguj-agenty-ai-bez-wdrażania"&gt;Uruchamiaj i debuguj agenty AI bez wdrażania&lt;/h2&gt;
&lt;p&gt;To jest ta duża. Nowe rozszerzenie &lt;code&gt;azure.ai.agents&lt;/code&gt; dodaje zestaw poleceń:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;azd ai agent run&lt;/code&gt; — uruchamia agenta lokalnie&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt; — wysyła do niego wiadomości (lokalnie lub wdrożone)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent show&lt;/code&gt; — wyświetla status kontenera i zdrowie&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt; — strumieniuje logi kontenera w czasie rzeczywistym&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Wcześniej testowanie agenta AI oznaczało wdrożenie do Microsoft Foundry za każdym razem. Teraz możesz iterować lokalnie.&lt;/p&gt;
&lt;h2 id="github-copilot-szkieletuje-twój-projekt-azd"&gt;GitHub Copilot szkieletuje Twój projekt azd&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd init&lt;/code&gt; oferuje teraz opcję &amp;ldquo;Set up with GitHub Copilot (Preview)&amp;rdquo;. Agent Copilot tworzy szkielet konfiguracji dla Twojej struktury projektu.&lt;/p&gt;
&lt;h2 id="container-app-jobs-i-ulepszenia-wdrażania"&gt;Container App Jobs i ulepszenia wdrażania&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Container App Jobs&lt;/strong&gt;: &lt;code&gt;azd&lt;/code&gt; teraz wdraża &lt;code&gt;Microsoft.App/jobs&lt;/code&gt; przez istniejącą konfigurację &lt;code&gt;host: containerapp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Konfigurowalne limity czasu wdrażania&lt;/strong&gt;: Nowa flaga &lt;code&gt;--timeout&lt;/code&gt; na &lt;code&gt;azd deploy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automatyczny fallback do lokalnego buildu&lt;/strong&gt;: Gdy zdalny build ACR zawiedzie&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lokalna walidacja preflightowa&lt;/strong&gt;: Parametry Bicep są walidowane lokalnie przed wdrożeniem&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="podsumowanie"&gt;Podsumowanie&lt;/h2&gt;
&lt;p&gt;Lokalna pętla debugowania agentów AI to gwiazda tego wydania. Sprawdź &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-march-2026/"&gt;pełne notatki wydania&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Azure DevOps W Końcu Naprawia UX Edytora Markdown, na Który Wszyscy Narzekali</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/</guid><description>Edytor Markdown Azure DevOps dla elementów roboczych zyskuje wyraźniejsze rozróżnienie między trybem podglądu a trybem edycji. To mała zmiana, która naprawia naprawdę irytujący problem w przepływie pracy.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/azure-devops-markdown-editor-work-items/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Jeśli używasz Azure Boards, pewnie już to przeżyłeś: czytasz opis elementu roboczego, może przeglądasz kryteria akceptacji, i przypadkowo klikasz dwa razy. Bum — jesteś w trybie edycji. Nie chciałeś niczego edytować. Po prostu czytałeś.&lt;/p&gt;
&lt;p&gt;Dan Hellem &lt;a href="https://devblogs.microsoft.com/devops/improving-the-markdown-editor-for-work-items/"&gt;ogłosił poprawkę&lt;/a&gt;, i to jedna z tych zmian, która brzmi banalnie, ale faktycznie usuwa prawdziwe tarcie z codziennego przepływu pracy.&lt;/p&gt;
&lt;h2 id="co-się-zmieniło"&gt;Co się zmieniło&lt;/h2&gt;
&lt;p&gt;Edytor Markdown dla pól tekstowych elementów roboczych otwiera się teraz domyślnie w &lt;strong&gt;trybie podglądu&lt;/strong&gt;. Możesz czytać i wchodzić w interakcje z treścią — śledzić linki, przeglądać formatowanie — bez obaw o przypadkowe wejście w tryb edycji.&lt;/p&gt;
&lt;p&gt;Kiedy faktycznie chcesz edytować, klikasz ikonę edycji na górze pola. Kiedy skończyłeś, explicite wychodzisz z powrotem do trybu podglądu.&lt;/p&gt;
&lt;h2 id="dlaczego-to-ważne-bardziej-niż-brzmi"&gt;Dlaczego to ważne bardziej niż brzmi&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://developercommunity.visualstudio.com/t/Markdown-editor-for-work-item-multi-line/10935496"&gt;Wątek opinii społeczności&lt;/a&gt; na ten temat był długi. Zachowanie podwójnego kliknięcia-do-edycji zostało wprowadzone z edytorem Markdown w lipcu 2025, a skargi zaczęły się niemal natychmiast.&lt;/p&gt;
&lt;p&gt;Nowe domyślne zachowanie respektuje najbardziej powszechny wzorzec interakcji: czytasz elementy robocze znacznie częściej niż je edytujesz.&lt;/p&gt;
&lt;h2 id="status-wdrożenia"&gt;Status wdrożenia&lt;/h2&gt;
&lt;p&gt;To jest już wdrażane dla podzbioru klientów i rozszerzy się na wszystkich w ciągu najbliższych dwóch do trzech tygodni.&lt;/p&gt;</content:encoded></item><item><title>Bookmark Studio Wprowadza Nawigację Opartą na Slotach i Udostępnianie do Zakładek Visual Studio</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/</guid><description>Nowe rozszerzenie Bookmark Studio Madsa Kristensena dodaje do zakładek Visual Studio nawigację po slotach za pomocą klawiatury, menedżer zakładek, kolory, etykiety i możliwości eksportu/udostępniania.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/bookmark-studio-visual-studio-extension/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Zakładki w Visual Studio zawsze były&amp;hellip; w porządku. Ustawiasz jedną, przechodzisz do następnej, zapominasz która jest która.&lt;/p&gt;
&lt;p&gt;Mads Kristensen właśnie &lt;a href="https://devblogs.microsoft.com/visualstudio/bookmark-studio-evolving-bookmarks-in-visual-studio/"&gt;wydał Bookmark Studio&lt;/a&gt;, eksperymentalne rozszerzenie wypełniające luki, na które pewnie natknąłeś się regularnie używając zakładek.&lt;/p&gt;
&lt;h2 id="nawigacja-oparta-na-slotach"&gt;Nawigacja oparta na slotach&lt;/h2&gt;
&lt;p&gt;Główna nowość: zakładki można teraz przypisywać do slotów 1–9 i bezpośrednio do nich skakać za pomocą &lt;code&gt;Alt+Shift+1&lt;/code&gt; do &lt;code&gt;Alt+Shift+9&lt;/code&gt;. To zmienia zakładki z &amp;ldquo;mam gdzieś jakieś zakładki&amp;rdquo; na &amp;ldquo;Slot 3 to mój kontroler API, Slot 5 to warstwa serwisów, Slot 7 to testy.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="menedżer-zakładek"&gt;Menedżer zakładek&lt;/h2&gt;
&lt;p&gt;Nowe okno narzędziowe pokazuje wszystkie zakładki w jednym miejscu z filtrowaniem po nazwie, pliku, lokalizacji, kolorze lub slocie.&lt;/p&gt;
&lt;h2 id="organizacja-z-etykietami-kolorami-i-folderami"&gt;Organizacja z etykietami, kolorami i folderami&lt;/h2&gt;
&lt;p&gt;Zakładki mogą opcjonalnie mieć etykiety i kolory oraz być grupowane w foldery. Wszystkie metadane są przechowywane per solucja.&lt;/p&gt;
&lt;h2 id="eksport-i-udostępnianie"&gt;Eksport i udostępnianie&lt;/h2&gt;
&lt;p&gt;Bookmark Studio pozwala eksportować zakładki jako zwykły tekst, Markdown lub CSV:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dołączanie ścieżek zakładek do opisów pull requestów&lt;/li&gt;
&lt;li&gt;Udostępnianie śladów dochodzenia współpracownikom&lt;/li&gt;
&lt;li&gt;Przenoszenie zestawów zakładek między repozytoriami&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pobierz ze &lt;a href="https://marketplace.visualstudio.com/items?itemName=MadsKristensen.BookmarkStudio"&gt;sklepu Visual Studio Marketplace&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Od Laptopa do Produkcji: Wdrażanie Agentów AI do Microsoft Foundry Dwoma Poleceniami</title><link>https://thedotnetblog.com/pl/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/pl/posts/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</guid><description>Azure Developer CLI ma teraz polecenia 'azd ai agent', które przenoszą Twojego agenta AI z lokalnego dev do żywego endpoint Foundry w minuty.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ten post został automatycznie przetłumaczony. Aby przejść do oryginału, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Znasz tę lukę między &amp;ldquo;działa na mojej maszynie&amp;rdquo; a &amp;ldquo;jest wdrożone i obsługuje ruch&amp;rdquo;? Dla agentów AI ta luka była boleśnie szeroka.&lt;/p&gt;
&lt;p&gt;Azure Developer CLI właśnie uczyniło to &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;sprawą dwóch poleceń&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="nowy-workflow-azd-ai-agent"&gt;Nowy workflow &lt;code&gt;azd ai agent&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;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;To wszystko. &lt;code&gt;azd ai agent init&lt;/code&gt; tworzy scaffolding infrastruktury-jako-kod w Twoim repozytorium, a &lt;code&gt;azd up&lt;/code&gt; provisionuje wszystko na Azure i publikuje Twojego agenta.&lt;/p&gt;
&lt;h2 id="co-się-dzieje-pod-maską"&gt;Co się dzieje pod maską&lt;/h2&gt;
&lt;p&gt;Polecenie &lt;code&gt;init&lt;/code&gt; generuje prawdziwe, inspekowalne szablony Bicep w Twoim repo — Foundry Resource, Foundry Project, konfiguracja wdrożenia modelu, zarządzana tożsamość z RBAC.&lt;/p&gt;
&lt;h2 id="dev-inner-loop"&gt;Dev inner loop&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 ai agent run &lt;span class="c1"&gt;# uruchom agenta lokalnie&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent invoke &lt;span class="c1"&gt;# wyślij testowe prompty&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent monitor --follow &lt;span class="c1"&gt;# streamuj logi w czasie rzeczywistym&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="pełny-zestaw-poleceń"&gt;Pełny zestaw poleceń&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Polecenie&lt;/th&gt;
&lt;th&gt;Co robi&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;Scaffold projektu agenta Foundry z IaC&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;Provisionuj zasoby i wdrożyj agenta&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;Wyślij prompty do zdalnego lub lokalnego agenta&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;Uruchom agenta lokalnie&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;Streamuj logi w czasie rzeczywistym&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;Wyczyść wszystkie zasoby Azure&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Sprawdź &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;pełny przewodnik&lt;/a&gt;.&lt;/p&gt;</content:encoded></item></channel></rss>