BT

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

| 作者: Jonathan Allen フォローする 529 人のフォロワー , 翻訳者 sasai フォローする 0 人のフォロワー 投稿日 2017年7月20日. 推定読書時間: 2 分 |

原文(投稿日: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

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT