참고 항목
이 문서의 최신 버전은 아닙니다. 현재 릴리스는 이 문서의 .NET 10 버전을 참조하세요.
이 문서에서는 Blazor 프로젝트 템플릿에서 생성된 Blazor 앱을 구성하는 파일과 폴더를 설명합니다.
Blazor Web App
Blazor Web App 프로젝트 템플릿: blazor
프로젝트 템플릿은 Blazor Web App 구성 요소(Razor)를 사용하여 .razor 서버 쪽 렌더링 및 클라이언트 쪽 렌더링된 모든 스타일의 웹 UI를 빌드하기 위한 단일 시작점을 제공합니다. 서버 쪽 및 Blazor Server 클라이언트 쪽 렌더링, 스트리밍 렌더링, 향상된 탐색 및 양식 처리, 구성 요소별로 또는 Blazor WebAssembly 구성 요소별로 상호 작용 Blazor Server 을 추가할 수 있는 기능과 장점을 결합 Blazor WebAssembly 합니다.
앱 생성 시 CSR(클라이언트 쪽 렌더링)과 대화형 서버 쪽 렌더링(대화형 SSR)을 모두 선택한 경우 프로젝트 템플릿은 대화형 자동 렌더링 모드를 사용합니다. 자동 렌더링 모드는 처음에 대화형 SSR을 사용하는 반면 .NET 앱 번들 및 런타임은 브라우저에 다운로드됩니다. .NET WebAssembly 런타임이 활성화되면 렌더링이 CSR로 전환됩니다.
템플릿을 Blazor Web App 사용하면 단일 프로젝트를 사용하여 정적 및 대화형 서버 쪽 렌더링을 모두 사용할 수 있습니다. Interactive WebAssembly 렌더링을 사용하도록 설정하면 프로젝트에 WebAssembly 기반 구성 요소에 대한 추가 클라이언트 프로젝트(.Client)가 포함됩니다. 클라이언트 프로젝트의 빌드된 출력은 브라우저에 다운로드되고 클라이언트에서 실행됩니다. Interactive WebAssembly 또는 대화형 자동 렌더링 모드를 사용하는 구성 요소는 프로젝트에 있어야 .Client 합니다.
기본 프로젝트는 표준 ASP.NET Core 프로젝트이므로 프로젝트의 구성 요소 .Client 폴더 구조는 '의 기본 프로젝트 폴더 구조와 다릅니다 Blazor Web App. 주 프로젝트는 관련이 없는 ASP.NET Core 프로젝트의 다른 자산을 고려해야 합니다 Blazor. 프로젝트에서 원하는 .Client 구성 요소 폴더 구조를 사용할 수 있습니다. 원하는 경우 프로젝트에서 기본 프로젝트의 구성 요소 폴더 레이아웃을 .Client 자유롭게 미러링할 수 있습니다. 프로젝트 템플릿에서 사용하는 것과 다른 폴더로 구성 요소를 이동하는 경우 네임스페이스는 레이아웃 파일과 같은 자산에 대한 조정이 필요할 수 있습니다.
구성 요소 및 렌더링 모드 에 대한 자세한 내용은 ASP.NET Core Razor 구성 요소 및 ASP.NET Core Blazor 렌더링 모드 문서에서 확인할 수 있습니다 .
앱 생성 Layout 시 선택한 대화형 렌더링 모드에 따라 폴더는 폴더의 서버 프로젝트 Components 또는 프로젝트의 루트에 있습니다 .Client . 폴더에는 다음과 같은 레이아웃 구성 요소 및 스타일시트가 포함됩니다.
-
MainLayout구성 요소(MainLayout.razor)는 앱의 레이아웃 구성 요소입니다. - 앱
MainLayout.razor.css의 기본 레이아웃에 사용되는 구성 요소 옆에 위치한 스타일시트입니다. - 구성 요소(
NavMenu)는NavMenu.razor사이드바 탐색을 구현합니다. 구성 요소에는 다른NavLink구성 요소에NavLink 됩니다. NavLink 구성 요소는 현재 표시되는 구성 요소를 사용자에게 나타냅니다. - 앱
NavMenu.razor.css의 탐색 메뉴에 대한 정렬된 스타일시트입니다. -
ReconnectModal구성 요소는 UI의 서버 쪽 연결 상태를 반영하며 앱의 대화형 렌더링 모드가 대화형 서버 또는 대화형 자동일 때 포함됩니다. 자세한 내용은 ASP.NET Core BlazorSignalR 지침을 참조하세요. - 구성 요소
ReconnectModal.razor.css에 대한 연관된 스타일시트입니다ReconnectModal. -
ReconnectModal.razor.js는ReconnectModal컴포넌트와 연결된 JavaScript 파일입니다.
구성 요소(Routes)는 Routes.razor 서버 프로젝트 또는 .Client 프로젝트에 있으며 구성 요소를 사용하여 라우팅을 Router 설정합니다. 클라이언트 쪽 대화형 구성 요소의 Router 경우 구성 요소는 브라우저 탐색을 가로채 요청된 주소와 일치하는 페이지를 렌더링합니다.
서버 프로젝트의 폴더에는 Components 앱의 서버 쪽 Razor 구성 요소가 포함됩니다. 공유 구성 요소는 종종 폴더의 Components 루트에 배치되는 반면 레이아웃 및 페이지 구성 요소는 일반적으로 폴더 내의 폴더에 Components 배치됩니다.
Components/Pages 서버 프로젝트의 폴더에는 앱의 라우팅 가능한 서버 쪽 Razor 구성 요소가 포함됩니다. 각 페이지에 대한 경로는 @page 지시어를 사용하여 지정합니다.
구성 요소(App)는 App.razor HTML <head> 태그, 구성 요소 및RoutesBlazor태그가 있는 앱의 <script> 루트 구성 요소입니다. 루트 구성 요소는 앱이 로드하는 첫 번째 구성 요소입니다.
각 서버 및 _Imports.razor 프로젝트의 파일에는 .Client 네임스페이스에 대한 Razor 지시문과 같이 Razor 두 프로젝트의 구성 요소에 대한 공통 @using 지시문이 포함됩니다.
서버 프로젝트의 폴더에는 Properties 파일의 개발 환경 구성이 포함됩니다launchSettings.json.
참고 항목
프로필은 http 파일의 https 프로필 앞에 섰습니다 launchSettings.json . .NET CLI를 사용하여 앱을 실행하면 첫 번째 프로필이 발견되었기 때문에 앱이 httpHTTP 엔드포인트에서 실행됩니다. 프로필 순서를 사용하면 Linux 및 macOS 사용자를 위한 HTTPS 채택을 쉽게 전환할 수 있습니다. (또는-lp https) 명령에 또는 --launch-profile https 옵션을 dotnet watch 전달 dotnet run 하지 않고 .NET CLI로 앱을 시작하려는 경우 파일의 https 프로필 위에 프로필을 배치 http 하기만 하면 됩니다.
wwwroot 서버 프로젝트의 폴더는 앱의 공용 정적 자산을 보유하는 서버 프로젝트의 웹 루트 폴더입니다.
서버 프로젝트의 파일은 Program.cs ASP.NET Core 웹 애플리케이션 호스트 를 설정하고 서비스 등록, 구성, 로깅 및 요청 처리 파이프라인을 포함한 앱의 시작 논리를 포함하는 프로젝트의 진입점입니다.
- 구성 요소에 대한 Razor 서비스는 호출 AddRazorComponents을 통해 추가됩니다. AddInteractiveServerComponents 는 대화형 서버 구성 요소 렌더링을 지원하는 서비스를 추가합니다. AddInteractiveWebAssemblyComponents 는 대화형 WebAssembly 구성 요소 렌더링을 지원하는 서비스를 추가합니다.
-
MapRazorComponents는 사용 가능한 구성 요소를 검색하고 앱의 루트 구성 요소(로드된 첫 번째 구성 요소)를 지정하며, 기본적으로 구성 요소(
App)입니다App.razor. AddInteractiveServerRenderMode 는 앱에 대한 대화형 SSR(대화형 서버 쪽 렌더링)을 구성합니다. AddInteractiveWebAssemblyRenderMode 는 앱에 대한 Interactive WebAssembly 렌더링 모드를 구성합니다.
서버 또는 프로젝트의 앱 설정 파일(appsettings.Development.json, appsettings.json)은 구성 설정을.Client. 서버 프로젝트에서 설정 파일은 프로젝트의 루트에 있습니다.
.Client 프로젝트에서 설정 파일은 웹 루트사용됩니다.
.Client 프로젝트의 경우:
폴더에는
Pages라우팅 가능한 클라이언트 쪽 Razor 구성 요소가 포함되어 있습니다. 각 페이지에 대한 경로는@page지시어를 사용하여 지정합니다.이
wwwroot폴더는 앱의 공용 정적 자산을 보유하는 프로젝트의 웹 루트 폴더.Client입니다.이 파일은
Program.csWebAssembly 호스트 를 설정하고 서비스 등록, 구성, 로깅 및 요청 처리 파이프라인을 비롯한 프로젝트의 시작 논리를 포함하는 프로젝트의 진입점입니다.
추가 옵션이 구성되면 Blazor Web App 프로젝트 템플릿에서 생성된 앱에 추가 파일 및 폴더가 나타날 수 있습니다. 예를 들어 ASP.NET Core Identity로 앱을 생성하면 인증 및 권한 부여 기능에 대한 추가 자산이 포함됩니다.
Blazor Server
Blazor Server 프로젝트 템플릿: blazorserver, blazorserver-empty
Blazor Server 템플릿은 Blazor Server 앱의 초기 파일 및 디렉터리 구조를 만듭니다.
- 템플릿을
blazorserver사용하는 경우 앱은 다음으로 채워집니다.- 기상 예측 서비스(
FetchData)에서 데이터를 로드하는WeatherForecastService구성 요소의 데모 코드 및Counter구성 요소와의 사용자 상호 작용. - 부트스트랩 프런트 엔드 도구 키트.
- 기상 예측 서비스(
-
blazorserver-empty템플릿을 사용하는 경우 데모 코드 및 부트스트랩 없이 앱이 만들어집니다.
프로젝트 구조:
Data폴더: 앱WeatherForecast의WeatherForecastService구성 요소에FetchData예제 날씨 데이터를 제공하는 클래스 및 구현을 포함합니다.Pages폴더: 앱의 라우팅 가능한 Blazor 구성 요소(Razor) 및 앱의.razor루트 Razor 페이지를 포함합니다Blazor Server. 각 페이지에 대한 경로는@page지시어를 사용하여 지정합니다. 이 템플릿은 다음을 포함합니다.-
_Host.cshtml: 페이지로 구현된 앱의 루트 페이지입니다 Razor .- 앱의 페이지를 처음 요청되면 이 페이지가 렌더링되어 응답으로 반환됩니다.
- 이 호스트 페이지는 루트
App구성 요소(App.razor)가 렌더링되는 위치를 지정합니다.
-
Counter구성 요소(Counter.razor): 카운터 페이지를 구현합니다. -
Error구성 요소(Error.razor): 앱에서 처리되지 않은 예외가 발생할 때 렌더링됩니다. -
FetchData구성 요소(FetchData.razor): 데이터 가져오기 페이지를 구현합니다. -
Index구성 요소(Index.razor): Home 페이지를 구현합니다.
-
Properties폴더: 파일에 개발 환경 구성을 저장합니다launchSettings.json.Shared폴더: 다음 공유 구성 요소 및 스타일시트를 포함합니다.-
MainLayout구성 요소(MainLayout.razor): 앱의 레이아웃 구성 요소 -
MainLayout.razor.css: 앱의 기본 레이아웃에 대한 스타일시트입니다. -
NavMenu구성 요소(NavMenu.razor): 사이드바 탐색을 구현합니다. 다른NavLink구성 요소의 탐색 링크를 렌더링하는 (NavLink)를 포함합니다. NavLink 구성 요소는 해당 구성 요소가 로드될 때 선택된 상태를 자동으로 나타내므로 사용자가 현재 표시되는 구성 요소를 파악하는 데 도움이 됩니다. -
NavMenu.razor.css: 앱의 탐색 메뉴에 대한 스타일시트입니다. -
SurveyPrompt구성 요소(SurveyPrompt.razor): Blazor 설문 조사 구성 요소입니다.
-
wwwroot폴더: 앱의 공용 정적 자산을 포함하는 앱의 웹 루트 폴더입니다._Imports.razor: 네임스페이스에 대한 지시문과 같이 Razor 앱의 구성 요소().razor에 포함할 공통@using지시문을 포함합니다.App.razor: 구성 요소를 사용하여 Router 클라이언트 쪽 라우팅을 설정하는 앱의 루트 구성 요소입니다. Router 구성 요소는 브라우저 탐색을 가로채서 요청된 주소와 일치하는 페이지를 렌더링합니다.appsettings.json및 환경 앱 설정 파일: 앱에 대한 구성 설정을 제공합니다.Program.cs: ASP.NET Core 호스트를 설정하고 서비스 등록, 요청 처리 파이프라인 구성 등 앱의 시작 논리를 포함하는 앱의 진입점입니다.- 앱의 DI(종속성 주입) 서비스를 지정합니다.
AddServerSideBlazor를 호출하여 서비스가 추가되고, 예제
WeatherForecastService구성 요소에서 사용할 수 있도록 서비스 컨테이너에FetchData가 추가됩니다. - 앱의 요청 처리 파이프라인을 구성합니다.
- MapBlazorHub는 브라우저와의 실시간 연결을 위해 엔드포인트를 설정하도록 호출됩니다. 연결은 애플리케이션에 앱에 실시간 웹 기능을 추가하기 위한 프레임워크인 SignalR를 사용하여 만들어집니다.
-
MapFallbackToPage("/_Host")는 앱의 루트 페이지(Pages/_Host.cshtml)를 설정하고 탐색을 사용하도록 설정하기 위해 호출됩니다.
- 앱의 DI(종속성 주입) 서비스를 지정합니다.
AddServerSideBlazor를 호출하여 서비스가 추가되고, 예제
추가 옵션이 구성되면 Blazor Server 프로젝트 템플릿에서 생성된 앱에 추가 파일 및 폴더가 나타날 수 있습니다. 예를 들어 ASP.NET Core Identity로 앱을 생성하면 인증 및 권한 부여 기능에 대한 추가 자산이 포함됩니다.
Blazor Server 프로젝트 템플릿: blazorserver
Blazor Server 템플릿은 Blazor Server 앱의 초기 파일 및 디렉터리 구조를 만듭니다. 이 앱은 등록된 서비스에서 데이터를 로드하는 FetchData 구성 요소의 데모 코드, WeatherForecastService, Counter 구성 요소와의 사용자 상호 작용으로 채워집니다.
Data폴더: 앱WeatherForecast의WeatherForecastService구성 요소에FetchData예제 날씨 데이터를 제공하는 클래스 및 구현을 포함합니다.Pages폴더: 앱의 라우팅 가능한 Blazor 구성 요소(Razor) 및 앱의.razor루트 Razor 페이지를 포함합니다Blazor Server. 각 페이지에 대한 경로는@page지시어를 사용하여 지정합니다. 이 템플릿은 다음을 포함합니다.-
_Host.cshtml: 페이지로 구현된 앱의 루트 페이지입니다 Razor .- 앱의 페이지를 처음 요청되면 이 페이지가 렌더링되어 응답으로 반환됩니다.
- 이 호스트 페이지는 루트
App구성 요소(App.razor)가 렌더링되는 위치를 지정합니다.
-
_Layout.cshtml: 앱의_Host.cshtml루트 페이지에 대한 레이아웃 페이지. -
Counter구성 요소(Counter.razor): 카운터 페이지를 구현합니다. -
Error구성 요소(Error.razor): 앱에서 처리되지 않은 예외가 발생할 때 렌더링됩니다. -
FetchData구성 요소(FetchData.razor): 데이터 가져오기 페이지를 구현합니다. -
Index구성 요소(Index.razor): Home 페이지를 구현합니다.
-
Properties폴더: 파일에 개발 환경 구성을 저장합니다launchSettings.json.Shared폴더: 다음 공유 구성 요소 및 스타일시트를 포함합니다.-
MainLayout구성 요소(MainLayout.razor): 앱의 레이아웃 구성 요소 -
MainLayout.razor.css: 앱의 기본 레이아웃에 대한 스타일시트입니다. -
NavMenu구성 요소(NavMenu.razor): 사이드바 탐색을 구현합니다. 다른NavLink구성 요소의 탐색 링크를 렌더링하는 (NavLink)를 포함합니다. NavLink 구성 요소는 해당 구성 요소가 로드될 때 선택된 상태를 자동으로 나타내므로 사용자가 현재 표시되는 구성 요소를 파악하는 데 도움이 됩니다. -
NavMenu.razor.css: 앱의 탐색 메뉴에 대한 스타일시트입니다. -
SurveyPrompt구성 요소(SurveyPrompt.razor): Blazor 설문 조사 구성 요소입니다.
-
wwwroot폴더: 앱의 공용 정적 자산을 포함하는 앱의 웹 루트 폴더입니다._Imports.razor: 네임스페이스에 대한 지시문과 같이 Razor 앱의 구성 요소().razor에 포함할 공통@using지시문을 포함합니다.App.razor: 구성 요소를 사용하여 Router 클라이언트 쪽 라우팅을 설정하는 앱의 루트 구성 요소입니다. Router 구성 요소는 브라우저 탐색을 가로채서 요청된 주소와 일치하는 페이지를 렌더링합니다.appsettings.json및 환경 앱 설정 파일: 앱에 대한 구성 설정을 제공합니다.Program.cs: ASP.NET Core 호스트를 설정하고 서비스 등록, 요청 처리 파이프라인 구성 등 앱의 시작 논리를 포함하는 앱의 진입점입니다.- 앱의 DI(종속성 주입) 서비스를 지정합니다.
AddServerSideBlazor를 호출하여 서비스가 추가되고, 예제
WeatherForecastService구성 요소에서 사용할 수 있도록 서비스 컨테이너에FetchData가 추가됩니다. - 앱의 요청 처리 파이프라인을 구성합니다.
- MapBlazorHub는 브라우저와의 실시간 연결을 위해 엔드포인트를 설정하도록 호출됩니다. 연결은 애플리케이션에 앱에 실시간 웹 기능을 추가하기 위한 프레임워크인 SignalR를 사용하여 만들어집니다.
-
MapFallbackToPage("/_Host")는 앱의 루트 페이지(Pages/_Host.cshtml)를 설정하고 탐색을 사용하도록 설정하기 위해 호출됩니다.
- 앱의 DI(종속성 주입) 서비스를 지정합니다.
AddServerSideBlazor를 호출하여 서비스가 추가되고, 예제
추가 옵션이 구성되면 Blazor Server 프로젝트 템플릿에서 생성된 앱에 추가 파일 및 폴더가 나타날 수 있습니다. 예를 들어 ASP.NET Core Identity로 앱을 생성하면 인증 및 권한 부여 기능에 대한 추가 자산이 포함됩니다.
Blazor Server 프로젝트 템플릿: blazorserver
Blazor Server 템플릿은 Blazor Server 앱의 초기 파일 및 디렉터리 구조를 만듭니다. 이 앱은 등록된 서비스에서 데이터를 로드하는 FetchData 구성 요소의 데모 코드, WeatherForecastService, Counter 구성 요소와의 사용자 상호 작용으로 채워집니다.
Data폴더: 앱WeatherForecast의WeatherForecastService구성 요소에FetchData예제 날씨 데이터를 제공하는 클래스 및 구현을 포함합니다.Pages폴더: 앱의 라우팅 가능한 Blazor 구성 요소(Razor) 및 앱의.razor루트 Razor 페이지를 포함합니다Blazor Server. 각 페이지에 대한 경로는@page지시어를 사용하여 지정합니다. 이 템플릿은 다음을 포함합니다.-
_Host.cshtml: 페이지로 구현된 앱의 루트 페이지입니다 Razor .- 앱의 페이지를 처음 요청되면 이 페이지가 렌더링되어 응답으로 반환됩니다.
- 이 호스트 페이지는 루트
App구성 요소(App.razor)가 렌더링되는 위치를 지정합니다.
-
Counter구성 요소(Counter.razor): 카운터 페이지를 구현합니다. -
Error구성 요소(Error.razor): 앱에서 처리되지 않은 예외가 발생할 때 렌더링됩니다. -
FetchData구성 요소(FetchData.razor): 데이터 가져오기 페이지를 구현합니다. -
Index구성 요소(Index.razor): Home 페이지를 구현합니다.
-
Properties폴더: 파일에 개발 환경 구성을 저장합니다launchSettings.json.Shared폴더: 다음 공유 구성 요소 및 스타일시트를 포함합니다.-
MainLayout구성 요소(MainLayout.razor): 앱의 레이아웃 구성 요소 -
MainLayout.razor.css: 앱의 기본 레이아웃에 대한 스타일시트입니다. -
NavMenu구성 요소(NavMenu.razor): 사이드바 탐색을 구현합니다. 다른NavLink구성 요소의 탐색 링크를 렌더링하는 (NavLink)를 포함합니다. NavLink 구성 요소는 해당 구성 요소가 로드될 때 선택된 상태를 자동으로 나타내므로 사용자가 현재 표시되는 구성 요소를 파악하는 데 도움이 됩니다. -
NavMenu.razor.css: 앱의 탐색 메뉴에 대한 스타일시트입니다. -
SurveyPrompt구성 요소(SurveyPrompt.razor): Blazor 설문 조사 구성 요소입니다.
-
wwwroot폴더: 앱의 공용 정적 자산을 포함하는 앱의 웹 루트 폴더입니다._Imports.razor: 네임스페이스에 대한 지시문과 같이 Razor 앱의 구성 요소().razor에 포함할 공통@using지시문을 포함합니다.App.razor: 구성 요소를 사용하여 Router 클라이언트 쪽 라우팅을 설정하는 앱의 루트 구성 요소입니다. Router 구성 요소는 브라우저 탐색을 가로채서 요청된 주소와 일치하는 페이지를 렌더링합니다.appsettings.json및 환경 앱 설정 파일: 앱에 대한 구성 설정을 제공합니다.Program.cs: ASP.NET Core 호스트를 설정하는 앱의 진입점입니다.Startup.cs: 앱의 시작 논리를 포함합니다.Startup클래스는 다음 두 가지 메서드를 정의합니다.-
ConfigureServices: 앱의 DI(종속성 주입) 서비스를 구성합니다. AddServerSideBlazor를 호출하여 서비스가 추가되고, 예제WeatherForecastService구성 요소에서 사용할 수 있도록 서비스 컨테이너에FetchData가 추가됩니다. -
Configure: 앱의 요청 처리 파이프라인을 구성합니다.- MapBlazorHub는 브라우저와의 실시간 연결을 위해 엔드포인트를 설정하도록 호출됩니다. 연결은 애플리케이션에 앱에 실시간 웹 기능을 추가하기 위한 프레임워크인 SignalR를 사용하여 만들어집니다.
-
MapFallbackToPage("/_Host")는 앱의 루트 페이지(Pages/_Host.cshtml)를 설정하고 탐색을 사용하도록 설정하기 위해 호출됩니다.
-
추가 옵션이 구성되면 Blazor Server 프로젝트 템플릿에서 생성된 앱에 추가 파일 및 폴더가 나타날 수 있습니다. 예를 들어 ASP.NET Core Identity로 앱을 생성하면 인증 및 권한 부여 기능에 대한 추가 자산이 포함됩니다.
Blazor Server 프로젝트 템플릿: blazorserver
Blazor Server 템플릿은 Blazor Server 앱의 초기 파일 및 디렉터리 구조를 만듭니다. 이 앱은 등록된 서비스에서 데이터를 로드하는 FetchData 구성 요소의 데모 코드, WeatherForecastService, Counter 구성 요소와의 사용자 상호 작용으로 채워집니다.
Data폴더: 앱WeatherForecast의WeatherForecastService구성 요소에FetchData예제 날씨 데이터를 제공하는 클래스 및 구현을 포함합니다.Pages폴더: 앱의 라우팅 가능한 Blazor 구성 요소(Razor) 및 앱의.razor루트 Razor 페이지를 포함합니다Blazor Server. 각 페이지에 대한 경로는@page지시어를 사용하여 지정합니다. 이 템플릿은 다음을 포함합니다.-
_Host.cshtml: 페이지로 구현된 앱의 루트 페이지입니다 Razor .- 앱의 페이지를 처음 요청되면 이 페이지가 렌더링되어 응답으로 반환됩니다.
- 이 호스트 페이지는 루트
App구성 요소(App.razor)가 렌더링되는 위치를 지정합니다.
-
Counter구성 요소(Counter.razor): 카운터 페이지를 구현합니다. -
Error구성 요소(Error.razor): 앱에서 처리되지 않은 예외가 발생할 때 렌더링됩니다. -
FetchData구성 요소(FetchData.razor): 데이터 가져오기 페이지를 구현합니다. -
Index구성 요소(Index.razor): Home 페이지를 구현합니다.
-
Properties폴더: 파일에 개발 환경 구성을 저장합니다launchSettings.json.Shared폴더: 다음 공유 구성 요소를 포함합니다.-
MainLayout구성 요소(MainLayout.razor): 앱의 레이아웃 구성 요소 -
NavMenu구성 요소(NavMenu.razor): 사이드바 탐색을 구현합니다. 다른NavLink구성 요소의 탐색 링크를 렌더링하는 (NavLink)를 포함합니다. NavLink 구성 요소는 해당 구성 요소가 로드될 때 선택된 상태를 자동으로 나타내므로 사용자가 현재 표시되는 구성 요소를 파악하는 데 도움이 됩니다. -
SurveyPrompt구성 요소(SurveyPrompt.razor): Blazor 설문 조사 구성 요소입니다.
-
wwwroot폴더: 앱의 공용 정적 자산을 포함하는 앱의 웹 루트 폴더입니다._Imports.razor: 네임스페이스에 대한 지시문과 같이 Razor 앱의 구성 요소().razor에 포함할 공통@using지시문을 포함합니다.App.razor: 구성 요소를 사용하여 Router 클라이언트 쪽 라우팅을 설정하는 앱의 루트 구성 요소입니다. Router 구성 요소는 브라우저 탐색을 가로채서 요청된 주소와 일치하는 페이지를 렌더링합니다.appsettings.json및 환경 앱 설정 파일: 앱에 대한 구성 설정을 제공합니다.Program.cs: ASP.NET Core 호스트를 설정하는 앱의 진입점입니다.Startup.cs: 앱의 시작 논리를 포함합니다.Startup클래스는 다음 두 가지 메서드를 정의합니다.-
ConfigureServices: 앱의 DI(종속성 주입) 서비스를 구성합니다. AddServerSideBlazor를 호출하여 서비스가 추가되고, 예제WeatherForecastService구성 요소에서 사용할 수 있도록 서비스 컨테이너에FetchData가 추가됩니다. -
Configure: 앱의 요청 처리 파이프라인을 구성합니다.- MapBlazorHub는 브라우저와의 실시간 연결을 위해 엔드포인트를 설정하도록 호출됩니다. 연결은 애플리케이션에 앱에 실시간 웹 기능을 추가하기 위한 프레임워크인 SignalR를 사용하여 만들어집니다.
-
MapFallbackToPage("/_Host")는 앱의 루트 페이지(Pages/_Host.cshtml)를 설정하고 탐색을 사용하도록 설정하기 위해 호출됩니다.
-
추가 옵션이 구성되면 Blazor Server 프로젝트 템플릿에서 생성된 앱에 추가 파일 및 폴더가 나타날 수 있습니다. 예를 들어 ASP.NET Core Identity로 앱을 생성하면 인증 및 권한 부여 기능에 대한 추가 자산이 포함됩니다.
독립 실행형 Blazor WebAssembly
독립 실행형 Blazor WebAssembly 프로젝트 템플릿: blazorwasm
템플릿은 Blazor WebAssembly 독립 실행형 Blazor WebAssembly 앱에 대한 초기 파일 및 디렉터리 구조를 만듭니다.
- 템플릿을
blazorwasm사용하는 경우 앱은 다음으로 채워집니다.- 정적 자산(
Weather)에서 데이터를 로드하는weather.json구성 요소의 데모 코드 및Counter구성 요소와의 사용자 상호 작용. - 부트스트랩 프런트 엔드 도구 키트.
- 정적 자산(
-
blazorwasm샘플 페이지 및 스타일 지정 없이 템플릿을 생성할 수도 있습니다.
프로젝트 구조:
-
Layout폴더: 다음 레이아웃 구성 요소 및 스타일시트를 포함합니다.-
MainLayout구성 요소(MainLayout.razor): 앱의 레이아웃 구성 요소 -
MainLayout.razor.css: 앱의 기본 레이아웃에 대한 스타일시트입니다. -
NavMenu구성 요소(NavMenu.razor): 사이드바 탐색을 구현합니다. 다른NavLink구성 요소의 탐색 링크를 렌더링하는 (NavLink)를 포함합니다. NavLink 구성 요소는 해당 구성 요소가 로드될 때 선택된 상태를 자동으로 나타내므로 사용자가 현재 표시되는 구성 요소를 파악하는 데 도움이 됩니다. -
NavMenu.razor.css: 앱의 탐색 메뉴에 대한 스타일시트입니다.
-
-
Pages폴더: 앱의 라우팅 가능한 Blazor 구성 요소(Razor)를 포함합니다.razor. 각 페이지에 대한 경로는@page지시어를 사용하여 지정합니다. 템플릿에는 다음 구성 요소가 포함됩니다.-
Counter구성 요소(Counter.razor): 카운터 페이지를 구현합니다. -
Index구성 요소(Index.razor): Home 페이지를 구현합니다. -
Weather구성 요소(Weather.razor): 날씨 페이지를 구현합니다.
-
_Imports.razor: 네임스페이스에 대한 지시문과 같이 Razor 앱의 구성 요소().razor에 포함할 공통@using지시문을 포함합니다.App.razor: 구성 요소를 사용하여 Router 클라이언트 쪽 라우팅을 설정하는 앱의 루트 구성 요소입니다. Router 구성 요소는 브라우저 탐색을 가로채서 요청된 주소와 일치하는 페이지를 렌더링합니다.Properties폴더: 파일에 개발 환경 구성을 저장합니다launchSettings.json.참고 항목
프로필은
http파일의https프로필 앞에 섰습니다launchSettings.json. .NET CLI를 사용하여 앱을 실행하면 첫 번째 프로필이 발견되었기 때문에 앱이httpHTTP 엔드포인트에서 실행됩니다. 프로필 순서를 사용하면 Linux 및 macOS 사용자를 위한 HTTPS 채택을 쉽게 전환할 수 있습니다. (또는-lp https) 명령에 또는--launch-profile https옵션을dotnet watch전달dotnet run하지 않고 .NET CLI로 앱을 시작하려는 경우 파일의https프로필 위에 프로필을 배치http하기만 하면 됩니다.wwwroot폴더: 폴더입니다.index.html웹 페이지는 HTML 페이지로 구현된 앱의 루트 페이지입니다.- 앱의 페이지를 처음 요청되면 이 페이지가 렌더링되어 응답으로 반환됩니다.
- 이 페이지는 루트
App구성 요소가 렌더링되는 위치를 지정합니다. 구성 요소는div의id를 사용하는appDOM 요소(<div id="app">Loading...</div>)의 위치에서 렌더링됩니다.
Program.cs: WebAssembly 호스트를 설정하는 앱의 진입점:-
App구성 요소는 앱의 루트 구성 요소입니다.App구성 요소는div의id를 사용하여 루트 구성 요소 컬렉션(app)에 대한<div id="app">Loading...</div>DOM 요소(wwwroot/index.html의builder.RootComponents.Add<App>("#app"))로 지정됩니다. -
서비스가 추가되고 구성됩니다(예:
builder.Services.AddSingleton<IMyDependency, MyDependency>()).
-
추가 옵션이 구성되면 Blazor WebAssembly 프로젝트 템플릿에서 생성된 앱에 추가 파일 및 폴더가 나타날 수 있습니다. 예를 들어 ASP.NET Core Identity로 앱을 생성하면 인증 및 권한 부여 기능에 대한 추가 자산이 포함됩니다.
Blazor WebAssembly
Blazor WebAssembly 프로젝트 템플릿: blazorwasm, blazorwasm-empty
Blazor WebAssembly 템플릿은 Blazor WebAssembly 앱의 초기 파일 및 디렉터리 구조를 만듭니다.
- 템플릿을
blazorwasm사용하는 경우 앱은 다음으로 채워집니다.- 정적 자산(
FetchData)에서 데이터를 로드하는weather.json구성 요소의 데모 코드 및Counter구성 요소와의 사용자 상호 작용. - 부트스트랩 프런트 엔드 도구 키트.
- 정적 자산(
-
blazorwasm-empty템플릿을 사용하는 경우 데모 코드 및 부트스트랩 없이 앱이 만들어집니다.
프로젝트 구조:
Pages폴더: 앱의 라우팅 가능한 Blazor 구성 요소(Razor)를 포함합니다.razor. 각 페이지에 대한 경로는@page지시어를 사용하여 지정합니다. 이 템플릿은 다음 구성 요소를 포함합니다.-
Counter구성 요소(Counter.razor): 카운터 페이지를 구현합니다. -
FetchData구성 요소(FetchData.razor): 데이터 가져오기 페이지를 구현합니다. -
Index구성 요소(Index.razor): Home 페이지를 구현합니다.
-
Properties폴더: 파일에 개발 환경 구성을 저장합니다launchSettings.json.Shared폴더: 다음 공유 구성 요소 및 스타일시트를 포함합니다.-
MainLayout구성 요소(MainLayout.razor): 앱의 레이아웃 구성 요소 -
MainLayout.razor.css: 앱의 기본 레이아웃에 대한 스타일시트입니다. -
NavMenu구성 요소(NavMenu.razor): 사이드바 탐색을 구현합니다. 다른NavLink구성 요소의 탐색 링크를 렌더링하는 (NavLink)를 포함합니다. NavLink 구성 요소는 해당 구성 요소가 로드될 때 선택된 상태를 자동으로 나타내므로 사용자가 현재 표시되는 구성 요소를 파악하는 데 도움이 됩니다. -
NavMenu.razor.css: 앱의 탐색 메뉴에 대한 스타일시트입니다. -
SurveyPrompt구성 요소(SurveyPrompt.razor)(.NET 7 이하의 ASP.NET Core): Blazor 설문 조사 구성 요소입니다.
-
wwwroot폴더: 폴더입니다.index.html웹 페이지는 HTML 페이지로 구현된 앱의 루트 페이지입니다.- 앱의 페이지를 처음 요청되면 이 페이지가 렌더링되어 응답으로 반환됩니다.
- 이 페이지는 루트
App구성 요소가 렌더링되는 위치를 지정합니다. 구성 요소는div의id를 사용하는appDOM 요소(<div id="app">Loading...</div>)의 위치에서 렌더링됩니다.
_Imports.razor: 네임스페이스에 대한 지시문과 같이 Razor 앱의 구성 요소().razor에 포함할 공통@using지시문을 포함합니다.App.razor: 구성 요소를 사용하여 Router 클라이언트 쪽 라우팅을 설정하는 앱의 루트 구성 요소입니다. Router 구성 요소는 브라우저 탐색을 가로채서 요청된 주소와 일치하는 페이지를 렌더링합니다.Program.cs: WebAssembly 호스트를 설정하는 앱의 진입점:-
App구성 요소는 앱의 루트 구성 요소입니다.App구성 요소는div의id를 사용하여 루트 구성 요소 컬렉션(app)에 대한<div id="app">Loading...</div>DOM 요소(wwwroot/index.html의builder.RootComponents.Add<App>("#app"))로 지정됩니다. -
서비스가 추가되고 구성됩니다(예:
builder.Services.AddSingleton<IMyDependency, MyDependency>()).
-
추가 옵션이 구성되면 Blazor WebAssembly 프로젝트 템플릿에서 생성된 앱에 추가 파일 및 폴더가 나타날 수 있습니다. 예를 들어 ASP.NET Core Identity로 앱을 생성하면 인증 및 권한 부여 기능에 대한 추가 자산이 포함됩니다.
호스트된 Blazor WebAssembly 솔루션에는 다음 ASP.NET Core 프로젝트가 포함됩니다.
- "Client": Blazor WebAssembly 앱.
- "Server": 클라이언트에 Blazor WebAssembly 앱 및 날씨 데이터를 제공하는 앱입니다.
- "Shared": 공통 클래스, 메서드 및 리소스를 유지하는 프로젝트입니다.
솔루션은 Blazor WebAssembly 확인란을 선택하거나 .NET CLI의 명령을 사용하는 -ho|--hosted 옵션을 사용하여 Visual Studio의 dotnet new blazorwasm 프로젝트 템플릿에서 생성됩니다. 자세한 내용은 ASP.NET Core용 도구를 참조하세요 Blazor.
호스트된 Blazor Webassembly 솔루션("Client" 프로젝트)의 클라이언트 쪽 앱의 프로젝트 구조는 독립 실행형 Blazor WebAssembly 앱의 프로젝트 구조와 동일합니다. 호스트된 Blazor WebAssembly 솔루션의 추가 파일:
- "Server" 프로젝트에는 날씨 데이터를 "
Controllers/WeatherForecastController.cs" 프로젝트의 Client 구성 요소로 반환하는FetchData의 일기 예보 컨트롤러가 포함되어 있습니다. - "Shared" 프로젝트에는 "
WeatherForecast.cs" 및 "Client" 프로젝트의 날씨 데이터를 나타내는 Server의 일기 예보 클래스가 포함되어 있습니다.
Blazor WebAssembly
Blazor WebAssembly 프로젝트 템플릿: blazorwasm
Blazor WebAssembly 템플릿은 Blazor WebAssembly 앱의 초기 파일 및 디렉터리 구조를 만듭니다. 이 앱은 정적 자산에서 데이터를 로드하는 FetchData 구성 요소의 데모 코드, weather.json, Counter 구성 요소와의 사용자 상호 작용으로 채워집니다.
Pages폴더: 앱의 라우팅 가능한 Blazor 구성 요소(Razor)를 포함합니다.razor. 각 페이지에 대한 경로는@page지시어를 사용하여 지정합니다. 이 템플릿은 다음 구성 요소를 포함합니다.-
Counter구성 요소(Counter.razor): 카운터 페이지를 구현합니다. -
FetchData구성 요소(FetchData.razor): 데이터 가져오기 페이지를 구현합니다. -
Index구성 요소(Index.razor): Home 페이지를 구현합니다.
-
Properties폴더: 파일에 개발 환경 구성을 저장합니다launchSettings.json.Shared폴더: 다음 공유 구성 요소 및 스타일시트를 포함합니다.-
MainLayout구성 요소(MainLayout.razor): 앱의 레이아웃 구성 요소 -
MainLayout.razor.css: 앱의 기본 레이아웃에 대한 스타일시트입니다. -
NavMenu구성 요소(NavMenu.razor): 사이드바 탐색을 구현합니다. 다른NavLink구성 요소의 탐색 링크를 렌더링하는 (NavLink)를 포함합니다. NavLink 구성 요소는 해당 구성 요소가 로드될 때 선택된 상태를 자동으로 나타내므로 사용자가 현재 표시되는 구성 요소를 파악하는 데 도움이 됩니다. -
NavMenu.razor.css: 앱의 탐색 메뉴에 대한 스타일시트입니다. -
SurveyPrompt구성 요소(SurveyPrompt.razor): Blazor 설문 조사 구성 요소입니다.
-
wwwroot폴더: 폴더입니다.index.html웹 페이지는 HTML 페이지로 구현된 앱의 루트 페이지입니다.- 앱의 페이지를 처음 요청되면 이 페이지가 렌더링되어 응답으로 반환됩니다.
- 이 페이지는 루트
App구성 요소가 렌더링되는 위치를 지정합니다. 구성 요소는div의id를 사용하는appDOM 요소(<div id="app">Loading...</div>)의 위치에서 렌더링됩니다.
_Imports.razor: 네임스페이스에 대한 지시문과 같이 Razor 앱의 구성 요소().razor에 포함할 공통@using지시문을 포함합니다.App.razor: 구성 요소를 사용하여 Router 클라이언트 쪽 라우팅을 설정하는 앱의 루트 구성 요소입니다. Router 구성 요소는 브라우저 탐색을 가로채서 요청된 주소와 일치하는 페이지를 렌더링합니다.Program.cs: WebAssembly 호스트를 설정하는 앱의 진입점:-
App구성 요소는 앱의 루트 구성 요소입니다.App구성 요소는div의id를 사용하여 루트 구성 요소 컬렉션(app)에 대한<div id="app">Loading...</div>DOM 요소(wwwroot/index.html의builder.RootComponents.Add<App>("#app"))로 지정됩니다. -
서비스가 추가되고 구성됩니다(예:
builder.Services.AddSingleton<IMyDependency, MyDependency>()).
-
추가 옵션이 구성되면 Blazor WebAssembly 프로젝트 템플릿에서 생성된 앱에 추가 파일 및 폴더가 나타날 수 있습니다. 예를 들어 ASP.NET Core Identity로 앱을 생성하면 인증 및 권한 부여 기능에 대한 추가 자산이 포함됩니다.
호스트된 Blazor WebAssembly 솔루션에는 다음 ASP.NET Core 프로젝트가 포함됩니다.
- "Client": Blazor WebAssembly 앱.
- "Server": 클라이언트에 Blazor WebAssembly 앱 및 날씨 데이터를 제공하는 앱입니다.
- "Shared": 공통 클래스, 메서드 및 리소스를 유지하는 프로젝트입니다.
솔루션은 Blazor WebAssembly 확인란을 선택하거나 .NET CLI의 명령을 사용하는 -ho|--hosted 옵션을 사용하여 Visual Studio의 dotnet new blazorwasm 프로젝트 템플릿에서 생성됩니다. 자세한 내용은 ASP.NET Core용 도구를 참조하세요 Blazor.
호스트된 Blazor Webassembly 솔루션("Client" 프로젝트)의 클라이언트 쪽 앱의 프로젝트 구조는 독립 실행형 Blazor WebAssembly 앱의 프로젝트 구조와 동일합니다. 호스트된 Blazor WebAssembly 솔루션의 추가 파일:
- "Server" 프로젝트에는 날씨 데이터를 "
Controllers/WeatherForecastController.cs" 프로젝트의 Client 구성 요소로 반환하는FetchData의 일기 예보 컨트롤러가 포함되어 있습니다. - "Shared" 프로젝트에는 "
WeatherForecast.cs" 및 "Client" 프로젝트의 날씨 데이터를 나타내는 Server의 일기 예보 클래스가 포함되어 있습니다.
Blazor WebAssembly
Blazor WebAssembly 프로젝트 템플릿: blazorwasm
Blazor WebAssembly 템플릿은 Blazor WebAssembly 앱의 초기 파일 및 디렉터리 구조를 만듭니다. 이 앱은 정적 자산에서 데이터를 로드하는 FetchData 구성 요소의 데모 코드, weather.json, Counter 구성 요소와의 사용자 상호 작용으로 채워집니다.
Pages폴더: 앱의 라우팅 가능한 Blazor 구성 요소(Razor)를 포함합니다.razor. 각 페이지에 대한 경로는@page지시어를 사용하여 지정합니다. 이 템플릿은 다음 구성 요소를 포함합니다.-
Counter구성 요소(Counter.razor): 카운터 페이지를 구현합니다. -
FetchData구성 요소(FetchData.razor): 데이터 가져오기 페이지를 구현합니다. -
Index구성 요소(Index.razor): Home 페이지를 구현합니다.
-
Properties폴더: 파일에 개발 환경 구성을 저장합니다launchSettings.json.Shared폴더: 다음 공유 구성 요소 및 스타일시트를 포함합니다.-
MainLayout구성 요소(MainLayout.razor): 앱의 레이아웃 구성 요소 -
MainLayout.razor.css: 앱의 기본 레이아웃에 대한 스타일시트입니다. -
NavMenu구성 요소(NavMenu.razor): 사이드바 탐색을 구현합니다. 다른NavLink구성 요소의 탐색 링크를 렌더링하는 (NavLink)를 포함합니다. NavLink 구성 요소는 해당 구성 요소가 로드될 때 선택된 상태를 자동으로 나타내므로 사용자가 현재 표시되는 구성 요소를 파악하는 데 도움이 됩니다. -
NavMenu.razor.css: 앱의 탐색 메뉴에 대한 스타일시트입니다. -
SurveyPrompt구성 요소(SurveyPrompt.razor): Blazor 설문 조사 구성 요소입니다.
-
wwwroot폴더: 폴더입니다.index.html웹 페이지는 HTML 페이지로 구현된 앱의 루트 페이지입니다.- 앱의 페이지를 처음 요청되면 이 페이지가 렌더링되어 응답으로 반환됩니다.
- 이 페이지는 루트
App구성 요소가 렌더링되는 위치를 지정합니다. 구성 요소는div의id를 사용하는appDOM 요소(<div id="app">Loading...</div>)의 위치에서 렌더링됩니다.
_Imports.razor: 네임스페이스에 대한 지시문과 같이 Razor 앱의 구성 요소().razor에 포함할 공통@using지시문을 포함합니다.App.razor: 구성 요소를 사용하여 Router 클라이언트 쪽 라우팅을 설정하는 앱의 루트 구성 요소입니다. Router 구성 요소는 브라우저 탐색을 가로채서 요청된 주소와 일치하는 페이지를 렌더링합니다.Program.cs: WebAssembly 호스트를 설정하는 앱의 진입점:-
App구성 요소는 앱의 루트 구성 요소입니다.App구성 요소는div의id를 사용하여 루트 구성 요소 컬렉션(app)에 대한<div id="app">Loading...</div>DOM 요소(wwwroot/index.html의builder.RootComponents.Add<App>("#app"))로 지정됩니다. -
서비스가 추가되고 구성됩니다(예:
builder.Services.AddSingleton<IMyDependency, MyDependency>()).
-
추가 옵션이 구성되면 Blazor WebAssembly 프로젝트 템플릿에서 생성된 앱에 추가 파일 및 폴더가 나타날 수 있습니다. 예를 들어 ASP.NET Core Identity로 앱을 생성하면 인증 및 권한 부여 기능에 대한 추가 자산이 포함됩니다.
호스트된 Blazor WebAssembly 솔루션에는 다음 ASP.NET Core 프로젝트가 포함됩니다.
- "Client": Blazor WebAssembly 앱.
- "Server": 클라이언트에 Blazor WebAssembly 앱 및 날씨 데이터를 제공하는 앱입니다.
- "Shared": 공통 클래스, 메서드 및 리소스를 유지하는 프로젝트입니다.
솔루션은 Blazor WebAssembly 확인란을 선택하거나 .NET CLI의 명령을 사용하는 -ho|--hosted 옵션을 사용하여 Visual Studio의 dotnet new blazorwasm 프로젝트 템플릿에서 생성됩니다. 자세한 내용은 ASP.NET Core용 도구를 참조하세요 Blazor.
호스트된 Blazor Webassembly 솔루션("Client" 프로젝트)의 클라이언트 쪽 앱의 프로젝트 구조는 독립 실행형 Blazor WebAssembly 앱의 프로젝트 구조와 동일합니다. 호스트된 Blazor WebAssembly 솔루션의 추가 파일:
- "Server" 프로젝트에는 날씨 데이터를 "
Controllers/WeatherForecastController.cs" 프로젝트의 Client 구성 요소로 반환하는FetchData의 일기 예보 컨트롤러가 포함되어 있습니다. - "Shared" 프로젝트에는 "
WeatherForecast.cs" 및 "Client" 프로젝트의 날씨 데이터를 나타내는 Server의 일기 예보 클래스가 포함되어 있습니다.
Blazor WebAssembly
Blazor WebAssembly 프로젝트 템플릿: blazorwasm
Blazor WebAssembly 템플릿은 Blazor WebAssembly 앱의 초기 파일 및 디렉터리 구조를 만듭니다. 이 앱은 정적 자산에서 데이터를 로드하는 FetchData 구성 요소의 데모 코드, weather.json, Counter 구성 요소와의 사용자 상호 작용으로 채워집니다.
Pages폴더: 앱의 라우팅 가능한 Blazor 구성 요소(Razor)를 포함합니다.razor. 각 페이지에 대한 경로는@page지시어를 사용하여 지정합니다. 이 템플릿은 다음 구성 요소를 포함합니다.-
Counter구성 요소(Counter.razor): 카운터 페이지를 구현합니다. -
FetchData구성 요소(FetchData.razor): 데이터 가져오기 페이지를 구현합니다. -
Index구성 요소(Index.razor): Home 페이지를 구현합니다.
-
Properties폴더: 파일에 개발 환경 구성을 저장합니다launchSettings.json.Shared폴더: 다음 공유 구성 요소를 포함합니다.-
MainLayout구성 요소(MainLayout.razor): 앱의 레이아웃 구성 요소 -
NavMenu구성 요소(NavMenu.razor): 사이드바 탐색을 구현합니다. 다른NavLink구성 요소의 탐색 링크를 렌더링하는 (NavLink)를 포함합니다. NavLink 구성 요소는 해당 구성 요소가 로드될 때 선택된 상태를 자동으로 나타내므로 사용자가 현재 표시되는 구성 요소를 파악하는 데 도움이 됩니다. -
SurveyPrompt구성 요소(SurveyPrompt.razor): Blazor 설문 조사 구성 요소입니다.
-
wwwroot폴더: 폴더입니다.index.html웹 페이지는 HTML 페이지로 구현된 앱의 루트 페이지입니다.- 앱의 페이지를 처음 요청되면 이 페이지가 렌더링되어 응답으로 반환됩니다.
- 이 페이지는 루트
App구성 요소가 렌더링되는 위치를 지정합니다. 구성 요소는appDOM 요소(<app>Loading...</app>)의 위치에서 렌더링됩니다.
_Imports.razor: 네임스페이스에 대한 지시문과 같이 Razor 앱의 구성 요소().razor에 포함할 공통@using지시문을 포함합니다.App.razor: 구성 요소를 사용하여 Router 클라이언트 쪽 라우팅을 설정하는 앱의 루트 구성 요소입니다. Router 구성 요소는 브라우저 탐색을 가로채서 요청된 주소와 일치하는 페이지를 렌더링합니다.Program.cs: WebAssembly 호스트를 설정하는 앱의 진입점:-
App구성 요소는 앱의 루트 구성 요소입니다.App구성 요소는 루트 구성 요소 컬렉션(app)에 대한<app>Loading...</app>DOM 요소(wwwroot/index.html의builder.RootComponents.Add<App>("app"))로 지정됩니다. -
서비스가 추가되고 구성됩니다(예:
builder.Services.AddSingleton<IMyDependency, MyDependency>()).
-
추가 옵션이 구성되면 Blazor WebAssembly 프로젝트 템플릿에서 생성된 앱에 추가 파일 및 폴더가 나타날 수 있습니다. 예를 들어 ASP.NET Core Identity로 앱을 생성하면 인증 및 권한 부여 기능에 대한 추가 자산이 포함됩니다.
호스트된 Blazor WebAssembly 솔루션에는 다음 ASP.NET Core 프로젝트가 포함됩니다.
- "Client": Blazor WebAssembly 앱.
- "Server": 클라이언트에 Blazor WebAssembly 앱 및 날씨 데이터를 제공하는 앱입니다.
- "Shared": 공통 클래스, 메서드 및 리소스를 유지하는 프로젝트입니다.
솔루션은 Blazor WebAssembly 확인란을 선택하거나 .NET CLI의 명령을 사용하는 -ho|--hosted 옵션을 사용하여 Visual Studio의 dotnet new blazorwasm 프로젝트 템플릿에서 생성됩니다. 자세한 내용은 ASP.NET Core용 도구를 참조하세요 Blazor.
호스트된 Blazor Webassembly 솔루션("Client" 프로젝트)의 클라이언트 쪽 앱의 프로젝트 구조는 독립 실행형 Blazor WebAssembly 앱의 프로젝트 구조와 동일합니다. 호스트된 Blazor WebAssembly 솔루션의 추가 파일:
- "Server" 프로젝트에는 날씨 데이터를 "
Controllers/WeatherForecastController.cs" 프로젝트의 Client 구성 요소로 반환하는FetchData의 일기 예보 컨트롤러가 포함되어 있습니다. - "Shared" 프로젝트에는 "
WeatherForecast.cs" 및 "Client" 프로젝트의 날씨 데이터를 나타내는 Server의 일기 예보 클래스가 포함되어 있습니다.
스크립트의 Blazor 위치
Blazor 스크립트는 자동 압축 및 고유 식별을 통해 정적 웹 자산으로 제공됩니다. 자세한 내용은 ASP.NET Core Blazor 정적 파일참조하세요.
에서 Blazor Web AppBlazor 스크립트는 파일에 있습니다.Components/App.razor
<script src="@Assets["_framework/blazor.web.js"]"></script>
Blazor Server 앱 Blazor 에서 스크립트는 파일에 있습니다.Pages/_Host.cshtml
<script src="_framework/blazor.server.js"></script>
Blazor 스크립트는 ASP.NET Core 공유 프레임워크의 포함 리소스에서 제공됩니다.
에서 Blazor Web AppBlazor 스크립트는 파일에 있습니다.Components/App.razor
<script src="_framework/blazor.web.js"></script>
Blazor Server 앱 Blazor 에서 스크립트는 파일에 있습니다.Pages/_Host.cshtml
<script src="_framework/blazor.server.js"></script>
Blazor 스크립트는 ASP.NET Core 공유 프레임워크의 포함 리소스에서 제공됩니다.
Blazor Server 앱 Blazor 에서 스크립트는 파일에 있습니다.Pages/_Host.cshtml
<script src="_framework/blazor.server.js"></script>
Blazor 스크립트는 ASP.NET Core 공유 프레임워크의 포함 리소스에서 제공됩니다.
Blazor Server 앱 Blazor 에서 스크립트는 파일에 있습니다.Pages/_Layout.cshtml
<script src="_framework/blazor.server.js"></script>
Blazor 스크립트는 ASP.NET Core 공유 프레임워크의 포함 리소스에서 제공됩니다.
Blazor Server 앱 Blazor 에서 스크립트는 파일에 있습니다.Pages/_Host.cshtml
<script src="_framework/blazor.server.js"></script>
앱 Blazor Web App 또는 Blazor Server 앱의 경우 앱이 게시될 때 스크립트를 자동으로 포함 Razor 하려면 프로젝트에 하나 .razor 이상의 구성 요소 파일(Blazor)이 포함되어야 합니다. 프로젝트에 최소한 하나의 Razor 구성 요소가 포함되어 있지 않은 경우, 앱의 프로젝트 파일에서 RequiresAspNetWebAssets 스크립트를 포함하기 위해 true MSBuild 속성을 설정하십시오Blazor.
<RequiresAspNetWebAssets>true</RequiresAspNetWebAssets>
Blazor WebAssembly 앱 Blazor 에서 스크립트 콘텐츠는 파일에 있습니다.wwwroot/index.html
<script src="_framework/blazor.webassembly#[.{fingerprint}].js"></script>
앱이 게시되면 {fingerprint} 자리 표시자는 캐시 파열을 위한 고유한 해시로 자동으로 바뀝 있습니다.
<script src="_framework/blazor.webassembly.js"></script>
<head> 위치 및 <body> 콘텐츠
Blazor Web App
<head>
<body> 에서 콘텐츠는 파일에 있습니다Components/App.razor.
앱 Blazor Server<head> 에서 <body> 콘텐츠는 파일에 있습니다Pages/_Host.cshtml.
앱 Blazor Server<head> 에서 <body> 콘텐츠는 파일에 있습니다Pages/_Layout.cshtml.
앱 Blazor Server<head> 에서 <body> 콘텐츠는 파일에 있습니다Pages/_Host.cshtml.
앱 Blazor WebAssembly<head> 에서 <body> 콘텐츠는 파일에 있습니다wwwroot/index.html.
이중 Blazor Server/Blazor WebAssembly 앱
Blazor Server 앱 또는 Blazor WebAssembly 앱으로 실행할 수 있는 앱을 만드는 한 가지 방법은 모든 앱 논리 및 구성 요소를 RCL(Razor 클래스 라이브러리)에 배치하고 별도의 Blazor Server 프로젝트와 Blazor WebAssembly 프로젝트에서 RCL을 참조하는 것입니다. 호스팅 모델에 따라 구현이 다른 공통 서비스의 경우 RCL에서 서비스 인터페이스를 정의하고 Blazor Server 및 Blazor WebAssembly 프로젝트에서 서비스를 구현합니다.
추가 리소스
ASP.NET Core