prosource

뷰 엔진이란?실제로는 어떤 역할을 합니까?

probook 2023. 10. 15. 17:28
반응형

뷰 엔진이란?실제로는 어떤 역할을 합니까?

ASP를 배우기 시작했습니다.NET MVC3.

그래서 온라인과 책에서 튜토리얼을 읽다가 '뷰 엔진'이라는 용어를 자주 접하게 되었습니다.난 그게 뭔지 몰라.

실제로는 어떤 역할을 합니까?

왜 그것이 나에게 전혀 문제가 되지 않습니까?

뷰 엔진은 사용자의 뷰에서 HTML을 작성하는 역할을 합니다.뷰는 보통 HTML과 프로그래밍 언어의 일종의 혼합입니다.이들 대부분의 패턴은 투스텝 뷰(two-step view.

예를 들어 ASP.NET은 자체 뷰 엔진을 기본으로 제공합니다.입니다와 태그가 입니다.<% %>그리고.<%: %>. 합니다..aspx파일 확장자

ASP랑.NET MVC3, 또 다른 즉시 사용 가능한 뷰 엔진인 Razor가 추가되었으며, 이 엔진은 더욱 매력적인 구문을 가지고 있습니다.<div>@Model.UserName</div>.

뷰 엔진의 특징 집합이 상당히 다르기 때문에 뷰 엔진을 선택하는 것이 중요합니다.예를 들어 일부는 PDF 파일로의 렌더링을 지원하며 일부는 웹 컨텍스트 외부에서 사용할 수 없습니다(이전 ASP의 경우에도 해당됨).NET 뷰 엔진), 다른 것들은 가능합니다(예: 레이저).뷰를 '오프라인'으로 렌더링하는 것은 사용자가 뷰를 작성하는 방식과 동일한 방식으로 HTML 이메일을 작성하고자 할 때 유용하며, 이러한 이메일은 웹 애플리케이션이 아닌 백그라운드 작업자로부터 전송되어야 합니다.

SO에서 asp.net 뷰 엔진을 비교해 볼 수 있습니다.

좋은 소식은 ASP에서 여러 뷰 엔진을 병렬로 사용할 수 있다는 것입니다.NET MVC, 꼭 필요한 경우가 아니면 추천하고 싶지 않습니다.

레이저 엔진에는 이미 아주 멋진 확장 지점들이 있습니다.예를 들어, 사용자 정의 뷰 기본 클래스를 제공할 수 있습니다. 이는 사용자 정의 뷰 기본 클래스를 제공하는 강력한 개념으로, 그렇지 않으면 처리해야 할 세부적인 사항을 모두 처리하지 않고도 많은 기능을 적재적소에 쉽게 추가할 수 있습니다.

저는 지금 레이저를 찾고 있습니다.

뷰 엔진은 뷰를 렌더링하고 코드를 명예로운 HTML로 변환하는 역할을 합니다. 따라서 뷰에 코드를 작성하는 방법에 직접적인 책임이 있습니다.

기본적으로 두 가지를 신경써야 합니다.ASPX와 레이저.면도기는 MVC3에서만 지원되는 비용으로 훨씬 더 날렵하고 쉽게 사용할 수 있다고 생각합니다.

예를 들어 ASPX의 코드 블록은 다음과 같습니다.

<% foreach(var item in Model) { %>
    <tr>
        <td><%: item.Name %></td>
    </tr>
<% } %>

Razor equivalent는 다음과 같습니다.

@foreach(var item in Model) {
    <tr>
        <td>@item.Name</td>
    </tr>
}

MVC에서 View 엔진은 View 내부의 코드를 컴파일하여 브라우저에 유효한 HTML 출력을 제공하기 위해 View와 브라우저 사이에서 작동하는 엔진입니다.여러 뷰 엔진을 사용할 수 있으며 그 중 일부는 다음과 같습니다.

  1. ASPX

  2. 면도기

  3. 스파크

  4. NHaml

  5. ND 잔고

  6. 하시치

  7. 브레일

  8. 벨뷰

  9. 샤프타일

  10. 문자열 템플릿

  11. 윙 비츠

  12. 샤프DOM

현재 대부분의 개발자들은 매우 편리한 프로그래밍 방식을 제공하기 때문에 레이저 뷰 엔진을 사용하기를 선호합니다.이러한 뷰 엔진은 모두 ASP를 지원하지 않을 수 있습니다.NET MVC.

자세한 내용은 이 기사를 참조하십시오.

뷰 엔진은 MVC가 컨트롤러에 요청하는 뷰를 찾아 렌더링하는 데 사용하는 엔진입니다.기본 라우팅에 만족하는 경우 변경할 필요가 없지만 공유 파일을 일반적으로 root/view/shared에 위치시키고 대신 root/common에 위치시키기를 원했다면 이를 수행하기 위해 생성해야 하는 것은 사용자 지정 뷰 엔진입니다.

뷰 엔진을 만드는 방법은 여기에서 확인할 수 있습니다.

http://coderjournal.com/2009/05/creating-your-first-mvc-viewengine/

뷰 엔진은 뷰를 렌더링하는 역할도 수행하지만, MVC를 막 배우고 있기 때문에 렌더링 기능을 아직 변경할 필요는 없을 것입니다.

템플릿/뷰 엔진을 사용하면 응용프로그램에서 정적 템플릿 파일을 사용할 수 있습니다.런타임 시 템플릿 엔진은 템플릿 파일의 변수를 실제 값으로 바꾸고 템플릿을 클라이언트로 전송되는 HTML 파일로 변환합니다.이 방법을 사용하면 HTML 페이지를 보다 쉽게 설계할 수 있습니다.

View Engine은 HTML 페이지를 브라우저 또는 사용자에게 렌더링하기 위해 응용프로그램 내부에서 작동합니다.HTML 태그, 서버 컨트롤 및 일부 프로그래밍 언어를 포함할 수 있습니다.

MVC4 프레임워크에 선호되는 뷰 엔진은 레이저입니다.

ASP.Net MVC에서 View 엔진은 뷰가 제공하는 출력을 고려하여 브라우저에 유효한 HTML 출력을 제공하기 위해 뷰와 브라우저 사이에서 작동하는 엔진입니다.뷰 엔진에는 여러 종류가 있습니다.

1)ASPX

2)면도기

3)스파크

4)NHaml

5)ND 잔고

6)하시치

7)브레일

저는 http://questionbox.in/view-engine-asp-net-mvc-razor-view-engine-asp-net-mvc-web-form-aspx-view-engine-asp-net-mvc/ 에 있는 설명적인 게시물을 읽었습니다.

View 엔진은 HTML을 뷰에서 브라우저로 렌더링할 수 있는 기능을 제공합니다.

ASP에서 지원하는 뷰 엔진은 많습니다.NET MVC 그러나 가장 널리 사용되는 뷰 엔진은

  • 웹 양식 / ASPX 보기 엔진.
  • 레이저 뷰 엔진.

웹 폼 뷰 엔진 / ASPX 뷰 엔진:

  • Web Form View Engine / ASPX View Engine은 Asp.net MVC 프로젝트의 기본 뷰 엔진입니다.MVC 1.0부터 사용 가능
  • Web Form Engine의 네임스페이스는 Web입니다.Mvc.WebFormView엔진
  • 이 View Engine의 파일 확장명은 다음과 같은 웹 양식과 비슷합니다.

.aspx, 웹 양식 페이지와 같은 보기 .ascx, 사용자 컨트롤과 같은 부분 보기 & 편집기 템플릿 .master, 레이아웃 및 웹 양식의 마스터 페이지와 같은 마스터 페이지.

  • TDD(Test Driven Development)를 지원하지 않습니다.
  • 웹 양식 엔진은 XSS 공격을 방지하지 않습니다. 즉, 페이지를 렌더링하는 동안 데이터베이스에 저장된 스크립트가 모두 꺼집니다.
  • 구문: <%:html.ActionLink("홈", "인덱스") %>

레이저 뷰 엔진:

  • Razor View Engine은 MVC 3.0 이상 버전에서 사용 가능한 고급 뷰 엔진입니다.
  • ASPX 보기 엔진의 네임스페이스가 웹입니다.면도기.
  • 이 뷰 엔진의 파일 확장명은 .cshtml(Razor C#), 뷰, 부분 뷰, 편집기 템플릿 및 레이아웃 페이지. .vbhtml(Razor VB)입니다.NET), 보기, 부분 보기, 편집기 템플릿 및 레이아웃 페이지의 경우.
  • TDD(Test Driven Development)를 지원합니다.
  • 레이저 엔진은 웹폼 엔진과 비교했을 때 조금 느립니다.
  • Razor Engine은 XSS 공격(사이트 간 스크립팅 공격)을 방지하여 보기 위해 렌더링하기 전에 스크립트 또는 html 태그를 인코딩합니다.
  • 레이저 구문은 웹 양식 구문보다 이해하기 쉽고 훨씬 깨끗합니다.Razor는 @ 기호를 사용하여 다음과 같은 코드를 만듭니다.

    @Html.ActionLink("홈", "인덱스")

View Engine은 보기를 HTML 형식으로 브라우저에 렌더링합니다.의 MVC 애플리케이션에 대해 이야기하면,NetFramework는 다음과 같은 2가지 뷰 엔진을 지원합니다.

1. 레이저 뷰 엔진 2. 웹 양식/ASPX 보기 엔진

차이점 : 1. Razor View Engine은 Layouts를 사용하지만 ASPX View Engine은 Master 페이지를 사용합니다.

2.레이저 뷰 엔진은 부분 페이지를 사용하지만 ASPX 뷰 엔진은 웹 사용자 컨트롤을 사용합니다.

3.레이저 뷰 엔진은 언어가 아니라 마크업 구문입니다.

4.@' 기호는 Razor Engine에서 코드를 작성하는 데 사용됩니다.@Html.ActionLink("Login", "LoginView") '<%:' 구분자는 시작점으로 사용하고 '%>'는 종료점으로 사용합니다.ASPX Engine에서 그들 사이의 코드를 작성할 수 있습니다.

5.Razor View Engine에는 뷰, 레이아웃 및 부분 뷰에 대한 .cshtml(C# 포함) 및 .vbhtml(VB 포함) 확장 기능이 있습니다.ASPX View Engine은 뷰용 .aspx, UserControls용 .acsx, Master Pages용 .master와 같은 단순한 웹 응용 프로그램과 유사한 확장 기능을 가지고 있습니다.

지금까지 모든 응답은 ASP와 관련이 있습니다.NET. nodejs에 대한 뷰 엔진을 찾고 있는 경우 다음 중 몇 가지 옵션이 있습니다.

Jade (Pug)
express-handlebars
ejs
React

제가 https://github.com/expressjs/express/wiki#template-engines 에서 찾은 전체 목록이 있지만, 위 목록은 제가 가장 많이 듣는 것 같습니다.

두 개의 보기 엔진:

ASPX

ASPX 보기 엔진, 서버측 스크립트는 [%%] 사이에 래핑됩니다.ASPX는 그 확장입니다.

면도기

우리가 쓰는 면도기 @.HTML과 코드 간 전환이 가능합니다.레이저 뷰 확장.CSHTML 및 .VBHTML

언급URL : https://stackoverflow.com/questions/8308485/what-is-view-engine-what-does-it-actually-do

반응형