News
Uno Platform Wants Microsoft to Improve .NET WebAssembly in Two Ways
Uno Platform, a third-party dev tooling specialist that caters to .NET developers, published a report on the state of WebAssembly, addressing some shortcomings in the .NET implementation it would like to see Microsoft address. The company's wares enable developers to build applications for Windows, iOS, Android, macOS, Linux, and WebAssembly using a single codebase.
WebAssembly, or WASM, is the tech that powers Microsoft's Blazor web-dev tooling, providing a low-level assembly-like language that serves as a compilation target for higher-level languages like C# so devs can use it primarily instead of JavaScript.
WebAssembly, being open source, can be put to use in many different ways, and Microsoft uses Blazor WASM to execute C# and .NET code in the browser, instead of web mainstay JavaScript.
Uno Platform, which stewards an open-source framework along with selling a commercial product, recently published its The State of WebAssembly - 2024 and 2025 report. It reviewed past developments and discussed features that might appear this year, including two for .NET: garbage collection and multithreading.
Garbage Collection
"With the WebAssembly Garbage Collection proposal now available in all browsers, one would hope that would mean that the .NET runtime would be able to take advantage of it," said the post. "Unfortunately, when the .NET team was looking at the proposal in 2023, they indicated that it wasn't possible for .NET to use it. They were, however, looking into the possibility of contributing to the post-MVP [minimum viable product] plans for Garbage Collection. Now that the MVP of Garbage Collection is standardized, hopefully work can happen to allow .NET to take advantage of the browser's garbage collector too."
The GC Proposal for WebAssembly GitHub repo points to that MVP and the Post-MVP.
Microsoft, meanwhile, has a Garbage collection page on its Learn site for .NET, which explains how it manages the allocation and release of memory for applications.
Uno Platform actually addressed the issue in last year's report in the context of .NET 8, explaining: "Because .NET code uses managed memory, it requires garbage collection, and up until recently, browsers didn't have WebAssembly garbage collection. To get around this, .NET uses the mono runtime, which is compiled to WebAssembly and handles the garbage collection. Unless your .NET app is AOT (Ahead of Time) compiled, your code is being interpreted in the browser by the .NET runtime."
With major browsers now supporting WASM garbage collection, Uno Platform is hoping that .NET can take advantage of that.
Multithreading
"Another WebAssembly feature that would be nice to see is threading," Uno Platform said in its Jan. 27 post. "Based on a recent Community Standup planning discussion for .NET 10, they indicated that multithreading is probably not going to make the cut."
The post pointed to that ASP.NET Community Standup - Blazor .NET 10 Planning Discussion video where Microsoft's Daniel Roth said, in discussing "hard cuts" the team had to make for .NET 10: "The big one is probably going to be multithreading, and I think right now on GitHub this is our top up-voted issue. It's been around for a request for a long time -- I think even from the beginning of of Blazor. Yeah we made a lot of progress on the multithreading support in the runtime, but there's still actually quite a large chunk of work to be done in order to enable it for Blazor itself, and so we kind of have to pick ... I think we're kind of in the situation where like, well, we could do like some of the big server, you know, state persistence work, or we could do this one, but we can't do both, in terms of fitting it in into our available resources. So our current thinking is that this one might need to wait."
In fact, Real multithreading in Blazor WebAssembly #17730 from 2019 is now just one 👍 from tying "Eventing Framework in .NET 9" as the top up-voted issue.
About the Author
David Ramel is an editor and writer at Converge 360.