2012-05-30 7 views
3

제 질문은 MVVM의 첫 번째 "M"모델에 관한 것입니다. 모델을 구현하는 방법에 대한 다양한 변형이 있습니다. 일부는 비즈니스 논리가없고 지속성 논리가없는 POCO 만 있으며 일부는 지속성 논리가없고 나머지 하나는 포함되어 있습니다.모델 지속성 - 어디에서 발생해야합니까?

지금 우리는 우리의 응용 프로그램에서 모델, 뷰 및 뷰 모델을 적절히 구분했습니다. 이것은 현재의 용액 구조 (그것 WPF 프리즘 응용)이다

  • 인프라
  • 모듈 A
    • ViewModels
    • 조회
  • 모듈 B
    • ViewModels
    • 조회수
  • 모델 (인 모듈 사이에 공유하는 이유는 자신의 클래스 라이브러리)
  • 서비스
  • DATAACCESS
  • 쉘 (주 WPF 프로젝트)
  • (아마도 날씬한-점 그물을 사용)

이제 데이터베이스에 대해 CRUD를 수행하고 모델을 업데이트하는 방법을 알아야합니다. 저는 모델을 매우 간결하게 유지하고 비즈니스 로직을 포함하고 "데이터"액세스 클래스에 대해 작업 단위 패턴을 수행하는 "서비스"클래스 라이브러리를 갖는 아이디어를 좋아합니다. 모델을 바보로 유지하고 비즈니스 로직/데이터 액세스를 모르는 것으로 알려진 문제가 있습니까? 이 MVVM에서 꽤 흔한 일입니까?

내가 자신을 제한하거나 모델에 논리를 삽입하지 않아도되는 복잡한 것 (예 : 인수가 주어진 ctor 내에서 모델로드)이 궁금합니다. 참고로, 이것은 큰 응용 프로그램이 될 것입니다.

우리의 응용 프로그램은 모델을 여러 데이터베이스에 보관해야합니다. Unity를 우리의 서비스를위한 의존성 주입 컨테이너로 사용하고 있습니다. 서비스에 어떤 데이터 연결을 사용할 지 어떻게 말합니까? Ctor, 기능별 등?

유사한 구조를 구축 한 사람을 찾고 어떤 경험이 있었는지/권장 사항이 무엇인지 찾아보십시오.

답변

5

내 생각에 MVVM 모델은 데이터를 '표현'하기 때문에 로직, CRUD 또는 기타 임베드되지 않아야합니다. 이미 데이터 액세스 레이어가 있으므로 CRUD 코드를 작성하고 DI를 사용하여 모델에서이 CRUD 코드에 액세스하는 것이 정상입니다. MVVM의

은 "아름다움"나는 내 모든 CRUD 작업을 가지고 ... 내가 다른 사람이 그 모델은 데이터입니다 주장 확신하고 CRUD 로직을이 (가) 포함 할 수 있도록이 해석에 열려 있음을

입니다 내 DAL에서 아직 접근법의 단점을 보지 못했습니다 ...

+1

MVVM은 응용 프로그램 아키텍처 패턴이 아니지만 더 표준화 된 방식으로 사용자 인터페이스를 디자인하는 패턴을 의미합니다. 따라서 데이터에 관해서는 MVVM이 선택의 수단이 아닙니다. – PVitt

+0

감사합니다.나는 모든 것을 채우고 유지하기 위해 서비스/저장소가있는 작업 단위 패턴을 사용하여 결국 모델을 유지했습니다. –