2013-07-10 24 views
12

शीर्षक यह सब कहता है। आपके अनुभव के आधार पर, दोनों ढांचे के बीच महत्वपूर्ण अंतर क्या है? जब हमें दूसरे पर एक का उपयोग करना चाहिए?प्रतिक्रियाशील यूआई बनाम एमवीवीएमक्रॉस

इरादा उपयोग: क्रॉस-प्लेटफार्म विकास (विंडोज 8, आईओएस, एंड्रॉइड, विंडोजआरटी, मैक)।

उत्तर

7

दोनों ढांचे के बीच महत्वपूर्ण अंतर क्या है?

एक प्रतिक्रियाशील एक्सटेंशन पर केंद्रित है, एक अधिक पारंपरिक एमवीवीएम कोडिंग पर आधारित है।

लेकिन यह अनन्य नहीं है - प्रतिक्रियाशील यूआई का उपयोग गैर-प्रतिक्रियाशील कोड के साथ किया जा सकता है, और एमवीएमएमक्रॉस को प्रतिक्रियाशील एक्सटेंशन के साथ उपयोग किया जा सकता है।

जब हमें एक दूसरे का उपयोग करना चाहिए?

वे दोनों महान ढांचे (आईएमओ) हैं।

ढांचे का उपयोग करने के लिए और किस का उपयोग करना है, यह विकल्प आपकी और आपकी टीम के लिए वास्तव में नीचे है।

9

लेकिन इस विशेष नहीं है - ReactiveUI नहीं प्रतिक्रियाशील कोड के साथ इस्तेमाल किया जा सकता

भी आगे, आप अन्य MVVM चौखटे के साथ ReactiveUI उपयोग कर सकते हैं, आप एक या के लिए प्रतिबद्ध करने की जरूरत नहीं है अन्य। RxUI जैसे WhenAny किसी भी ऑब्जेक्ट पर काम करते हैं और रनटाइम पर निर्धारित करते हैं कि उन्हें सर्वोत्तम तरीके से कैसे कनेक्ट किया जाए।

आरएक्सयूआई निश्चित रूप से एक बुफे टेबल है (जो आप चाहते हैं ले लो!), सात कोर्स भोजन नहीं :) एमवीवीएमक्रॉस निश्चित रूप से आपके ऐप को आधार देने का एक अच्छा विकल्प है, और यह एक शानदार टीम बनने के लिए बहुत अच्छा होगा वे एक ही ऐप में एक साथ कैसे काम करते हैं। वापस रिपोर्ट करें!

3

यह एक पुराना सवाल है लेकिन मैं अपने 2 सेंट साझा करना चाहता हूं।

मैं आईओएस, एंड्रॉइड और विंडोज के लिए एक ही क्रॉस-प्लेटफ़ॉर्म समाधान में एमवीवीएमक्रॉस और रीएक्टिवयूआई दोनों का उपयोग करता हूं।

मैं कहूंगा कि मेरा समाधान एमवीवीएमक्रॉस पर आधारित है क्योंकि ऐप क्लास, ऐप कैसे शुरू होता है, और व्यूमोडेल नेविगेशन एमवीवीएमक्रॉस के रास्ते का पालन कर रहा है। लेकिन मैं यह भी ReactiveUI के प्रमुख विशेषताओं में से कई का उपयोग करें:

  1. ReactiveCommand

    मैं वास्तव में अपने ऑटो को निष्क्रिय करने की सुविधा (CanExecute, IsExecuting) जब यह एक बटन के लिए बाध्य कर रहा है की तरह है।

  2. ReactiveList और यह सूची

    यह व्युत्पन्न है एक वर्ग है कि मैं ObservalbeCollection में MVVM, यह सुलझ गया है लगभग सभी मेरे दर्द अंक प्रोग्रामिंग किसी को सिफारिश करने के लिए चाहते हैं। CreateDerivedCollection का अकेला अकेला कारण पूरे कारण हो सकता है कि मैं अपनी परियोजना में ReactiveUI शामिल करता हूं।

  3. MessageBus

    मुझे डर है कि मैं अपने ऑटो marshaling द्वारा खराब किया गया था मुख्य थ्रेड UI पर हूँ। अगर मुझे टास्क पूल या यूआई थ्रेड में है तो मुझे चिंता करने की ज़रूरत नहीं है, मैं बस SendMessage को कॉल करता हूं। (यह MvvmLight के कार्यान्वयन से बहुत अलग है और यह मुख्य कारण मैं MvvmLight छोड़ दिया 2 साल पहले, खेद है)

जब मैं सुविधाओं के ऊपर का उपयोग करें, मुझे परवाह नहीं है अगर वे प्रतिक्रियाशील या नहीं कर रहे हैं, मैं बस उनका इस्तेमाल करें क्योंकि वे मेरी जरूरतों को बहुत अच्छी तरह से फिट करते हैं। (वास्तव में, ReactiveCommand, ReactiveList, और MessageBus सभी प्रतिक्रियाशील हैं)

क्या मैं केवल प्रतिक्रियाशील यूआई का उपयोग कर सकता हूं? मैंने खुद से सवाल पूछा। मुझे लगता है कि मुझे एमवीवीएमक्रॉस से कुछ याद आएगा:

  1. एमवीवीएमक्रॉस प्लगइन्स।

    मैं एमवीवीएमक्रॉस से कई प्लगइन का उपयोग करता हूं और मैं वास्तव में चाहता हूं कि प्रत्येक प्लगइन एमवीवीएमक्रॉस और रीएक्टिवयूआई दोनों के साथ संगत है। (हो सकता है कि वे पहले से ही कर रहे हैं, मैं सिर्फ जांच नहीं की क्योंकि मैं पहले से ही प्लग इन को हैंडल करने के लिए MvvmCross उपयोग कर रहा हूँ।)

  2. MvvmCross के ट्यूटोरियल

    पर MvvmCross और Youtube वीडियो ट्यूटोरियल की एक बहुत कुछ कर रहे हैं। मैं सिर्फ छवियों को नहीं देख सकता कि उन चीजों पर कितना प्रयास किया जाता है।

    मैं ईमानदार होने के लिए एमवीएमक्रॉस द्वारा एक्समारिन सीखता हूं।

  3. Xamarin

    साथ MvvmCross के एकीकरण कभी कभी मैं नहीं बता सकता एक वर्ग Mvx उपसर्ग के लिए नहीं तो MvvmCross या Xamarin द्वारा प्रदान की जाती है। मैंने अपनी परियोजना की जांच की, मेरे यूआई कोड के लगभग सभी आधार वर्ग एमवीएक्स कुछ हैं (मैं Xamarin.Forms का उपयोग नहीं करता)। मुझे नहीं पता कि बेस क्लास के एमवीएक्स संस्करण द्वारा वास्तव में क्या प्रदान किया जाता है, मैं बस उनका उपयोग करता हूं और वे काम करते हैं।

मैं अभी भी 2 फ्रेमवर्क दोनों सीख रहा हूं, लेकिन मेरी इच्छा है कि उन्हें एक दिन विलय किया जा सके।

संबंधित मुद्दे