Interactivité Blazor

Blazor vous permet de livrer un portail dans l’un des trois modes d’interactivité — Serveur, WebAssembly ou Auto. Le mode choisit comment les composants interactifs s’exécutent (via une connexion SignalR sur le serveur, tel que compilé .NET dans le navigateur, ou les deux) et décide ce qui est généré dans la mise en page de votre projet. Power Portals Pro fonctionne correctement sous les trois ; Les différences résident dans la forme de déploiement et le câblage du projet, pas dans les fonctionnalités du cadre.

Les Trois Modes

Serveur

Les composants interactifs s’exécutent sur le serveur. Chaque utilisateur connecté détient une connexion SignalR ouverte vers l’hôte, et chaque événement UI fait des allers-retours vers le serveur.

Compromis :

WebAssembly

Les composants interactifs s’exécutent dans le navigateur sous forme de code compilé .NET. Le rôle du serveur se réduit à servir les fichiers statiques et les points d’accès HTTP API du framework sous /api/auth/* et /api/*.

Compromis :

Auto

La première peinture provient du serveur (pour que l’utilisateur voie immédiatement le contenu) et l’exécution passe de manière transparente vers WebAssembly une fois le paquet client terminé. Auto = Serveur en premier, WebAssembly ensuite, sur les mêmes itinéraires.

Compromis :

Conseil

Ce site de documentation fonctionne en mode Auto. Ouvrez l’onglet réseau des outils de développement du navigateur lors du premier chargement et vous verrez le HTML rendu par le serveur arriver en premier, puis le flux du bundle WASM en une ou deux secondes — après quoi les navigations cessent de toucher le serveur pour le HTML.

Lequel choisir

Règles générales lorsqu’il n’y a pas de contrainte spécifique imposant un choix :

Fiche de triche

Ce qui change entre les trois modes, fichier par fichier. Utilisez cette référence pour comparer un projet généré à l’un des modèles, ou pour rechercher une divergence après un changement manuel.

Disposition du projet

Les trois modes génèrent un projet hôte serveur ET un projet frère. .Client Ce qui diffère, c’est le .ClientSDK de 's et s’il est réellement compilé en bundle WebAssembly.

.csproj Différences

Le .Client SDK du projet change, et les paquets frameworks spécifiques à WebAssembly n’apparaissent que lorsque l’hôte exécute effectivement WASM :

Références supplémentaires de paquet lorsque WebAssembly ou Auto sont actifs :

Server Program.cs — Enregistrement des services

AddRazorComponents() sélectionne les paires de composants de mode de rendu appropriées en fonction des méthodes de construction chaînées :

Server Program.cs — Endpoint Mapping

MapRazorComponents<App>() enchaîne les terminaux correspondants en mode de rendu :

App.razor — Politique de rendu par itinéraire

Le PageRenderMode getter in App.razor décide quel moteur de rendu chaque route utilise. Les hôtes serveurs renvoient le serveur partout ; Les hôtes WebAssembly et Auto doivent épingler explicitement les /Account/* routes afin que le WASM uniquement IAuthService résout :

Pourquoi le compte /Account/* est épinglé

La première peinture d’Auto s’exécute sous le moteur de rendu du serveur, mais les pages IAuthService de compte ne sont enregistrées que dans le graphe DI du client WASM. Sans l’épingle explicite à InteractiveWebAssemblyRenderMode(prerender: false), un hôte Auto ne résout [Inject] IAuthService pas lors du prérendu de la session froide. prerender: false Ignore complètement l’étape de pré-rendu côté serveur, donc la page ne s’affiche qu’une seule fois, sur l’exécution WASM.

. Client/Program.cs — Uniquement en cas d’interactivité

Les hôtes serveur uniquement n’ont pas du tout de bibliothèque .Client/Program.cs de classe Razor .Client ). Les hôtes WebAssembly et Auto incluent ce fichier, qui configure l’exécution WASM, enregistre le HttpClient transfert des identifiants des cookies, enregistre les services clients WASM de Power Portals Pro, et pré-recherche la localisation transversale au démarrage :

Pages d’identité / de comptes

Power Portals Pro propose deux ensembles parallèles de pages de comptes — une pour chaque contexte de rendu. Le jeu dans votre projet dépend du mode de l’hôte :

Prochaines étapes

Si vous avez déjà un projet sur un mode et souhaitez convertir vers un autre, consultez la page Switch Blazor Interactivity pour les modifications fichier par fichier.