2013-08-17 3 views
1

최근에 MVC 프레임 워크 (ASP.NET MVC)를 사용하여 프로젝트를 마쳤습니다. 이 프로젝트는 별도의 DTO 클래스를 사용하여 컨트롤러가 View에 전달했습니다. 모델은보기에서 멀리 떨어져있었습니다. 이것은 MVVM의 MV와 내 DTO의 의미를 나타냅니다. 이 프로젝트에 대한 회고 적 생각은 DTO 없이는 할 수 없다는 것을 암시합니다. (내 모델은 애플리케이션 계층에 많이 있기 때문에 보안상의 이유로 웹 계층에 전달할 수 없습니다.)ViewModel을 MVC 패턴으로 사용할 수 있습니까?

내 질문은 - VM (모델보기)이 MVC에서 필요합니까? 컨트롤러가 Model을 뷰에 직접 전달하는 프로덕션 어플리케이션이 있습니까?

+1

가능한 복제본 [ViewModel 대신 FormCollection을 사용하는 것이 좋은 이유는 무엇입니까?] (http://stackoverflow.com/questions/17002022/is-there-any-good-reason-to-use- viewmodel 대신 formcollection) –

답변

1

당신은

EmpID 
Fname 
Lname 
DeptID 
DesigID 
Email 
Phone 

그래서 당신은이 테이블을 표현하는 클래스를 가진 될 경우 직원 테이블을 가지고 Conside합니다. 이 모델을 볼 모델로 취급 할 수 있습니다. EF가 당신에게 목록을 가져오고 당신은보기에 나타낼 수 있습니다.

  1. ViewModels 그래서 당신은 연결을해야 할 때마다, 대신이 값을 반환하는 속성을 가질 수 있습니다, 당신은 먼저 + 마지막으로 이름을 표시 할 필요가 requirements.Suppose 일부 비즈니스를 달성하는 데 도움이됩니다.
  2. 또한 데이터 유효성 검사를 사용하여 기본 유효성 검사를 수행 할 수 있습니다.
  3. 우리는 이것을 다른 장소에서 재사용 할 수 있으며 익명의 클래스를 만들 필요가 없습니다. 익명의 클래스는 처음에는 쉽지만 4-5 개월 후에는 유지하기가 어렵습니다.
  4. 또한 JSON 등으로 변환하는 동안 엔티티 정보를 전달하지 않아도됩니다. 전자 메일 아이디만을 가진 직원은 json을 사용하여 보여줄 필요가 있고 뷰 모델이 없어야하므로 공유 할 필요가없는 개인 연락처 번호가 포함 된 전체 목록을 일련 번호로 나열해야합니다.
  5. 래퍼 클래스가있을 수도 있습니다. 출석으로 직원 세부 사항을 보여줄 필요가있다, 당신은 클럽을 2 테이블 필요로하고 유지 비용이 많이 드는 익명의 클래스를 만들어야한다.

그래서 나는 그것의 항상 좋은 연습 대신 뷰에 직접 EF 객체를 전달하는 뷰 모델을 사용하는 생각

+0

VeeKayBee는 비즈니스 유효성 검사를 수행하는 모델이 아닙니다. 뷰에 대한 유효성 검사는 거의 항상 jQuery 또는 다른 프레임 워크를 사용하여 수행됩니다. –

+0

jquery를 사용하는 것은 jQuery에 대한 기본적인 유효성 검사입니다. 귀하의 의견. 어떤 종류의 요구 사항이 있습니다. 사업 목적을 위해 수시로 변경 될 수 있습니다. 사람들은 jquery에서 이러한 것들을 처리하는 것이 가능하다고 말할 수 있지만 변화하는 동안은 고투해야합니다. 뷰 모델은 프로젝트에 신규 인력을 투입하지 않고도 신속하게 애플리케이션을 유지 관리하는 데 도움이됩니다. – kbvishnu

3

뷰 모델의 목적은 매우 간단-는 특히 있는 모델입니다 보기 내에서 사용하도록 설계되었습니다. 최소한의 의사 결정을 유지하는 도메인 모델의 상단에 단순화 된 인터페이스를 제공합니다.

- "액션에서 ASP.NET MVC 4"

당신이 고유 한 값의 수십보기에 통과해야하는 경우, 당신을 수있는 동일한 유연성 빠르게 새로운 항목을 추가, 기존 이름을 변경하거나 이름을 바꾸면 최악의 적이됩니다. 에 남아있어 항목 이름과 값을 추적합니다. Microsoft IntelliSense 및 컴파일러에서 도움을받지 못합니다. 소프트웨어의 복잡성을 처리하는 유일한 방법은 적절한 디자인을 사용하는 것입니다. 따라서 각 뷰에 대한 객체 모델을 정의하면 뷰가 실제로 필요로하는 것을 추적하는 데 도움이됩니다. 응용 프로그램에 추가하는 각보기에 대해 보기 모델 클래스를 정의하는 것이 좋습니다.

- "프로그래밍 Microsoft ASP.NET MVC "by Dino Esposito

모든 ASP.NET MVC 튜토리얼 및 서적에서 필자는 ViewModels이 필요하다고 생각합니다 .ViewModels를 사용하지 않으면 프로젝트가 단단하고 약해져서 ViewModels을

+0

압바스 대표에게 감사드립니다. MVC는 거의 항상 VM과 함께 사용하는 것이 가장 좋습니다. 그래서 우리는 결함이있는 패턴을 찾고 있습니다. 거의 항상 MVC는 단지 M에서만 작동하므로 VM을 실제로 사용할 수 있어야합니다. 이것에 대한 당신의 생각? –

관련 문제