<?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>Blazor | The .NET Blog</title><link>https://thedotnetblog.com/pl/tags/blazor/</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, 23 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/pl/tags/blazor/index.xml" rel="self" type="application/rss+xml"/><item><title>Jak Copilot Studio Przemigrował do .NET 10 WebAssembly i Stał się 20% Szybszy</title><link>https://thedotnetblog.com/pl/news/emiliano-montesdeoca/copilot-studio-net10-webassembly-migration-performance/</link><pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pl/news/emiliano-montesdeoca/copilot-studio-net10-webassembly-migration-performance/</guid><description>Ulepszenia .NET 10 WASM nie są tylko dla nowych projektów. Oto co zmierzył Copilot Studio po aktualizacji z .NET 8: automatyczne odciskanie palców, WasmStripILAfterAOT domyślnie i prawdziwe liczby wydajności wykonania.</description><content:encoded>&lt;p&gt;Zespół Copilot Studio zrobił coś, o co ciekawili się wszyscy programiści Blazor WASM: faktycznie zaktualizowali aplikację produkcyjną z .NET 8 do .NET 10 i zmierzyli wyniki. Post dzieli się konkretnymi liczbami, co jest rzadkie i naprawdę przydatne.&lt;/p&gt;
&lt;h2 id="aktualizacja-była-nudna-to-dobra-rzecz"&gt;Aktualizacja Była Nudna (To Dobra Rzecz)&lt;/h2&gt;
&lt;p&gt;Aktualizacja docelowego frameworka, odświeżenie odwołań do pakietów, naprawienie zmian przełomowych. To wszystko. Build .NET 10 teraz działa na produkcji. Sama migracja nie była interesującą częścią — zmiany w .NET 10 są nią.&lt;/p&gt;
&lt;h2 id="automatyczne-odciski-palców-zasobów"&gt;Automatyczne Odciski Palców Zasobów&lt;/h2&gt;
&lt;p&gt;Wcześniej dystrybucja aplikacji WASM oznaczała pisanie niestandardowych skryptów do zmiany nazw opublikowanych zasobów z hashami SHA256 dla cache-bustingu. Copilot Studio miał skrypt PowerShell robiący dokładnie to — zmiana nazw plików, wstrzykiwanie atrybutów &lt;code&gt;integrity&lt;/code&gt; do loadera JavaScript, zarządzanie wszystkim ręcznie.&lt;/p&gt;
&lt;p&gt;W .NET 10 wszystko to jest wbudowane. Opublikowane zasoby są automatycznie oznaczane odciskiem palca, importowane bezpośrednio z &lt;code&gt;dotnet.js&lt;/code&gt; i weryfikowane pod kątem integralności bez ręcznej interwencji. Zespół usunął skrypt zmiany nazw.&lt;/p&gt;
&lt;p&gt;Mała zmiana w zakresie, znaczące zmniejszenie złożoności.&lt;/p&gt;
&lt;h2 id="wasmstripilafteraot-jest-teraz-domyślnie-włączony"&gt;WasmStripILAfterAOT Jest Teraz Domyślnie Włączony&lt;/h2&gt;
&lt;p&gt;W .NET 8 usuwanie IL ze skompilowanych AOT zestawów było opt-in. W .NET 10 jest to domyślne. Po kompilacji AOT oryginalny bytecode IL jest usuwany z wyjścia — nie jest potrzebny w czasie wykonywania, a jego zachowanie niepotrzebnie zwiększało rozmiar pakietu.&lt;/p&gt;
&lt;p&gt;Copilot Studio używa specyficznej optymalizacji: dostarcza zarówno silnik JIT (szybki start), jak i silnik AOT (maksymalna wydajność w stanie ustalonym), ładując oba równolegle i przekazując z JIT do AOT, gdy jest gotowy. Deduplikuje również pliki identyczne między dwoma silnikami.&lt;/p&gt;
&lt;p&gt;Nowe zachowanie usuwania IL oznacza, że zestawy AOT nie pasują już bit po bicie do swoich odpowiedników JIT, więc mniej plików jest deduplikowanych:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;.NET 8: 59 współdzielonych plików&lt;/li&gt;
&lt;li&gt;.NET 10: 22 współdzielone pliki&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Wynik netto: rozmiar pakietu około 15% większy dla silnika AOT. Pobieranie AOT jest ~6% wolniejsze na szybkim LAN, ~17% wolniejsze na 4G. Ale wszystko to dzieje się w tle po tym, jak aplikacja jest już interaktywna.&lt;/p&gt;
&lt;h2 id="liczby-wydajności"&gt;Liczby Wydajności&lt;/h2&gt;
&lt;p&gt;To jest ważna część:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;~20% szybciej&lt;/strong&gt; przy pierwszym wywołaniu (zimna ścieżka)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~5% szybciej&lt;/strong&gt; przy kolejnych wywołaniach (ciepła ścieżka)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ulepszenia są najbardziej widoczne w &amp;ldquo;dużych botach&amp;rdquo; — dużych, złożonych agentach, gdzie dominuje kod skompilowany AOT. Dla prostszych przepływów pracy zysk jest mniejszy.&lt;/p&gt;
&lt;h2 id="jeśli-nadal-jesteś-na-net-8"&gt;Jeśli Nadal Jesteś na .NET 8&lt;/h2&gt;
&lt;p&gt;Historia migracji jest naprawdę prosta: zaktualizuj &lt;code&gt;&amp;lt;TargetFramework&amp;gt;&lt;/code&gt;, odśwież odwołania do pakietów, usuń niestandardowe skrypty odciskania palców, a automatycznie skorzystasz z &lt;code&gt;WasmStripILAfterAOT&lt;/code&gt;. Jeśli kompilujesz AOT, spodziewaj się podobnych zysków wydajności.&lt;/p&gt;
&lt;p&gt;Uwaga z posta: jeśli ładujesz środowisko uruchomieniowe .NET WASM wewnątrz &lt;code&gt;WebWorker&lt;/code&gt;, ustaw &lt;code&gt;dotnetSidecar = true&lt;/code&gt; podczas inicjalizacji.&lt;/p&gt;
&lt;p&gt;Oryginalny post: &lt;a href="https://devblogs.microsoft.com/dotnet/copilot-studio-dotnet-10-migration/"&gt;Copilot Studio gets faster with .NET 10 on WebAssembly&lt;/a&gt;&lt;/p&gt;</content:encoded></item></channel></rss>