정통 MVVM 구현은 무의미합니까? 새 응용 프로그램을 만들고 있으며 Windows Forms 및 WPF를 고려했습니다. WPF는 미래에 대비하고 많은 유연성을 제공하기 때문에 선택했습니다. 코드가 적고 XAML을 사용하여 UI를 크게 변경할 수 있습니다.
WPF에 대한 선택은 분명하기 때문에 MVVM을 응용 프로그램 아키텍처로 사용하여 혼합 가능성, 분리 문제 및 단위 테스트 가능성을 제공하므로 끝까지 진행할 수 있다고 생각했습니다. 이론적으로는 UI 프로그래밍의 성배처럼 아름답게 보입니다. 이 짧은 모험; 그러나 실제로 두통이되었습니다. 실제로 예상했던대로, 저는 한 문제를 다른 문제와 교환했습니다. 나는 올바른 결과를 얻고 더 나은 프로그래머가 될 수 있도록 올바른 방식으로 일을하고 싶다는 점에서 강박적인 프로그래머 인 경향이 있습니다. MVVM 패턴은 생산성에 대한 내 테스트를 막았고 방금 큰 엉뚱한 해킹으로 변했습니다!
명확한 사례는 모달 대화 상자에 대한 지원을 추가하는 것입니다. 올바른 방법은 대화 상자를 표시하고이를 뷰 모델에 연결하는 것입니다. 이것을 작동시키는 것은 어렵습니다. MVVM 패턴의 이점을 얻으려면 애플리케이션 계층 전체에 걸쳐 여러 위치에 코드를 배포해야합니다. 또한 템플릿 및 람바 식과 같은 난해한 프로그래밍 구조를 사용해야합니다. 머리를 긁적 거리며 화면을 응시하게 만드는 것. 이로 인해 유지 관리 및 디버깅은 내가 최근에 발견 한대로 일어나기를 기다리는 악몽이됩니다. 두 번째로 호출했을 때 예외가 발생할 때까지 about box가 잘 작동하여 닫히면 대화 상자를 다시 표시 할 수 없다고 말했습니다. 대화 창에 닫기 기능을위한 이벤트 핸들러를 추가해야했습니다. 다른 하나는 IDialogView 구현에 있고 마지막으로 다른 하나는 IDialogViewModel에 있습니다. 나는 MVVM이 그런 사치스러운 해커로부터 우리를 구할 것이라고 생각했습니다!
이 문제에 대한 경쟁 솔루션을 가진 여러 사람들이 있으며 모두 해킹이며 깨끗하고 쉽게 재사용 가능하며 우아한 솔루션을 제공하지 않습니다. 대부분의 MVVM 툴킷은 대화 상자를 무시하고 처리 할 때 사용자 지정 인터페이스 나 뷰 모델이 필요하지 않은 경고 상자 일뿐입니다.
나는 MVVM 뷰 패턴, 적어도 그것의 정통 구현을 포기할 계획입니다. 어떻게 생각해? 문제가 있다면 그만한 가치가 있었습니까? 나는 단지 무능한 프로그래머입니까, 아니면 MVVM이 과장된 것이 아닌가?