BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Blazor、.NETをブラウザに連れ戻す

Blazor、.NETをブラウザに連れ戻す

原文(投稿日:2017/07/14)へのリンク

Steve Sanderson氏のBlazorは、WebAssemblyを使って.NETをブラウザに連れ戻す実験的なプロジェクトだ。FlashやSilverlightのような完全なプロダクションフレームワークではなく、何ができるのかを調べるためのものだ。

WebAssemblyは自らを「既存のJavaScript仮想マシン内で実装することもできる、メモリセーフでサンドボックス化された実行環境」のためのスタンダードだと説明する。WebAssemblyをネイティブサポートするブラウザではより性能が向上するが、コンバータとasm.jsを使うことで、古いブラウザでも解釈することができる。

今のところ、WebAssemblyはCとC++アプリケーションのサポートを第一として設計されており、clang/LLVMのコンパイラバックエンドとして動作する。CからC#にするため、Blazorは別のリサーチプロジェクトを利用することにした。Chris Bacon氏のDotNetAnywhereは、.NETのCLI(Common Intermediate Language、IL、MSIL)のためのCで書かれたインタプリタだ。DotNetAnywhereプロジェクトは約6年前に終了している。

Blazorでは、DotNetAnywhereに次のような変更を行っている。

  • Emscriptenを使ったビルドをサポート
  • .NETからJavaScriptへのp/invoke呼び出しをサポート
  • GCHandleなどの相互運用プリミティブを追加
  • JavaScriptから.NETへのインバウンド呼び出しを受信
  • バグ修正
  • .NET Coreスタイルのアセンブリのローディングをサポート

Blazorアプリケーションはサーバーではなくブラウザで実行されるRazorテンプレートを使って作られている。ドキュメントによると、シンプルな「Hello world」アプリケーションで、300KBのダウンロードが必要になる。これには「すべてのもの: 小さな.NETランタイム、コアライブラリ、アプリケーションコード、ブートストラップとWebAssemblyコードとの相互運用に必要なラッパーライブラリ」が含まれている。

実際に呼び出されていないコードの削除はしていないため、このサイズはさらに削減可能だ。

実際に見たければ、NDC Conferenceのビデオ(タイトル「Web Apps can’t really do *that*, can they? - Steve Sanderson」)を見てみよう。

Rate this Article

Adoption Stage
Style

この記事に星をつける

おすすめ度
スタイル

BT