<?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>WebAssembly | The .NET Blog</title><link>https://thedotnetblog.com/nl/tags/webassembly/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>nl</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/nl/tags/webassembly/index.xml" rel="self" type="application/rss+xml"/><item><title>Hoe Copilot Studio Migreerde naar .NET 10 WebAssembly en 20% Sneller Werd</title><link>https://thedotnetblog.com/nl/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/nl/news/emiliano-montesdeoca/copilot-studio-net10-webassembly-migration-performance/</guid><description>De verbeteringen van .NET 10 WASM zijn niet alleen voor nieuwe projecten. Dit is wat Copilot Studio mat na de upgrade van .NET 8: automatische fingerprinting, WasmStripILAfterAOT standaard ingeschakeld en echte uitvoeringsprestaties.</description><content:encoded>&lt;p&gt;Het Copilot Studio-team deed iets waar alle Blazor WASM-ontwikkelaars nieuwsgierig naar waren: ze upgradeden daadwerkelijk een productieapplicatie van .NET 8 naar .NET 10 en maten de resultaten. De post deelt specifieke cijfers, wat zeldzaam en oprecht nuttig is.&lt;/p&gt;
&lt;h2 id="de-upgrade-was-saai-dat-is-een-goede-zaak"&gt;De Upgrade Was Saai (Dat is een Goede Zaak)&lt;/h2&gt;
&lt;p&gt;Target framework bijwerken, pakketreferenties vernieuwen, breaking changes oplossen. Dat is alles. De .NET 10-build draait nu in productie. De migratie zelf was niet het interessante deel — de wijzigingen in .NET 10 zijn dat.&lt;/p&gt;
&lt;h2 id="automatische-asset-fingerprinting"&gt;Automatische Asset Fingerprinting&lt;/h2&gt;
&lt;p&gt;Vroeger betekende het distribueren van een WASM-app het schrijven van aangepaste scripts om gepubliceerde assets te hernoemen met SHA256-hashes voor cache-busting. Copilot Studio had een PowerShell-script dat precies dit deed — bestanden hernoemen, &lt;code&gt;integrity&lt;/code&gt;-attributen injecteren in de JavaScript-loader, alles handmatig beheren.&lt;/p&gt;
&lt;p&gt;In .NET 10 is dit allemaal ingebouwd. Gepubliceerde assets krijgen automatisch een fingerprint, worden direct geïmporteerd vanuit &lt;code&gt;dotnet.js&lt;/code&gt; en worden gevalideerd op integriteit zonder handmatige tussenkomst. Het team verwijderde het hernoem-script.&lt;/p&gt;
&lt;p&gt;Kleine verandering in scope, aanzienlijke vermindering van complexiteit.&lt;/p&gt;
&lt;h2 id="wasmstripilafteraot-is-nu-standaard-ingeschakeld"&gt;WasmStripILAfterAOT Is Nu Standaard Ingeschakeld&lt;/h2&gt;
&lt;p&gt;In .NET 8 was het verwijderen van IL uit AOT-gecompileerde assemblies opt-in. In .NET 10 is het de standaard. Na AOT-compilatie wordt de oorspronkelijke IL-bytecode verwijderd uit de uitvoer — het is niet nodig tijdens runtime, en het bewaren ervan blies de pakketgrootte op zonder reden.&lt;/p&gt;
&lt;p&gt;Copilot Studio gebruikt een specifieke optimalisatie: het levert zowel een JIT-engine (snelle opstart) als een AOT-engine (maximale steady-state prestaties), laadt beide parallel en geeft over van JIT naar AOT zodra het klaar is. Het dedupliceert ook bestanden die identiek zijn tussen de twee engines.&lt;/p&gt;
&lt;p&gt;Het nieuwe IL-stripping gedrag betekent dat AOT-assemblies niet meer bit-voor-bit overeenkomen met hun JIT-tegenhangers, dus worden er minder bestanden gededupliceerd:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;.NET 8: 59 gedeelde bestanden&lt;/li&gt;
&lt;li&gt;.NET 10: 22 gedeelde bestanden&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nettoresultaat: pakketgrootte ongeveer 15% groter voor de AOT-engine. De AOT-download is ~6% langzamer op snel LAN, ~17% langzamer op 4G. Maar dit alles gebeurt op de achtergrond nadat de app al interactief is.&lt;/p&gt;
&lt;h2 id="de-prestatiecijfers"&gt;De Prestatiecijfers&lt;/h2&gt;
&lt;p&gt;Dit is het deel dat telt:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;~20% sneller&lt;/strong&gt; bij de eerste aanroep (koud pad)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~5% sneller&lt;/strong&gt; bij volgende aanroepen (warm pad)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;De verbeteringen zijn het meest zichtbaar in &amp;ldquo;grote bots&amp;rdquo; — grote, complexe agents waar AOT-gecompileerde code domineert. Voor eenvoudigere workflows is de winst kleiner.&lt;/p&gt;
&lt;h2 id="als-u-nog-op-net-8-bent"&gt;Als U Nog op .NET 8 Bent&lt;/h2&gt;
&lt;p&gt;Het migratieverhaal is oprecht eenvoudig: update &lt;code&gt;&amp;lt;TargetFramework&amp;gt;&lt;/code&gt;, vernieuw pakketreferenties, verwijder aangepaste fingerprinting-scripts, en u profiteert automatisch van &lt;code&gt;WasmStripILAfterAOT&lt;/code&gt;. Als u AOT compileert, verwacht dan vergelijkbare prestatiewinsten.&lt;/p&gt;
&lt;p&gt;Een opmerking uit de post: als u de .NET WASM-runtime laadt binnen een &lt;code&gt;WebWorker&lt;/code&gt;, stel dan &lt;code&gt;dotnetSidecar = true&lt;/code&gt; in bij het initialiseren.&lt;/p&gt;
&lt;p&gt;Originele 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>