무엇을 위한 프레임워크된 이 사용해야 합니까?[마감]
-
05-07-2019 - |
문제
나는 응용 프로그램을 개발합된 이 모델은,그러나 나는 점에 도달하면 내가 선택해야 하는 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
• 라이센스 : 코드 프로젝트 오픈 라이센스
• 특징:
첨부 된 행동
idataerRorinfo를 사용한 유효성 검사
IEDIBLEOBJECT에 대한 지원
약한 이벤트 생성 및 구독
약한 이벤트를 사용한 중재자 메시징
IOC/DI 지원 (Unity 사용)
서비스 : 이벤트 로거, 메시지 상자, 오픈 저장 대화 상자, 팝업
스레딩 도우미
메뉴 항목 지원
닫을 수있는 뷰 모델
MVVM 코드 생성기
MVVM 라이트 툴킷
• 저자 : Laurent Bugnion
• 실버 라이트 지원 : 예
• 문서 : Laurent의 블로그 + 기타 개발자에서도 구할 수있는 많은 기사
• 호스팅 : CodePlex
• 라이센스 : MIT 라이센스
• 특징:
MSI 설치 프로그램
vs 프로젝트 및 항목 템플릿
대 코드 스 니펫
모드 간 통신을위한 메신저 시스템
명령으로 이벤트를 처리합니다
MVVM 도우미
• 저자 : Mark Smith
• 실버 라이트 지원 : 아니요
• 문서 : Mark의 블로그의 일부 기사
• 호스팅 : 개인 웹 사이트
• 라이센스 : 정의되지 않았습니다
• 특징:
첨부 된 행동
마크 업 확장을 사용한 뷰 모델 생성
속성 기반 검증
ServiceProvider 접근법을 사용하는 IOC/DI
닫을 수있는 뷰 모델
대기 커서 (new WaitCursor () {// 코드})
MVVM 재단
• 저자 : Josh Smith
• 실버 라이트 지원 : 아니요
• 문서 : Josh 또는 Marlon Grech의 블로그의 메신저 구현에 관한 기사
• 호스팅 : CodePlex
• 라이센스 : MS-PL
• 특징:
모드 간 통신을위한 메신저 시스템
PropertyChanged 이벤트 모니터
Caliburn
• 저자 : Rob Eisenberg
• 실버 라이트 지원 : 예
• 문서 : 온라인 문서를 완료 할 수 있습니다
• 호스팅 : CodePlex http://www.codeplex.com/caliburn
• 라이센스 : MIT 라이센스
• 특징:
명령은 작업 위에 구축되므로 여러 입력 매개 변수, 필터 및 자동 비동기 실행을 포함하여 동일한 기능을 공유합니다.
다양한 UI 구성 요소에 대한 활성화 처리, 비활성화 및 종료 의미와 같은 UI 수명주기 문제를 처리하는 발표자
Caliburn 응용 프로그램은 완전히 테스트 가능합니다
백그라운드 작업 관리자와 같은 다양한 유틸리티
다양한 UI 패턴을 지원합니다 (MVVM 만 아님)
의존성 주입 컨테이너
오닉스
• 저자 : William E Kempf
• 실버 라이트 지원 : 아니요
• 문서 : CodePlex에서 제공되는 기본 소개
• 호스팅 : CodePlex
• 라이센스 : 지정되지 않았습니다
• 특징:
Servicelocator 패턴
사용자 정의 마크 업 확장을 사용하여 ViewModel 생성
idisplayMessage와 같은 UI 관련 서비스
칼슘
• 저자 : Daniel Vaughan
• 실버 라이트 지원 : 아니요
• 문서 : CodeProject (Part1 and Part2)에 대한 매우 자세한 기사 2
• 호스팅 : CodePlex
• 라이센스 : 저작권을 사용, 복사, 수정 및/또는 배포하고 보관하십시오!
• 특징:
런타임에 모듈을 활성화 또는 비활성화하기위한 모듈 관리자
동일한 API를 사용하여 클라이언트 또는 서버에서 사용자와 상호 작용하기위한 메시징 서비스
WPF ICOMMAND를 활성보기 또는 뷰 모델이 인터페이스를 구현할 때만 활성화되는 컨텐츠 인터페이스와 연결하는 명령 서비스
도구 모음 및 메뉴를위한 지역 어댑터
클라이언트-서버 로깅은 상자 밖으로 작동 할 준비가되었습니다
웹 브라우저, 텍스트 편집기, 출력 창 등과 같은 모듈이 포함되어 있습니다.
더러운 파일 표시가있는 탭 인터페이스 (모듈에서 재사용 가능)
nroute
• 저자 : Rishi
• 실버 라이트 지원 : 예
• 문서 : 저자 블로그에서 구할 수있는 많은 기사 (링크의 CodePlex 프로젝트 홈페이지 참조)
• 호스팅 : CodePlex
• 라이센스 : MS-PL
• 특징:
Blend3 동작 및 트리거 모델을 지원합니다
리소스 로케이터 프레임 워크
서비스보기 : OpenFiledialog, ShowMessage…
속성을 사용하여보기와 뷰 모델을 함께 맵핑합니다
NITO MVVM
• 저자 : Shammah
• 실버 라이트 지원 : 아니요
• 문서 : 아니요
• 호스팅 : CodePlex
• 라이센스 : 지정되지 않았습니다
• 특징:
- Icommand 인터페이스의 다양한 MVVM 친화적 인 구현
대양
• 저자 : Karl Shifflet
• 실버 라이트 지원 : 아니요
• 문서 : Karl의 블로그에서 제공되는 기사
• 호스팅 : 개인 웹 사이트
• 라이센스 : 지정되지 않았습니다
• 특징:
vb.net으로 작성되었습니다
속성 기반 유효성 검사
ViewModel 기본 클래스 : RelayCommand, CloseableViewModel…
SQL Server 데이터 액세스 계층
기본 MVVM 프레임 워크
• 저자 : 레스터 로보
• 실버 라이트 지원 : 아니요
• 문서 : 라이브러리에서 사용할 수있는 샘플 응용 프로그램
• 호스팅 : CodePlex
• 라이센스 : MS-PL
• 특징:
명령 위임 keybinding
VM 간의 메시지
첨부 된 동작이있는 명령으로 이벤트를 처리합니다
서비스로 대화 상자를 처리합니다
대 코드 스 니펫
좋은 조명
• 저자 : Peter O'Hanlon • Silverlight 지원 : 예
• 문서 : 라이브러리에서 사용할 수있는 샘플 응용 프로그램
• 호스팅 : CodePlex
• 라이센스 : MS-PL
• 특징:
"작업 공간"관리 (닫을 수있는 문서 세트)
피부지지
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베이스 클래스로 시작하는 것은 매우 간단합니다.
나만의 섞으십시오!
나는 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를위한 정말 멋진 애플리케이션 프레임 워크