2012-01-16 4 views
0

개념적 수준에서 문제가 있습니다. 많이 읽었지만 아직 빠져 나가지 않았습니다. 주문을 계획하고 선택한 위치에 따라 제품을 선택할 수있는 시스템을 모델링하고 싶습니다. 분석 단계에서 제품, 위치 및 주문 클래스에 데이터를 요청하는 사용자 인터페이스가 맞습니까? 디자인 단계에서 여러 모델에 대한 액세스를보고 데이터를 표시 할 수 있으며 orderView가 주문 모델에만 액세스하고 이것이 데이터베이스의 모든 데이터를 사용하면 (위치, 주문 및 제품에 대해 다른 DAO 사용) 더 정확합니다. 미리 감사드립니다. VincenzoMVC - 여러 모델이 필요한보기

답변

3

이 문제를 해결하기위한 접근 방법은 ViewModel (http://geekswithblogs.net/michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspx)을 사용하는 것입니다. 기본적으로 복합 모델을 사용하여 다른 여러 모델을 그룹화하여 뷰에 서비스 할 수 있습니다.

Product 모델과 Location 모델 및 Order 모델 (예 : Monthly Sales Summary)을 결합하여 논리적으로 구별되는 모든 모델이있는 경우, 제품을 포함하는 SalesSummaryViewModel을 만들 수 있습니다. 주문 및 위치를 반환 할 수 있습니다.

+0

감사합니다. 매우 명확하고 유용한 설명입니다. – Vincenzo

+0

답변을 수락하거나 받아 들일 때입니다. :) –

2

Model View ViewModel은 비즈니스 요구 사항을 충족하고 비즈니스 개체를 구성하기 위해 ViewModel objects을 생성해야합니다.

+0

감사합니다. 이제 모든 것이 더 명확하고 간단합니다. – Vincenzo

1

가 절대적인 설계 단계에서

이 없습니다 말할 잘못된 일 "은 바로 ...입니다". 디자인은 트레이드 오프에서의 연습입니다. 저의 논문 끝 부분에서 우리는 당신이 준수해야하는 건전한 디자인 컨셉으로 헤어를 나눠주고 있다고 결론을 맺기를 희망합니다.

의 상호 작용을 관리에서 데이터에서 UI를 분리하면 우리가 전체 설계 세부 사항이 없기 때문에 당신이 MVP, MVC 사용 여부

가, MVVM은 대부분이 포럼의 학술 운동입니다 좋은 디자인 목표를합니다.

인수를 위해 기본 아이디어 MVC를 호출 해 보겠습니다. MVP는 그 변형이며 MVVM (ViewModel)은 MVP의 전문 분야입니다.

MVVM/뷰 모델은 .NET 특정

Model-View-ViewModel 패턴은 WCF, XAML, 실버 라이트의 기능을 활용하기 위해 마이크로 소프트 건축가에 의해 만들어진 것입니다 (마주 ASP.NET 및 Windows Forms). 최종 분석에서는 .NET 기술을 활용하여 기본 개념을 변형 한 것입니다.

노출 모델
.. 여부는 모델 뷰 컨트롤러 구성 요소 사이에 원하는 얼마나 많은 커플 링에 대한 판단 호출입니다 볼 수 있습니다.

MVC은 모델에 대한 참조를 제공합니다. 이는 데이터 바인딩에 편리합니다. 당신이 사용한다면.NET Binding 아키텍처를 사용하면이 패턴이 결국 사용할 수 있습니다.

MVP - 데이터 모델을 볼 수있는 발표자 (더 많은 권한을 가진 컨트롤러) 만 가능합니다. 예를 들어, 여전히 .NET Binding 아키텍처를 사용할 수 있지만 발표자는 모든 것을 연결하는 중간 사람입니다. 왜? 전반적인 디자인을 기반으로 정보에 입각 한 결정을 내 렸기 때문입니다.

MVP는 발표자가보기 및 모델에 대해 잘 알고있어 함께 연결하고 UI 입력을 처리 할 수 ​​있음을 의미합니다. 따라서 각 뷰에 대해 발표자가 있으므로 사용자 정의 쌍 (대부분 가능성 있음)을 교환 할 수 없습니다. 당신이 .NET WCF에서 개발하는 경우 예를 들어 디자인 아키텍처

에 영향을 미칠 수

개발 도구 당신은 절대적으로 MVVM을 사용하지만 선택의 여지가 없다; 그것이 프레임 워크가 작동하는 방식입니다.

마찬가지로 Mac OS X 개발 IDE는 MVC를 사용해야합니다. Ruby On Rails 및 .NET MVC 웹 개발도 마찬가지입니다.

ORM (Object Relational Mapper)과 .NET LINQ가 하나 인 경우 디자인에 데이터 액세스 레이어 자체가 없을 수 있습니다.

관련 문제