MVVM tidak ketinggalan jaman, tapi sudah terlalu dini untuk memulai. Saya tidak pernah menyukainya dan itu membuat saya tetap di WinForms terlalu lama; Karena gagal melihat hutan untuk pepohonan, saya membuang bayi itu dengan air mandi. Saya mendapatkan WPF sekarang, dan saya mendapat ide tidak ingin mencampur kode dengan markup, tapi saya lebih suka gaya Android menempel markup di satu tempat dan men-dereferensinya dengan gips dalam kode saya (yang juga dapat Anda lakukan di WPF, bahkan meskipun tidak pernah menjadi trendi untuk melakukannya untuk alasan apa pun).
Dengan begitu Anda mendapatkan kontrol yang lebih baik dan tidak perlu khawatir tentang semua penanganan "onchanged" di mana-mana. Saya merasa ini sebenarnya lebih dapat diuji karena tes tidak akan selalu menangkapnya jika Anda melewatkan acara "onchanged".
Anda kehilangan sedikit "deklaratif" -ness, yang tampaknya menjadi tren akhir-akhir ini (misalnya jika dua widget dipetakan dengan nilai yang sama, dalam MVVM Anda bisa melakukan itu, sedangkan dengan kode imperatif Anda harus mengatur keduanya secara individual) . Tetapi bahkan dengan MVVM, itu hanya bekerja dalam kasus kasar. Jika beberapa widget harus menampilkan log widget lain, maka Anda harus menulis handler lain dan acara "onchanged" lainnya dan akhirnya Anda harus memperluas definisi "deklaratif" untuk mengatakannya demikian.
Pembaruan 2015
WPF MVVM adalah (r) evolusioner untuk masanya. Seperti WPF. Tapi mereka berdua punya kutil. WPF biasa memiliki terlalu banyak dibangun di dalamnya (plus itu dibangun di atas XML), dan agak menyebalkan. (Sungguh, jika WPF baru saja mengambil pendekatan yang lebih "perpustakaan" daripada pendekatan "kerangka kerja", itu bisa berubah menjadi beberapa hal yang sangat keren dan seluruh dunia teknologi mungkin sama sekali berbeda sekarang). The Ide dari MVVM besar, tetapi berusaha untuk menyesuaikan MVVM dalam WPF agak Hacky sejak 1) C # tidak bisa benar-benar mengungkapkannya tanpa banyak boilerplate, dan 2) WinForms peninggalan seperti popup modal masih ideologis lazim tapi tidak bisa mudah diwakili dalam MVVM. Jadi semuanya tersedot.
Yang mengatakan, itu masih satu-satunya pilihan realistis di Windows ketika Anda membutuhkan transparansi atau GPU untuk aplikasi LOB.
Bereaksi tentu saja membuat MVVM usang. Saya kecewa bahwa VS2015 tidak memiliki penghitung asli untuk itu. Untuk saat ini kita masih terjebak menggunakan WPF mentah (yang OK, tapi terasa lama (benar-benar terasa seperti setua winforms sekarang), dan tidak memiliki satu ton built-in fungsi (terasa seperti beberapa keren tapi proyek ditinggalkan) atau dengan-MVVM, yang pada saat ini terasa seperti banyak overhead untuk apa-apa, karena bahkan MVVM yang baik (sudut 1) telah terkena kekurangannya.
Saya akan menghindari WPF MVVM. Ini lapisan tambahan, dan tidak ada yang peduli lagi.