2008-11-15 4 views
30

저는 ASP.NET 커뮤니티가 MVC에 대해 윙윙 거리는 것을 보았습니다. 나는 그것의 기원의 기초를 알고 있고 ASP.NET MVC를 기반으로하는 많은 사이트가있다.MVC의 실제 응용 프로그램 || 언제 MVC를 사용하거나 사용하지 않습니까?

나는 MVC에 관해 들었고 읽은 모든 것에서 ASP.NET 개발의 미래 인 것으로 보인다. 그러나 .NET 웹 개발에서는 보통 다음과 같은 질문을 던지기 때문에 MVC를 사용하는 것이 적절한 이유는 무엇입니까? 위대한 (그리고 끔찍한) MVC 사용의 예는 매력적입니다.
RoR과 같은 다른 언어를 MVC로 보는 다른 구현이 있다는 것을 알고 있지만 .NET 프로그래머에게 미치는 영향에 더 관심이 있습니다.

이미 해결했다면 사과드립니다.

답변

18

여기 웹 응용 프로그램 용 MVC에 대한 2 센트입니다. MVC가 원래 의도했던 일종의 GUI 애플리케이션의 경우 이벤트가 모델 데이터를 변경하면 UI를 업데이트 할 수 있도록 "리스너"코드가 필요했습니다.

웹용 MVC에서는 이것이 필요하지 않습니다. 리스너는 무료입니다. 웹 서버이며 HTTP 요청은 이벤트입니다. 따라서 웹용 MVC는 훨씬 더 간단해야합니다. 실제로 컨트롤러가 모델과 뷰를 중재하는 조정자 패턴으로 끓일 수 있습니다.

많은 혼란이 두 가지 있습니다. 에 관계없이 기존의 "지혜"의 :

프레임 워크 = MVC

데이터베이스 데이터 = "모델"

"전체 스택"웹 개발 프레임 워크는 일반적으로 많은 기능을 추가하고, 수도 있고 MVC하지 않을 수 있습니다! 그들의 핵심에 - 지향. 많은 프레임 워크가 추가하는 기능 중 하나는 데이터베이스 액세스 또는 객체 관계 매핑 기능이며 프레임 워크와 MVC가 혼란 스럽기 때문에 데이터베이스 데이터와 MVC의 모델 패싯도 혼란 스럽습니다. 모델은 일반적으로 응용 프로그램의 기본 데이터로 볼 수 있지만 데이터베이스에서 제공 할 필요는 없습니다. 좋은 예가 wiki 일 수 있습니다. 여기서 기본 모델/데이터는 파일 개정 데이터로 구성됩니다 (예 : RCS).

희망이 있으면 도움이됩니다. 다른 사람들도 충분히 추가 할 수 있습니다.

+0

그냥 ASP.NET MVC가 어떻게 든 모델에 무관심하다는 것을 추가하십시오. 모델은 객체 또는 컬렉션 일뿐 RoR과 같은 다른 MVC 프레임 워크에서는 모델 기반 구현이이 경우 ActiveRecord 패턴을 따라 제공됩니다. –

+0

MVC가 프레임 워크가 아니며 모델이 데이터베이스가 아니라는 메모를 작성했습니다. –

10

ASP.NET MVC는 ASP.NET 개발의 미래가 아니라 ASP.NET을 사용하여 웹 사이트를 개발하는 새로운 방법입니다. Microsoft는 앞으로도 WebForms와 MVC를 계속 지원하고 향상시킬 것임을 분명히했습니다.

MVC를 사용하는 것이 적절하지 않은 웹 사이트는 생각할 수 없습니다. 당신은 또한 WebForms에 대해서도 똑같이 논할 수 있습니다.

다른 하나를 선택했는지 여부는 개인 선택이며 개발 팀의 경험과 환경 설정에 따라 결정됩니다.

큰 프로젝트에서 MVC를 사용한 후에 개인적으로 WebForms 개발로 돌아 가지 않습니다. 내 생각에 WebForms는 http 및 html에 대해 불필요한 추상화 레이어를 배치합니다. 빠른 프로토 타입을 사용하면 WebForms에서 더 빨리 결합 된 무언가를 얻을 수 있지만 그 후에는 추상화의 복잡성으로 인해 작업이 어려워집니다. 웹 폼을 사용하는 유일한 이유는 현재 사용할 수있는 풍부한 수준의 타사 컨트롤입니다. 그러나 WebForms와 MVC를 섞어서 사용할 수 있기 때문에 두 가지 모두에서 최상의 결과를 얻을 수 있습니다.

3

ASP.NET과 MVC 응용 프로그램이 모두있는 상점에서 근무하고 있습니다.나는 원래 몇 년 동안 그들과 함께 일했기 때문에 원래 웹 폼에 편향되어 있었지만 몇 가지 MVC 프로젝트를 수행 한 후에 나는 그것을 선호한다고 생각합니다.

숙련 된 웹 양식 개발자 팀이있는 경우 학습 곡선으로 인해 MVC 응용 프로그램의 초기 진행 속도가 느려지므로 프로젝트의 타임 라인이 매우 긴 경우 전환하기 가장 좋은 시간이 아닐 것입니다.

이외에도 나는이 시점에서 웹 양식을 MVC보다 선호하는 상황을 생각할 수 없습니다.

3

Winforms 또는 Webforms 배경이없는 경우 ASP.NET Webform에서 "예상하는"것이 없으므로 MVC 우산 아래에서 더 편하게 느껴질 수 있습니다. 세계.

반대 의견으로, 장고 또는 RoR과 같은 다른 MVC 프레임 워크를 확인해보십시오.이 프레임 워크는 MVC 방식에서보다 "성숙"할 수 있습니다. ASP.NET MVC에 만족하지만 다른 솔루션을 찾고 있으면 프레임 워크의 패러다임을 더 잘 이해할 수 있습니다.

16

경험이 풍부한 .NET 개발자 그룹 인 이 없으므로 WebForms 사용 경험이있는 경우 MVC를 사용하는 것이 매우 설득력있는 시나리오입니다.

웹 사이트에서 MVC를 사용하여 훨씬 생산적이고 편안함을 알게되었습니다.

필자는 앞서 언급 한 추상화로 인해 WebForms을 가져 오는 것이 매우 어려웠다 고 말했습니다. (WebForms의 복잡성에 대한 증거는 WebForms "전문가"라고 생각할 사람을 만난적이 없다고 생각합니다. 즉 페이지 수명주기/데이터를 알고 있습니다.) 뒤 - 앞쪽 바인딩 등).

MVC를 사용하면 실제로 WebForms 프레임 워크 학습에 막대한 투자없이 .NET 및 소프트웨어 환경을 사용할 수있었습니다. 그뿐 아니라 HTTP에 대한 이해가 훨씬 더 높아 졌기 때문에 고품질의 솔루션을 제공 할 수있을 것입니다.

IMHO MVC를 사용하면 WebForms보다 코드를 훨씬 더 효율적으로 사용할 수 있으므로 "패턴"이 많은 개발자는 MVC에서 더 편하게 사용할 수 있습니다.

+0

+1. 좋은 지적! –

관련 문제