ランタイムとアーキテクチャの違いとは?|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 | Blazor WASM |
|---|---|---|
| ランタイムの場所 | サーバー | ブラウザ |
| 接続要件 | 常時接続(SignalR) | 不要(クライアント完結) |
| 初期ロード | 軽量 | 重め |
| パフォーマンス | レイテンシに依存 | 高速(ローカル実行) |
| スケーラビリティ | 低(接続数に依存) | 高 |
| 利用シーン | 社内ツール、Intranet、管理画面 | パブリックなSPA、モバイル対応 |
現場での選定基準
どちらを選ぶべきかは、アプリの用途・スケール・ユーザー層・リアルタイム性の要件によって決まります。たとえば、社内システムであればBlazor Serverが適し、大量アクセスが見込まれるWebアプリやPWAではWASMの方が向いています。
次のセクションでは、PrerenderingとSEOの観点から、この2つのアーキテクチャの違いをさらに深掘りしていきます。
下田 昌平
開発に関するインプットをアウトプットしています。検索ログ
開発・技術相談
システム開発や技術検証、要件定義の作成、アーキテクチャ設計、 テスト設計、運用設計まで、一気通貫で支援しています。 企画段階の「まず相談したい」レベルから、実装・運用まで 幅広く対応できますので、お気軽にお問い合わせください。
お問い合わせ