하나를 다른 것보다 사용하면 어떤 이점이 있습니까?
답변
ASP.net MVC 의 주요 장점 은 다음과 같습니다.
-
렌더링 된 HTML을 완전히 제어 할 수 있습니다.
-
우려 사항 (SoC)을 깨끗하게 분리합니다.
-
수 있도록 테스트 주도 개발 (TDD)은 .
-
JavaScript 프레임 워크와 쉽게 통합
-
웹의 무국적 특성 설계에 따라
-
SEO를 가능하게하는 RESTful URL.
-
ViewState 및 PostBack 이벤트가 없습니다.
ASP.net Web Form 의 주요 장점 은 다음과 같습니다.
-
RAD 개발을 제공합니다
-
winform 개발에서 온 개발자를위한 쉬운 개발 모델.
답변
ASP.NET Web Forms 및 MVC는 Microsoft에서 개발 한 두 가지 웹 프레임 워크입니다. 둘 다 좋은 선택입니다. 웹 프레임 워크 중 어느 것도 다른 프레임 워크로 대체되거나 단일 프레임 워크로 ‘병합’할 계획이 없습니다. 지속적인 지원 및 개발은 Microsoft와 병행하여 수행되며 어느 것도 사라지지 않을 것입니다.
이러한 각 웹 프레임 워크는 장점 / 단점을 제공하며 웹 응용 프로그램을 개발할 때 일부를 고려해야합니다. 웹 응용 프로그램은 두 기술 중 하나를 사용하여 개발할 수 있습니다. 특정 응용 프로그램의 개발이 한 기술을 다른 기술보다 더 쉽게 선택할 수 있으며 그 반대도 마찬가지입니다.
ASP.NET 웹 양식 :
- 개발 지원 상태
• Windows 응용 프로그램과 유사하게 웹 응용 프로그램이 사용자의 작업을 인식하고 있다는 착시를줍니다. 즉, ‘마법사’기능을 조금 더 쉽게 구현할 수 있습니다. 웹 양식은 개발자에게 많은 복잡성을 숨기는 데 큰 역할을합니다. - RAD (Rapid Application Development)
• 웹 양식을 제공하기 만하면됩니다. 이것은 일부 MVC 커뮤니티에 의해 논란의 여지가 있지만 Microsoft에 의해 추진됩니다. 결국, 그것은 개발자의 전문 지식 수준과 그들이 느끼는 것의 수준으로 내려갑니다. 웹 양식 모델은 경험이 부족한 개발자에게는 학습 곡선이 적을 것입니다. - 더 큰 컨트롤 도구 상자
• ASP.NET Web Forms는 훨씬 더 강력하고 강력한 도구 상자 (웹 컨트롤)를 제공하는 반면 MVC는 jQuery (Javascript)를 통해 풍부한 클라이언트 쪽 컨트롤에 더 의존하는보다 원시적 인 컨트롤 집합을 제공합니다. - 성숙도
• 2002 년부터 사용되어 왔으며 질문, 문제 등과 관련하여 풍부한 정보가 있습니다. 기존의 툴킷을 고려해야하는 더 많은 타사 제어 기능을 제공합니다.
ASP.NET MVC :
- 관심사 분리 (SoC)
• 기술적 인 관점에서 볼 때 MVC 내 코드 구성은 매우 깨끗하고 체계적이며 세분화되어 웹 애플리케이션이 기능 측면에서 쉽게 확장 될 수 있습니다. 개발 관점에서 훌륭한 디자인을 촉진합니다. - 클라이언트 측 도구 (풍부한 사용자 인터페이스 도구)와의 손쉬운 통합
• 웹 응용 프로그램은 데스크탑에서 볼 수있는 응용 프로그램만큼 다양 해지고 있습니다. MVC를 사용하면 Web Forms보다 쉽고 편리하게 jQuery와 같은 툴킷과 통합 할 수 있습니다. - 검색 엔진 최적화 (SEO) 친화적 / 상태 비 저장
• URL은 검색 엔진에 더 친숙합니다 (예 : mywebapplication.com/users/1-mywebapplication / users / getuser.aspx (ID가 세션에 전달 된 ID)). 마찬가지로 MVC는 상태 비 저장이므로 여러 웹 브라우저를 동일한 창에서 생성 한 사용자의 두통 (세션 충돌)을 제거합니다. 동일한 라인을 따라 MVC는 이에 대한 ‘전투’보다는 상태 비 저장 웹 프로토콜을 준수합니다. - 높은 수준의 제어가 필요한 개발자에게 적합
• ASP.NET 웹 양식의 많은 컨트롤은 페이지 렌더링시 표시되는 많은 원시 HTML을 자동으로 생성합니다. 이것은 개발자에게 두통을 유발할 수 있습니다. MVC를 사용하면 렌더링 된 내용을 완벽하게 제어 할 수 있으며 더 이상 놀라운 것은 없습니다. 더 중요한 것은 HTML 양식이 일반적으로 웹 양식보다 훨씬 작기 때문에 성능을 향상시킬 수 있다는 점입니다. - TDD (Test Driven Development)
• MVC를 사용하면 웹 측면에 대한 테스트를보다 쉽게 만들 수 있습니다. 추가 테스트 계층은 예기치 않은 동작에 대한 또 다른 방어 계층을 제공합니다.
인증, 권한 부여, 구성, 컴파일 및 배포는 두 웹 프레임 워크간에 공유 되는 모든 기능입니다 .
답변
고전적인 ASP를 기억할만큼 나이가 든 사람은 HTML과 자바 스크립트가 혼합 된 코드로 페이지를 여는 악몽을 기억할 것입니다. 심지어 가장 작은 페이지조차도 도대체 무슨 일이 있었는지 파악하기가 어려웠습니다. 나는 틀릴 수 있고, 나는 희망하지만 MVC는 그 나쁜 시절로 돌아가는 것처럼 보입니다.
ASP.Net이 등장했을 때 구세주가되어 콘텐츠에서 코드를 분리하고 웹 디자이너가 HTML을 만들고 코드 작성자가 코드를 작성하도록 할 수있었습니다. ViewState를 사용하지 않으려면 끄십시오. 어떤 이유로 코드를 사용하고 싶지 않다면 코드를 클래식 ASP처럼 html 안에 넣을 수 있습니다. PostBack을 사용하지 않으려면 처리를 위해 다른 페이지로 리디렉션했습니다. ASP.Net 컨트롤을 사용하지 않으려면 표준 html 컨트롤을 사용했습니다. 컨트롤에서 ASP.Net runat = “server”를 사용하지 않으려면 Response 객체를 조사 할 수도 있습니다.
이제 위대한 지혜를 가진 사람 (아마도 고전적인 ASP를 프로그래밍 한 적이없는 사람)은 코드를 내용과 혼합하는 시대로 돌아가서 “문제의 분리”라고 할 시간을 결정했습니다. 물론 더 깨끗한 HTML을 만들 수는 있지만 고전적인 ASP로 가능합니다. “보기 내에 코드가 너무 많으면 올바르게 프로그래밍하지 않는다”고 말하는 것은 “기본 ASP에서 체계적이고 주석이 달린 코드를 작성한 경우 ASP.NET보다 훨씬 깨끗하고 낫습니다”라고 말하는 것과 같습니다.
코드를 내용과 혼합하는 것으로 돌아가고 싶다면 그러한 종류의 개발을 위해 훨씬 성숙한 환경을 가진 PHP를 사용하여 개발하는 것을 볼 것입니다. ASP.NET에 많은 문제가 있다면 왜 그 문제를 해결하지 않습니까?
마지막으로 새로운 Razor 엔진은 HTML과 코드를 구분하기가 더 어렵다는 것을 의미합니다. 적어도 ASP에서 <% 및 %> 태그를 열고 닫을 수는 있지만 이제는 @ 기호 만 표시됩니다.
PHP로 옮겨 다른 사람이 코드를 내용과 다시 분리 할 때까지 10 년을 더 기다려야 할 때입니다.
답변
PHP 나 JSP와 같은 다른 개발자들과 함께 일하고 있다면 (그리고 난 레일을 추측하고있다), 페이지에 대한 변환이나 공동 작업이 훨씬 더 쉬워 질 것이다. 사방 이벤트 및 제어.
답변
MVC의 문제점은 “전문가”조차도 많은 귀중한 시간을 소비하고 많은 노력이 필요하다는 것입니다. 비즈니스는 기본 기술인 “작동하는 빠른 솔루션”의 기본 기술에 의해 좌우됩니다. WebForms는 시간과 비용을 절약하는 RAD 기술입니다. 비즈니스에 더 많은 시간이 필요한 것은 허용되지 않습니다.
답변
- 적절한 AJAX (예 : JSONResults 부분 페이지 포스트 백 넌센스 없음)
- 뷰 스테이트 없음 +1
- HTML ID의 이름을 바꾸지 않습니다.
- 클린 HTML = 부풀림이없고 XHTML 또는 표준 호환 페이지 렌더링시 적절한 샷을 얻습니다.
- 더 이상 생성 된 AXD 자바 스크립트가 없습니다.
답변
가장 큰 장점은 모델, 뷰 및 컨트롤러 레이어를 명확하게 구분하는 것입니다. 처음부터 좋은 디자인을 홍보하는 데 도움이됩니다.