ブレイザー・インタラクティビティ

Blazorは、 サーバーWebAssemblyオートの3つのインタラクティブモードのいずれかでポータルを発送できます。このモードでは、インタラクティブコンポーネントがどのように動作するか(サーバー上のSignalR接続、ブラウザでコンパイルされた.NET経由で、またはその両方で)を選び、プロジェクトレイアウトで何が生成されるかを決定します。Power Portals Proは3つすべてで正しく動作します。違いはフレームワークの機能ではなく、展開の形状やプロジェクトの配線にあります。

三つのモード

サーバー

インタラクティブコンポーネントはサーバー上で実行されます。接続された各ユーザーはホストへのオープンなSignalR接続を保持し、すべてのUIイベントはサーバーへの往復を行います。

トレードオフ:

WebAssembly

インタラクティブコンポーネントはブラウザ上でコンパイルされた.NETコードとして動作します。サーバーの役割は、静的ファイルやフレームワークのHTTP APIエンドポイントを /api/auth/*/api/*で提供することに縮小されます。

トレードオフ:

自動車

最初のペイントはサーバーから来るため(ユーザーがすぐにコンテンツを見られます)、クライアントバンドルのダウンロードが終わるとランタイムは透明にWebAssemblyに切り替わります。Auto = サーバーが先に、その後WebAssemblyが同じルート上に行われます。

トレードオフ:

ヒント

このドキュメントサイトはオートモードで動作します。ブラウザの開発ツールのネットワークタブを最初の読み込み時に開くと、サーバーレンダリングされたHTMLが最初に到着し、その後WASMバンドルストリームが1〜2秒で到着します。その後、HTMLのナビゲーションはサーバーに届かなくなります。

どちらを選ぶか

特定の制約がない場合の大まかな目安:

チートシート

3つのモード間でファイルごとに何が変わるのか。生成されたプロジェクトとテンプレートを比較したり、手動切り替え後に不一致を追いかける際にこれを参考にしてください。

プロジェクトレイアウト

これら3つのモードは、サーバーホストプロジェクトと兄弟 .Client プロジェクトの両方を生成します。違いは .ClientのSDKと、それが実際にWebAssemblyバンドルにコンパイルされているかどうかです。

.csproj の違い

.ClientプロジェクトのSDKは変更され、WebAssembly専用のフレームワークパッケージはホストが実際にWASMを実行している場合にのみ表示されます。

WebAssemblyやAutoが有効な場合の追加パッケージ参照:

サーバー Program.cs — サービス登録

AddRazorComponents() どのビルダーメソッドが連結されているかに基づいて、適切なレンダーモードコンポーネントペアを取得します:

サーバー Program.cs — エンドポイントマッピング

MapRazorComponents<App>() 一致するレンダーモードのエンドポイントを連鎖します:

App.razor — Per-Route Render Policy

App.razorPageRenderModeゲッターは、各ルートがどのレンダラーを使うかを決定します。サーバーホストはどこでもサーバーを戻します。WebAssemblyとAutoホストは、WASMのみのIAuthServiceが解決されるように/Account/*ルートを明示的にピン留めする必要があります:

なぜ/account/*が固定されているのか

Autoの最初のペイントはサーバーレンダラーの下で動作しますが、アカウントページの IAuthService はWASMクライアントのDIグラフにのみ登録されています。明示的なピンで InteractiveWebAssemblyRenderMode(prerender: false)がなければ、オートホストはコールドセッションのプリレンダーで [Inject] IAuthService を解決できません。 prerender: false サーバー側のプリレンダーステップを完全にスキップするため、ページはWASMランタイムで一度だけレンダリングされます。

.クライアント/Program.cs — インタラクティブな場合のみ

サーバー専用ホストには .Client/Program.cs が全くありません(Razorクラスのライブラリ .Client )。WebAssemblyやAutoホストには、WASMランタイムの設定、クッキー認証転送で HttpClient を登録し、Power Portals ProのWASMクライアントサービスを登録し、起動時にクロスカッティングローカリゼーションをプリフェッチするファイルが含まれています。

アイデンティティ/アカウントページ

Power Portals Proは、それぞれのレンダリングコンテキストごとに2つの並列したアカウントページセットを出荷しています。どのセットがプロジェクトに含まれているかはホストのモードによって異なります:

今後のステップ

すでにあるモードでプロジェクトを持っていて別のモードに変換したい場合は、ファイルごとの変更については Switch Blazorのインタラクティブ ページをご覧ください。