ランタイムとアーキテクチャの違いとは?|ASP.NET×Blazor入門 9.1

9.1 ランタイムとアーキテクチャの違い

Blazorには2つの実行モデルがあります:Blazor ServerBlazor WebAssembly (WASM)。どちらもC#でフロントエンドを構築できるという点では共通していますが、アーキテクチャと実行環境の構造は大きく異なります。

Blazor Server:SignalRによる双方向通信

Blazor Serverは、ユーザーの操作をリアルタイムにSignalR経由でサーバーに送信し、UIの更新もサーバー側で行ってクライアントに反映します。ページはHTMLで描画され、ユーザーの操作はイベントとして伝達され、UIの変化は「差分」だけ送られます。

  • 利点:初回読み込みが軽く、.NETランタイムがクライアントに不要。ASP.NET Coreの機能をそのまま利用可能。
  • 欠点:接続が切れると操作不能。レイテンシの影響を受けやすい。

Blazor WebAssembly:クライアントで完結する実行モデル

WASM版は、Monoランタイム(または.NET 7以降のネイティブランタイム)をWebAssembly上に展開し、C#のコードをブラウザ上で直接実行します。フルクライアント型のSPAに近い構造です。

  • 利点:オフライン動作が可能。レスポンスが高速。スケーラビリティに優れる。
  • 欠点:初回ロードが重い。制約のある環境(ブラウザ)で動くため、ファイルアクセスや一部のライブラリ使用に制限。

構造図で比較する

以下の図は、Blazor ServerとWASMの実行モデルの違いを表しています。

Blazor Server vs WASM Architecture

比較表

項目 Blazor Server Blazor WASM
ランタイムの場所 サーバー ブラウザ
接続要件 常時接続(SignalR) 不要(クライアント完結)
初期ロード 軽量 重め
パフォーマンス レイテンシに依存 高速(ローカル実行)
スケーラビリティ 低(接続数に依存)
利用シーン 社内ツール、Intranet、管理画面 パブリックなSPA、モバイル対応

現場での選定基準

どちらを選ぶべきかは、アプリの用途・スケール・ユーザー層・リアルタイム性の要件によって決まります。たとえば、社内システムであればBlazor Serverが適し、大量アクセスが見込まれるWebアプリやPWAではWASMの方が向いています。

次のセクションでは、PrerenderingとSEOの観点から、この2つのアーキテクチャの違いをさらに深掘りしていきます。

2025-05-08

下田 昌平

開発に関するインプットをアウトプットしています。