asp.net-mvc
MVC 대 웹 양식
수색…
소개
ASP에 뛰어 들기 전에. NET MVC를 사용하여 웹 응용 프로그램을 개발하려면 프레임 워크의 장점과 비판을 고려해야하며 ASP .NET Web Forms 인 Microsoft에서 만들고 유지 관리하는 다른 웹 프레임 워크가 있어야합니다.
어느 것을 선택해야합니까? 두 기술에 대한 지식의 문제입니다.
통사론
ASPX View Engine은 "<% = %>"또는 "<% : %>"를 사용하여 서버 측 콘텐츠를 렌더링합니다.
Razor View Engine은 @를 사용하여 서버 측 콘텐츠를 렌더링합니다.
비고
ASP .NET Web Forms의 장점
그리드, 입력, 그래프, 트리 등을 처리하기위한 미리 빌드 컨트롤.
또한 HTTP를 통한 상태를 보존하는 이벤트 모델을 지원하므로 기간 업무 (LOB) 웹 응용 프로그램 개발에 도움이됩니다. Web Forms 기반 응용 프로그램은 수백 가지 서버 컨트롤에서 지원되는 수십 가지 이벤트를 제공합니다.
개별 페이지에 기능을 추가하는 페이지 컨트롤러 패턴을 사용합니다. 자세한 내용은 MSDN 웹 사이트의 Page Controller를 참조하십시오.
뷰 상태 또는 서버 기반 양식을 사용하므로 상태 정보를보다 쉽게 관리 할 수 있습니다.
신속한 응용 프로그램 개발을 위해 많은 수의 구성 요소를 활용하려는 소규모 웹 개발자 팀 및 디자이너에게 적합합니다.
일반적으로 컴포넌트 (페이지 클래스, 컨트롤 등)는 밀접하게 통합되어 있으며 일반적으로 MVC 모델보다 적은 코드가 필요하기 때문에 애플리케이션 개발에는 덜 복잡합니다.
WindowsForm 개발에서 오는 개발자를위한 쉬운 개발 모델입니다.
MVC 기반 웹 응용 프로그램의 장점
애플리케이션을 모델, 뷰 및 컨트롤러로 분리하여 복잡성을보다 쉽게 관리 할 수 있습니다 (관심 분리).
뷰 상태 또는 서버 기반 양식은 사용하지 않습니다. 따라서 MVC 프레임 워크는 응용 프로그램의 동작을 완벽하게 제어하려는 개발자에게 이상적입니다.
단일 컨트롤러를 통해 웹 응용 프로그램 요청을 처리하는 Front Controller 패턴을 사용합니다. 따라서 풍부한 라우팅 인프라를 지원하는 응용 프로그램을 설계 할 수 있습니다. 자세한 내용은 MSDN 웹 사이트의 Front Controller를 참조하십시오.
TDD (Test-Driven Development)에 대한 더 나은 지원을 제공합니다.
이 기능은 응용 프로그램 동작을 고도로 제어해야하는 대규모 개발자 팀과 웹 디자이너가 지원하는 웹 응용 프로그램에 적합합니다.
단점
웹 양식 :
- 복잡한 페이지 수명주기, 서버에 대한 요청이있을 때마다 이벤트 처리기 이전에 실행하는 방법은 적어도 5 가지가 있습니다.
- JQuery 또는 Angular와 같은 클라이언트 측 프레임 워크를 사용하여 작업 할 수있게되었습니다.
- Asyncronous Javascript and XML (AJAX)로 작업하기가 어렵습니다.
- Viewstate 핸들링
- 페이지의 클라이언트 측과 코드 배후가 밀접하게 결합됩니다.
MVC :
- Web Forms와 비교하여 개발하는 데 더 많은 시간이 걸립니다.
- 데이터는 일반 텍스트 형식으로 서버에 보내지 만 웹 양식에서는보기 상태 데이터가 기본적으로 암호화됩니다.
면도기 View Engine VS ASPX View Engine
면도기 (MVC) | ASPX (Web Forms) |
---|---|
Razor View Engine에서 사용하는 네임 스페이스는 System.Web.Razor입니다. | ASPX View Engine에서 사용하는 네임 스페이스는 System.Web.Mvc.WebFormViewEngine입니다. |
Razor View Engine에서 사용하는 파일 확장명은 웹 양식보기 엔진과 다릅니다. 뷰, 부분보기, 템플리트 및 레이아웃 페이지에 대해 C # 및 C # 및 vbhtml과 함께 cshtml을 사용합니다. | Web Form View Engines에서 사용하는 파일 확장명은 ASP.Net 웹 양식과 유사합니다. ASPX 확장을 사용하여 부분보기 또는 사용자 정의 컨트롤 또는 레이아웃 / 마스터 페이지의 템플릿과 마스터 확장에 대한 aspc 확장을 봅니다. |
Razor Engine은 TDD (Test Driven Development)를 지원합니다. | Web Form보기 엔진은 테스트 복잡성을 만들기 위해 System.Web.UI.Page 클래스에 의존하기 때문에 TDD (Test Driven Development)를 지원하지 않습니다. |
ASPX View Engine 대 면도기 View Engine