문제

나는 응용 프로그램을 개발합된 이 모델은,그러나 나는 점에 도달하면 내가 선택해야 하는 framework 를 사용합니다.

중 가능한 옵션은 아래와 같습니다:

  • 된 이 Toolkit
  • 된 이 Foundation
  • WPF 응용 프로그램 프레임워크(WAF)
  • 빛된 이
  • Caliburn
  • Cinch
  • Prism

에서의 경험,더 나은 무엇입니까?

도움이 되었습니까?

해결책

그것은 정말에 따라 당신이 무엇을 달성하기 위해 노력하고,어떻게 많은 인프라가 당신이 원하는 장소에서 이미 더 쉽게 찾을 수 있는 샘플신을 도울 수 있습니다.나는 선언 관심이기 때문에,여기에 나는 적극적으로 참여서 적어도 하나의된 이 프레임워크를 했어 입력으로 다른 사람을 통해 WPF 제자들이 그룹은,그래서 내가 조금 편견입니다.고 말하는,여기에 간다:

마이크로 소프트 된 이 Toolkit -이것은 여전히 매우 많이 알파 단계가 있습니다.그것은 원래 발표 했는데 그의 savaging 에서 제자들은 무엇 때문에 그렇게 하지 않았다.말 MS 가고 쇠고기는 이 프레임워크까지 그래서 그것의 하나-그것은 단지 아직 준비되지 않았습니다.

된 이 Foundation -아 Josh Smith 의 프레임워크 버전을.조쉬의 한 아빠의된 이동하고 있습니다 거대한 옹호하고 교사의 패턴입니다.그 결과로,많이 찾을 수 있습니다 무엇에서 다른 프레임워크는 조쉬의 지문 모니다.이 프레임워크를 제공하기 위한 기본 사항의된 이 아닌 주소의 일부는 더 많은 난해한 문제입니다.원래 이용만을 위한 WPF 그러나 사람들은 같은 Laurent Bugnion 고 나 자신이 기능을 추가/프로젝트는 뜻이 될 것입니다 Silverlight 호환되는 프레임워크습니다.

WAF -경험이 없다,그래서 나이에요 그것이 나는 두려워합니다.

된 이 빛 -Laurent Bugnion 의,그것을 가지고 그냥 버전으로 업데이트 2.이것은 매우 좋은 프레임워크,그러나 다시는 그것도록 만들어지지는 않았습니다 커버의 모든 단일 측면된 이용됩니다.주 Laurent 의 배경,그것은 매우 강력한 Silverlight 하 고 blendability 지원습니다.

업데이트 로랑은 그냥 정보는.NET3.5.NET4.0 버전은 특징 호환됩니다.Wau to go Laurent.

Cinch-Sacha 이발사의 우수 WPF 만된 이 framework.이보다 더 많은 땅을 프레임워크에 대해 얘기 했습니다.니다.그것은 훌륭한 프레임워크의 장점에서 다루는 개념을 빌 Kempf 의 우수한 오닉스 프로젝트입니다.오닉스는 것을 보완된 이 프레임워크 및에서 추가 기능을 하는 일반적으로 열심히 사람들이에서 수행된 이/WPF.다시된 WPF 만,오닉스 진행을 포함 SL 호환성-직장 내가 특히게 되어 자랑스럽게 생각합니다.

Prism -다시 사용한 적이 있지만,I've heard a lot of good things about it.

-칼 Shifflett,프로그램 관리자에 사과 팀,최근에 발표된 완벽한 기능을 갖춘 WPF 된 이 framework.또 다시,이것은 다양한 프레임워크 및 손쉽게 접근할 수 있는 곳에 있습니다 그것을 권장합니다.

결론은,다운로드는 다양한 프레임워크를 살펴 그 밖으로 작동 하나에 맞는 가장 직관적으로는 당신이 생각하는 방식으로 귀하의 요구 사항입니다.당신이 생각하는 경우에 당신을 지원 할 수 있습 Silverlight 에서 동일한 코드 베이스 다음 WPF 프레임워크만해야 할인됩니다.

다른 팁

이 기사가 매우 유용하다는 것을 알았습니다 http://www.japf.fr/2009/10/a-quick-tour-cenisting-mvvm-frameworks/ 다가오는 사용자를 위해 여기로 가져 오도록합니다

Cinch 섹션을 업데이트하고 기능에 Silverlight 지원을 추가합니다.

긴 이야기에 대해 죄송합니다

일반적인 특징:

• ViewModelbase 클래스 (InotifyPropertyChanged 인터페이스의 구현을 위해)

• 클래스와 같은 릴레이 공무원은 UI 명령을 ViewModel의 핸들러에 연결합니다.

• 단위 테스트는 프레임 워크와 함께 제공됩니다

꽉 쥐기

• 저자 : Sacha Barber

• Silverlight 지원 : 아니요 (Cinch 버전 2는 Silverlight 지원)

• 문서 : CodeProject에 게시 된 우수한 6 개의 기사

• 호스팅 : CodePlex

• 라이센스 : 코드 프로젝트 오픈 라이센스

• 특징:

  1. 첨부 된 행동

  2. idataerRorinfo를 사용한 유효성 검사

  3. IEDIBLEOBJECT에 대한 지원

  4. 약한 이벤트 생성 및 구독

  5. 약한 이벤트를 사용한 중재자 메시징

  6. IOC/DI 지원 (Unity 사용)

  7. 서비스 : 이벤트 로거, 메시지 상자, 오픈 저장 대화 상자, 팝업

  8. 스레딩 도우미

  9. 메뉴 항목 지원

  10. 닫을 수있는 뷰 모델

  11. MVVM 코드 생성기

MVVM 라이트 툴킷

• 저자 : Laurent Bugnion

• 실버 라이트 지원 : 예

• 문서 : Laurent의 블로그 + 기타 개발자에서도 구할 수있는 많은 기사

• 호스팅 : CodePlex

• 라이센스 : MIT 라이센스

• 특징:

  1. MSI 설치 프로그램

  2. vs 프로젝트 및 항목 템플릿

  3. 대 코드 스 니펫

  4. 모드 간 통신을위한 메신저 시스템

  5. 명령으로 이벤트를 처리합니다

MVVM 도우미

• 저자 : Mark Smith

• 실버 라이트 지원 : 아니요

• 문서 : Mark의 블로그의 일부 기사

• 호스팅 : 개인 웹 사이트

• 라이센스 : 정의되지 않았습니다

• 특징:

  1. 첨부 된 행동

  2. 마크 업 확장을 사용한 뷰 모델 생성

  3. 속성 기반 검증

  4. ServiceProvider 접근법을 사용하는 IOC/DI

  5. 닫을 수있는 뷰 모델

  6. 대기 커서 (new WaitCursor () {// 코드})

MVVM 재단

• 저자 : Josh Smith

• 실버 라이트 지원 : 아니요

• 문서 : Josh 또는 Marlon Grech의 블로그의 메신저 구현에 관한 기사

• 호스팅 : CodePlex

• 라이센스 : MS-PL

• 특징:

  1. 모드 간 통신을위한 메신저 시스템

  2. PropertyChanged 이벤트 모니터

Caliburn

• 저자 : Rob Eisenberg

• 실버 라이트 지원 : 예

• 문서 : 온라인 문서를 완료 할 수 있습니다

• 호스팅 : CodePlex http://www.codeplex.com/caliburn

• 라이센스 : MIT 라이센스

• 특징:

  1. 명령은 작업 위에 구축되므로 여러 입력 매개 변수, 필터 및 자동 비동기 실행을 포함하여 동일한 기능을 공유합니다.

  2. 다양한 UI 구성 요소에 대한 활성화 처리, 비활성화 및 종료 의미와 같은 UI 수명주기 문제를 처리하는 발표자

  3. Caliburn 응용 프로그램은 완전히 테스트 가능합니다

  4. 백그라운드 작업 관리자와 같은 다양한 유틸리티

  5. 다양한 UI 패턴을 지원합니다 (MVVM 만 아님)

  6. 의존성 주입 컨테이너

오닉스

• 저자 : William E Kempf

• 실버 라이트 지원 : 아니요

• 문서 : CodePlex에서 제공되는 기본 소개

• 호스팅 : CodePlex

• 라이센스 : 지정되지 않았습니다

• 특징:

  1. Servicelocator 패턴

  2. 사용자 정의 마크 업 확장을 사용하여 ViewModel 생성

  3. idisplayMessage와 같은 UI 관련 서비스

칼슘

• 저자 : Daniel Vaughan

• 실버 라이트 지원 : 아니요

• 문서 : CodeProject (Part1 and Part2)에 대한 매우 자세한 기사 2

• 호스팅 : CodePlex

• 라이센스 : 저작권을 사용, 복사, 수정 및/또는 배포하고 보관하십시오!

• 특징:

  1. 런타임에 모듈을 활성화 또는 비활성화하기위한 모듈 관리자

  2. 동일한 API를 사용하여 클라이언트 또는 서버에서 사용자와 상호 작용하기위한 메시징 서비스

  3. WPF ICOMMAND를 활성보기 또는 뷰 모델이 인터페이스를 구현할 때만 활성화되는 컨텐츠 인터페이스와 연결하는 명령 서비스

  4. 도구 모음 및 메뉴를위한 지역 어댑터

  5. 클라이언트-서버 로깅은 상자 밖으로 작동 할 준비가되었습니다

  6. 웹 브라우저, 텍스트 편집기, 출력 창 등과 같은 모듈이 포함되어 있습니다.

  7. 더러운 파일 표시가있는 탭 인터페이스 (모듈에서 재사용 가능)

nroute

• 저자 : Rishi

• 실버 라이트 지원 : 예

• 문서 : 저자 블로그에서 구할 수있는 많은 기사 (링크의 CodePlex 프로젝트 홈페이지 참조)

• 호스팅 : CodePlex

• 라이센스 : MS-PL

• 특징:

  1. Blend3 동작 및 트리거 모델을 지원합니다

  2. 리소스 로케이터 프레임 워크

  3. 서비스보기 : OpenFiledialog, ShowMessage…

  4. 속성을 사용하여보기와 뷰 모델을 함께 맵핑합니다

NITO MVVM

• 저자 : Shammah

• 실버 라이트 지원 : 아니요

• 문서 : 아니요

• 호스팅 : CodePlex

• 라이센스 : 지정되지 않았습니다

• 특징:

  1. Icommand 인터페이스의 다양한 MVVM 친화적 인 구현

대양

• 저자 : Karl Shifflet

• 실버 라이트 지원 : 아니요

• 문서 : Karl의 블로그에서 제공되는 기사

• 호스팅 : 개인 웹 사이트

• 라이센스 : 지정되지 않았습니다

• 특징:

  1. vb.net으로 작성되었습니다

  2. 속성 기반 유효성 검사

  3. ViewModel 기본 클래스 : RelayCommand, CloseableViewModel…

  4. SQL Server 데이터 액세스 계층

기본 MVVM 프레임 워크

• 저자 : 레스터 로보

• 실버 라이트 지원 : 아니요

• 문서 : 라이브러리에서 사용할 수있는 샘플 응용 프로그램

• 호스팅 : CodePlex

• 라이센스 : MS-PL

• 특징:

  1. 명령 위임 keybinding

  2. VM 간의 메시지

  3. 첨부 된 동작이있는 명령으로 이벤트를 처리합니다

  4. 서비스로 대화 상자를 처리합니다

  5. 대 코드 스 니펫

좋은 조명

• 저자 : Peter O'Hanlon • Silverlight 지원 : 예

• 문서 : 라이브러리에서 사용할 수있는 샘플 응용 프로그램

• 호스팅 : CodePlex

• 라이센스 : MS-PL

• 특징:

  1. "작업 공간"관리 (닫을 수있는 문서 세트)

  2. 피부지지

  3. VM 간의 메시지

Pete의 위대한 대답에서 누락 된 프레임 워크를 설명하려고합니다.

MVVM 툴킷 (Microsoft) 이 패턴의 초보자를 지원 해야하는 Visual Studio Project 템플릿이있는 매우 가벼운 라이브러리입니다. Microsoft가 툴킷에 대한 좋은 피드백을 받으면 새로운 Visual Studio (2010) 프로젝트 템플릿으로이를 구현할 수 있습니다.

프리즘 (Microsoft P & P) MVVM 패턴에 대한 지원 이상의 것을 제공하는 프레임 워크입니다. 이 프로젝트의 주요 목표는 모듈 식 WPF 및/또는 실버 라이트 애플리케이션. MVVM 패턴을 구현해야하거나 .NET/WPF의 초보자 인 경우이 프로젝트를 권장하지 않습니다. 또한보십시오: 링크.

WPF 응용 프로그램 프레임 워크 (WAF) MVVM을 사용하여 WPF 앱을 만드는 데 도움이되는 가벼운 프레임 워크입니다. 그것은 단지 WPF를위한 것이므로 Silverlight를 지원하지 않습니다. 그것은 대부분의 다른 MVVM 프레임 워크보다 약간 다른 방법으로 진행됩니다. 컨트롤러. 응용 프로그램 워크 플로우에 대한 책임이 있으며 다양한 뷰 모델 사이를 중재합니다.

나. MVVM은 실제로 IMO를 지원하기 위해 전체 프레임 워크가 필요하지 않습니다. 개념을 이해한다면, Intofify를 구현하고 거기에서가는 깨끗한 VM베이스 클래스로 시작하는 것은 매우 간단합니다.

또한보십시오 :

Caliburn & 오닉스!

나만의 섞으십시오!

나는 MVVM Foundation의 ViewModelbase 등 Prism의 EventAggregator를 사용했습니다. 또한 다른 데이터를 수락하기 위해 릴레이 커뮤니케이션 (일부 장소에서 호출 된 DelegateCommand)을 조정했습니다.

나는 하나의 프레임 워크 그 자체 만 권장하지 않을 것입니다.

내 베팅은 Caliburn과 MVVMLight에있을 것입니다. 이러한 MVVM 프레임 워크 중 많은 사람들이 Silverlight를 지원하지 않는 것 같습니다. MVVM 프레임 워크에 기능 경계를 설정하기가 더 어렵 기 때문에 IOC 프레임 워크보다 더 많은 MVVM 프레임 워크가 선택할 수 있다고 예견 할 수 있습니다. 나는 당신의 프로젝트가 그들의 기능을 나열/비교하여 어떤 것이 더 적합한 지 알아내는 가장 좋은 방법을 생각합니다.

또한 Mix10을 확인하십시오. 나는 당신의 MVVM 프레임 워크 구축 : The Talk에서 많은 것을 배웁니다.

또한 칵테일과 Devforce 프레임 워크 아이디어 블레이드

나는 프리즘을 사용하고 있고 그것을 좋아합니다. 저에게 큰 것 중 하나는 필요한 경우 저를 도울 수있는 다른 사람들이있을 것이라는 점이었습니다. 기본 사항을 실행하면 앱에 필요한 다양한 확장 기능이 있으며 다른 프트웨어와 동일한 프레임 워크로 작업 할 때 훨씬 쉽습니다.

대체로, 나는 응용 프로그램을 통해 90%이며 MVVM 툴킷에 사용한 것은 실행 중에 시작하는 대의원 함수가 주어지면 명령을 구축하는 공장 기능입니다. 나는 몇 시간 안에 다른 프레임 워크 또는 프레임 워크로 전환 할 수 있다고 생각합니다.

고려해야 할 또 다른 사람은입니다 Mefedmvvm. 나는 몇 개의 프로젝트에서 그것을 사용했으며 가볍고 무관심하며 Silverlight와 WPF를 지원합니다. 또한 해당 제품을 사용하는 사람들을 위해 블렌드에서 설계 시간 데이터를 지원할 수 있습니다.

WPF/MVVM 응용 프로그램 프레임 워크 위에 확장 성 (추가 기능)을 찾고 있다면 관심이있을 수 있습니다. 비누 상자 코어 면책 조항 : 나는 그것을 썼다. 공개 공급원이므로 사용하지 않더라도 좋은 아이디어가있을 수 있습니다. Extensibility와 IOC에 MEF를 사용합니다.

또한 있습니다 nroute

MVVM을 지원하는 WPF/Silverlight를위한 정말 멋진 애플리케이션 프레임 워크

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top