ASP.NET 환경에서 Razor와 Blazor
Razor
Razor는 HTML와 임베디드를 사용해서 웹 페이지를 동적으로 생성하는 걸 가능하게 하는 Server-side 마크업 언어(Markup Syntax)다.
Razor는 Razor 페이지를 통해서 웹페이지를 생성한다. 웹 페이지 템플릿 파일은 C#과 VB으로 작성된다.
- VB코드로 작성된 razor 페이지의 확장자 .vbhtml
- C# 코드로 작성된 razor 페이지의 확장자 .cshtml
Blazor
Blazor는 .NET 프로그래밍 언어를 사용하여 클라이언트 사이드 반응형 애플리케이션을 빌드할 수 있도록 지원하는 웹 애플리케이션 프레임워크다. Blazor로 빌드된 single-page application(SPA)은 웹 브라우저 안에서 실행된다.
또한 Blazor를 사용하면 개발자는 JavaScript를 통합할 필요 없이 C#, HTML, 및 CSS를 사용해서 재사용 가능한 반응형 클라이언트 웹 구성 요소를 만들 수 있다. 또한 해당 구성 요소는 C#으로 작성되므로 필요에 따라 구현 세부 정보가 클라이언트와 서버 간에 유연하게 이동 가능하다.
Blazor가 Razor를 사용한다.
Blazor는 Razor 구문을 완벽하게 지원한다. Razor의 모든 마크업 기능을 이용해서 Blazor 앱을 빌드할 수 있다.
@page "/HelloWorld"
<h1>
Example Component
</h1>
@foreach(var person in People){
<h2>person.FirstName</h2>
}
Razor와 Blazor의 연결점
Blazor의 이름 자체가 "browser"와 "razor"의 결합을 의미한다.
이름 그대로 brower에서 실행되는 razor이다.
Blazor안에서 사용되는 Razor에 대해서 명확하게 짚고 넘어갈 필요가 있다.
Razor는 전체페이지가 아니라 컴포넌트(button, page elements, etc)를 구성하는 역할을 한다.
Blazor 프로젝트 안에 Razor 파일이 있고 구성요소들도 Blazor Component가 아니라 Razor Componenet라고 불린다.
(해당 용어가 혼재돼서 사용되는 편이니 주의하자.)
정리하면서
Razor는 API 로직과 서버 사이드 템플릿을 처리할 수 있지만 JavaScript 기반이 아닌 클라이언트 사이드 로직은 처리할 수 없다. Blazor는 프로그래머에게 C#만으로 클라이언트와 서버 양쪽 모두 처리가 가능하다.
Razor는 템플릿을 위한 마크업 구문이다. 서버 사이드 코드를 HTML로 통합한다.
Blazor는 상황에 따라 Blazor WebAssembly 또는 Blazor Server 양쪽에서 실행이 가능한 SPA 프레임워크이다.
참고 페이지
'프로그래밍 > Blazor' 카테고리의 다른 글
Blazor에서 OnInitialized() 함수가 두 번 호출되는 이유 (26) | 2023.05.18 |
---|---|
Blazor에서 Timepicker UI 생성하기 (28) | 2023.05.18 |
Blazor 사용을 결정한 이유 (7) | 2023.05.16 |
Blazor에서 @code{}와 @{}에 대해서 (6) | 2023.05.15 |
Blazor Server App을 Ubuntu에 배포하기 (14) | 2023.05.12 |
댓글