私は現在、WPF用のMVVMに頭を回そうとしています-私は頭を概念に回すつもりはありませんが、愚かなCRUDよりもbeatられたトラックから遠く離れていることの実際の要点についてです。
私が気づいたのは、多くのフレームワークであり、ほとんど/すべてのブログ投稿は「年齢」前のものです。
これは、古い帽子でブロガーが次のビッグシングに移行したからか、それとも言うべきことをすべて言ったからでしょうか。
言い換えれば、私はここに欠けているものがありますか?
私は現在、WPF用のMVVMに頭を回そうとしています-私は頭を概念に回すつもりはありませんが、愚かなCRUDよりもbeatられたトラックから遠く離れていることの実際の要点についてです。
私が気づいたのは、多くのフレームワークであり、ほとんど/すべてのブログ投稿は「年齢」前のものです。
これは、古い帽子でブロガーが次のビッグシングに移行したからか、それとも言うべきことをすべて言ったからでしょうか。
言い換えれば、私はここに欠けているものがありますか?
回答:
MVVMは時代遅れではありませんが、そもそも過大評価されていました。私はそれが好きではなかったし、WinFormsに長く留まっていた。木のために森を見ることに失敗したので、私は入浴で赤ちゃんを投げ出しました。私は今WPFを取得しており、マークアップとコードを混在させたくないという考えを持っていますが、コード内のマークアップを1箇所に貼り付けてキャストで逆参照するというAndroidスタイルが好きです(WPFでも行うことができます何らかの理由でそうするのは決して流行になりませんでした)。
そうすれば、よりきめ細かな制御が可能になり、あらゆる「変更された」処理を心配する必要がなくなります。「変更された」イベントを見逃した場合、テストは常にそれをキャッチするとは限らないので、これは実際によりテストしやすいと感じています。
最近の傾向のように見える「宣言的」性を少し失います(たとえば、2つのウィジェットが同じ値にマッピングされている場合、MVVMではそれを行うことができますが、命令型コードでは両方を個別に設定する必要があります) 。しかし、MVVMを使用しても、それはわずかな場合にのみ機能します。あるウィジェットが別のウィジェットのログを表示する必要がある場合、別のハンドラーと別の「onchanged」イベントを作成する必要があるため、「宣言的」の定義を拡張する必要があります。
WPF MVVMは、当時は(r)革新的でした。WPFと同様。しかし、二人ともいぼがありました。プレーンなWPFにはあまりにも多くの要素が組み込まれており(さらにXMLに基づいて構築されていた)、対処するのは苦痛でした。(実際、WPFが "フレームワーク"アプローチではなく、より "ライブラリ"アプローチを採用している場合、それはいくつかの本当にクールなものに変わる可能性があり、技術の世界全体が完全に異なる可能性があります)。MVVM のアイデアは素晴らしかったが、MVVMをWPFに適合させようとすると、1)C#は多くの定型文なしでは実際に表現できず、2)モーダルポップアップのようなWinFormsの遺物は依然としてイデオロギー的に普及していましたが、 MVVMで簡単に表現できます。したがって、それはすべて吸い込まれました。
とはいえ、LOBアプリに透過性またはGPUが必要な場合、Windowsでの唯一の現実的なオプションです。
ReactはもちろんMVVMを廃止しました。VS2015にはネイティブカウンターがなかったことに失望しました。今のところ、未加工のWPFを使用し続けています(これは問題ありませんが、古い感じ(実際にはwinforms と同じくらい古い感じがします)。組み込みの機能はたくさんありません(クールだが放棄されたプロジェクトのように感じます)または、MVVMを使用すると、優れた MVVM(angular 1)でさえ欠点が明らかになるため、この時点では何もせずに大きなオーバーヘッドのように感じます。
WPF MVVMは避けたい。それは余分な層であり、誰ももうそれを気にしません。
MVVMフレームワークでできることには制限があります。
WPFはMicrosoftがリリースしてから移動していないため、「完了」しています。テクノロジーに更新がある場合、ライブラリも更新する必要があります。これは起こっていません。