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."

Multithreading Is No. 1 'Hard Cut'
[Click on image for larger view.] Multithreading Is No. 1 'Hard Cut' (source: Microsoft).

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."

Top-Voted ASP.NET Core Issues
[Click on image for larger view.] Top-Voted ASP.NET Core Issues (source: GitHub).

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.

comments powered by Disqus

Featured

  • Copilot AI Billing Shock Met with Meters, Caps and Token-Saving Tools

    GitHub is layering spending limits, expanded credit allowances and increasingly granular usage reporting onto Copilot, while Microsoft is reworking Visual Studio and VS Code to expose -- and reduce -- the cost of agentic development.

  • The AI-Powered Software Development Lifecycle

    René van Osnabrugge makes the case that AI's biggest opportunity in software development is not faster coding -- it's reducing the friction everywhere else in the SDLC.

  • Copilot Usage-Based Billing Gets a Token Dashboard

    Microsoft is keeping Visual Studio's new built-in Agent Skills switched off by default while a public dashboard measures whether their performance gains justify the additional tokens they may consume.

  • VS Code 1.129 Introduces Agent Host and Experimental Agents Window Editor

    Visual Studio Code 1.129 adds a dedicated process for running AI agent sessions and an experimental docked editor for reviewing agent-generated changes.

Subscribe on YouTube