MVVM – 프레임 워크

이 장에서는 사용 가능한 MVVM 툴킷 또는 프레임 워크에 대해 설명합니다. 또한 이러한 프레임 워크를 사용하여 MVVM 패턴을 직접 구현하기 위해 반복적 인 코드를 작성할 필요가 없습니다. 다음은 가장 인기있는 프레임 워크입니다.

  • Prism
  • MVVM 라이트
  • Caliburn Micro

프리즘

Prism은 풍부하고 유연하며 쉽게 유지 관리되는 WPF (Windows Presentation Foundation) 데스크톱 응용 프로그램을 쉽게 설계하고 빌드하는 데 도움이되는 샘플 및 설명서 형식의 지침을 제공합니다. Microsoft Silverlight 브라우저 플러그인 및 Windows 응용 프로그램으로 구축 된 RIA (Rich Internet Applications).

  • Prism은 관심사 분리 및 느슨한 결합과 같은 중요한 아키텍처 디자인 원칙을 구현하는 디자인 패턴을 사용합니다.

  • Prism은 독립적으로 발전 할 수 있지만 전체 애플리케이션에 쉽고 원활하게 통합 될 수있는 느슨하게 결합 된 구성 요소를 사용하여 애플리케이션을 설계하고 구축하는 데 도움이됩니다.

  • 이러한 유형의 애플리케이션을 복합 애플리케이션이라고합니다.

Prism에는 즉시 사용할 수있는 다양한 기능이 있습니다. 다음은 Prism의 몇 가지 중요한 기능입니다.

MVVM 패턴

Prism은 MVVM 패턴을 지원합니다. 이전 장에서 구현 한 것과 유사한 Bindablebase 클래스가 있습니다.

규칙이있는 유연한 ViewModelLocator가 있지만 이러한 규칙을 재정의하고 느슨하게 결합 된 방식으로 뷰와 ViewModel을 선언적으로 연결할 수 있습니다.

모듈성

코드가 완전히 분리 된 상태로 유지되는 동안 코드를 부분적으로 완전히 느슨하게 결합 된 클래스 라이브러리로 분할하고 런타임에 최종 사용자를위한 응집 된 전체로 통합하는 기능입니다.

UI 구성 / 지역

UI 컨테이너 자체에 대한 명시 적 참조가 있어야하는 연결을 수행하는보기없이보기를 컨테이너에 연결하는 기능입니다.

항해

Prism에는 전방 및 후방 탐색과 같이 영역 위에 계층화되는 탐색 기능과보기 모델이 탐색 프로세스에 직접 참여할 수있는 탐색 스택이 있습니다.

명령

Prism에는 명령이 있으므로 이전 장에서 사용한 MyICommand와 매우 유사한 델리게이트 명령이 있습니다. 단, 메모리 누수로부터 사용자를 보호하기위한 추가 견고 함이 있습니다.

Pub / Sub 이벤트

Prism은 또한 Pub / Sub 이벤트를 지원합니다. 이는 게시자와 구독자가 서로 다른 수명을 가질 수 있고 이벤트를 통해 통신하기 위해 서로에 대한 명시 적 참조를 가질 필요가없는 느슨하게 결합 된 이벤트입니다.

MVVM 라이트

MVVM Light는 Laurent Bugnion에서 생산하며보기를 모델에서 분리하는 데 도움이되며, 이는 더 깨끗하고 유지 관리 및 확장이 쉬운 애플리케이션을 생성합니다.

  • 또한 테스트 가능한 애플리케이션을 생성하고 훨씬 더 얇은 사용자 인터페이스 레이어를 가질 수 있습니다 (자동으로 테스트하기가 더 어렵습니다).

  • 이 툴킷은 Blend 사용자가 데이터 컨트롤 작업을 할 때 "뭔가를 볼"수 있도록하는 디자인 타임 데이터 생성을 포함하여 Blend에서 사용자 인터페이스를 열고 편집하는 데 특히 중점을 둡니다.

Caliburn Micro

이것은 MVVM 패턴을 구현하는 데 도움이되는 또 다른 작은 오픈 소스 프레임 워크이며 여러 가지를 즉시 지원합니다.

  • Caliburn Micro는 모든 XAML 플랫폼에서 응용 프로그램을 빌드하도록 설계된 작지만 강력한 프레임 워크입니다.

  • MVVM 및 기타 입증 된 UI 패턴에 대한 강력한 지원을 통해 Caliburn Micro를 사용하면 코드 품질이나 테스트 가능성을 희생 할 필요없이 솔루션을 빠르게 구축 할 수 있습니다.