2009-07-13 2 views
13

꽤 큰 WPF 응용 프로그램을 만드는 데 관심이 있습니다. 누군가 우리가 현재 조사하고있는 PRISM을 사용하도록 제안했습니다. 이 응용 프로그램을 구현하는 데 MVVM 패턴을 사용하고있을 수 있습니다. 나는 PRISM 스크린 캐스트를 보았고 PRISM이 주로 다른 뷰를 가진 영역을 주입하는 데 사용되는 것 같습니다. PRISM을 사용하는 주된 목적입니까?프리즘을 사용하는 이유는 무엇입니까?

항상 ContentPresenter를 사용하여 WPF MasterPages를 사용할 수 있으므로 지역 용도로 PRISM을 사용해야하는 이유는 무엇입니까?

+0

내가 물어 비슷한 질문 - http://stackoverflow.com/questions/6251821/custom-mvvm-implementation-vs-prism – akjoshi

답변

12

프리즘은 지역 시스템보다 약간 더 많이 제공합니다. 아니 철저 :

  • 보기 - 모델 명령 시스템
  • 이벤트 애그리 게이터 (aggregator),
  • 표준 (예 : GUI 스레드 호출, 약한 참조 등과 같은 내장 옵션이 많은) 분리 할 이벤트 처리 이러한 종류의 유연성이 필요한 경우 모듈을로드하는 방법

지역 시스템은 단순히 "콘텐츠 발표자 래퍼"이상입니다. 그것은 "밀어 ​​넣기"(보기를 영역에 넣기) 또는 "당기기"(모듈이 어떤 영역을 채울 것인지를 선언하는 데 사용할 수 있습니다). 또한 단순한 contentpresenter 영역 (예 : ItemsControl 기반 영역) 이상을 지원하며 영역 어댑터를 통해 확장 할 수 있습니다.

프리즘의 형식주의를 채택 할 때 외부인이 이미 알고있을 수있는 일반적인 "언어"(프리즘 팀이 그렇게 부르지는 않더라도 대부분의 프레임 워크)에 베팅 할 수 있습니다. 누군가가 완전히 새로운 것을 배울 것을 요구할 자신 만의 발명품을 만드는 것. 수명이 긴 프로젝트에서 좋은 일이 될 수 있습니다 (Prism은 너무 젊지 않습니다.).

3

페이지의 다양한 하위 구성 요소가 독립적 인 방식으로 페이지를 합성하는 경우 PRISM (또는 선구자 복합 UI 응용 프로그램 블록)이 인식 된 "표준" 문서화 된 합성 방법.

합성의 이점은 사용자 인터페이스의 각 구성 요소를 개별적으로 개발 한 다음 생산주기 후반에 함께 묶을 수 있다는 것입니다. 즉, 여러 곳에서 쉽게 사용할 수있는 구성 요소를 생성했으며 "구성 요소를 페이지에 놓고 상태와 대화하는"방식보다는 잘 정의 된 인터페이스를 통해 구성 요소 간의 통신이 이루어지고 있음을 의미합니다.

그래서 지금하고있는 일이 효과가 있다면 계속 진행할 것입니다. 보유하고있는 제품이 개발되지 않은 경우, 부품 및 부품을 다루는 많은 개발자와이 부품들을 함께 사용하여 사용자를위한 완전한 사용자 인터페이스로 끌어들이는 그룹이 있다면 PRISM과 같은 것을 고려하십시오. 내 경험으로는 Composite UI Application Block을 사용하고 있으며 대규모 프로젝트의 테이블에 많은 도움이되었지만 약속 된 단순화는 적당한 규모의 프로젝트에도 적합합니다.

0

복합 애플리케이션 블록을 아는 경우 기본적으로 동일합니다. PRISM의 주요 목적은 응용 프로그램의 각 부분 (즉, 화면 부분 또는 보이지 않는 구성 요소)이 응용 프로그램의 다른 부분과 느슨하게 결합 된 WPF 복합 응용 프로그램을 만드는 것입니다.

2

여기서 개발 모듈의 구획화를 강조하겠습니다. 별도의 소규모 팀이 애플리케이션의 일부를 개발 한 다음 끝에 함께 배치 할 수 있습니다.

MVVM이 확실히 여기에있는 방법이지만, CAG는 ViewModels에 종속성 주입을 사용하여 다른 방식보다 테스트 할 수있게 만들 것을 권장합니다. 물론 CAG없이 종속성 삽입을 사용할 수 있지만 공식적인 격려를받는 것이 좋습니다.

관련 문제