Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 projectsjabloon: 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 en Blazor WebAssembly met rendering aan de serverzijde en clientzijde, streaming-rendering, verbeterde verwerking van navigatie en formulieren en de mogelijkheid om interactiviteit toe te voegen met behulp Blazor Server 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.cssis het stijlblad voor de hoofdlay-out van de app. - Het
NavMenu-onderdeel (NavMenu.razor) implementeert zijbalknavigatie. Het onderdeel bevatNavLinkonderdelen (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.cssis 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
Apponderdeel (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
Pagesbevat routeerbare Razor onderdelen aan de clientzijde. De route voor elke pagina wordt opgegeven met behulp van de@pageinstructie.De
wwwrootmap is de map Web Root voor het.Clientproject 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 eenCounteronderdeel. - Bootstrap front-end-toolkit.
- Demonstratiecode voor een
- Als de
blazorserver-empty-sjabloon wordt gebruikt, wordt de app gemaakt zonder demonstratiecode en Bootstrap.
Projectstructuur:
Datamap: bevat deWeatherForecast-klasse en implementatie van deWeatherForecastServicedie voorbeeldweergegevens levert aan deFetchData-component van de app.Pagesmap: bevat de routeerbare Blazor onderdelen van de Razor app (.razor) en de hoofdpagina Razor van een Blazor Server-app. De route voor elke pagina wordt opgegeven met behulp van de@pageinstructie. 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.
-
Counteronderdeel (Counter.razor): implementeert de tellerpagina. -
Erroronderdeel (Error.razor): Wordt weergegeven wanneer er een niet-verwerkte uitzondering optreedt in de app. -
FetchDataonderdeel (FetchData.razor): implementeert de pagina Gegevens ophalen. -
Indexonderdeel (Index.razor): implementeert de pagina Home.
-
Propertiesmap: bevat de configuratie van delaunchSettings.json.Sharedmap: Bevat de volgende gedeelde componenten en opmaakmodellen:-
MainLayoutonderdeel (MainLayout.razor): het indelingsonderdeel van de app. -
MainLayout.razor.css: Opmaakmodel voor de hoofdindeling van de app. -
NavMenuonderdeel (NavMenu.razor): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLinkonderdeel (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. -
SurveyPromptcomponent (SurveyPrompt.razor): Blazor enquêteonderdeel.
-
wwwrootmap: 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@usinginstructies 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.jsonen 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
WeatherForecastServicewordt 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 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, WeatherForecastServiceen interactie van gebruikers met een Counter onderdeel worden geladen.
Datamap: bevat deWeatherForecast-klasse en implementatie van deWeatherForecastServicedie voorbeeldweergegevens levert aan deFetchData-component van de app.Pagesmap: bevat de routeerbare Blazor onderdelen van de Razor app (.razor) en de hoofdpagina Razor van een Blazor Server-app. De route voor elke pagina wordt opgegeven met behulp van de@pageinstructie. 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.cshtmlhoofdpagina van de app. -
Counteronderdeel (Counter.razor): implementeert de tellerpagina. -
Erroronderdeel (Error.razor): Wordt weergegeven wanneer er een niet-verwerkte uitzondering optreedt in de app. -
FetchDataonderdeel (FetchData.razor): implementeert de pagina Gegevens ophalen. -
Indexonderdeel (Index.razor): implementeert de pagina Home.
-
Propertiesmap: bevat de configuratie van delaunchSettings.json.Sharedmap: Bevat de volgende gedeelde componenten en opmaakmodellen:-
MainLayoutonderdeel (MainLayout.razor): het indelingsonderdeel van de app. -
MainLayout.razor.css: Opmaakmodel voor de hoofdindeling van de app. -
NavMenuonderdeel (NavMenu.razor): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLinkonderdeel (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. -
SurveyPromptcomponent (SurveyPrompt.razor): Blazor enquêteonderdeel.
-
wwwrootmap: 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@usinginstructies 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.jsonen 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
WeatherForecastServicewordt 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 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, WeatherForecastServiceen interactie van gebruikers met een Counter onderdeel worden geladen.
Datamap: bevat deWeatherForecast-klasse en implementatie van deWeatherForecastServicedie voorbeeldweergegevens levert aan deFetchData-component van de app.Pagesmap: bevat de routeerbare Blazor onderdelen van de Razor app (.razor) en de hoofdpagina Razor van een Blazor Server-app. De route voor elke pagina wordt opgegeven met behulp van de@pageinstructie. 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.
-
Counteronderdeel (Counter.razor): implementeert de tellerpagina. -
Erroronderdeel (Error.razor): Wordt weergegeven wanneer er een niet-verwerkte uitzondering optreedt in de app. -
FetchDataonderdeel (FetchData.razor): implementeert de pagina Gegevens ophalen. -
Indexonderdeel (Index.razor): implementeert de pagina Home.
-
Propertiesmap: bevat de configuratie van delaunchSettings.json.Sharedmap: Bevat de volgende gedeelde componenten en opmaakmodellen:-
MainLayoutonderdeel (MainLayout.razor): het indelingsonderdeel van de app. -
MainLayout.razor.css: Opmaakmodel voor de hoofdindeling van de app. -
NavMenuonderdeel (NavMenu.razor): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLinkonderdeel (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. -
SurveyPromptcomponent (SurveyPrompt.razor): Blazor enquêteonderdeel.
-
wwwrootmap: 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@usinginstructies 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.jsonen 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.Startup.cs: bevat de opstartlogica van de app. De klasseStartupdefinieert twee methoden:-
ConfigureServices: configureert de afhankelijkheidsinjectie (DI) services van de app. Services worden toegevoegd door AddServerSideBlazoraan te roepen en deWeatherForecastServicewordt 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, WeatherForecastServiceen interactie van gebruikers met een Counter onderdeel worden geladen.
Datamap: bevat deWeatherForecast-klasse en implementatie van deWeatherForecastServicedie voorbeeldweergegevens levert aan deFetchData-component van de app.Pagesmap: bevat de routeerbare Blazor onderdelen van de Razor app (.razor) en de hoofdpagina Razor van een Blazor Server-app. De route voor elke pagina wordt opgegeven met behulp van de@pageinstructie. 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.
-
Counteronderdeel (Counter.razor): implementeert de tellerpagina. -
Erroronderdeel (Error.razor): Wordt weergegeven wanneer er een niet-verwerkte uitzondering optreedt in de app. -
FetchDataonderdeel (FetchData.razor): implementeert de pagina Gegevens ophalen. -
Indexonderdeel (Index.razor): implementeert de pagina Home.
-
Propertiesmap: bevat de configuratie van delaunchSettings.json.Sharedmap: Bevat de volgende gedeelde onderdelen:-
MainLayoutonderdeel (MainLayout.razor): het indelingsonderdeel van de app. -
NavMenuonderdeel (NavMenu.razor): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLinkonderdeel (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. -
SurveyPromptcomponent (SurveyPrompt.razor): Blazor enquêteonderdeel.
-
wwwrootmap: 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@usinginstructies 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.jsonen 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.Startup.cs: bevat de opstartlogica van de app. De klasseStartupdefinieert twee methoden:-
ConfigureServices: configureert de afhankelijkheidsinjectie (DI) services van de app. Services worden toegevoegd door AddServerSideBlazoraan te roepen en deWeatherForecastServicewordt 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 front-end-toolkit.
- Demonstratiecode voor een
- De
blazorwasm-sjabloon kan ook worden gegenereerd zonder voorbeeldpagina's en stijl.
Projectstructuur:
Layoutmap: Bevat de volgende lay-outelementen en stijlen:-
MainLayoutonderdeel (MainLayout.razor): het indelingsonderdeel van de app. -
MainLayout.razor.css: Opmaakmodel voor de hoofdindeling van de app. -
NavMenuonderdeel (NavMenu.razor): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLinkonderdeel (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.
-
Pagesmap: bevat de routeerbare Blazor onderdelen van de Razor app (.razor). De route voor elke pagina wordt opgegeven met behulp van de@pageinstructie. De sjabloon bevat de volgende onderdelen:-
Counteronderdeel (Counter.razor): implementeert de tellerpagina. -
Indexonderdeel (Index.razor): implementeert de pagina Home. -
Weatheronderdeel (Weather.razor): implementeert de pagina Weer.
-
_Imports.razor: bevat algemene Razor richtlijnen die moeten worden opgenomen in de onderdelen van de app (.razor), zoals@usinginstructies 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.Propertiesmap: bevat de configuratie van delaunchSettings.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 httpsof--launch-profile httpsdoor te geven aan de opdrachtdotnet watch(ofdotnet run), plaatst u hethttpsprofiel boven hethttp-profiel in het bestand.wwwrootmap: de webhoofdmap voor de app, die de openbare statische assets van de app bevat, inclusiefappsettings.jsonen omgevingsspecifieke app-instellingen voor configuratie-instellingen en voorbeeldweerdata (sample-data/weather.json). Deindex.htmlwebpagina 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
Appwordt weergegeven. Het onderdeel wordt weergegeven op de locatie van hetdivDOM-element met eenidvanapp(<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. HetApponderdeel wordt opgegeven als hetdivDOM-element met eenidvanapp(<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 front-end-toolkit.
- Demonstratiecode voor een
- Als de
blazorwasm-empty-sjabloon wordt gebruikt, wordt de app gemaakt zonder demonstratiecode en Bootstrap.
Projectstructuur:
Pagesmap: bevat de routeerbare Blazor onderdelen van de Razor app (.razor). De route voor elke pagina wordt opgegeven met behulp van de@pageinstructie. De sjabloon bevat de volgende onderdelen:-
Counteronderdeel (Counter.razor): implementeert de tellerpagina. -
FetchDataonderdeel (FetchData.razor): implementeert de pagina Gegevens ophalen. -
Indexonderdeel (Index.razor): implementeert de pagina Home.
-
Propertiesmap: bevat de configuratie van delaunchSettings.json.Sharedmap: Bevat de volgende gedeelde componenten en opmaakmodellen:-
MainLayoutonderdeel (MainLayout.razor): het indelingsonderdeel van de app. -
MainLayout.razor.css: Opmaakmodel voor de hoofdindeling van de app. -
NavMenuonderdeel (NavMenu.razor): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLinkonderdeel (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. -
SurveyPromptonderdeel (SurveyPrompt.razor) (ASP.NET Core in .NET 7 of eerder): Blazor enquêteonderdeel.
-
wwwrootmap: de map Web Root voor de app met de openbare statische assets van de app, waaronder bestanden metappsettings.jsonen omgevings-app-instellingen voor configuratie-instellingen. Deindex.htmlwebpagina 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
Appwordt weergegeven. Het onderdeel wordt weergegeven op de locatie van hetdivDOM-element met eenidvanapp(<div id="app">Loading...</div>).
_Imports.razor: bevat algemene Razor richtlijnen die moeten worden opgenomen in de onderdelen van de app (.razor), zoals@usinginstructies 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. HetApponderdeel wordt opgegeven als hetdivDOM-element met eenidvanapp(<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.
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.csdie weergegevens retourneert naar het Client-onderdeel van het projectFetchData. - Het project 'Shared' omvat een klasse voor weersvoorspellingen bij
WeatherForecast.csdie 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.jsonen gebruikersinteractie met een Counter onderdeel worden geladen.
Pagesmap: bevat de routeerbare Blazor onderdelen van de Razor app (.razor). De route voor elke pagina wordt opgegeven met behulp van de@pageinstructie. De sjabloon bevat de volgende onderdelen:-
Counteronderdeel (Counter.razor): implementeert de tellerpagina. -
FetchDataonderdeel (FetchData.razor): implementeert de pagina Gegevens ophalen. -
Indexonderdeel (Index.razor): implementeert de pagina Home.
-
Propertiesmap: bevat de configuratie van delaunchSettings.json.Sharedmap: Bevat de volgende gedeelde componenten en opmaakmodellen:-
MainLayoutonderdeel (MainLayout.razor): het indelingsonderdeel van de app. -
MainLayout.razor.css: Opmaakmodel voor de hoofdindeling van de app. -
NavMenuonderdeel (NavMenu.razor): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLinkonderdeel (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. -
SurveyPromptcomponent (SurveyPrompt.razor): Blazor enquêteonderdeel.
-
wwwrootmap: de map Web Root voor de app met de openbare statische assets van de app, waaronder bestanden metappsettings.jsonen omgevings-app-instellingen voor configuratie-instellingen. Deindex.htmlwebpagina 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
Appwordt weergegeven. Het onderdeel wordt weergegeven op de locatie van hetdivDOM-element met eenidvanapp(<div id="app">Loading...</div>).
_Imports.razor: bevat algemene Razor richtlijnen die moeten worden opgenomen in de onderdelen van de app (.razor), zoals@usinginstructies 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. HetApponderdeel wordt opgegeven als hetdivDOM-element met eenidvanapp(<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.
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.csdie weergegevens retourneert naar het Client-onderdeel van het projectFetchData. - Het project 'Shared' omvat een klasse voor weersvoorspellingen bij
WeatherForecast.csdie 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.jsonen gebruikersinteractie met een Counter onderdeel worden geladen.
Pagesmap: bevat de routeerbare Blazor onderdelen van de Razor app (.razor). De route voor elke pagina wordt opgegeven met behulp van de@pageinstructie. De sjabloon bevat de volgende onderdelen:-
Counteronderdeel (Counter.razor): implementeert de tellerpagina. -
FetchDataonderdeel (FetchData.razor): implementeert de pagina Gegevens ophalen. -
Indexonderdeel (Index.razor): implementeert de pagina Home.
-
Propertiesmap: bevat de configuratie van delaunchSettings.json.Sharedmap: Bevat de volgende gedeelde componenten en opmaakmodellen:-
MainLayoutonderdeel (MainLayout.razor): het indelingsonderdeel van de app. -
MainLayout.razor.css: Opmaakmodel voor de hoofdindeling van de app. -
NavMenuonderdeel (NavMenu.razor): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLinkonderdeel (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. -
SurveyPromptcomponent (SurveyPrompt.razor): Blazor enquêteonderdeel.
-
wwwrootmap: de map Web Root voor de app met de openbare statische assets van de app, waaronder bestanden metappsettings.jsonen omgevings-app-instellingen voor configuratie-instellingen. Deindex.htmlwebpagina 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
Appwordt weergegeven. Het onderdeel wordt weergegeven op de locatie van hetdivDOM-element met eenidvanapp(<div id="app">Loading...</div>).
_Imports.razor: bevat algemene Razor richtlijnen die moeten worden opgenomen in de onderdelen van de app (.razor), zoals@usinginstructies 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. HetApponderdeel wordt opgegeven als hetdivDOM-element met eenidvanapp(<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.
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.csdie weergegevens retourneert naar het Client-onderdeel van het projectFetchData. - Het project 'Shared' omvat een klasse voor weersvoorspellingen bij
WeatherForecast.csdie 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.jsonen gebruikersinteractie met een Counter onderdeel worden geladen.
Pagesmap: bevat de routeerbare Blazor onderdelen van de Razor app (.razor). De route voor elke pagina wordt opgegeven met behulp van de@pageinstructie. De sjabloon bevat de volgende onderdelen:-
Counteronderdeel (Counter.razor): implementeert de tellerpagina. -
FetchDataonderdeel (FetchData.razor): implementeert de pagina Gegevens ophalen. -
Indexonderdeel (Index.razor): implementeert de pagina Home.
-
Propertiesmap: bevat de configuratie van delaunchSettings.json.Sharedmap: Bevat de volgende gedeelde onderdelen:-
MainLayoutonderdeel (MainLayout.razor): het indelingsonderdeel van de app. -
NavMenuonderdeel (NavMenu.razor): hiermee wordt navigatie op de zijbalk geïmplementeerd. Bevat hetNavLinkonderdeel (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. -
SurveyPromptcomponent (SurveyPrompt.razor): Blazor enquêteonderdeel.
-
wwwrootmap: de map Web Root voor de app met de openbare statische assets van de app, waaronder bestanden metappsettings.jsonen omgevings-app-instellingen voor configuratie-instellingen. Deindex.htmlwebpagina 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
Appwordt weergegeven. Het onderdeel wordt weergegeven op de locatie van hetappDOM-element (<app>Loading...</app>).
_Imports.razor: bevat algemene Razor richtlijnen die moeten worden opgenomen in de onderdelen van de app (.razor), zoals@usinginstructies 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. HetApponderdeel wordt opgegeven als hetappDOM-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 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.csdie weergegevens retourneert naar het Client-onderdeel van het projectFetchData. - Het project 'Shared' omvat een klasse voor weersvoorspellingen bij
WeatherForecast.csdie weergegevens vertegenwoordigt voor de projecten 'Client' en 'Server'.
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>
Voor een Blazor Web App of een Blazor Server app moet het project ten minste één Razor onderdeelbestand (.razor) bevatten om het Blazor script automatisch op te nemen wanneer de app wordt gepubliceerd. Als het project niet ten minste één Razor onderdeel bevat, stelt u de RequiresAspNetWebAssets eigenschap true MSBuild in het projectbestand van de app in om het Blazor script op te nemen:
<RequiresAspNetWebAssets>true</RequiresAspNetWebAssets>
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.