WebAssemblyはWebブラウザ上でネイティブコードが動かせるようになり、より大型で複雑なWebアプリケーションが実現できるようになります。とても期待できる一方、DOM操作ができないといった欠点もあります(将来的に解決する予定ですが)。 今回はC#からWebAssemblyに変換して作られたWasmWinformsを紹介します。WinformsをWebAssemblyに移植した意欲作です。

WasmWinformsの使い方

Windows 95または98あたりを彷彿とさせるUIです。

ちゃんとマウスを動かしたり、クリックできます。このマウスカーソルはOS標準のものではありません。

電卓も用意されています。

WasmWinformsはCanvasに描かれたWinformsです。動作は決して高速とは言えませんし、まだ時々描画がおかしくなる不具合も残っています。しかし、もしこれが実用的になるとC#でWebブラウザ上で動くアプリケーションが登場するかも知れません。それこそSilverlightの夢再び、でしょうか。

WasmWinformsはC#製のオープンソース・ソフトウェア(MIT License)です。

デモ roozbehid/WasmWinforms: C# Winforms for Webassembly