Blazor(ブレイザー)は、Microsoftが開発した、C#とHTML、CSSを用いてWebアプリケーションを開発するための、自由でオープンソースのWebフレームワークです。
概要
Blazorは、多様なWebアプリケーション開発に対応するため、複数のエディションが提供されています。主なものとして、以下の6つが挙げられます。
1.
Blazor Server
- ASP
.NET Razor形式で、ASP
.NET Coreサーバー上でホストされます。
- クライアントはシンクライアントとして機能し、処理の大部分はサーバー側で行われます。
- クライアントのWebブラウザは、小さなページをダウンロードし、SignalR接続を通じてUIを更新します。
-
.NET Core 3の一部としてリリースされました。
2.
Blazor WebAssembly
-
シングルページアプリケーション(SPA)として、実行前にクライアントのWebブラウザにダウンロードされます。
- ダウンロードサイズはBlazor Serverよりも大きくなる場合がありますが、アプリケーションによって異なります。
- すべての処理はクライアント側のハードウェアで行われるため、応答速度が速い特徴があります。
-
JavaScriptではなく、
WebAssemblyで記述されています(
JavaScriptとの併用も可能です)。
3.
Blazor PWA
- プログレッシブWebアプリケーション(PWA)をサポートしています。これにより、オフラインでの動作やプッシュ通知などの高度な機能が利用できます。
4.
Blazor Hybrid
- プラットフォームネイティブのフレームワークですが、ユーザーインターフェイスのレンダリングにはWeb技術(HTMLやCSSなど)を利用します。
- ネイティブアプリとWebアプリの利点を組み合わせたハイブリッドなアプローチを提供します。
5.
Blazor Native
- プラットフォームネイティブのユーザーインターフェイスをレンダリングする、ネイティブフレームワークも検討されていますが、現時点では計画段階です。
6.
Blazor United
- Blazor ServerとBlazor
WebAssemblyの両方を組み合わせたもので、開発者はレンダリングモードをより細かく制御できます。
- Blazor
WebAssemblyの大規模な事前ダウンロードと、Blazor Serverの常時接続の必要性という両方の課題を克服することを目指しています。
-
.NET 8ロードマップの一部であり、現在はまだリリースされていません。
使用例
以下は、ボタンをクリックするとカウンターが増加するシンプルな例です。
csharp
@page "/counter"
Counter
Current count: @currentCount
@code {
private int currentCount = 0;
private void IncrementCount()
{
currentCount++;
}
}
関連項目
asm.js: C言語やC++で記述されたクライアント側のWebアプリケーションを可能にする、WebAssemblyの前身。
Google Native Client: ブラウザの実行環境に関係なく、Webブラウザ上でネイティブコードを実行できるようにする
WebAssemblyの前身。現在は廃止されています。
外部リンク
公式ウェブサイト
ASP.NET Core GitHub
リポジトリ