2 년이 지난 지금도 여전히 작업 소프트웨어를 생산하는 실용적인 방법으로 MVVM을 사용하고 있습니다. 어떤 경우에는 훌륭합니다. MVVM 개념이 없었던 작은 조립 라인을 제어하는 다중 스레드 응용 프로그램을 수행했습니다. 물리적 조립 라인의 추상화는 거의 생각할 필요가 없었습니다.
그러나 저의 경력은 주로 비즈니스 운영을 공식화하고 최적화하는 내부 업무용 응용 프로그램을 중심으로 이루어집니다. 이러한 응용 프로그램에는 일반적으로 CRUD 및 복합 작업을 중심으로하는 비즈니스 자료가 있습니다. LOB에서 내 뷰 모델은 비즈니스 클래스 메소드의 한 줄 래퍼 함수의 매우 간단한 모음이되고 결국에는 메시지 상자 표시 또는 창 열기와 같은 가장 간단한 작업을 복잡하게 만듭니다. 사람들이 Window에 대한 "종속성 주입"및 "메시지 공급자"에 대해 오랫동안 설명 할 때 다른 사람이 이상한 것을 찾지 못합니까? winforms에서 매우 간단한 작업에 대한 조언을 요청하는 스택 오버플로에 대한 다른 질문이 몇 개 있습니까?
잘못 이해하지 마십시오-MVVM을 구입하고 축소 포장 및 시판 소프트웨어 패키지의 수평 개발을 수행하는 대규모 팀에게 어떻게 귀중한 방법이 될 수 있습니까? 뷰 모델을 단위 테스트하면 나쁜 RTM 버그를 피함으로써 수백만 달러를 절약 할 수 있으며 전용 UI 개발자는 풍부한 경험을 제공 할 수 있습니다. 그러나 재배치 비용이 최소화되고 비용을 지불해야하는 모든 비즈니스 관리가 간단한 작업 소프트웨어 인 경우, 비즈니스 로직이 이미 단위 테스트 된 상태에서 간단한 "래퍼"VM을 테스트하는 데 왜 시간 단위를 사용해야합니까? 귀여운 애니메이션과 색 구성표를 사용할 수있는 시간이 얼마나됩니까? 하급 개발자가해야 할 일이 있습니까 ( "Save_Click"을 볼 때 사용했던 저장 기능의 버그 추적,
분명히, 나는 WPF의 데이터 바인딩을 정말로 좋아합니다. 이를 활용하기 위해 비즈니스 컨텍스트 및 기타 관찰 가능한 속성에 액세스 할 수있는 창 자체에 데이터 컨텍스트를 설정했습니다. 예, 거의 모든 MVVM "규칙"을 위반합니다. 그러나 최소한 읽기 쉬운 간단한 이벤트 중심 코드가 있으며 새로운 데이터 바인딩 및 유효성 검사를 활용할 수 있습니다. 문제는 디자이너들에게 있습니다. 저는 많이 사용하지 않지만 2012 년에 더 잘 통합되기를 바랍니다. 디자이너는 창과 기본 클래스에있는 수백 가지 속성을 보여줍니다.
관련있는 사람들을 위해, 당신은 저를 자원, 서적, 또는 심지어 이것을 삼키기 쉽게 한 관점의 변화를 가리킬 수 있습니까? 나는 MVVM에 또 다른 기회를 주겠다. 그러나 마지막으로 의존성 주입에 대해 걱정하는 것은 어리석은 일이었다. VM에서 메시지 박스를 보여주기 위해 유닛 테스트를 할 의도는 없었다. 단위 테스트를 수행 한 경우에도 "조밀하게 결합 된"응용 프로그램의 컴파일 시간 오류에 대해 런타임 테스트를 수행하여 더 많은 품질을 얻고 있습니까?
한 가지 대답은 winforms에 머무르는 것입니다. 그러나 WebForms의 마지막 지지자 중 하나 (웹 개발 추세에 대한 비판이 많이 있습니다)로서 Microsoft 인증 트랙에 WebForms가 더 이상 남아 있지 않을 때와 마찬가지로 공룡처럼 느껴졌습니다. 내가 좋아하지 않더라도 앞으로 나아가는 것이 유일한 선택입니다.