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

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

  • Random Neighborhoods Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the random neighborhoods regression technique, where the goal is to predict a single numeric value. Compared to other ML regression techniques, advantages are that it can handle both large and small datasets, and the results are highly interpretable.

  • As Some Orgs Restrict DeepSeek AI Usage, Microsoft Offers Models and Dev Guidance

    While some organizations are restricting employee usage of the new open source DeepSeek AI from a Chinese company due to data collection concerns, Microsoft has taken a different approach.

  • Useful New-ish Features in .NET/C#

    We often hear about the big new features in .NET or C#, but what about all of those lesser known, but useful new features? How exactly do you use constructs like collection indices and ranges, date features, and pattern matching?

  • TypeScript 5.8 Beta Speeds Program Loads, Updates

    "TypeScript 5.8 introduces a number of optimizations that can both improve the time to build up a program, and also to update a program based on a file change in either --watch mode or editor scenarios."

Subscribe on YouTube