레이저 기반 MVC 대 MVC의 단일 페이지 애플리케이션 4.
저는 MVC 3 Razor 엔진을 사용하여 페이지를 렌더링하곤 했습니다.때때로 저는 레이저 렌더링 HTML을 전송하고 JQuery를 사용하여 페이지에 삽입하기 위해 AJAX 호출을 사용해야 했습니다.새로운 프로젝트가 시작됨에 따라, 우리는 우리에게 새로운 MVC 4 단일 페이지 애플리케이션 프레임워크를 활용하는 것을 고려하고 있습니다.나는 그것을 처음 한 번 보았는데, 그것은 나에게 복잡한 감정을 느끼게 했습니다.한편으로는 모든 데이터가 JSON에 의해 전송되고 클라이언트가 이를 렌더링하고 일부 UI 관련 로직을 인코딩하는 모든 작업을 수행하므로 서버 및 네트워크 성능에 유용합니다.반면에 클라이언트(HTML+JavaScript)는 마법의 끈과 숨겨진 관계로 인해 훨씬 무거워져 유지하기 어려울 것 같습니다.우리는 VS 지능형 보안 시스템에 익숙해졌습니다.SPA의 경우 클라이언트 스크립트와 Noken 바인딩 문으로 교환해야 하는 페이지를 렌더링하기 위한 NET 서버 코드입니다.
레이저와 비교하여 SPA를 사용하는 것에 대해 제가 여기서 언급한 명백한 장점과 단점이 있는지 궁금합니다.감사해요.
Razor는 SPA(Single Page Application)가 클라이언트(웹 브라우저)에서 사용되는 아키텍처 접근 방식인 서버 기반 기술입니다.둘 다 함께 사용할 수 있습니다.
SPA는 높은 수준에서 렌더링 및 데이터 검색을 클라이언트로 이동합니다.웹 서버는 데이터베이스 앞에 있는 서비스 계층이 됩니다.MVC 패턴은 SPA를 사용할 때 가장 잘 작동합니다.이를 위해 Knock.js 및 Backbone.js와 같은 프레임워크를 사용할 수 있습니다.최종 결과는 데스크톱과 같은 풍부한 응답성을 제공합니다.
이것을 달성하기 위해서는 하강 자바스크립트 프로그래머이거나 기꺼이 자바스크립트를 배울 필요가 있습니다.
네, 비즈니스 요구사항을 C#에서 Javascript로 이동하고 있습니다.Visual Studio에는 Javascript에 대한 지능형 기능이 제한되어 있습니다.자바스크립트를 신뢰하려면 유닛 테스트에 의존해야 합니다.긍정적인 측면은 풍부한 사용자 경험(지메일 또는 구글 지도)입니다.
이미 대부분의 절충안을 잘 알고 계신 것 같습니다. SPA를 사용하면 네트워크 부하를 줄일 수 있고 처리 방법을 고객에게 이전할 수 있습니다.그러나 코드의 복잡성이 증가하고 시스템을 쉽게 유지하기가 약간 어려워집니다(SPA에 내재된 아키텍처 문제가 아니라 복잡성이 증가했기 때문입니다).
또 하나 명심해야 할 것은 호환성입니다.제가 당신의 질문에 대한 제 의견에서 "잘못된 선택"을 언급한 이유는 자바스크립트가 비활성화된 사람들이 사이트를 사용할 수 있도록 유지하기 위해서는 여전히 정기적인 전체 페이지 뷰를 제공해야 하기 때문입니다.이것은 또한 SEO를 위해 좋은 생각입니다. 크롤러는 JS가 비활성화된 사용자로 사이트를 탐색한 다음 사이트를 색인화할 수 있습니다.그런 다음 사이트는 JS가 활성화된 사용자가 SPA에서 불필요하게 "JS 없음" 보기에 덤프되지 않고 동일한 내용을 보고 있음을 알 수 있도록 이러한 수신 URL을 적절하게 처리해야 합니다.
위에서 도움이 될 수 있는 가능성으로 언급할 다른 것이 있지만, 그것은 SPA의 이상을 깨뜨립니다. 즉, JSON 데이터가 아닌 일부 장소에서 Ajax로 로드된 부분을 사용하는 것입니다.예를 들어 사이트에 일반적인 "Contact EMail" 양식이 있다고 가정합니다. SPA의 컨텍스트 내에서 이 양식을 로드하고 싶지만 AJAX를 통해 부분을 로드하는 것이 더 쉬울 수 있습니다. (물론 그렇습니다. 이메일 양식에 표시할 필드를 설명하는 JSON 개체를 사용하여 이 작업을 수행할 수도 있습니다.)
또한 부분 및 Ajax를 통해 로드하기를 원하는 "데이터"보다 "콘텐츠"가 더 많을 수 있습니다.
SPA는 분명 흥미로운 프로젝트입니다. 제가 직접 개발하려고 합니다.저는 JSON과 부분적인 것을 섞어서 사용해봤지만, 그것은 당신 자신의 선택이 아닐 수도 있습니다.
언급URL : https://stackoverflow.com/questions/10526454/razor-based-mvc-vs-single-page-application-in-mvc-4
'source' 카테고리의 다른 글
최대 절전 모드 - 배치 삽입이 실제로 수행되는지 확인하는 방법 (0) | 2023.07.26 |
---|---|
routerLink 속성을 조건부로 비활성화하려면 어떻게 해야 합니까? (0) | 2023.07.26 |
Oracle Java ConcurrentHashMap의 잘못된 구현? (0) | 2023.07.26 |
어떤 매개 변수 세트가 사용되었습니까? (0) | 2023.07.26 |
두 문자열을 연결하기 위해 '+'를 사용하지 않을 이유가 있습니까? (0) | 2023.07.21 |