Blazor

Blazor（ブレイザー）またはASP.NET Core Blazorは、開発者がC#とHTML、CSSを使用してWebアプリケーションを開発できるようにする無料のオープンソースWebフレームワーク。

マイクロソフトによって開発されている。

概要 

現在までに6つのエディションが発表されている。

Blazor Server 
ASP.NET Razor 形式で ASP.NET Core サーバーでホストされる。リモートクライアントはシンクライアントとして機能し、処理の大部分がサーバー上で行われる。クライアントの Web ブラウザーは小さなページをダウンロードし、SignalR接続を介してUIを更新する。Blazor Serverは .NET Core 3の一部としてリリースされた。

Blazor WebAssembly 
実行前にクライアントの Web ブラウザーにダウンロードされるシングルページアプリケーション（SPA）。ダウンロードのサイズはBlazor Serverよりも大きく、アプリケーションによって異なり、処理はすべてクライアントハードウェアで行われる。ただし、このアプリタイプは応答時間が速い。その名前が示すように、このクライアント側フレームワークは、JavaScriptとは対照的に、WebAssemblyで記述されている（一緒に使用できる）。

Blazor PWAおよびBlazor Hybrid 
前者はプログレッシブ Web アプリケーション （PWA） をサポートしている。後者は（Webフレームワークとは対照的に）プラットフォームネイティブフレームワークだが、Webテクノロジー（HTMLやCSSなど）を使用してユーザーインターフェイスをレンダリングしている。

Blazor Native 
プラットフォームネイティブユーザーインターフェイスをレンダリングするプラットフォームネイティブ フレームワークも検討されているが、計画段階には達していない。

Blazor United 
Blazor Server と Blazor WebAssembly の両方を組み合わせたもので、開発者がレンダリング モードをより細かく調整できる "両方の長所"を備えたソリューションが可能になる。このアプローチにより、Blazor WebAssembly が必要とする大規模な事前ダウンロードと、Blazor Server が必要とする常時接続のSignalRの欠点が克服される。このBlazor Unitedは.NET 8 ロードマップの一部であり、2023年現在はまだリリースされていない。

使用例 
次の例は、ボタンをクリックするとインクリメントするシンプルなカウンターの実装である。<h1>Blazor code example</h1>
<p>count: @count</p>
<button @onclick="IncCount">Click to increment</button>

@code {
    private int count = 0;

    private void IncCount()
    {
        count++;
    }
}

関連項目 

 asm.js – C言語またはC++で記述された、クライアント側のWebアプリケーションを可能にするWebAssemblyの前身。
 Google Native Client – ブラウザの動作環境に関係なく、ウェブブラウザ上でネイティブコードを実行できるようにするWebAssemblyの前身。現在は廃止されている。

外部リンク 

 公式サイト
 ASP.NET Core GitHubリポジトリ
オープンソース