मैंने वेब-दुनिया में Redux और React के बारे में सीखना शुरू कर दिया है, और जितना अधिक मैं इसके बारे में सीखता हूं उतना ही मुझे एहसास होता है कि डेस्कटॉप-दुनिया में WPF के MVVM- शैली की वास्तुकला के साथ कितना दर्दनाक राज्य प्रबंधन है (Caliburn का उपयोग विशेष रूप से देखने के लिए) देखने के लिए)।
Redux के कुछ सरल सिद्धांत हैं जो यह बताते हैं कि किस तरह से राज्य को प्रबंधित किया जाना चाहिए, जिससे UI अपडेट, इवेंट हैंडलिंग और राज्य अधिक पूर्वानुमान योग्य हो जाते हैं। सिद्धांत हैं:
- सत्य का एक एकल स्रोत (सभी उत्परिवर्तित अवस्था एक ही साझा वस्तु में संग्रहीत होती है)।
- राज्य केवल पढ़ने के लिए है। यह कोड के माध्यम से घटकों द्वारा संशोधित नहीं किया जा सकता है, जो आमतौर पर WPF में होता है।
- राज्य को केवल शुद्ध कार्यों द्वारा संशोधित किया जा सकता है।
WPF के MVVM आर्किटेक्चर आपको बहुत जल्दी इंटरेक्टिव व्यू बनाने की अनुमति देता है, लेकिन विभिन्न व्यूमॉडल और ईवेंट सभी परिवर्तन स्थिति को डिबगिंग करते समय एक बुरा सपना है। उदाहरण के लिए: एक घटना जिसने एक दृश्य को बदल दिया और एक डिफ़ॉल्ट टैब सेट करने की कोशिश की, लेकिन डेटा ने वेब सेवा से अतुल्यकालिक रूप से लोडिंग समाप्त नहीं की है, इसलिए टैब मौजूद नहीं है (अभी तक) इसलिए कुछ भी नहीं होता है
मैंने एक-दूसरे को अपडेट करने वाले अंतर-संबंधित व्यू-मेल घटकों के बीच जटिल इंटरैक्शन को समझने और समझने के लिए आरेख बनाने में घंटों बिताए हैं।
मैं समझता हूं कि Redux का लक्ष्य इस राज्य की कुछ अप्रत्याशितताओं को हल करना है। क्या ऐसा ही कुछ है, या एक वास्तुशिल्प पैटर्न जो राज्य को बेहतर ढंग से प्रबंधित करने में मदद करने के लिए WPF के साथ अच्छी तरह से फिट होगा? मुझे यकीन नहीं है कि .NET में Redux सिद्धांत कितनी अच्छी तरह काम करेंगे क्योंकि मैंने उन्हें अभी तक कोशिश नहीं की है। शायद किसी को कुछ अनुभव है जो कुछ सलाह दे सकता है?