projectstructuur ASP.NET Core Blazor
Notitie
Dit is niet de nieuwste versie van dit artikel. Zie de .NET 9-versie van dit artikelvoor de huidige release.
Waarschuwing
Deze versie van ASP.NET Core wordt niet meer ondersteund. Zie de .NET- en .NET Core-ondersteuningsbeleidvoor meer informatie. Zie de .NET 9-versie van dit artikelvoor de huidige release.
Belangrijk
Deze informatie heeft betrekking op een pre-releaseproduct dat aanzienlijk kan worden gewijzigd voordat het commercieel wordt uitgebracht. Microsoft geeft geen garanties, uitdrukkelijk of impliciet, met betrekking tot de informatie die hier wordt verstrekt.
Zie de .NET 9-versie van dit artikelvoor de huidige release.
In dit artikel worden de bestanden en mappen beschreven waaruit een Blazor app bestaat die is gegenereerd op basis van een Blazor projectsjabloon.
Blazor Web App
Blazor Web App project template: blazor
De Blazor Web App projectsjabloon biedt één uitgangspunt voor het gebruik van Razor componenten (.razor
) om elke stijl van een webgebruikersinterface te maken, zowel server-side als client-side gerenderd. Het combineert de sterke punten van de bestaande Blazor Server en Blazor WebAssembly hostingmodellen met rendering aan de serverzijde, streaming-rendering, verbeterde navigatie- en formulierafhandeling en de mogelijkheid om interactiviteit toe te voegen met behulp van Blazor Server of Blazor WebAssembly per onderdeel.
Als zowel client-side rendering (CSR) als interactieve server-side rendering (interactieve SSR) zijn geselecteerd bij het maken van apps, gebruikt de projectsjabloon de interactieve modus voor automatisch renderen. De automatische renderingmodus maakt in eerste instantie gebruik van interactieve SSR terwijl de .NET-app-bundel en -runtime worden gedownload naar de browser. Nadat de .NET WebAssembly-runtime is geactiveerd, schakelt de rendering over naar CSR.
Met de Blazor Web App-sjabloon kunt u zowel statische als interactieve rendering aan de serverzijde inschakelen met één project. Als u interactieve WebAssembly-rendering ook inschakelt, bevat het project een extra clientproject (.Client
) voor uw webassembly-onderdelen. De ingebouwde uitvoer van het clientproject wordt gedownload naar de browser en uitgevoerd op de client. Onderdelen die de modi Interactive WebAssembly of Interactive Auto Render gebruiken, moeten zich in het .Client
project bevinden.
De structuur van de onderdeelmap van het .Client
project verschilt van de hoofdmapstructuur van het Blazor Web Appomdat het hoofdproject een standaard ASP.NET Core-project is. Het hoofdproject moet rekening houden met andere activa voor ASP.NET Kernprojecten die niet gerelateerd zijn aan Blazor. U kunt in het .Client
project de gewenste onderdeelmapstructuur gebruiken. U kunt desgewenst de indeling van de onderdeelmap van het hoofdproject in het .Client
project spiegelen. Houd er rekening mee dat voor naamruimten mogelijk aanpassingen vereist zijn voor assets zoals indelingsbestanden als u onderdelen naar andere mappen verplaatst dan de projectsjabloon gebruikt.
Meer informatie over onderdelen en rendermodi vindt u in de ASP.NET Core Razor-onderdelen en ASP.NET Core Blazor weergavemodi artikelen.
Op basis van de interactieve weergavemodus die is geselecteerd bij het maken van apps, bevindt de map Layout
zich in het serverproject in de Components
map of in de hoofdmap van het .Client
-project. De map bevat de volgende indelingsonderdelen en opmaakmodellen:
- Het
MainLayout
-onderdeel (MainLayout.razor
) is het indelingsonderdeel van de app. - De
MainLayout.razor.css
is het stijlblad voor de hoofdlay-out van de app. - Het
NavMenu
-onderdeel (NavMenu.razor
) implementeert zijbalknavigatie. Het onderdeel bevatNavLink
onderdelen (NavLink), waarmee navigatiekoppelingen naar andere Razor onderdelen worden weergegeven. Het NavLink-onderdeel geeft aan de gebruiker aan welk onderdeel momenteel wordt weergegeven. - Het
NavMenu.razor.css
is het opmaakmodel voor het navigatiemenu van de app.
Het Routes
-onderdeel (Routes.razor
) bevindt zich in het serverproject of het .Client
-project en stelt routering in met behulp van het Router-onderdeel. Voor interactieve onderdelen aan de clientzijde onderschept het Router-onderdeel browsernavigatie en geeft de pagina weer die overeenkomt met het aangevraagde adres.
De Components
map van het serverproject bevat de onderdelen van de serverzijde van de app Razor. Gedeelde onderdelen worden vaak in de hoofdmap van de Components
map geplaatst, terwijl indelings- en paginaonderdelen meestal in mappen in de Components
map worden geplaatst.
De Components/Pages
map van het serverproject bevat de routeerbare Razor onderdelen van de app. De route voor elke pagina wordt opgegeven met behulp van de @page
instructie.
Het App
-onderdeel (App.razor
) is het hoofdonderdeel van de app met HTML-<head>
markeringen, het Routes
-onderdeel en de Blazor<script>
-tag. Het hoofdonderdeel is het eerste onderdeel dat door de app wordt geladen.
Een _Imports.razor
-bestand in elk van de server- en .Client
projecten bevat algemene Razor richtlijnen voor Razor onderdelen van beide projecten, zoals @using
richtlijnen voor naamruimten.
De Properties
map van het serverproject bevat configuratie van de ontwikkelomgeving in het launchSettings.json
-bestand.
Notitie
Het http
-profiel gaat vooraf aan het https
-profiel in het launchSettings.json
-bestand. Wanneer een app wordt uitgevoerd met de .NET CLI, wordt de app uitgevoerd op een HTTP-eindpunt omdat het eerste gevonden profiel is http
. De profielvolgorde vereenvoudigt de overgang van het overstappen op HTTPS voor Linux- en macOS-gebruikers. Als u de app liever start met de .NET CLI zonder de optie -lp https
of --launch-profile https
door te geven aan de opdracht dotnet watch
(of dotnet run
), plaatst u het https
profiel boven het http
-profiel in het bestand.
De wwwroot
map van het serverproject is de map "Web Root" voor het serverproject, met de openbare statische middelen van de app.
Het Program.cs
-bestand van het serverproject is het toegangspunt van het project dat de ASP.NET Core-webtoepassing -host opzet en de opstartlogica van de app bevat, inclusief serviceregistraties, configuratie, logging en verwerking van aanvraagpijplijnen.
- Services voor onderdelen van Razor worden toegevoegd door AddRazorComponentsaan te roepen. AddInteractiveServerComponents voegt services toe ter ondersteuning van het weergeven van interactieve serveronderdelen. AddInteractiveWebAssemblyComponents voegt services toe ter ondersteuning van interactieve WebAssembly-onderdelen.
-
MapRazorComponents beschikbare onderdelen detecteert en het hoofdonderdeel voor de app aangeeft (het eerste geladen onderdeel), dat standaard het
App
onderdeel (App.razor
) is. AddInteractiveServerRenderMode configureert interactieve server-side rendering (interactieve SSR) voor de app. AddInteractiveWebAssemblyRenderMode configureert de weergavemodus Interactive WebAssembly voor de app.
De app-instellingenbestanden (appsettings.Development.json
, appsettings.json
) op de server of in het .Client
-project bieden configuratie-instellingen. In het serverproject bevinden instellingenbestanden zich in de hoofdmap van het project. In het .Client
project worden instellingenbestanden gebruikt uit de map Web Root, wwwroot
.
In het .Client
project:
De map
Pages
bevat routeerbare Razor onderdelen aan de clientzijde. De route voor elke pagina wordt opgegeven met behulp van de@page
instructie.De
wwwroot
map is de map Web Root voor het.Client
project dat de openbare statische assets van de app bevat.Het
Program.cs
-bestand is het toegangspunt van het project waarmee de WebAssembly-host wordt ingesteld en de opstartlogica van het project bevat, waaronder serviceregistraties, configuratie, logboekregistratie en aanvraagverwerkingspijplijn.
Extra bestanden en mappen kunnen worden weergegeven in een app die is geproduceerd op basis van een Blazor Web App projectsjabloon wanneer er extra opties zijn geconfigureerd. Het genereren van een app met ASP.NET Core Identity bevat bijvoorbeeld extra assets voor verificatie- en autorisatiefuncties.
Blazor Server
Blazor Server projectsjablonen: blazorserver
, blazorserver-empty
De Blazor Server-sjablonen maken de oorspronkelijke bestanden en mapstructuur voor een Blazor Server-app:
- Als de
blazorserver
-sjabloon wordt gebruikt, wordt de app gevuld met het volgende:- Demonstratiecode voor een
FetchData
-onderdeel waarmee gegevens worden geladen uit een weersvoorspellingsservice (WeatherForecastService
) en gebruikersinteractie met eenCounter
onderdeel. - Bootstrap front-end-toolkit.
- Demonstratiecode voor een
- Als de
blazorserver-empty
-sjabloon wordt gebruikt, wordt de app gemaakt zonder demonstratiecode en Bootstrap.
Projectstructuur:
Data
map: bevat deWeatherForecast
-klasse en implementatie van deWeatherForecastService
die voorbeeldweergegevens levert aan deFetchData
-component van de app.Pages
map: bevat de routeerbare Razor onderdelen van de Blazor app (.razor
) en de hoofdpagina Razor van een Blazor Server-app. De route voor elke pagina wordt opgegeven met behulp van de@page
instructie. De sjabloon bevat het volgende:-
_Host.cshtml
: de hoofdpagina van de app die is geïmplementeerd als een Razor-pagina:- Wanneer een pagina van de app in eerste instantie wordt aangevraagd, wordt deze pagina weergegeven en geretourneerd in het antwoord.
- De hostpagina geeft aan waar het hoofdonderdeel
App
(App.razor
) wordt weergegeven.
-
Counter
onderdeel (Counter.razor
): implementeert de tellerpagina. -
Error
onderdeel (Error.razor
): Wordt weergegeven wanneer er een niet-verwerkte uitzondering optreedt in de app. -
FetchData
onderdeel (FetchData.razor
): implementeert de pagina Gegevens ophalen. -
Index
onderdeel (Index.razor
): implementeert de pagina Home.
-
Properties
map: bevat de configuratie van de ontwikkelomgeving in hetlaunchSettings.json
bestand.Shared
map: Bevat de volgende gedeelde componenten en opmaakmodellen:-
MainLayout
onderdeel (MainLayout.razor
): het indelingsonderdeel van de app. -
MainLayout.razor.css
: Opmaakmodel voor de hoofdindeling van de app. -
NavMenu
onderdeel (NavMenu.razor
): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLink
onderdeel (NavLink), waarmee navigatiekoppelingen naar andere Razor onderdelen worden weergegeven. Het NavLink onderdeel geeft automatisch een geselecteerde status aan wanneer het onderdeel wordt geladen, zodat de gebruiker weet welk onderdeel momenteel wordt weergegeven. -
NavMenu.razor.css
: Opmaakmodel voor het navigatiemenu van de app. -
SurveyPrompt
component (SurveyPrompt.razor
): Blazor enquêteonderdeel.
-
wwwroot
map: de webrootmap voor de app met de openbare statische bestanden van de app._Imports.razor
: bevat algemene Razor richtlijnen die moeten worden opgenomen in de onderdelen van de app (.razor
), zoals@using
instructies voor naamruimten.App.razor
: het hoofdonderdeel van de app waarmee routering aan de clientzijde wordt ingesteld met behulp van het Router-onderdeel. Het Router onderdeel onderschept browsernavigatie en geeft de pagina weer die overeenkomt met het aangevraagde adres.appsettings.json
en omgevingsinstellingen van de app: Bied configuratie-instellingen voor de app.Program.cs
: het toegangspunt van de app waarmee de ASP.NET Core -host wordt ingesteld en de opstartlogica van de app bevat, inclusief serviceregistraties en configuratie van de aanvraagverwerkingspijplijn:- Specificeert de services voor afhankelijkheidsinjectie (DI) van de app. Services worden toegevoegd door AddServerSideBlazoraan te roepen en de
WeatherForecastService
wordt toegevoegd aan de servicecontainer voor gebruik door het voorbeeldonderdeelFetchData
. - Hiermee configureert u de aanvraagafhandelingspijplijn van de app:
- MapBlazorHub wordt aangeroepen om een eindpunt in te stellen voor de realtime-verbinding met de browser. De verbinding wordt gemaakt met SignalR. Dit is een framework voor het toevoegen van realtime webfunctionaliteit aan apps.
-
MapFallbackToPage("/_Host")
wordt aangeroepen om de hoofdpagina van de app (Pages/_Host.cshtml
) in te stellen en navigatie in te schakelen.
- Specificeert de services voor afhankelijkheidsinjectie (DI) van de app. Services worden toegevoegd door AddServerSideBlazoraan te roepen en de
Extra bestanden en mappen kunnen worden weergegeven in een app die is geproduceerd op basis van een Blazor Server projectsjabloon wanneer er extra opties zijn geconfigureerd. Het genereren van een app met ASP.NET Core Identity bevat bijvoorbeeld extra assets voor verificatie- en autorisatiefuncties.
Blazor Server projecten template: blazorserver
De Blazor Server-sjabloon maakt de oorspronkelijke bestanden en mapstructuur voor een Blazor Server-app. De app wordt gevuld met demonstratiecode voor een FetchData
-onderdeel waarmee gegevens uit een geregistreerde service, WeatherForecastService
en interactie van gebruikers met een Counter
onderdeel worden geladen.
Data
map: bevat deWeatherForecast
klasse en implementatie van deWeatherForecastService
die voorbeeldgegevens bevat voor hetFetchData
-onderdeel van de app.Pages
map: bevat de routeerbare Razor onderdelen van de Blazor app (.razor
) en de hoofdpagina Razor van een Blazor Server-app. De route voor elke pagina wordt opgegeven met behulp van de@page
instructie. De sjabloon bevat het volgende:-
_Host.cshtml
: de hoofdpagina van de app die is geïmplementeerd als een Razor-pagina:- Wanneer een pagina van de app in eerste instantie wordt aangevraagd, wordt deze pagina weergegeven en geretourneerd in het antwoord.
- De hostpagina geeft aan waar het hoofdonderdeel
App
(App.razor
) wordt weergegeven.
-
_Layout.cshtml
: de indelingspagina voor de_Host.cshtml
hoofdpagina van de app. -
Counter
onderdeel (Counter.razor
): implementeert de tellerpagina. -
Error
onderdeel (Error.razor
): Wordt weergegeven wanneer er een niet-verwerkte uitzondering optreedt in de app. -
FetchData
onderdeel (FetchData.razor
): implementeert de pagina Gegevens ophalen. -
Index
onderdeel (Index.razor
): implementeert de pagina Home.
-
Properties
map: bevat de configuratie van de ontwikkelomgeving in het bestandlaunchSettings.json
.Shared
-folder: Bevat de volgende gedeelde onderdelen en opmaakmodellen:-
MainLayout
onderdeel (MainLayout.razor
): het indelingsonderdeel van de app. -
MainLayout.razor.css
: Opmaakmodel voor de hoofdindeling van de app. -
NavMenu
onderdeel (NavMenu.razor
): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLink
onderdeel (NavLink), waarmee navigatiekoppelingen naar andere Razor onderdelen worden weergegeven. Het NavLink onderdeel geeft automatisch een geselecteerde status aan wanneer het onderdeel wordt geladen, zodat de gebruiker weet welk onderdeel momenteel wordt weergegeven. -
NavMenu.razor.css
: Opmaakmodel voor het navigatiemenu van de app. -
SurveyPrompt
component (SurveyPrompt.razor
): Blazor onderzoekscomponent.
-
wwwroot
map: de map webhoofdmap voor de app met de openbare statische assets van de app._Imports.razor
: bevat algemene Razor richtlijnen die moeten worden opgenomen in de onderdelen van de app (.razor
), zoals@using
instructies voor naamruimten.App.razor
: het hoofdonderdeel van de app waarmee routering aan de clientzijde wordt ingesteld met behulp van het Router-onderdeel. Het Router onderdeel onderschept browsernavigatie en geeft de pagina weer die overeenkomt met het aangevraagde adres.appsettings.json
en omgevingsapp-instellingenbestanden: bieden configuratie-instellingen voor de app.Program.cs
: het toegangspunt van de app waarmee de ASP.NET Core -host wordt ingesteld en de opstartlogica van de app bevat, inclusief serviceregistraties en configuratie van de aanvraagverwerkingspijplijn:- Hiermee geeft u de afhankelijkheidsinjectie (DI) van de app services. Services worden toegevoegd door AddServerSideBlazoraan te roepen en de
WeatherForecastService
wordt toegevoegd aan de servicecontainer voor gebruik door het voorbeeldonderdeelFetchData
. - Hiermee configureert u de aanvraagafhandelingspijplijn van de app:
- MapBlazorHub wordt aangeroepen om een eindpunt in te stellen voor de realtime-verbinding met de browser. De verbinding wordt gemaakt met SignalR. Dit is een framework voor het toevoegen van realtime webfunctionaliteit aan apps.
-
MapFallbackToPage("/_Host")
wordt aangeroepen om de hoofdpagina van de app (Pages/_Host.cshtml
) in te stellen en navigatie in te schakelen.
- Hiermee geeft u de afhankelijkheidsinjectie (DI) van de app services. Services worden toegevoegd door AddServerSideBlazoraan te roepen en de
Extra bestanden en mappen kunnen worden weergegeven in een app die is geproduceerd op basis van een Blazor Server projectsjabloon wanneer er extra opties zijn geconfigureerd. Het genereren van een app met ASP.NET Core Identity bevat bijvoorbeeld extra assets voor verificatie- en autorisatiefuncties.
Blazor Server projectsjabloon: blazorserver
De Blazor Server-sjabloon maakt de oorspronkelijke bestanden en mapstructuur voor een Blazor Server-app. De app wordt gevuld met demonstratiecode voor een FetchData
-onderdeel waarmee gegevens uit een geregistreerde service, WeatherForecastService
en interactie van gebruikers met een Counter
onderdeel worden geladen.
Data
map: bevat deWeatherForecast
-klasse en implementatie van deWeatherForecastService
die voorbeeldgegevens bevat voor hetFetchData
-component van de app.Pages
map: bevat de routeerbare Razor onderdelen van de Blazor app (.razor
) en de hoofdpagina Razor van een Blazor Server-app. De route voor elke pagina wordt opgegeven met behulp van de@page
instructie. De sjabloon bevat het volgende:-
_Host.cshtml
: de hoofdpagina van de app die is geïmplementeerd als een Razor-pagina:- Wanneer een pagina van de app in eerste instantie wordt aangevraagd, wordt deze pagina weergegeven en geretourneerd in het antwoord.
- De hostpagina geeft aan waar het hoofdonderdeel
App
(App.razor
) wordt weergegeven.
-
Counter
onderdeel (Counter.razor
): implementeert de tellerpagina. -
Error
onderdeel (Error.razor
): Wordt weergegeven wanneer er een niet-verwerkte uitzondering optreedt in de app. -
FetchData
onderdeel (FetchData.razor
): implementeert de pagina Gegevens ophalen. -
Index
onderdeel (Index.razor
): implementeert de pagina Home.
-
Properties
map: bevat configuratie van de ontwikkelomgeving in het bestandlaunchSettings.json
.Shared
map: Bevat de volgende gedeelde onderdelen en stijlbladen:-
MainLayout
onderdeel (MainLayout.razor
): het indelingsonderdeel van de app. -
MainLayout.razor.css
: Opmaakmodel voor de hoofdindeling van de app. -
NavMenu
onderdeel (NavMenu.razor
): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLink
onderdeel (NavLink), waarmee navigatiekoppelingen naar andere Razor onderdelen worden weergegeven. Het NavLink onderdeel geeft automatisch een geselecteerde status aan wanneer het onderdeel wordt geladen, zodat de gebruiker weet welk onderdeel momenteel wordt weergegeven. -
NavMenu.razor.css
: Opmaakmodel voor het navigatiemenu van de app. -
SurveyPrompt
onderdeel (SurveyPrompt.razor
): Blazor enquête-onderdeel.
-
wwwroot
map: de map webhoofdmap voor de app met de openbare statische assets van de app._Imports.razor
: bevat algemene Razor richtlijnen die moeten worden opgenomen in de onderdelen van de app (.razor
), zoals@using
instructies voor naamruimten.App.razor
: het hoofdonderdeel van de app waarmee routering aan de clientzijde wordt ingesteld met behulp van het Router-onderdeel. Het Router onderdeel onderschept browsernavigatie en geeft de pagina weer die overeenkomt met het aangevraagde adres.appsettings.json
en bestanden met omgevings-app-instellingen: geef configuratie-instellingen op voor de app.Program.cs
: het toegangspunt van de app waarmee de ASP.NET Core -host wordt ingesteld.Startup.cs
: bevat de opstartlogica van de app. De klasseStartup
definieert twee methoden:-
ConfigureServices
: configureert de afhankelijkheidsinjectie (DI) services van de app. Services worden toegevoegd door AddServerSideBlazoraan te roepen en deWeatherForecastService
wordt toegevoegd aan de servicecontainer voor gebruik door het voorbeeldonderdeelFetchData
. -
Configure
: configureert de aanvraagafhandelingspijplijn van de app:- MapBlazorHub wordt aangeroepen om een eindpunt in te stellen voor de realtime-verbinding met de browser. De verbinding wordt gemaakt met SignalR. Dit is een framework voor het toevoegen van realtime webfunctionaliteit aan apps.
-
MapFallbackToPage("/_Host")
wordt aangeroepen om de hoofdpagina van de app (Pages/_Host.cshtml
) in te stellen en navigatie in te schakelen.
-
Extra bestanden en mappen kunnen worden weergegeven in een app die is geproduceerd op basis van een Blazor Server projectsjabloon wanneer er extra opties zijn geconfigureerd. Het genereren van een app met ASP.NET Core Identity bevat bijvoorbeeld extra assets voor verificatie- en autorisatiefuncties.
Blazor Server projectsjabloon: blazorserver
De Blazor Server-sjabloon maakt de oorspronkelijke bestanden en mapstructuur voor een Blazor Server-app. De app wordt gevuld met demonstratiecode voor een FetchData
-onderdeel waarmee gegevens uit een geregistreerde service, WeatherForecastService
en interactie van gebruikers met een Counter
onderdeel worden geladen.
Data
map. Bevat deWeatherForecast
klasse en de implementatie van deWeatherForecastService
die voorbeeldweergegevens aan hetFetchData
-onderdeel van de app levert.Pages
map: bevat de routeerbare Razor onderdelen van de Blazor app (.razor
) en de hoofdpagina Razor van een Blazor Server-app. De route voor elke pagina wordt opgegeven met behulp van de@page
instructie. De sjabloon bevat het volgende:-
_Host.cshtml
: de hoofdpagina van de app die is geïmplementeerd als een Razor-pagina:- Wanneer een pagina van de app in eerste instantie wordt aangevraagd, wordt deze pagina weergegeven en geretourneerd in het antwoord.
- De hostpagina geeft aan waar het hoofdonderdeel
App
(App.razor
) wordt weergegeven.
-
Counter
onderdeel (Counter.razor
): implementeert de tellerpagina. -
Error
onderdeel (Error.razor
): Wordt weergegeven wanneer er een niet-verwerkte uitzondering optreedt in de app. -
FetchData
onderdeel (FetchData.razor
): implementeert de pagina Gegevens ophalen. -
Index
onderdeel (Index.razor
): implementeert de pagina Home.
-
Properties
map: bevat configuratie van de ontwikkelomgeving in het bestandlaunchSettings.json
.Shared
map: Bevat de volgende gedeelde onderdelen:-
MainLayout
onderdeel (MainLayout.razor
): het indelingsonderdeel van de app. -
NavMenu
onderdeel (NavMenu.razor
): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLink
onderdeel (NavLink), waarmee navigatiekoppelingen naar andere Razor onderdelen worden weergegeven. Het NavLink onderdeel geeft automatisch een geselecteerde status aan wanneer het onderdeel wordt geladen, zodat de gebruiker weet welk onderdeel momenteel wordt weergegeven. -
SurveyPrompt
component (SurveyPrompt.razor
): Blazor onderdeel van de enquête.
-
wwwroot
map: de webrootmap voor de app die de openbare statische assets van de app bevat._Imports.razor
: bevat algemene Razor richtlijnen die moeten worden opgenomen in de onderdelen van de app (.razor
), zoals@using
instructies voor naamruimten.App.razor
: het hoofdonderdeel van de app waarmee routering aan de clientzijde wordt ingesteld met behulp van het Router-onderdeel. Het Router onderdeel onderschept browsernavigatie en geeft de pagina weer die overeenkomt met het aangevraagde adres.appsettings.json
en bestanden met app-omgevinginstellingen: bieden configuratie-instellingen voor de app.Program.cs
: het toegangspunt van de app waarmee de ASP.NET Core -host wordt ingesteld.Startup.cs
: bevat de opstartlogica van de app. De klasseStartup
definieert twee methoden:-
ConfigureServices
: hiermee configureert u de afhankelijkheidsinjectie (DI) voor de appdiensten. Services worden toegevoegd door AddServerSideBlazoraan te roepen en deWeatherForecastService
wordt toegevoegd aan de servicecontainer voor gebruik door het voorbeeldonderdeelFetchData
. -
Configure
: configureert de aanvraagafhandelingspijplijn van de app:- MapBlazorHub wordt aangeroepen om een eindpunt in te stellen voor de realtime-verbinding met de browser. De verbinding wordt gemaakt met SignalR. Dit is een framework voor het toevoegen van realtime webfunctionaliteit aan apps.
-
MapFallbackToPage("/_Host")
wordt aangeroepen om de hoofdpagina van de app (Pages/_Host.cshtml
) in te stellen en navigatie in te schakelen.
-
Extra bestanden en mappen kunnen worden weergegeven in een app die is geproduceerd op basis van een Blazor Server projectsjabloon wanneer er extra opties zijn geconfigureerd. Het genereren van een app met ASP.NET Core Identity bevat bijvoorbeeld extra assets voor verificatie- en autorisatiefuncties.
Zelfstandige Blazor WebAssembly
Zelfstandige Blazor WebAssembly projecttemplate: blazorwasm
De Blazor WebAssembly-sjabloon maakt de eerste bestanden en mapstructuur voor een zelfstandige Blazor WebAssembly-app:
- Als de
blazorwasm
-sjabloon wordt gebruikt, wordt de app gevuld met het volgende:- Demonstratiecode voor een
Weather
-onderdeel waarmee gegevens uit een statische asset (weather.json
) en gebruikersinteractie met eenCounter
-onderdeel worden geladen. - Bootstrap frontend-toolkit.
- Demonstratiecode voor een
- De
blazorwasm
-sjabloon kan ook worden gegenereerd zonder voorbeeldpagina's en stijl.
Projectstructuur:
Layout
map: Bevat de volgende lay-outelementen en stijlen:-
MainLayout
onderdeel (MainLayout.razor
): het indelingsonderdeelvan de app. -
MainLayout.razor.css
: Opmaakmodel voor de hoofdindeling van de app. -
NavMenu
onderdeel (NavMenu.razor
): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLink
onderdeel (NavLink), waarmee navigatiekoppelingen naar andere Razor onderdelen worden weergegeven. Het NavLink onderdeel geeft automatisch een geselecteerde status aan wanneer het onderdeel wordt geladen, zodat de gebruiker weet welk onderdeel momenteel wordt weergegeven. -
NavMenu.razor.css
: Opmaakmodel voor het navigatiemenu van de app.
-
Pages
map: bevat de routeerbare Razor onderdelen van de Blazor app (.razor
). De route voor elke pagina wordt opgegeven met behulp van de@page
instructie. De sjabloon bevat de volgende onderdelen:-
Counter
onderdeel (Counter.razor
): implementeert de tellerpagina. -
Index
onderdeel (Index.razor
): implementeert de pagina Home. -
Weather
onderdeel (Weather.razor
): implementeert de pagina Weer.
-
_Imports.razor
: bevat algemene Razor richtlijnen die moeten worden opgenomen in de onderdelen van de app (.razor
), zoals@using
instructies voor naamruimten.App.razor
: het hoofdonderdeel van de app waarmee routering aan de clientzijde wordt ingesteld met behulp van het Router-onderdeel. Het Router onderdeel onderschept browsernavigatie en geeft de pagina weer die overeenkomt met het aangevraagde adres.De map
Properties
bevat de configuratie van de ontwikkelomgeving in het bestandlaunchSettings.json
.Notitie
Het
http
-profiel gaat vooraf aan hethttps
-profiel in hetlaunchSettings.json
-bestand. Wanneer een app wordt uitgevoerd met de .NET CLI, wordt de app uitgevoerd op een HTTP-eindpunt omdat het eerste gevonden profiel ishttp
. De profielvolgorde vereenvoudigt de overgang van het overstappen op HTTPS voor Linux- en macOS-gebruikers. Als u de app liever start met de .NET CLI zonder de optie-lp https
of--launch-profile https
door te geven aan de opdrachtdotnet watch
(ofdotnet run
), plaatst u hethttps
profiel boven hethttp
-profiel in het bestand.wwwroot
map: de webhoofdmap voor de app, die de openbare statische assets van de app bevat, inclusiefappsettings.json
en omgevingsspecifieke app-instellingen voor configuratie-instellingen en voorbeeldweerdata (sample-data/weather.json
). Deindex.html
webpagina is de hoofdpagina van de app die is geïmplementeerd als een HTML-pagina:- Wanneer een pagina van de app in eerste instantie wordt aangevraagd, wordt deze pagina weergegeven en geretourneerd in het antwoord.
- De pagina geeft aan waar het hoofdonderdeel
App
wordt weergegeven. Het onderdeel wordt weergegeven op de locatie van hetdiv
DOM-element met eenid
vanapp
(<div id="app">Loading...</div>
).
Program.cs
: het toegangspunt van de app waarmee de WebAssembly-host wordt ingesteld:- Het
App
-onderdeel is het hoofdonderdeel van de app. HetApp
onderdeel wordt opgegeven als hetdiv
DOM-element met eenid
vanapp
(<div id="app">Loading...</div>
inwwwroot/index.html
) aan de rootcomponentenverzameling (builder.RootComponents.Add<App>("#app")
). -
Services worden toegevoegd en geconfigureerd (bijvoorbeeld
builder.Services.AddSingleton<IMyDependency, MyDependency>()
).
- Het
Extra bestanden en mappen kunnen worden weergegeven in een app die is geproduceerd op basis van een Blazor WebAssembly projectsjabloon wanneer er extra opties zijn geconfigureerd. Het genereren van een app met ASP.NET Core Identity bevat bijvoorbeeld extra assets voor verificatie- en autorisatiefuncties.
Blazor WebAssembly
Blazor WebAssembly projectsjablonen: blazorwasm
, blazorwasm-empty
De Blazor WebAssembly-sjablonen maken de oorspronkelijke bestanden en mapstructuur voor een Blazor WebAssembly-app:
- Als de
blazorwasm
-sjabloon wordt gebruikt, wordt de app gevuld met het volgende:- Demonstratiecode voor een
FetchData
-onderdeel waarmee gegevens uit een statische asset (weather.json
) en gebruikersinteractie met eenCounter
-onderdeel worden geladen. - Bootstrap frontendhulpmiddelenset.
- Demonstratiecode voor een
- Als de
blazorwasm-empty
-sjabloon wordt gebruikt, wordt de app gemaakt zonder demonstratiecode en Bootstrap.
Projectstructuur:
Pages
map: bevat de routeerbare Razor onderdelen van de Blazor app (.razor
). De route voor elke pagina wordt opgegeven met behulp van de@page
instructie. De sjabloon bevat de volgende onderdelen:-
Counter
onderdeel (Counter.razor
): implementeert de tellerpagina. -
FetchData
onderdeel (FetchData.razor
): implementeert de pagina Gegevens ophalen. -
Index
onderdeel (Index.razor
): implementeert de pagina Home.
-
Properties
map: bevat de configuratie van de ontwikkelomgeving in het bestandlaunchSettings.json
.Shared
map: Bevat de volgende gedeelde componenten en opmaakmodellen:-onderdeel ( ): het indelingsonderdeelvan de app . -
MainLayout.razor.css
: Opmaakmodel voor de hoofdindeling van de app. -
NavMenu
onderdeel (NavMenu.razor
): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLink
onderdeel (NavLink), waarmee navigatiekoppelingen naar andere Razor onderdelen worden weergegeven. Het NavLink onderdeel geeft automatisch een geselecteerde status aan wanneer het onderdeel wordt geladen, zodat de gebruiker weet welk onderdeel momenteel wordt weergegeven. -
NavMenu.razor.css
: Opmaakmodel voor het navigatiemenu van de app. -
SurveyPrompt
onderdeel (SurveyPrompt.razor
) (ASP.NET Core in .NET 7 of eerder): Blazor enquêteonderdeel.
wwwroot
map: de map Web Root voor de app met de openbare statische assets van de app, waaronder bestanden metappsettings.json
en omgevings-app-instellingen voor configuratie-instellingen. Deindex.html
webpagina is de hoofdpagina van de app die is geïmplementeerd als een HTML-pagina:- Wanneer een pagina van de app in eerste instantie wordt aangevraagd, wordt deze pagina weergegeven en geretourneerd in het antwoord.
- De pagina geeft aan waar het hoofdonderdeel
App
wordt weergegeven. Het onderdeel wordt weergegeven op de locatie van hetdiv
DOM-element met eenid
vanapp
(<div id="app">Loading...</div>
).
_Imports.razor
: bevat algemene Razor richtlijnen die moeten worden opgenomen in de onderdelen van de app (.razor
), zoals@using
instructies voor naamruimten.App.razor
: het hoofdonderdeel van de app waarmee routering aan de clientzijde wordt ingesteld met behulp van het Router-onderdeel. Het Router onderdeel onderschept browsernavigatie en geeft de pagina weer die overeenkomt met het aangevraagde adres.Program.cs
: het toegangspunt van de app waarmee de WebAssembly-host wordt ingesteld:- Het
App
-onderdeel is het hoofdonderdeel van de app. HetApp
onderdeel wordt opgegeven als hetdiv
DOM-element met eenid
vanapp
(<div id="app">Loading...</div>
inwwwroot/index.html
) voor de hoofdonderdeelverzameling (builder.RootComponents.Add<App>("#app")
). -
Services worden toegevoegd en geconfigureerd (bijvoorbeeld
builder.Services.AddSingleton<IMyDependency, MyDependency>()
).
- Het
Extra bestanden en mappen kunnen worden weergegeven in een app die is geproduceerd op basis van een Blazor WebAssembly projectsjabloon wanneer er extra opties zijn geconfigureerd. Het genereren van een app met ASP.NET Core Identity bevat bijvoorbeeld extra assets voor verificatie- en autorisatiefuncties.
Een gehoste Blazor WebAssembly-oplossing bevat de volgende ASP.NET Core-projecten:
- "Client": De Blazor WebAssembly-app.
- "Server": Een app die de Blazor WebAssembly app en weersgegevens aan klanten levert.
- "Shared": Een project dat algemene klassen, methoden en resources onderhoudt.
De oplossing wordt gegenereerd op basis van de Blazor WebAssembly projectsjabloon in Visual Studio met het selectievakje ASP.NET Core hosted ingeschakeld of met de optie -ho|--hosted
met behulp van de opdracht dotnet new blazorwasm
van de .NET CLI. Zie Hulpprogramma's voor ASP.NET Core Blazorvoor meer informatie.
De projectstructuur van de app aan de clientzijde in een gehoste Blazor Webassembly-oplossing ('Client'-project) is hetzelfde als de projectstructuur voor een zelfstandige Blazor WebAssembly-app. Aanvullende bestanden in een gehoste Blazor WebAssembly oplossing:
- Het project 'Server' bevat een weersvoorspellingscontroller op
Controllers/WeatherForecastController.cs
die weergegevens retourneert naar hetFetchData
-onderdeel van het projectClient. - Het project 'Shared' omvat een klasse voor weersvoorspellingen bij
WeatherForecast.cs
die weergegevens vertegenwoordigt voor de projecten 'Client' en 'Server'.
Blazor WebAssembly
Blazor WebAssembly projectsjabloon: blazorwasm
De Blazor WebAssembly-sjabloon maakt de oorspronkelijke bestanden en mapstructuur voor een Blazor WebAssembly-app. De app wordt gevuld met demonstratiecode voor een FetchData
-onderdeel waarmee gegevens uit een statische asset, weather.json
en gebruikersinteractie met een Counter
onderdeel worden geladen.
Pages
map: bevat de routeerbare Razor onderdelen van de Blazor app (.razor
). De route voor elke pagina wordt opgegeven met behulp van de@page
instructie. De sjabloon bevat de volgende onderdelen:-
Counter
onderdeel (Counter.razor
): implementeert de tellerpagina. -
FetchData
onderdeel (FetchData.razor
): implementeert de pagina Gegevens ophalen. -
Index
onderdeel (Index.razor
): implementeert de pagina Home.
-
Properties
mapje: bevat de configuratie van de ontwikkelomgeving in het bestandlaunchSettings.json
.Shared
bestandsmap: Bevat de volgende gedeelde onderdelen en stijlbladen:-
MainLayout
onderdeel (MainLayout.razor
): het indelingsonderdeel van de app. -
MainLayout.razor.css
: Opmaakmodel voor de hoofdindeling van de app. -
NavMenu
onderdeel (NavMenu.razor
): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLink
onderdeel (NavLink), waarmee navigatiekoppelingen naar andere Razor onderdelen worden weergegeven. Het NavLink onderdeel geeft automatisch een geselecteerde status aan wanneer het onderdeel wordt geladen, zodat de gebruiker weet welk onderdeel momenteel wordt weergegeven. -
NavMenu.razor.css
: Opmaakmodel voor het navigatiemenu van de app. -
SurveyPrompt
component (SurveyPrompt.razor
): Blazor enquêteonderdeel.
-
wwwroot
map: de Web Root map voor de app met de openbare statische assets van de app, waaronderappsettings.json
en omgevings-appinstellingenbestanden voor de configuratie-instellingen. Deindex.html
webpagina is de hoofdpagina van de app die is geïmplementeerd als een HTML-pagina:- Wanneer een pagina van de app in eerste instantie wordt aangevraagd, wordt deze pagina weergegeven en geretourneerd in het antwoord.
- De pagina geeft aan waar het hoofdonderdeel
App
wordt weergegeven. Het onderdeel wordt weergegeven op de locatie van hetdiv
DOM-element met eenid
vanapp
(<div id="app">Loading...</div>
).
_Imports.razor
: bevat algemene Razor richtlijnen die moeten worden opgenomen in de onderdelen van de app (.razor
), zoals@using
instructies voor naamruimten.App.razor
: het hoofdonderdeel van de app waarmee routering aan de clientzijde wordt ingesteld met behulp van het Router-onderdeel. Het Router onderdeel onderschept browsernavigatie en geeft de pagina weer die overeenkomt met het aangevraagde adres.Program.cs
: het toegangspunt van de app waarmee de WebAssembly-host wordt ingesteld:- Het
App
-onderdeel is het hoofdonderdeel van de app. HetApp
onderdeel wordt opgegeven als hetdiv
DOM-element met eenid
vanapp
(<div id="app">Loading...</div>
inwwwroot/index.html
) aan de hoofdonderdeelverzameling (builder.RootComponents.Add<App>("#app")
). -
Services worden toegevoegd en geconfigureerd (bijvoorbeeld
builder.Services.AddSingleton<IMyDependency, MyDependency>()
).
- Het
Extra bestanden en mappen kunnen worden weergegeven in een app die is geproduceerd op basis van een Blazor WebAssembly projectsjabloon wanneer er extra opties zijn geconfigureerd. Het genereren van een app met ASP.NET Core Identity bevat bijvoorbeeld extra assets voor verificatie- en autorisatiefuncties.
Een gehoste Blazor WebAssembly-oplossing bevat de volgende ASP.NET Core-projecten:
- "Client": De Blazor WebAssembly-app.
- "Server": Een app die de Blazor WebAssembly app en weergegevens aan clients bedient.
- "Shared": Een project dat algemene klassen, methoden en resources onderhoudt.
De oplossing wordt gegenereerd op basis van de Blazor WebAssembly projectsjabloon in Visual Studio met het selectievakje ASP.NET Core hosted ingeschakeld of met de optie -ho|--hosted
met behulp van de opdracht dotnet new blazorwasm
van de .NET CLI. Zie Hulpprogramma's voor ASP.NET Core Blazorvoor meer informatie.
De projectstructuur van de app aan de clientzijde in een gehoste Blazor Webassembly-oplossing ('Client'-project) is hetzelfde als de projectstructuur voor een zelfstandige Blazor WebAssembly-app. Aanvullende bestanden in een gehoste Blazor WebAssembly oplossing:
- Het project 'Server' bevat een weersvoorspellingscontroller op
Controllers/WeatherForecastController.cs
die weergegevens retourneert naar hetFetchData
-onderdeel van het projectClient. - Het project 'Shared' bevat een weerprognoseclass op
WeatherForecast.cs
die de weergegevens vertegenwoordigt voor de projecten 'Client' en 'Server'.
Blazor WebAssembly
Blazor WebAssembly projectsjabloon: blazorwasm
De Blazor WebAssembly-sjabloon maakt de oorspronkelijke bestanden en mapstructuur voor een Blazor WebAssembly-app. De app wordt gevuld met demonstratiecode voor een FetchData
-onderdeel waarmee gegevens uit een statische asset, weather.json
en gebruikersinteractie met een Counter
onderdeel worden geladen.
Pages
map: bevat de routeerbare Razor onderdelen van de Blazor app (.razor
). De route voor elke pagina wordt opgegeven met behulp van de@page
instructie. De sjabloon bevat de volgende onderdelen:-
Counter
onderdeel (Counter.razor
): implementeert de Counter-pagina. -
FetchData
onderdeel (FetchData.razor
): implementeert de pagina Gegevens ophalen. -
Index
onderdeel (Index.razor
): implementeert de pagina Home.
-
Properties
mapje: houdt de configuratie van de ontwikkelomgeving in hetlaunchSettings.json
bestand.Shared
map: Bevat de volgende gedeelde componenten en opmaakmodellen:-
MainLayout
onderdeel (MainLayout.razor
): het indelingsonderdeel van de app. -
MainLayout.razor.css
: Opmaakmodel voor de hoofdindeling van de app. -
NavMenu
onderdeel (NavMenu.razor
): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLink
onderdeel (NavLink), waarmee navigatiekoppelingen naar andere Razor onderdelen worden weergegeven. Het NavLink onderdeel geeft automatisch een geselecteerde status aan wanneer het onderdeel wordt geladen, zodat de gebruiker weet welk onderdeel momenteel wordt weergegeven. -
NavMenu.razor.css
: Opmaakmodel voor het navigatiemenu van de app. -
SurveyPrompt
onderdeel (SurveyPrompt.razor
): Blazor onderdeel van de enquête.
-
wwwroot
map: de map Web Root voor de app met de publieke statische resources van de app, waaronderappsettings.json
-bestanden en bestanden met omgevingsinstellingen voor de app voor -configuratie-instellingen. Deindex.html
webpagina is de hoofdpagina van de app die is geïmplementeerd als een HTML-pagina:- Wanneer een pagina van de app in eerste instantie wordt aangevraagd, wordt deze pagina weergegeven en geretourneerd in het antwoord.
- De pagina geeft aan waar het hoofdonderdeel
App
wordt weergegeven. Het onderdeel wordt op de locatie van hetdiv
DOM-element weergegeven met eenid
vanapp
(<div id="app">Loading...</div>
).
_Imports.razor
: bevat algemene Razor richtlijnen die moeten worden opgenomen in de onderdelen van de app (.razor
), zoals@using
instructies voor naamruimten.App.razor
: het hoofdonderdeel van de app waarmee routering aan de clientzijde wordt ingesteld met behulp van het Router-onderdeel. Het Router onderdeel onderschept browsernavigatie en geeft de pagina weer die overeenkomt met het aangevraagde adres.Program.cs
: het toegangspunt van de app waarmee de WebAssembly-host wordt ingesteld:- Het
App
-onderdeel is het hoofdonderdeel van de app. HetApp
-component is gespecificeerd als hetdiv
DOM-element met eenid
vanapp
(<div id="app">Loading...</div>
inwwwroot/index.html
) in de hoofdcomponentcollectie (builder.RootComponents.Add<App>("#app")
). -
Services worden toegevoegd en geconfigureerd (bijvoorbeeld
builder.Services.AddSingleton<IMyDependency, MyDependency>()
).
- Het
Extra bestanden en mappen kunnen worden weergegeven in een app die is geproduceerd op basis van een Blazor WebAssembly projectsjabloon wanneer er extra opties zijn geconfigureerd. Het genereren van een app met ASP.NET Core Identity bevat bijvoorbeeld extra assets voor verificatie- en autorisatiefuncties.
Een gehoste Blazor WebAssembly-oplossing bevat de volgende ASP.NET Core-projecten:
- "Client": De Blazor WebAssembly-app.
- "Server": Een app die de Blazor WebAssembly app en weergegevens aan klanten levert.
- "Shared": Een project dat algemene klassen, methoden en resources onderhoudt.
De oplossing wordt gegenereerd op basis van de Blazor WebAssembly projectsjabloon in Visual Studio met het selectievakje ASP.NET Core hosted ingeschakeld of met de optie -ho|--hosted
met behulp van de opdracht dotnet new blazorwasm
van de .NET CLI. Zie Hulpprogramma's voor ASP.NET Core Blazorvoor meer informatie.
De projectstructuur van de app aan de clientzijde in een gehoste Blazor Webassembly-oplossing ('Client'-project) is hetzelfde als de projectstructuur voor een zelfstandige Blazor WebAssembly-app. Aanvullende bestanden in een gehoste Blazor WebAssembly oplossing:
- Het project 'Server' bevat een weersvoorspellingscontroller op
Controllers/WeatherForecastController.cs
die weergegevens retourneert naar hetFetchData
-onderdeel van het projectClient. - Het project 'Shared' bevat een weersverwachtingsklasse bij
WeatherForecast.cs
die weergegevens vertegenwoordigt voor de projecten 'Client' en 'Server'.
Blazor WebAssembly
Blazor WebAssembly projectsjabloon: blazorwasm
De Blazor WebAssembly-sjabloon maakt de oorspronkelijke bestanden en mapstructuur voor een Blazor WebAssembly-app. De app wordt gevuld met demonstratiecode voor een FetchData
-onderdeel waarmee gegevens uit een statische asset, weather.json
en gebruikersinteractie met een Counter
onderdeel worden geladen.
Pages
map: bevat de routeerbare Razor onderdelen van de Blazor app (.razor
). De route voor elke pagina wordt opgegeven met behulp van de@page
instructie. De sjabloon bevat de volgende onderdelen:-
Counter
onderdeel (Counter.razor
): implementeert de tellerpagina. -
FetchData
onderdeel (FetchData.razor
): implementeert de pagina Gegevens ophalen. -
Index
onderdeel (Index.razor
): implementeert de pagina Home.
-
Properties
map: bevat configuratie van de ontwikkelomgeving in het bestandlaunchSettings.json
.Shared
map: Bevat de volgende gedeelde onderdelen:-
MainLayout
onderdeel (MainLayout.razor
): het indelingsonderdeel van de app. -
NavMenu
onderdeel (NavMenu.razor
): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLink
onderdeel (NavLink), waarmee navigatiekoppelingen naar andere Razor onderdelen worden weergegeven. Het NavLink onderdeel geeft automatisch een geselecteerde status aan wanneer het onderdeel wordt geladen, zodat de gebruiker weet welk onderdeel momenteel wordt weergegeven. -
SurveyPrompt
component (SurveyPrompt.razor
): Blazor enquêteonderdeel.
-
wwwroot
map: de map Web Root voor de app met de openbare statische assets van de app, waaronder bestanden metappsettings.json
en omgevings-app-instellingen voor configuratie-instellingen. Deindex.html
webpagina is de hoofdpagina van de app die is geïmplementeerd als een HTML-pagina:- Wanneer een pagina van de app in eerste instantie wordt aangevraagd, wordt deze pagina weergegeven en geretourneerd in het antwoord.
- De pagina geeft aan waar het hoofdonderdeel
App
wordt weergegeven. Het onderdeel wordt weergegeven op de locatie van hetapp
DOM-element (<app>Loading...</app>
).
_Imports.razor
: bevat algemene Razor richtlijnen die moeten worden opgenomen in de onderdelen van de app (.razor
), zoals@using
instructies voor naamruimten.App.razor
: het hoofdonderdeel van de app waarmee routering aan de clientzijde wordt ingesteld met behulp van het Router-onderdeel. Het Router onderdeel onderschept browsernavigatie en geeft de pagina weer die overeenkomt met het aangevraagde adres.Program.cs
: het toegangspunt van de app waarmee de WebAssembly-host wordt ingesteld:- Het
App
-onderdeel is het hoofdonderdeel van de app. HetApp
onderdeel wordt opgegeven als hetapp
DOM-element (<app>Loading...</app>
inwwwroot/index.html
) aan de hoofdonderdeelverzameling (builder.RootComponents.Add<App>("app")
). -
Services worden toegevoegd en geconfigureerd (bijvoorbeeld
builder.Services.AddSingleton<IMyDependency, MyDependency>()
).
- Het
Extra bestanden en mappen kunnen worden weergegeven in een app die is geproduceerd op basis van een Blazor WebAssembly projectsjabloon wanneer er extra opties zijn geconfigureerd. Het genereren van een app met ASP.NET Core Identity bevat bijvoorbeeld extra assets voor verificatie- en autorisatiefuncties.
Een gehoste Blazor WebAssembly-oplossing bevat de volgende ASP.NET Core-projecten:
- "Client": De Blazor WebAssembly-app.
- "Server": Een app die de Blazor WebAssembly app en weergegevens aan klanten levert.
- "Shared": Een project dat algemene klassen, methoden en resources onderhoudt.
De oplossing wordt gegenereerd op basis van de Blazor WebAssembly projectsjabloon in Visual Studio met het selectievakje ASP.NET Core hosted ingeschakeld of met de optie -ho|--hosted
met behulp van de opdracht dotnet new blazorwasm
van de .NET CLI. Zie Hulpprogramma's voor ASP.NET Core Blazorvoor meer informatie.
De projectstructuur van de app aan de clientzijde in een gehoste Blazor Webassembly-oplossing ('Client'-project) is hetzelfde als de projectstructuur voor een zelfstandige Blazor WebAssembly-app. Aanvullende bestanden in een gehoste Blazor WebAssembly oplossing:
- Het project 'Server' bevat een weersvoorspellingscontroller op
Controllers/WeatherForecastController.cs
die weergegevens retourneert naar hetFetchData
-onderdeel van het projectClient. - Het project 'Shared' bevat een weersvoorspellingsklasse bij
WeatherForecast.cs
die weergegevens voor de projecten 'Client' en 'Server' vertegenwoordigt.
Locatie van het Blazor-script
Het Blazor script wordt geleverd als een statische webasset met automatische compressie en vingerafdruk. Zie ASP.NET Core Blazor statische bestandenvoor meer informatie.
Het Blazor script wordt geleverd vanuit een ingesloten resource in het gedeelde ASP.NET Core-framework.
In een Blazor Web Appbevindt het Blazor script zich in het bestand Components/App.razor
:
<script src="_framework/blazor.web.js"></script>
In een Blazor Server-app bevindt het Blazor script zich in het Pages/_Host.cshtml
-bestand:
<script src="_framework/blazor.server.js"></script>
In een Blazor Server-app bevindt het Blazor script zich in het Pages/_Host.cshtml
-bestand:
<script src="_framework/blazor.server.js"></script>
In een Blazor Server-app bevindt het Blazor script zich in het Pages/_Layout.cshtml
-bestand:
<script src="_framework/blazor.server.js"></script>
In een Blazor Server-app bevindt het Blazor script zich in het Pages/_Host.cshtml
-bestand:
<script src="_framework/blazor.server.js"></script>
In een Blazor WebAssembly-app bevindt de inhoud van het Blazor script zich in het bestand wwwroot/index.html
:
<script src="_framework/blazor.webassembly.js"></script>
Locatie van de inhoud van <head>
en <body>
In een Blazor Web Appis de inhoud van <head>
en <body>
te vinden in het bestand Components/App.razor
.
In een Blazor Server-app bevindt <head>
en <body>
inhoud zich in het Pages/_Host.cshtml
bestand.
In een Blazor Server-app bevindt <head>
en <body>
inhoud zich in het Pages/_Layout.cshtml
bestand.
In een Blazor Server-app bevindt <head>
en <body>
inhoud zich in het Pages/_Host.cshtml
bestand.
In een Blazor WebAssembly-app bevindt <head>
en <body>
inhoud zich in het wwwroot/index.html
bestand.
Dual Blazor Server/Blazor WebAssembly-app
Als u een app wilt maken die kan worden uitgevoerd als een Blazor Server-app of een Blazor WebAssembly-app, moet u alle app-logica en onderdelen in een Razor klassebibliotheek (RCL) plaatsen en verwijzen naar de RCL van afzonderlijke Blazor Server en Blazor WebAssembly projecten. Voor algemene services waarvan de implementaties verschillen op basis van het hostingmodel, definieert u de serviceinterfaces in de RCL en implementeert u de services in de Blazor Server- en Blazor WebAssembly projecten.