Razor / CSHTML-우리가 가진 것보다 어떤 이점이 있습니까?
새로운 CSHTML 페이지 기능을 사용하는 사람은 누구나 기존 ASP.NET MVC 기본보기 엔진이나 웹 양식보다이 새로운보기 엔진 구문을 선호한다는 것을 알고 있습니다. 그렇다면 그 이유는 무엇입니까? CSHTML은 MVC 또는 웹 양식에 비해 이점이 있습니까? 아니면 그 반대의 경우도 마찬가지입니까?
사람들의 의견이 궁금합니다.
이점 중 하나는 Razor 뷰를 단위 테스트 내에서 렌더링 할 수 있다는 것입니다. 이것은 이전 ASP.Net 렌더러에서는 쉽게 불가능했던 것입니다.
에서 ScottGu의 발표 이 설계 목표 중 하나로 표시됩니다 :
단위 테스트 가능 : 새보기 엔진 구현은 단위 테스트보기 기능을 지원합니다 (컨트롤러 또는 웹 서버가 필요하지 않고 모든 단위 테스트 프로젝트에서 호스팅 될 수 있습니다. 특별한 앱 도메인이 필요하지 않음).
전 Microsoft 개발자의 의견
저는 MSDN 웹 사이트의 핵심 팀에서 일했습니다. 이제 프로그래밍 팀과 함께 전자 상거래 사이트에 c # razor를 사용하고 백엔드 c # razor 페이지 및 LINQ-Entity 메모리 데이터베이스가있는 jQuery 프런트 엔드에 집중하여 쿼리가있는 중첩 된 for 루프에서도 페이지가 1-2 밀리 초의 응답 시간을 갖습니다. 페이지 캐싱이 없습니다. 우리는 MVC를 사용하지 않고 ASPX 페이지 나 ViewState 또는 서버 측 이벤트 프로그래밍이 전혀없는 IIS 7 용 URL 다시 쓰기 모듈로 매핑되는 면도기 페이지가있는 일반 ASP.NET을 사용합니다. MVC가 도전 된 정규식에 대한 코드 구성에 넣는 추가 (불필요한) 레이어가 없습니다. 적은 것이 우리에게 더 좋습니다. 모두 가늘고 의미가 있지만 테스트 가능성을 위해 MVC에 소품을 제공하지만 그게 전부입니다.
Razor 페이지에는 ASPX 페이지와 같은 이벤트 수명주기가 없습니다. 하나의 요청 된 페이지로 렌더링됩니다. C #은 매우 훌륭한 언어이며 Razor는 그 일을 할 수 있도록 멋지게 벗어납니다. 제네릭 및 linq를 사용한 익명 타이핑은 C # 및 면도기 페이지로 작업을 매우 쉽게 만듭니다. Razor 페이지를 사용하면 더 가볍게 생각하고 코딩 할 수 있습니다.
Razor 및 MVC의 단점 중 하나는 ViewState와 유사한 지속성이 없다는 것입니다. 이에 대한 솔루션을 구현해야 했으므로 여기에 jQuery 플러그인을 작성했습니다.-> http://www.jasonsebring.com/dumbFormState 는 모든 전공에서 작동하는 양식 상태에 대한 HTML 5 오프라인 저장소 지원 플러그인입니다. 지금 브라우저. 현재는 양식 상태에 해당하지만 window.sessionStorage 또는 window.localStorage를 사용하여 포스트 백 또는 페이지 요청에 걸쳐 모든 종류의 상태를 매우 간단하게 저장할 수 있습니다. URL 및 양식 색인을 기반으로 자동 저장하고 네임 스페이스를 지정하는 데 신경을 썼습니다. 그것에 대해 생각할 필요가 없습니다.
모든 것이 기본적으로 인코딩됩니다 !!! 이것은 꽤 큽니다.
선언적 도우미는 컴파일 할 수 있으므로 공유하기 위해 특별한 작업을 수행 할 필요가 없습니다. 나는 그들이 .ascx 컨트롤을 어느 정도 대체 할 것이라고 생각합니다. 다른 프로젝트에서 .ascx 컨트롤을 사용하려면 몇 가지 문제를 해결해야합니다.
필요한 섹션을 만들 수 있습니다.
가장 큰 이점은 코드가 더 간결하다는 것입니다. VS 편집기는 다른 뷰 엔진 중 일부에는없는 IntelliSense 지원도 제공합니다.
선언적 HTML 도우미는 C # 코드 내에서 HTML 도우미를 수행하면 ASP.NET의 사용자 지정 컨트롤을 떠올리게하므로 매우 멋져 보입니다. 나는 그들이 부분에서 페이지를 가져 갔지만 인라인 코드를 가지고 있다고 생각합니다.
따라서 asp.net 뷰 엔진에 비해 확실한 이점이 있습니다.
하지만 스파크와 같은 뷰 엔진과는 대조적으로 :
Spark는 여전히 더 간결하므로 html 태그 자체 내에 if 및 루프를 유지할 수 있습니다. 마크 업은 여전히 나에게 더 자연스럽게 느껴집니다.
선언적 도우미를 수행하는 방식으로 부분을 정확히 코딩 할 수 있습니다. 변수를 부분에 전달하면 똑같은 결과를 얻을 수 있습니다. 이것은 꽤 오랫동안 스파크와 함께했습니다.
참고 URL : https://stackoverflow.com/questions/3423732/razor-cshtml-any-benefit-over-what-we-have
'Development Tip' 카테고리의 다른 글
수업 전 Junit (비 정적) (0) | 2020.10.19 |
---|---|
빈혈 도메인 모델 피하기-실제 예 (0) | 2020.10.19 |
VB 프로젝트를 C # 프로젝트로 변환하는 방법 (0) | 2020.10.19 |
데이터베이스 스키마 변경 후 LINQ to SQL 클래스를 업데이트하는 가장 좋은 방법 (0) | 2020.10.19 |
Android에서 Simple HTTP 클라이언트를 어떻게 사용합니까? (0) | 2020.10.19 |