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