2023年10月份寫過一篇《本計劃在 .NET 8 中推出的 WASI 推遲到 .NET 9 》[1],根據此問題[2],在 .NET 9 RTM 中似乎不會有wasi-experimental,僅使用 componentize-dotnet [3]的專案才能工作/將被更新,WASI 實驗正在 NET 10 中繼續進行。
2024年9月份位元組碼聯盟釋出了一篇文章《 使用 componentize-dotnet 為 .NET/C# 開發人員簡化元件》[4],文章總結了componentize-dotnet
專案,這是一個為.NET/C#開發者提供的工具,使得將程式碼編譯為WebAssembly元件變得簡單。這個由Bytecode Alliance發起的專案是一個NuGet包,允許從.NET應用程式建立完全AOT編譯的元件,為.NET開發者提供了與Rust和TinyGo相當的元件體驗。文章詳細介紹瞭如何使用.NET 9 Preview 7和componentize-dotnet
開始構建元件,包括安裝必要的軟體、配置NuGet以引用實驗性包源、新增BytecodeAlliance.Componentize.DotNet.Wasm.SDK
包到專案中,並展示瞭如何構建和執行一個簡單的WebAssembly元件。此外,文章還探討了如何簡化元件工作流程,特別是如何使用WebAssembly Interface Type (WIT)定義來實現元件間的互操作性。最後,文章提到了.NET 9最終釋出時將支援透過Mono編譯器生成元件,以及componentize-dotnet
專案將如何為使用者提供選擇NativeAOT-LLVM
或Mono編譯器的便利。文章鼓勵有興趣的開發者加入Bytecode Alliance社群並參與componentize-dotnet
專案。
根據這篇文章的最新的適用於 .NET 9 RC 2 和 Wasmtime 26.0.0的程式碼示例: https://github.com/henrikrxn/webassembly-experiments/blob/main/dotnet-9/componentize-dotnet/README.md[5]
相關連結:
- [1]本計劃在 .NET 8 中推出的 WASI 推遲到 .NET 9 :https://www.cnblogs.com/shanyou/p/17739970.html
- [2]在 .NET 9 中禁用構建wasi: https://github.com/dotnet/runtime/pull/108877
- [3]componentize-dotnet:https://github.com/bytecodealliance/componentize-dotnet
- [4]使用 componentize-dotnet 為 .NET/C# 開發人員簡化元件:https://bytecodealliance.org/articles/simplifying-components-for-dotnet-developers-with-componentize-dotnet
- [5].NET 9 RC 2 和 Wasmtime 26.0.0的程式碼示例:https://github.com/henrikrxn/webassembly-experiments/blob/main/dotnet-9/componentize-dotnet/README.md