正統なMVVM実装は無意味ですか?新しいアプリケーションを作成していて、WindowsフォームとWPFを検討しました。WPFを選択した理由は、将来性があり、柔軟性が高いためです。コードが少なく、XAMLを使用してUIに大幅な変更を加えるのが簡単です。
WPFの選択は明白であるため、ブレンド性、分離の懸念、および単体テスト性を提供するため、アプリケーションアーキテクチャとしてMVVMを使用することで、最大限に活用できると考えました。理論的には、UIプログラミングの聖杯のように美しく見えます。この短い冒険。しかし、本当の頭痛になっています。実際には、予想通り、ある問題を別の問題と交換していることがわかりました。私は、正しい結果を得て、より良いプログラマーになるために正しい方法で物事をやりたいという点で、強迫的なプログラマーになる傾向があります。MVVMパターンは、生産性に関する私のテストを失敗させ、大きな厄介なハックに変わりました!
明確な例は、モーダルダイアログボックスのサポートを追加することです。正しい方法は、ダイアログボックスを表示してビューモデルに関連付けることです。これを機能させるのは困難です。MVVMパターンを活用するには、アプリケーションのレイヤー全体のいくつかの場所にコードを配布する必要があります。また、テンプレートやランバ式などの難解なプログラミング構造を使用する必要があります。頭を掻いて画面を見つめるもの。これにより、最近発見したように、メンテナンスとデバッグの悪夢が起こります。2度目の呼び出しで例外が発生するまで、ダイアログボックスが閉じられるとダイアログボックスを再び表示できなくなると言って、aboutボックスは正常に機能していました。ダイアログウィンドウに閉じる機能のイベントハンドラーを追加する必要がありました。それのIDialogView実装の別のものと、IDialogViewModelの最後の別のもの。MVVMがそのような贅沢なハッカーから私たちを救ってくれると思いました!
この問題に対する競合する解決策を持っている人が何人かいますが、それらはすべてハックであり、クリーンで簡単に再利用できる、エレガントなソリューションを提供していません。ほとんどのMVVMツールキットはダイアログに光沢があり、ダイアログに対処する場合、それらは単なるカスタムボックスやビューモデルを必要としないアラートボックスです。
MVVMのビューパターン、少なくともその正統な実装をあきらめることを計画しています。どう思いますか?あなたが何かあったとしても、それはあなたにとって問題の価値がありましたか?私は単に無能なプログラマーなのでしょうか、それともMVVMが期待されているものではないのですか?