1 / 19

.NET on the Web with Mono WebAssembly

.NET on the Web with Mono WebAssembly. Mikayla Hutchinson mhutch@microsoft.com @ mjhutchinson. What’s WebAssembly ?. Started 2015, MVP consensus 2017 Chrome, Firefox, Safari, Edge UE4, Unity, Godot, AutoCAD, Figma Builds on older asm.js (2010). webassembly.org. C/C++. LLVM IR.

douglasv
Download Presentation

.NET on the Web with Mono WebAssembly

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. .NET on the Web with Mono WebAssembly Mikayla Hutchinson mhutch@microsoft.com @mjhutchinson

  2. What’s WebAssembly?

  3. Started 2015, MVP consensus 2017 Chrome, Firefox, Safari, Edge UE4, Unity, Godot, AutoCAD, Figma Builds on older asm.js (2010) webassembly.org

  4. C/C++ LLVM IR clang wasm

  5. .NET IL LLVM IR Mono wasm

  6. Not quite that simple

  7. It mostly works 🎉 (and it’s getting better!)

  8. Modes Interpreter Slower code, faster compile, smaller code AOT Faster code, slower compile, larger code Mixed mode Pick tradeoffs to get best of both

  9. Bindings C#: Runtime.InvokeJS JSObject.Invoke JSObject.GetObjectProperty … JS: Module.cwrap Module.mono_method_invoke Module.mono_call_static_method …

  10. Binding Generator JavaScript typing is weak & dynamic In practice, most APIs are not TypeScript definitions: definitelytyped.org Allows generating C# wrappers

  11. Getting Started

  12. Higher-level Platforms Blazor – blazor.netFull-stack framework for SPAs Uno – uno.platformCross-platform re-implementation of UWP Ooui – ooui.mecha.partsOO UI toolkit on web tech to native elements WasmWinforms – github.com/roozbehid/WasmWinformsMono’s WinForms stack on wasm

  13. DEMO

  14. Resources webassembly.org github.com/mono/mono/tree/master/sdks/wasm blazor.net platform.uno

  15. Thank you! Please remember to fill out session evaluations 💯 @mjhutchinson mhutch@microsoft.com

More Related