<?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/de/tags/blazor/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>de</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/de/tags/blazor/index.xml" rel="self" type="application/rss+xml"/><item><title>Wie Copilot Studio auf .NET 10 WebAssembly Migrierte und 20% Schneller Wurde</title><link>https://thedotnetblog.com/de/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/de/news/emiliano-montesdeoca/copilot-studio-net10-webassembly-migration-performance/</guid><description>Die Verbesserungen von .NET 10 WASM sind nicht nur für neue Projekte. Hier ist, was Copilot Studio nach dem Upgrade von .NET 8 gemessen hat: automatisches Fingerprinting, WasmStripILAfterAOT standardmäßig und echte Ausführungsleistungszahlen.</description><content:encoded>&lt;p&gt;Das Copilot Studio-Team hat etwas getan, worüber alle Blazor WASM-Entwickler neugierig waren: Sie haben tatsächlich eine Produktionsanwendung von .NET 8 auf .NET 10 aktualisiert und die Ergebnisse gemessen. Der Beitrag teilt spezifische Zahlen, was selten und wirklich nützlich ist.&lt;/p&gt;
&lt;h2 id="das-upgrade-war-langweilig-das-ist-eine-gute-sache"&gt;Das Upgrade War Langweilig (Das ist eine Gute Sache)&lt;/h2&gt;
&lt;p&gt;Ziel-Framework aktualisieren, Paketreferenzen auffrischen, Breaking Changes beheben. Das ist alles. Der .NET 10-Build läuft jetzt in der Produktion. Die Migration selbst war nicht der interessante Teil — die Änderungen in .NET 10 sind es.&lt;/p&gt;
&lt;h2 id="automatisches-asset-fingerprinting"&gt;Automatisches Asset-Fingerprinting&lt;/h2&gt;
&lt;p&gt;Früher bedeutete das Bereitstellen einer WASM-App das Schreiben benutzerdefinierter Skripte zum Umbenennen veröffentlichter Assets mit SHA256-Hashes für Cache-Busting. Copilot Studio hatte ein PowerShell-Skript, das genau das tat — Dateien umbenennen, &lt;code&gt;integrity&lt;/code&gt;-Attribute in den JavaScript-Loader injizieren, alles manuell verwalten.&lt;/p&gt;
&lt;p&gt;In .NET 10 ist all das integriert. Veröffentlichte Assets werden automatisch mit Fingerprint versehen, direkt aus &lt;code&gt;dotnet.js&lt;/code&gt; importiert und ohne manuelle Eingriffe mit Integrität validiert. Das Team löschte das Umbenennungsskript.&lt;/p&gt;
&lt;p&gt;Kleine Änderung im Umfang, deutliche Reduzierung der Komplexität.&lt;/p&gt;
&lt;h2 id="wasmstripilafteraot-ist-jetzt-standardmäßig-aktiviert"&gt;WasmStripILAfterAOT Ist Jetzt Standardmäßig Aktiviert&lt;/h2&gt;
&lt;p&gt;In .NET 8 war das Entfernen von IL aus AOT-kompilierten Assemblys opt-in. In .NET 10 ist es der Standard. Nach der AOT-Kompilierung wird der ursprüngliche IL-Bytecode aus der Ausgabe entfernt — er wird zur Laufzeit nicht benötigt, und ihn zu behalten blähte die Paketgröße grundlos auf.&lt;/p&gt;
&lt;p&gt;Copilot Studio verwendet eine spezifische Optimierung: Es liefert sowohl eine JIT-Engine (schneller Start) als auch eine AOT-Engine (maximale Steady-State-Leistung), lädt beide parallel und übergibt von JIT an AOT, sobald sie bereit ist. Es dedupliziert auch Dateien, die zwischen den beiden Engines identisch sind.&lt;/p&gt;
&lt;p&gt;Das neue IL-Stripping-Verhalten bedeutet, dass AOT-Assemblys nicht mehr Bit-für-Bit mit ihren JIT-Gegenstücken übereinstimmen, sodass weniger Dateien dedupliziert werden:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;.NET 8: 59 gemeinsame Dateien&lt;/li&gt;
&lt;li&gt;.NET 10: 22 gemeinsame Dateien&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nettoergebnis: etwa 15% größere Paketgröße für die AOT-Engine. Der AOT-Download ist ~6% langsamer auf schnellem LAN, ~17% langsamer auf 4G. Aber das alles passiert im Hintergrund, nachdem die App bereits interaktiv ist.&lt;/p&gt;
&lt;h2 id="die-leistungszahlen"&gt;Die Leistungszahlen&lt;/h2&gt;
&lt;p&gt;Das ist der wichtige Teil:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;~20% schneller&lt;/strong&gt; beim ersten Aufruf (kalter Pfad)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~5% schneller&lt;/strong&gt; bei nachfolgenden Aufrufen (warmer Pfad)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die Verbesserungen sind am sichtbarsten bei &amp;ldquo;großen Bots&amp;rdquo; — großen, komplexen Agenten, bei denen AOT-kompilierter Code dominiert. Für einfachere Workflows ist der Gewinn kleiner.&lt;/p&gt;
&lt;h2 id="wenn-sie-noch-auf-net-8-sind"&gt;Wenn Sie Noch auf .NET 8 Sind&lt;/h2&gt;
&lt;p&gt;Die Migrationsgeschichte ist wirklich einfach: Aktualisieren Sie &lt;code&gt;&amp;lt;TargetFramework&amp;gt;&lt;/code&gt;, aktualisieren Sie Paketreferenzen, entfernen Sie benutzerdefinierte Fingerprinting-Skripte, und Sie profitieren automatisch von &lt;code&gt;WasmStripILAfterAOT&lt;/code&gt;. Wenn Sie AOT kompilieren, erwarten Sie ähnliche Leistungsgewinne.&lt;/p&gt;
&lt;p&gt;Ein Hinweis aus dem Beitrag: Wenn Sie die .NET WASM-Laufzeitumgebung in einem &lt;code&gt;WebWorker&lt;/code&gt; laden, setzen Sie &lt;code&gt;dotnetSidecar = true&lt;/code&gt; bei der Initialisierung.&lt;/p&gt;
&lt;p&gt;Originalbeitrag: &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>