한 번은 MVVM / WPF 프로젝트를 시작했는데,이 프로젝트는 결국 구축 및 배포되었으며 많은 Caliburn.Micro MVVM 프레임 워크를 연구했습니다. 사실 : 나는 Caliburn.Micro를 사용 하지 않고 결국 MVVM 개념 (특히 ViewModelBase
and RoutedCommand
클래스 만)을 구현하게되었습니다.
이제는 "단일 사용자 리치 클라이언트 오프라인 데스크톱 응용 프로그램"과 같은 줄을 따라 다소 큰 프로젝트에 할당되었고 Caliburn.Micro를 사용하기로 결정했습니다. 그리고 그것이 나의 "문제"가 시작되는 곳입니다.
이 유명한 블로그 게시물 에서 "MVVM을 사용 하는 경우 프레임 워크 가 필요 합니다"라는 제목 을 읽었습니다 .
"프레임 워크없이 MVVM과 같은 것을 시도하는 것은 엄청난 양의 작업입니다. 수많은 중복 된 코드, 바퀴를 재발 명하고 사람들이 다르게 생각하도록 재교육 합니다.
최소한 프레임 워크를 사용하면 중복 코드를 피하고 바퀴를 재발 명 할 필요가 없으므로 사람들을 재교육하는 데 집중할 수 있습니다. 재 훈련 부분은 일반적으로 피할 수 없지만 프레임 워크는 배관 코드와 구조를 제공하여 프로세스를 더 쉽게 만듭니다. "
처음 읽을 때는 동의하지만 실제 응용 프로그램 에서 Caliburn.Micro (CM)에 대한 실제 경험은 실마리 가없고 혼란 스럽습니다. 즉, 프레임 워크는 프로세스를 전혀 쉽게 만들지 못 했으므로 그 반대입니다. 오히려 (너무) 비공식 문서에 롭 아이젠 버그에 의해 제공 끊임없이 반복 예 읽기 및 제공 뒤얽힌 샘플에서 추론의 사용 패턴에 노력하고, 사물이 작동하도록 설계 할 것 같다 그들의 완전히 간접 클래스 및 인터페이스 관계를 기반 에 당신이 노련한 천재가 아니라면 부작용은 인간적으로 불가능 해 보입니다.
위의 사소한 시나리오는 내가 다루지 않은 IoC 컨테이너와 관련이 있고 내가 가지고 있지 않은 문제 를 해결하는 것처럼 보입니다 . 내 문제와 응용 분야에 대해 생각하는 대신 이러한 것들을 배우는 데 더 많은 프로젝트 시간을 보내고 싶지 않습니다. 방금 바나나를 원했지만 CM은 바나나 바구니를 들고있는 고릴라 (IoC)를주었습니다.
이제 실제로 구현하려는 소수의 MVVM 관련 클래스로만 구성된 자체 제작 MVVM 프레임 워크로 돌아 가려고합니다. 여기서 뭔가를 잃을 경우를 대비하여 CM에 기회를 주려고합니다. 단지 경험과 무지에서 "잘못된 길"을 분명히하는 것입니다. 따라서 질문은 다음과 같습니다.
"프레임 워크가 일을 더 쉽고 자연스럽게 만든다"는 광범위한 합의가 있지만, 그 반대의 경우가 발생하면 프레임 워크를 사용해서는 안되거나 틀린 방법을 배우려고한다는 의미입니까? 처음에 프레임 워크를 사용해서는 안되는 단서가 있습니까? 아니면 간단한 MVVM 개발을 위해 CM을 사용하는 방법을 알아내는 "올바른"방법이 있습니까?
RelayCommand
구현을 찾을 수 없었습니다 (ICommand 속성에 바인딩하는 대신 규칙에 따라 메소드에 직접 "바인딩"하기 때문에).
RelayCommand
Caliburn Micro에서 사용하는 라이브러리가 작동하지 않는 경우 다른 라이브러리에서 라이브러리를 사용할 수없는 이유 는 없습니다.
EventAggregator
메시징,NotificationObject
ViewModelBase 및RelayCommand
명령에 MVVM Light를 위해 Microsoft PRISM 을 사용하는 것이 좋습니다. 중요한 것은 프레임 워크가 어떤 문제를 해결할지 파악하고 해당 솔루션 만 사용하는 것입니다. 전체 프레임 워크 라이브러리를 사용해야한다는 느낌이 들지 않습니다.