웹 양식과 ASP.Net MVC를 함께 사용할 때 가장 큰 장점


164

하나를 다른 것보다 사용하면 어떤 이점이 있습니까?

답변:


165

ASP.net MVC 의 주요 장점 은 다음과 같습니다.

  1. 렌더링 된 HTML을 완전히 제어 할 수 있습니다.

  2. 우려 사항 (SoC)을 깨끗하게 분리합니다.

  3. 수 있도록 테스트 주도 개발 (TDD)은 .

  4. JavaScript 프레임 워크와 쉽게 통합

  5. 웹의 무국적 특성 설계에 따라

  6. SEO를 가능하게하는 RESTful URL.

  7. ViewState 및 PostBack 이벤트가 없습니다.

ASP.net Web Form 의 주요 장점 은 다음과 같습니다.

  1. RAD 개발을 제공합니다

  2. winform 개발에서 온 개발자를위한 쉬운 개발 모델.


32
SoC와 관련하여 사람들은 비즈니스 로직이나 데이터 액세스 코드가 많은 "뚱뚱한"컨트롤러를 작성하여 웹 양식에서 사용하는 것처럼 엉망으로 만들 수 있습니다. 그래서 SoC는 코더가 제공 해야하는 것이므로 fw는 도움이되지 않습니다.
rodbv

7
@ rodbv : 매우 사실이지만 MVC는 올바른 방향으로 당신을 밀거나 적어도 농구를 뛰어 넘지 않습니다. 아마도 그 점은 'SoC를보다 쉽게 ​​구현할 수 있도록'과 같은 내용을 읽어야 할 것입니다.
Erik van Brakel

4
다른 방법에 비해 어떻게 "테스트 주도 개발"이 가능합니까? 또한 .NET 2.0 이후 HttpContext.RewritePath 메서드 (문자열)가있을 때 RESTful URL을 허용하는 방법이 혼란 스럽습니다.
Mark Broadhurst

2
이러한 점은 대부분 MVC 측에서 정확하지만 많은 점이 현재 WebForms에 통합되고 있습니다.
rtpHarry


91

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를 사용하면 웹 측면에 대한 테스트를보다 쉽게 ​​만들 수 있습니다. 추가 테스트 계층은 예기치 않은 동작에 대한 또 다른 방어 계층을 제공합니다.

인증, 권한 부여, 구성, 컴파일 및 배포는 두 웹 프레임 워크간에 공유 되는 모든 기능입니다 .


27
"MVC를 사용하면 렌더링되는 내용을 완벽하게 제어 할 수 있습니다"-레이블 대신 리터럴, 패널 대신 자리 표시 자, Datagrid 대신 Repeater 등을 사용하는 경우 WebForms를 완벽하게 제어 할 수 있습니다. 너무 많은 개발자가 이와 같은 문장을 읽고 그것이 사실이라고 믿습니다. Downvote ..
masty 2016 년

3
@masty-나는 개인적으로 공감할 줄은 모르지만, 당신이 말한 나머지 부분에 동의합니다.
Peter

4
@masty-nitpicking을 통해 StackOverflow 세상을 구 해주셔서 감사합니다. 나는 당신을 위해 내 대답을 편집했습니다. 감사!
JC

6
@masty 부분적으로 동의하지만 리터럴, 자리 표시 자 및 리피터를 사용할 때 점점 더 많은 HTML을 코드 숨김으로 옮기고 있습니다. 또한 .aspx를 읽는 디자이너와 .aspx.cs를 읽는 코더에게 혼란을 줄 수 있습니다. 예, 가능하지만 ASP.Net WebForms의 목적을 무효화합니다. 그런 경우 ControlAdapters가 더 깨끗한 솔루션이라고 말하고 싶습니다. 컨트롤을 바꾸는 대신 렌더링 방식을 바꿉니다.
Aidiakapi

2
"MVC를 사용하면 렌더링 대상을 완전히 제어 할 수 있습니다"라는 문구가 혼동됩니다. "MVC 프레임 워크는 렌더링이 적고 렌더링되는 것이 적습니다. 렌더링되는 특정 HTML / CSS에 대해 더 많은 제어 권한이 부여되지만 그 제어권을 얻으려면 작업을 수행해야합니다."
kingdango

17

고전적인 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 년을 더 기다려야 할 때입니다.


7
스팟 온 +1 MVC에 대한 첫 반응은 클래식 ASP를 다시 한 번 수행했다는 것입니다. 이번에는 VBScript 대신 C #에서만 가능합니다.
DancesWithBamboo

3
나는 왜이 답변이 많은 투표를 받았는지 놀랐다. 첫째, ASP.NET MVC에는 MVC 분리 기능이 내장되어 있습니다. 물론 ASP에서도이 작업을 수행 할 수 있습니다. 둘째, ASP.NET MVC는 기존 ASP 이상의 기능을합니다. 많은 유용한 도우미와 함께 .NET의 강력한 기능과 HTML을 세밀하게 제어 할 수 있습니다. 셋째로, @은 <% %>와 마찬가지로 훌륭한 표기법입니다. Razor 뷰를위한 알맞은 편집기는 @ 표기법을 지원합니다. 마지막으로 PHP가 성숙 했습니까? me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design ASP.NET MVC는 훌륭한 플랫폼입니다. 좀 더주의를 기울이십시오.
JP ten Berge

농담 해? 나는 "<? ...?>"표기법으로 PHP를 사용하고 있으며 완전히 장황하다는 것을 알았습니다. "<"기호가 "<% ... %>"태그보다 인식하기 어려운 방법을 알 수 없습니다. 또한 HTML 템플릿에서 "@"기호를 거의 사용하지 않습니다.
Exegesis

내 눈은 "<% %>"기호의 지옥보다 면도기 페이지에서 더 잘 휴식을 취할 수 있습니다. .aspx 페이지를 읽으면 두통이 생깁니다. 또한 렌더링되는 내용을 선호합니다. @foreach (..) {<tr> ... </ tr>} 블록을 사용하면 <abc : MyViewControl ID = "..."runat = "server"DatasourceID = "....보다 편안합니다. "/>. 나는 많은 클라이언트 측 조작을 수행하며 어디에서 어떤 ID, 스타일 및 클래스로 렌더링 될지 정확히 알아야합니다. 컨트롤이 즉석에서 수행하는 것보다 직접 수행하는 것이 좋습니다. 특히 설정에 따라 일부 컨트롤이 다르게 렌더링되는 경우.
Thanasis Ioannidis

MVC 프레임 워크에 대한 완전한 오해입니다. MVC의 콘텐츠와 코드를 혼합하는 것을 발견하면 잘못하고 있습니다. 뷰에는 내용이 있고 컨트롤러 (및 사용하는 클래스)에는 코드가 있습니다. MVC의 기본 원칙 중 하나입니다.
Josh Noe

14

PHP 나 JSP와 같은 다른 개발자들과 함께 일하고 있다면 (그리고 난 레일을 추측하고있다), 페이지에 대한 변환이나 공동 작업이 훨씬 더 쉬워 질 것이다. 사방 이벤트 및 제어.


어느 쪽을 사용하고 있습니까?
cregox

5
@cawas-MVC를 사용하면 훨씬 쉽습니다. ASP.NET MVC에는 이벤트가 없습니다. 기본적으로 당신은 표준 HTML과 CSS를 다루고 있으며 PHP / JSP 개발자들이 알아야 할 많은 이벤트와 컨트롤은 아닙니다
Simon_Weaver

ASP.NET은 WebForms와 MVC의 기본입니다. 사람들은 WebForms와 ASP.NET을 혼동하는 경향이 있습니다. "MVC vs ASP.NET"은 없습니다. "ASP.NET MVS"와 "ASP.NET WebForms"가 있습니다. 실제로 그들은 서로 싸우고 있지 않습니다. 그들은 웹 사이트를 구축하기 위해 다른 장단점을 가진 다른 방식 일뿐입니다
Thanasis Ioannidis

13

MVC의 문제점은 "전문가"조차도 많은 귀중한 시간을 소비하고 많은 노력이 필요하다는 것입니다. 비즈니스는 기본 기술인 "작동하는 빠른 솔루션"의 기본 기술에 의해 좌우됩니다. WebForms는 시간과 비용을 절약하는 RAD 기술입니다. 비즈니스에 더 많은 시간이 필요한 것은 허용되지 않습니다.


1
기업을위한 +1은 "작동하는 빠른 솔루션"이라는 기본 개념에 의해 주도됩니다
Dragos Durlut

1
문제는 일부 빠른 솔루션이 처음에는 빠르기 때문에 작동하지 않을 때입니다. 최근 경험 : 기본적인 create-edit-update를 수행하는 빠른 웹 양식 페이지 infopath equiveland 페이지보다 "빠른"것으로 예상되었는데, 조금 느 렸습니다. 실제로 새로운 솔루션은 infopath 페이지와 거의 동일한 성능을 보였지만 IE7에서는 쓸모가 없다는 점에서 극히 느 렸습니다. 페이지를 열려면 5 초, 콤보 박스를 클릭 할 때마다 5 초 ... 모든 것이 빠르기 때문입니다. 생각도없고 계획도 없습니다.
Thanasis Ioannidis

1
그 후, 우리는 무겁고 불필요한 클라이언트 측 스크립팅을 제거하기 위해 모든 컨트롤을 제거하고 부트 스트랩 된 데이터 및 이벤트와 jQuery와 BackBone.js의 조합으로 수동 HTML 컨트롤을 렌더링했습니다. 실제로는 웹 양식 페이지에서 호스팅되는 MVC 접근 방식입니다. 물론 WebForms와 MVC는 모두 훌륭하게 계획 할 수 있지만 실제로는 성능이 좋을 수 있지만 WebForms는 페이지에서 컨트롤을 던져서 화면에서 움직이는 부분을 보도록 유혹하고 제거하지 않으면 더 많은 시간을 소비합니다. 조금도.
Thanasis Ioannidis가

11
  1. 적절한 AJAX (예 : JSONResults 부분 페이지 포스트 백 넌센스 없음)
  2. 뷰 스테이트 없음 +1
  3. HTML ID의 이름을 바꾸지 않습니다.
  4. 클린 HTML = 부풀림이없고 XHTML 또는 표준 호환 페이지 렌더링시 적절한 샷을 얻습니다.
  5. 더 이상 생성 된 AXD 자바 스크립트가 없습니다.

9

가장 큰 장점은 모델, 뷰 및 컨트롤러 레이어를 명확하게 구분하는 것입니다. 처음부터 좋은 디자인을 홍보하는 데 도움이됩니다.


4
이전에 이러한 유형의 패턴으로 작업 한 적이 없다면 이것이 주요 판매 포인트라는 데 동의하지만 WebForms에서 MVC 또는 MVP 패턴을 구현할 수 있습니다. 사람들이 데이터 세트로 웹 양식을 모 놀리 식화하는 대신 패턴으로 이동하도록 유도했지만 일반적으로 고용하는 사람들의 유형은 아닙니다.
Mark Broadhurst

9

ASP.Net보다 MVC에서 어떤 이점도 보지 못했습니다. 10 년 전 Microsoft는 MVC에 대한 답변으로 UIP (User Interface Process)를 개발했습니다. 플롭이었다. 우리는 당시 UIP로 대규모 프로젝트 (4 명의 개발자, 2 명의 디자이너, 1 명의 테스터)를 수행했으며 악몽이었습니다.

과대 광고를 위해 악대 차로 뛰어 들지 마십시오. 위에 나열된 모든 장점은 이미 Asp.Net에서 사용할 수 있습니다 ( Asp.Net 4의 새로운 기능 [ Asp.Net 4의 새로운 기능 ]).

Asp.Net을 사용하는 개발 팀 또는 단일 개발자 가족이라면이를 고수하고 아름다운 제품을 신속하게 만들어 고객 (근무 시간을 지불하는 고객)을 만족 시키십시오. MVC는 귀중한 시간을 먹고 Asp.Net과 동일한 결과를 생성합니다 :-)


1
ASP.NET 4에서는 실제로 필요로하는 가끔 제어 할 수 있도록
뷰 스테이트를

WebForms와 MVC는 모두 ASP.NET을 기반으로합니다.
Thanasis Ioannidis 님이

8

프란시스 샤나 한,

  1. 왜 부분 포스트 백을 "넌센스"로 부르나요? 이것은 Ajax의 핵심 기능이며 Atlas 프레임 워크 및 Telerik과 같은 멋진 타사 컨트롤에서 매우 잘 활용되었습니다.

  2. 나는 viewstate에 관한 당신의 요점에 동의합니다. 그러나 개발자가 viewstate를 사용하지 않도록 신중하게 설정하면 렌더링되는 HTML의 크기가 크게 줄어들어 페이지가 가벼워집니다.

  3. HTML 서버 컨트롤 만 ASP.NET Web Form 모델에서 이름이 바뀌고 순수한 HTML 컨트롤은 아닙니다. 그것이 무엇이든간에, 이름 변경이 완료되면 왜 그렇게 걱정됩니까? 클라이언트 측에서 많은 자바 스크립트 이벤트를 처리하고 싶지만 웹 페이지를 똑똑하게 디자인하면 원하는 모든 ID를 얻을 수 있습니다.

  4. ASP.NET Web Forms조차도 XHTML 표준을 충족하며 부풀어 오르지 않습니다. 이것이 왜 MVC 패턴이 필요한지에 대한 정당화가 아닙니다

  5. 다시, 왜 AXD Javascript에 신경 쓰십니까? 왜 아파요? 이것은 다시 정당한 정당화가 아닙니다

지금까지 고전적인 ASP.NET 웹 양식을 사용하여 응용 프로그램을 개발하는 팬입니다. 예를 들면 : 드롭 다운 목록이나 그리드 뷰를 바인딩하려면 최대 30 분과 20 줄 이하의 코드가 필요합니다 (최소한). 그러나 MVC의 경우 개발자에게 그것이 얼마나 고통 스러운지 이야기하십시오.

MVC의 가장 큰 단점은 ASP 시대로 돌아가는 것입니다. 서버 코드와 HTML을 섞는 스파게티 코드를 기억하십니까? 오 마이 갓, 자바 스크립트, HTML, JQuery, CSS, 서버 태그가 혼합 된 MVC aspx 페이지를 읽으십시오.


6
부분 포스트 백은 못생긴 kludge입니다
UpTheCreek

3
뷰에 많은 코드가 있다면 뭔가 잘못한 것입니다. 뷰의 코드는 레이아웃에만 관련이 있습니다.
UpTheCreek

1
CSS와 HTML이 혼합 된 자바 스크립트가있는 페이지를 보는 유일한 이유는 분리 된 스타일과 스크립트를 방해 할 수없는 게으른 개발자의 작업을보고 있었기 때문입니다. 이것은 웹 양식과 mvc에서 발생할 수 있습니다. 스크립트 태그가 못 생겼다는 데 동의하지만 MVC3을 사용하면 더 이상 확실하지 않으며 최소한 파일 뒤의 코드를 보지 않고 컨트롤이 데이터 바인딩 된 지점을 찾지 않고도 진행 상황을 확인할 수 있습니다.
jcvandan

또한 MVC를 사용하여 스파게티 코드를 작성하는 경우, 주체의 분리를 고수하지 않고 멋진 건축 모델을 사용하지 않습니다
jcvandan

1
두 가지를 모두 사용하면 WebForms보다 더 지저분하지 않다고 말할 수 있습니다. MVC는 서버 태그를 제외하고는 깨끗하지만 그 외에는 모든 프로그래머가 나쁜 오류입니다. MVC는 로직을 디자인과 분리하기 위해 핵심적으로 설계되었습니다. 또한 Telerik에 대해 언급합니다. ASP.Net AJAX 용 Telerik은 지저분한 코드를 유발합니다. Telerik 그리드를 정렬하는 속도 (stirng)는 물론 ASP.Net WebForms에서 4 페이지 500ms, MVC에서 84 페이지 200ms가 소요됩니다. (크롬 용 데모 및 방화범을 사용하여 테스트했습니다.) 성능과 분리 측면에서 MVC가 승리합니다.
Aidiakapi

6

웹 양식은 또한 Telerik과 같은 타사 제어 제공 업체의 성숙도와 지원을 통해 얻을 수 있습니다.


2
MVC로 할 수 없다고 말하지는 않습니다.하지만 확실하지 않기 때문에 Telerik 및 WebForms가 많은 블링 블링으로 빠르고 더러운 인트라넷 또는 엑스트라 넷 응용 프로그램을 함께 사용하려면 이길 수 없습니다. '정직한 진실을 만족 시키십시오.
infocyde

Telerik에는 MVC 컨트롤도 있으며 옵션이 적지 만 그럼에도 불구하고 WebForm 변형보다 훨씬 빠릅니다.
Aidiakapi

5

webforms에서는 viewstate, eventvalidation 등의 태그를 제외하고 PageAdapters로 제거 할 수있는 거의 모든 태그를 직접 HTML로 직접 렌더링 할 수 있습니다. 아무도 HTML 렌더링 출력이 나쁜 GridView 또는 다른 서버 측 컨트롤을 사용하도록 강요하지 않습니다.

MVC의 가장 큰 장점은 SPEED라고합니다.

다음은 우려의 강제 분리입니다. 그러나 컨트롤러 / 액션 안에 전체 BL 및 DAL 로직을 넣는 것은 금지되지 않습니다! 웹폼 (예 : MVP 패턴)에서도 수행 할 수있는 뷰 분리입니다. 사람들이 mvc에 대해 언급 한 많은 것들이 webforms에서 수행 될 수 있지만 몇 가지 추가 노력이 필요합니다.
주요 차이점은 요청이 보이지 않고 컨트롤러에 온다는 것입니다.이 두 레이어는 webforms와 같은 부분 클래스를 통해 연결되지 않고 분리됩니다 (aspx + 코드 숨김)


개발 속도 또는 실행 속도를 의미합니까?
Jules

1
특히 MVC에서 telerik을 사용할 때. 데모에서 그리드를 정렬하는 데는 4 페이지 (WebForms) 500ms, 84 페이지 (MVC) 200ms가 걸립니다. MVC를 선호하는 것은 (우리 회사에서 WebForms를 사용하지만 스위치를 고려하고 있다고 생각하더라도) 더 깨끗하고 견해가 있으며 출력을 조정하는 위치, 모델, 엉망인 곳입니다. : P, 그리고 그것을 모두 합친 컨트롤러
Aidiakapi

4

내 2 센트 :

  • ASP.net 양식은 신속한 응용 프로그램 개발 및 비즈니스 가치를 빠르게 추가하는 데 유용합니다. 여전히 대부분의 인트라넷 응용 프로그램에 사용합니다.
  • MVC는 URL과 HTML을 더 많이 제어 할 때 검색 엔진 최적화에 유용합니다.
  • MVC는 일반적으로 훨씬 적은 페이지를 생성합니다. viewstate가없고 HTML이 더 깔끔합니다. = 빠른 로딩 시간
  • 페이지의 일부를 캐시하기 쉬운 MVC. -MVC는 재미있게 작성합니다 :-개인적인 의견 ;-)

3

MVC를 사용하면 한 페이지에 둘 이상의 양식을 만들 수 있습니다. 내가 아는 작은 기능이지만 편리합니다!

또한 MVC 패턴으로 인해 코드를 쉽게 유지 관리 할 수 ​​있다고 생각합니다. 몇 달 후에 다시 방문 할 때


2
ASP.NET Webforms를 사용하면 페이지에 원하는만큼 양식을 만들 수 있습니다. 제한 사항은 "runat ="server "속성 만 가질 수 있다는 것입니다
Andrei Rînea

1
@AndreiRinea 나는 그가 의미하는 것으로 runat="server"생각합니다.
Aidiakapi

2

MVC 컨트롤러 :

    [HttpGet]
    public ActionResult DetailList(ImportDetailSearchModel model)
    {
        Data.ImportDataAccess ida = new Data.ImportDataAccess();
        List<Data.ImportDetailData> data = ida.GetImportDetails(model.FileId, model.FailuresOnly);

        return PartialView("ImportSummaryDetailPartial", data);
    }

MVC보기 :

<table class="sortable">
<thead>
    <tr><th>Unique Id</th><th class="left">Error Type</th><th class="left">Field</th><th class="left">Message</th><th class="left">State</th></tr>
</thead>
<tbody>
    @foreach (Data.ImportDetailData detail in Model)
    {
    <tr><th>@detail.UniqueID</th><th class="left">@detail.ErrorType</th><th class="left">@detail.FieldName</th><th class="left">@detail.Message</th><th class="left">@detail.ItemState</th></tr>
    }
</tbody></table>

얼마나 힘들어요? ViewState, BS 페이지 수명주기 없음 ... 순전히 효율적인 코드입니다.


1

소규모 사이트에 대한 두 가지 장점은 다음과 같습니다. 6) SEO를 가능하게하는 RESTful URL. 7) ViewState 및 PostBack 이벤트 없음 (일반적으로 성능 향상)

소규모 사이트에 대한 테스트는 문제가되지 않으며, 사이트가 올바르게 코딩 될 때의 디자인 이점도 아니며, MVC는 여러 가지면에서 난독 화를하고 변경을 어렵게 만듭니다. 나는 여전히 이러한 장점이 가치가 있는지 여부를 결정하고 있습니다.

더 큰 멀티 개발자 사이트에서 MVC의 이점을 분명히 볼 수 있습니다.


1

내가 찾은 주요 이점은 프로젝트를보다 테스트 가능한 구조로 만듭니다. 이것은 webforms (MVP 패턴)로도 쉽게 수행 할 수 있지만 개발자는 이것을 이해해야합니다.

Webform과 MVC는 모두 다른 영역에서 탁월한 실행 가능한 도구입니다.

B2B / LOB 앱을 주로 개발할 때 개인적으로 웹 양식을 사용합니다. 그러나 단위 테스트를 위해 95 % 이상의 코드 적용 범위를 달성 할 수있는 MVP 패턴으로 항상이를 수행합니다. 이것은 또한 우리가 webcontrols의 속성에 대한 테스트를 자동화 할 수있게합니다.

bool IMyView.IsAdminSectionVisible{
       get{return pnlAdmin.Visible;}
       get{pnlAdmin.Visible=value;}
    }

) 나는이 수준의 테스트가 내 모델을 오염시키지 않고 MVC에서 쉽게 달성 할 수 있다고 생각하지 않습니다.


0

더 이상 '비 포스트 백 컨트롤'을 사용하고 전통적인 asp.net 환경에 적용하는 방법에 대해 더 이상 걱정하지 않아도됩니다.

이것은 현대의 (무료로) 자바 스크립트 컨트롤 이 이것 또는 이것 또는 이것을 사각형 구멍 느낌에 둥근 못에 맞추지 않고도 사용할 수 있음을 의미합니다.


0

MVC를 사용하면 최신 자바 스크립트 컨트롤과 JSON 요청을 훨씬 쉽게 처리 할 수 ​​있습니다. 거기에서 우리는 많은 다른 메커니즘을 사용하여 한 동작에서 다른 동작으로 데이터를 게시 할 수 있습니다. 우리가 웹 양식보다 MVC를 선호하는 이유입니다. 또한 가벼운 페이지를 만들 수 있습니다.


0

내 개인적인 의견은 ASP.Net MVC 사용의 가장 큰 단점은 그것을 유지하는 개발자를 위해 ... html 지옥 CODE BLOCKS과 혼합되어 있다는 것입니다 ...HTML

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.