C#でWEB開発を可能にする「Blazor」はWebAssemblyを活用した最新プロジェクト!

Episode #367

WebAssemblyの登場によって、開発者は好きな言語でWEB開発を行いやすくなりました。C#もその一つです。今回はC#でWeb開発を可能にするプロジェクト「Blazor」についてご紹介します。

Blazorとは

Full-stack web development with C# and WebAssembly
公式ページにはこのような謳い文句が書かれていました。しかしこれは何の間違いでもありません。このBlazorはC#でWeb開発を可能にする素晴らしいものなのです。

Blazorの特徴

BlazorはUIからバックエンドまですべてを.NETで完結させてくれます。
この画像を見ていただければわかると思いますがcshtmlという拡張子のファイルの中にHTMLとC#が混同しています。まるでPHPみたいですね(笑)
@function{}内にC#でやりたいことを記述すると@アクション名(関数名)で呼び出すことができます。これはものすごく便利ですね。

Blazorの仕組み

BlazorですがC#にJavaScriptのような役割を与えていますが、決してC#をJSにトランスパイルするものではありません。WebAssemblyで.NET実行環境を構築しているにすぎないのです。先ほどまでC#が使えると言っていましたが実は.NETで動くものでしたら理論上どんなプログラミング言語でも動かすことができます。

上記はde:code2018というMSのイベントにて坂本純一氏が公開したスライドの一ページですが次々とdllがダウンロードされているのが見られます。これこそが.NETが動いている証拠です。

またmono.wasmというファイルが見られると思いますがこれがWebAssemblyのファイルになります。

WebAssemblyとは

せっかくですからWebAssemblyについても解説していきましょう。

WebAssemblyは、ウェブブラウザのクライアントサイドスクリプトとして動作するプログラミング言語低水準言語)である。

Wikipediaにはこのように記されていました。Web版Assemblyといえば理解していただける方も多いと思います。「Web版の低水準言語を作ったからこれを利用して各々のプログラミング言語でWeb開発していこうよ!」というのがWebAssemblyの目指すところです。

WebAssemblyですが現在のモダンなブラウザではほぼ対応しています。WebAssembly自体の開発はMozillaマイクロソフトGoogleアップルといった主要ブラウザメーカーの開発者が担当しています。

現在C,C++に完全対応することを目標に進められていますが、それと同時にC#やJava等での対応も着々と進んでいます。

最後に

このBlazorですが現在実験段階のプロジェクトです。ご使用の際は自己責任でお願いします。それでは楽しいC#ライフを!

参考記事: Blazor
https://blazor.net/
参考記事: WebAssembly
https://webassembly.org/

 

 

NijiPicoをフォローして最新のFeedを入手