MVVM पुराना नहीं है, लेकिन इसके साथ शुरू करने के लिए इसे ओवरलेप किया गया था। मुझे यह कभी पसंद नहीं आया और इसने मुझे बहुत लंबे समय तक WinForms में रखा; पेड़ों के लिए जंगल को देखने में असफल, मैंने बच्चे को स्नान के पानी से बाहर फेंक दिया। मुझे अब WPF मिलता है, और मुझे मार्कअप के साथ कोड नहीं मिलाने का विचार आता है, लेकिन मैं मार्कअप को एक जगह चिपका देने की एंड्रॉइड शैली पसंद करता हूं और अपने कोड में कास्ट के साथ इसे डीरेफेरेंस करता हूं (जिसे आप WPF में भी कर सकते हैं, यहां तक कि हालांकि यह जो भी कारण के लिए ऐसा करने के लिए ट्रेंडी कभी नहीं मिला)।
इस तरह से आप अधिक महीन दाने वाले नियंत्रण हासिल कर लेते हैं और आपको हर जगह "चालू" हैंडल करने के बारे में चिंता करने की ज़रूरत नहीं है। मुझे लगता है कि यह वास्तव में अधिक परीक्षण करने योग्य है क्योंकि परीक्षण हमेशा इसे पकड़ नहीं पाएंगे यदि आप एक "चालू" घटना को याद करते हैं।
आप "घोषणात्मक" का एक सा खो देते हैं, जो इन दिनों एक प्रवृत्ति लगती है (जैसे कि यदि दो विगेट्स एक ही मूल्य पर मैप किए जाते हैं, तो MVVM में आप बस ऐसा कर सकते हैं, जबकि अनिवार्य कोड के साथ आपको दोनों को अलग-अलग सेट करना होगा) । लेकिन यहां तक कि एमवीवीएम के साथ, यह केवल मासिक धर्म के मामले में काम करता है। यदि कुछ विजेट को किसी अन्य विजेट के लॉग को प्रदर्शित करना है, तो आपको एक और हैंडलर और एक अन्य "ऑनचेंज" इवेंट लिखना होगा और इसलिए आप अंत में "घोषणात्मक" की परिभाषा को फैलाने के लिए कहेंगे ऐसा है।
2015 अपडेट
WPF MVVM अपने समय के लिए (r) विकासवादी था। जैसा कि WPF था। लेकिन वे दोनों अपने मौसा थे। प्लेन WPF ने बहुत अधिक निर्माण किया था (प्लस इसे XML पर बनाया गया था), और इससे निपटने के लिए एक तरह का दर्द था। (वास्तव में, अगर WPF ने "फ्रेमवर्क" दृष्टिकोण के बजाय सिर्फ एक "लाइब्रेरी" दृष्टिकोण लिया था, तो यह वास्तव में कुछ शांत सामान में बदल सकता था और संपूर्ण तकनीकी ब्रह्मांड अब पूरी तरह से अलग हो सकता है)। विचार MVVM के महान था, लेकिन WPF में एक MVVM फिट करने की कोशिश कुछ हद तक hacky के बाद से 1) सी # वास्तव में बॉयलरप्लेट का एक बहुत बिना इसे व्यक्त नहीं कर सकता था, और मोडल पॉपअप की तरह 2) WinForms अवशेष अभी भी वैचारिक रूप से प्रचलित थे लेकिन नहीं कर सका एमवीवीएम में आसानी से प्रतिनिधित्व किया जा सकता है। इस प्रकार यह सब चूसा।
कहा कि, यह अभी भी विंडोज पर एकमात्र यथार्थवादी विकल्प है जब आपको LOB ऐप्स के लिए पारदर्शिता या GPU की आवश्यकता होती है।
प्रतिक्रिया ने बेशक MVVM को अप्रचलित बना दिया है। मुझे निराशा हुई कि VS2015 के पास एक देशी काउंटर नहीं था। अभी के लिए हम अभी भी कच्चे WPF (जो ठीक है, का उपयोग करते हुए फंस गए हैं, लेकिन पुराना लगता है (वास्तव में अभी winforms के रूप में पुराना लगता है ), और अंतर्निहित कार्यक्षमता का एक टन नहीं है (कुछ शांत लेकिन परित्यक्त परियोजना की तरह लगता है) या एमवीवीएम के साथ, जो इस बिंदु पर कुछ भी नहीं के लिए ओवरहेड की तरह महसूस करता है, क्योंकि इसकी कमियों के लिए भी अच्छा एमवीवीएम (कोणीय 1) उजागर हुआ है।
मैं WPF MVVM से बचना चाहता हूँ। यह एक अतिरिक्त परत है, और कोई भी इसके बारे में परवाह नहीं कर रहा है।