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

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

Blazorには2つの実行モデルがあります:Blazor Server と Blazor 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

下田 昌平

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