Asp.Net Core 는 닷넷의 웹앱 프레임워크인데, 아래와 같은 것을 할 수 있습니다.
Web Api 서버
Web Api 프로젝트 템플릿을 선택하면 됩니다.
WAS 서버 (모두 Web Api 기능 포함)
MVC, Web App, Blazor Server(.net 8.0 부터는 Blazor Web App으로 변경됨) 프로젝트 템플릿을 선택하면 됩니다.
클라이언트 기술을 여쭤 보시는 것 같습니다.
닷넷은 HttpClient 객체를 제공하는데, 이 객체를 사용하면 어떤 앱도 클라이언트가 될 수 있습니다.
이 객체와 닷넷의 UI 앱 프레임워크를 함께 사용하면 UI를 갖춘 클라이언트 앱을 만들 수 있겠죠?
웹 프론트 엔드
Blazor Webassembly 가 일반적인 프론트 앱 역할을 합니다.
윈도우 데스크탑 앱
WPF, Winform, … 등등… C#이 강한 분야입니다.
크로스 플랫폼 앱
MAUI로 Mac(Mac Catalyst), iOS, Android, Window 용 UI 앱을 만들 수 있습니다.
2, 3 번 프레임워크들은 UI 구성을 XAML 이라고 불리는 xml 파일로 작성합니다.
블레이저
블레이저는 Html 생성 도구로서, 전통적인 프론트 엔드 기술 - Html, Css, Javascript, JQuery - 과 C# 코드로 웹 페이지를 만들 수 있는 기술입니다.
쉽게 얘기하면, 자바스크립트 혹은 제이쿼리의 역할을 C#이 한다고 생각하시면 됩니다.
물론 C#이 자바스크립트를 호출할 수도 있고, 그 반대로도 할 수 있습니다.
C# 웹 기술에는 레이저 페이지라는 것이 있는데, html 과 C# 조합으로 작성합니다.
블레이저는 이 레이저 페이지와 같은 문법으로 레이저 요소를 작성합니다.
레이저 요소는 페이지도 될 수 있고, html tag 처럼 사용할 수도 있습니다.
블래이저 호스팅
아시다시피 프론트 엔드 코드는 서버에 호스팅되어 서비스되고, 브라우저에서 실행됩니다…
Blazor 도 동일한데, 기본적으로 Webassembly 로 컴파일되어 배포됩니다.
따라서, Webassembly 를 지원하는 브라우저에서만 사용가능한데, 요즘은 지원하지 않은 것이 없죠.
그런데, 블레이저는 웹서버 호스팅 뿐만 아니라, 닷넷의 다른 UI 앱 프레임워크들도 Blazor 호스팅을 지원하고, 이를 실행할 WebView 콘트롤을 갖추고 있습니다.
즉, MAUI 도 WPF 도, Blazor 를 내부적으로 호스팅할 수 있고 Webview 콘트롤을 통해 이를 실행할 수 있는 것이죠.