2011-03-24 3 views
5

WPF/Silverlight 플랫폼에서보기 모델을 공유 할 수 있습니까? 나는 VM을 별도의 어셈블리에 넣기 시작했고 곧 ICommand에 왔습니다. 그러면이 질문을하게되었습니다. 가능한가요, 그렇다면 그렇게하는 것이 좋습니다. 우리는 앞으로 WPF 및 Silverlight 용 클라이언트 응용 프로그램을 가질 가능성이 있으므로 두 가지 모두에 대해 VM을 복제 할 필요가 없습니다.MVVM - Silverlight와 WPF 간의 ViewModels 공유/재사용

답변

4

잠재적으로 Portable Library Tools CTP을 사용하여이 작업을 수행 할 수 있습니다. 이를 통해 단일 라이브러리 프로젝트에서 Silverlight뿐 아니라 전체 프레임 워크를 대상으로 지정할 수 있습니다.

그렇지 않으면 가능합니다. 여전히 두 개의 개별 프로젝트가 필요하지만 (실제로는 하나의 소스 파일을 사용할 수 있습니다). 동일한 소스 파일을 사용하는 각 프로젝트가 재사용을 유지하지만 파일을 수동으로 동기화해야합니다. 이 경우 플랫폼 별 기능을 부분 클래스 또는 정의를 통해 쉽게 추가 할 수있어 Silverlight 기능이 누락 된 경우 해결 방법 중 일부를 쉽게 유지할 수 있습니다.

+0

필자는 Portable Library 옵션이 최선의 선택이 될 것이라고 생각하지만 코드를 가장 낮은 공통 분모에 맞출 것을 강요합니다. 실제로 ViewModels의 경우 View 관련 idiosyncrasies를 View 및 모든 플랫폼 특유의 서비스 레이어로 추상화해야하므로 문제는되지 않습니다. –

0

[거의] Silverlight에서 가능하지만 WPF에서도 가능합니다. 따라서 Silverlight에서 작동하는 VM을 사용하는 경우 [대부분] WPF에서 작동합니다.

다른 관점에서 볼 때 WPF는 더 풍부한 가능성을 제공하므로 코드의 WPF 부분에서 사용할 수 있습니다. 평소 #ifdef Silverlight과 같은 트릭을 사용할 수 있습니다.

또한 this question이 유용 할 수 있습니다.