> 웹 프론트엔드 > 프런트엔드 Q&A > mvvm 프레임워크란 무엇입니까?

mvvm 프레임워크란 무엇입니까?

青灯夜游
풀어 주다: 2020-11-17 15:28:55
원래의
12617명이 탐색했습니다.

mvvm 프레임워크에는 다음이 포함됩니다. 1. MVVM 패턴을 구현하는 경량 프레임워크 2. Prism 프레임워크 3. MVVM 클래스용 오픈 소스 프레임워크 5. Cinch 프레임워크 , MVVM Foundation Framework

mvvm 프레임워크란 무엇입니까?

MVVM을 구현하기 위한 프레임워크

1. 가장 강력하고 다양한 구성 프레임워크 - Prism

다운로드 주소: http://compositewpf.codeplex.com/

개발자: Microsoft 패턴 및 사례 팀

Silverlight 지원: 예

학습 자료: WPF 및 Silverlight에 대한 복합 응용 프로그램 지침 - 2010년 5월.chm 및 Quickstarts 및 StockTraderRI 등

소스 코드 스크린샷은 다음과 같습니다.

mvvm 프레임워크란 무엇입니까?

Prism - 이전에는 WPF 및 Silverlight용 복합 애플리케이션 지침으로 알려졌으며, WPF/Silverlight를 기반으로 하는 복잡한 기업 수준 애플리케이션을 구축하기 위한 주류 프레임워크입니다. Prism에는 몇 가지 중요한 개념이 있습니다:

1. BootStrapper: 애플리케이션 진입점, Prism의 UnityContainer 또는 MEF에서 제공하는 MefUnityContainer를 상속하고 시스템에 대한 컨테이너를 제공합니다.

2. Shell: UI 요소와 영역을 통해 페이지를 레이아웃하는 쉘입니다. 애플리케이션의 최상위 창이며 표시되는 내용은 일반적으로 View에 의해 채워집니다. Shell 자체는 어떤 내용이 포함되어 있는지 알지 못하므로 각 모듈에서 기능을 구체적으로 제공합니다.

3. 보기: MVP 모드 및 MVVM 모드의 보기와 동일합니다. IRegionManager를 통해 Region에 주입할 수 있습니다.

4. 모듈: 대규모 프로젝트는 여러 부분으로 나눌 수 있습니다. 각 모듈에는 뷰, 데이터, 모델이 포함되어 있으며 주로 복잡한 비즈니스 운영을 구현하는 데 사용됩니다.

5. IModuleManager: 주로 모듈 로딩을 관리하는 데 사용되며 동적 로딩을 달성할 수 있습니다.

6. IEventAggregator: MVVM 프레임워크의 일반적인 관행이기도 한 구독 및 게시 모드를 구현하는 이벤트 처리 인터페이스입니다.

Prism은 MEF 도입과 4.0의 기능 조정 이후 더욱 강력해진 조합 프레임워크입니다. Microsoft 팀이므로 선택할 가치가 있습니다.

2. 가장 강력하고 다재다능한 애플리케이션 프레임워크 - Caliburn

다운로드 주소: http://caliburn.codeplex.com/

개발자: Rob Eisenberg

Silverlight를 지원합니까?: 예

학습 자료: 저는 주로 프로젝트 예제, 소스코드, 단위 테스트 케이스, 일부 외국 블로그와 커뮤니티를 참고합니다.

소스 코드의 스크린샷은 다음과 같습니다.

mvvm 프레임워크란 무엇입니까?

Caliburn에는 몇 가지 중요한 개념이 있습니다.

1 액션 기반 명령에는 다중 매개변수, 필터링 작업 및 비동기 호출을 포함한 많은 기능이 있습니다.

2. 양식 및 컨트롤의 수명 주기 이벤트도 비교적 잘 처리됩니다(활성화, 비활성화, 종료 등 포함).

3. 전체 프레임워크와 이 프레임워크를 기반으로 하는 애플리케이션 모두의 테스트 가능성이 상대적으로 좋습니다.

4는 프로젝트에 더 유용한 많은 공통 기능을 제공합니다.

5 MVVM 모드 지원 외에도 MVP 모드 및 기타 변형 모드도 지원합니다.

6 강력한 종속성 주입 프레임워크와 AOP 프레임워크 중 하나를 여기에서 유연하게 선택할 수 있습니다.

Caliburn은 프로젝트 사용이든 코드 연구이든 많은 기능을 유연하고 다양하게 구현하는 매우 강력한 MVVM 애플리케이션 프레임워크입니다.

3. 가볍고 적용 가능한 MVVMLight

MVVMLight는 MVVM 패턴(Prism 관련)을 구현하는 경량 프레임워크로, WPF, Windows Phone, Windows 8 및 SilverLight 관련 프로젝트를 개발하는 데 더 도움이 될 수 있습니다.

MVVMLight의 작성자 Laurent Bugnion은 Microsoft MVP입니다. 작성자는 Codeplex(http://mvvmlight.codeplex.com/)에 코드를 오픈 소스로 제공했습니다.

MVVMLight 공식 홈페이지: http://www.mvvmlight.net/ 관심이 있으시면 자세한 소개와 영상 자료를 확인하실 수 있습니다.

다운로드 주소 : http://mvvmlight.codeplex.com/

개발자 : Laurent Bugnion

지원 Silverlight : 예

학습 자료 : 온라인 문서 외에 프로젝트 예제, 소스 코드, 단위 테스트 등을 주로 참고합니다. 사례, 일부 해외 블로그 및 커뮤니티. 게다가 이 세 기사는 MVVMLight

  • 1부 - 소개, 설치 및 일반 응용 프로그램 디자인 주제

  • 2부 - MVVM Light 주제

  • 를 사용하여 비교적 완전한 Silverlight 엔터프라이즈 프로젝트를 개발했습니다. 3부 - 사용자 정의 인증, 비밀번호 재설정 및 사용자 유지 관리

소스 코드 스크린샷은 다음과 같습니다.

mvvm 프레임워크란 무엇입니까?

MVVMLight에는 몇 가지 중요한 개념이 있습니다.

1. RelayCommand: Command를 캡슐화하면 WPF 및 Silverlight에서 MVVM 모드를 더 쉽게 사용할 수 있습니다. ViewModel에서 각 RelayCommand를 정의한 다음 Command를 사용하여 ViewModel에 정의된 RelayCommand를 View에서 바인딩하면 WinForm 및 ASP.NET 이벤트와 동일한 효과를 얻을 수 있지만 여기서는 UI와 로직이 강력한 결합을 제거합니다. .

2. Messager: MVVMLight의 Messager는 앞서 언급했듯이 MVVM 모드는 ViewModel과 View의 강력한 참조를 제거하므로 어떻게 상호 작용합니까? ViewModel과 View가 통신할 수 있도록 하는 데 사용됩니다. 일반적으로 정적 AppMessages 클래스를 일반 통신 클래스로 정의합니다. 원칙은 게시-구독 모델입니다.

3, EventToCommand: MVVM Light Toolkit V3에 도입된 추가 동작 개념과 유사합니다.

4. ICleanup 인터페이스: View가 표시되면 데이터를 지우기 위해 Cleanup 메서드를 먼저 호출해야 합니다. 이 작업도 ViewModel과 View의 결합 격리로 인해 필요합니다.

MVVMLight는 VS 및 Blend를 위한 템플릿과 지능형 감지를 제공하는 매우 사용하기 쉬운 MVVM 프레임워크입니다. MEF와 함께 사용하면 정말 가볍고 효율적인 느낌이 들며 WPF 및 Silverlight, 특히 Silverlight 지원을 제공하므로 일반적으로 더 유망한 경량 Silverlight MVVM 모드를 선택합니다.

4. 모든 기능을 갖추고 사용하기 쉬운 MVVM 도우미

다운로드 주소: http://mvvmhelpers.codeplex.com/

개발자: Mark Smith

지원 Silverlight: 아니요

학습 자료: http://www.julmar.com/blog/mark/ 및 제공된 예제, 소스 코드 및 테스트 사례.

소스 코드 스크린샷은 다음과 같습니다.

mvvm 프레임워크란 무엇입니까?

MVVM Helpers는 JulMar MVVM Helpers + Behaviors라고도 하며 몇 가지 중요한 개념을 가지고 있습니다.

1 ViewModel, View 및 Model을 포함한 MVVM 모드의 기본 기능을 제공합니다. 격리하고 일부 공통 기능도 제공합니다.

2. ViewModel 생성이 태그 형태로 주입되며 이제 MEF도 도입할 수 있습니다.

3. IOC/DI 지원, 속성에는 검증 메커니즘이 있으며, 뷰 모델을 사용한 후 시간에 맞춰 해제될 수 있는 대기 커서 지원을 통해 메모리 누수를 방지합니다.

4. 일반적으로 사용되는 연결 동작을 지원합니다.

5. 강력한 참조로 인한 결합을 방지하기 위한 메시지 메커니즘 도입.

MVVM Helpers는 매우 적용 가능한 MVVM 프레임워크이며, 특히 일반적인 MVVM 기능 + MEF + 연결된 동작을 제공하므로 프로젝트의 문제를 기본적으로 해결할 수 있습니다.

5, 강력하고 가벼운 Cinch

다운로드 주소: http://cinch.codeplex.com/

개발자: Sacha Barber

Silverlight 지원: 아니요

학습 자료: http://sachabarber.net/ 예제, 소스 코드 및 테스트 케이스를 제공했습니다.

소스코드 스크린샷은 다음과 같습니다.

mvvm 프레임워크란 무엇입니까?

코드를 잘 살펴보면 위에서 언급한 MVVM Helpers와 유사한 코드가 많이 있다는 것을 알 수 있습니다. :-디. Cinch에는 몇 가지 중요한 개념이 있습니다.

1. 이 프레임워크는 MEF가 등장하기 전에 이미 ViewModel과 View 사이에 강력한 참조 격리를 구현했습니다. 여기에는 일반 IOC 구성이나 전송용 IView가 없으며 양식 및 컨트롤의 수명 주기 이벤트도 없습니다. 처리도 비교적 잘 되어 있어서 이 점에서는 매우 좋습니다.

2는 일반적으로 사용되는 연결된 동작에 대한 지원을 제공하고 몇 가지 일반적인 MVVM 기능도 제공합니다.

3. DI/IOC는 시스템에서 예측할 수 없는 오류를 방지하기 위해 Unity와 멀티 스레드를 사용하여 구현됩니다.

4. 뷰모델은 사용 후 시간에 맞춰 해제될 수 있으므로 메모리 누수를 방지하고 확인 메커니즘을 추가하며 공통 탐색을 구현합니다.

5. 강력한 참조로 인한 결합을 방지하기 위한 메시지 메커니즘 도입.

Cinch는 특히 전체 애플리케이션 구성에 중점을 두기 때문에 매우 강력한 프레임워크이므로 더욱 인기가 높습니다.

6. 간단한 기능과 쉬운 확장성을 갖춘 MVVM Foundation

다운로드 주소: http://mvvmfoundation.codeplex.com/

개발자: Josh Smith

지원 Silverlight: 아니요

학습 자료: http:/ / joshsmithonwpf.wordpress.com/ 및 제공된 예제, 소스 코드 및 테스트 사례.

소스 코드 스크린샷은 다음과 같습니다.

mvvm 프레임워크란 무엇입니까?

MVVM Foundation에는 몇 가지 중요한 개념이 있습니다.

1 메신저: 주로 다양한 ViewModel(예: 상호 연관된 ViewModel, 마스터-슬레이브 ViewModel) 간의 통신에 사용됩니다. 등), 물론 ViewModel과 View 간의 통신을 위해 확장될 수도 있습니다.

2. ObservableObject: 이는 ViewModelBase의 개념과 동일합니다. 각 ViewModel은 이 클래스에서 상속되며 메모리 누수를 방지하기 위해 호출이 완료된 후 즉시 해제됩니다.

3. PropertyObserver: 주로 INotifyPropertyChanged.PropertyChanged를 캡슐화합니다. 이 캡슐화는 코드를 단순화하고 부적절한 작업으로 인한 메모리 누수를 방지할 수 있습니다.

4. RelayCommand 인터페이스: 실행 실행 로직, 선택적 실행 가능 로직 등을 포함하는 명령문을 캡슐화합니다. 외부적으로는 인스턴스화하고 바인딩만 하면 쉽게 사용할 수 있습니다.

MVVM Foundation은 매우 간단한 MVVM 프레임워크입니다. 소스 코드를 공부하기 어렵다면 먼저 이 프레임워크부터 시작해 보세요.

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 학습 웹사이트를 방문하세요! !

위 내용은 mvvm 프레임워크란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿