Mate मेरा चुनाव है। पहला और सबसे महत्वपूर्ण कारण यह है कि यह पूरी तरह से अव्यवस्थित है। मेरे आवेदन कोड में ढांचे पर कोई निर्भरता नहीं है, यह अत्यधिक decoupled, पुन: प्रयोज्य और परीक्षण योग्य है।
मेट की सबसे अच्छी विशेषताओं में से एक घोषणात्मक कॉन्फ़िगरेशन है, अनिवार्य रूप से आप एक ईवेंट मैप कहलाते हुए टैग का उपयोग करने में अपने आवेदन को तारित करते हैं - मूल रूप से आपके एप्लिकेशन द्वारा उत्पन्न होने वाली घटनाओं की एक सूची, और क्या कदम उठाने पर वे होते हैं। इवेंट मैप आपके आवेदन के बारे में एक अच्छा अवलोकन देता है। मेट फ्लेक्स की अपनी घटना तंत्र का उपयोग करता है, यह अपने स्वयं के अधिकांश ढांचे की तरह आविष्कार नहीं करता है। आप व्यू पदानुक्रम में कहीं से भी किसी ईवेंट को प्रेषित कर सकते हैं और इसे सीधे सीधी रेखा रखने के बजाय फ्रेमवर्क को स्वचालित रूप से बुलबुला कर सकते हैं, जैसे केर्न्गर्म केर्गेर्मोवेन्ट डिस्पैचर या प्योरएमवीसी की अधिसूचना प्रणाली।
मेट भी निर्भरता इंजेक्शन (लीवरेजिंग बाइंडिंग्स) का एक रूप उपयोग करता है जो आपके मॉडलों को किसी अन्य के बारे में जानने के बिना आपके विचारों को जोड़ना संभव बनाता है। यह शायद ढांचे की सबसे शक्तिशाली विशेषता है।
मेरे विचार में अन्य फ्लेक्स एप्लिकेशन ढांचे में से कोई भी मेट के पास कहीं भी नहीं आया है। हालांकि, ये दावेदार हैं और मैं उन्हें कम उपयोगी क्यों मानता हूं:
प्योरएमवीसी फ्रेमवर्क को पोर्टेबल होने के लिए सक्रिय रूप से फ्लेक्स (उदाहरण के लिए बाइंडिंग और इवेंट बबलिंग) के कई लाभों से इनकार करता है - एक दोगुना मेरे विचार में लक्ष्य। यह भी अधिक इंजीनियर है, और जैसे ही वे आक्रमणकारी हैं। आपके आवेदन का हर एक हिस्सा ढांचे पर निर्भर करता है। हालांकि, PureMVC भयानक नहीं है, फ्लेक्स के लिए बस एक बहुत अच्छा फिट नहीं है। एक विकल्प FlexMVCS है, फ्लेक्स के लिए PureMVC को अधिक उपयुक्त बनाने का प्रयास (दुर्भाग्य से अभी तक कोई दस्तावेज नहीं है, केवल स्रोत)।
केयरंगॉर्म एंटी-पैटर्न का एक बंडल है जो वैश्विक चर के साथ कसकर अनुप्रयोगों का नेतृत्व करता है। नफ ने कहा (लेकिन यदि आप रुचि रखते हैं, here are some more of my thoughts, और here too)।
Swiz जावा और केयरंगॉर्म (बाद के सबसे खराब हिस्सों के लिए बनाने की कोशिश कर रहे) के लिए स्प्रिंग ढांचे से प्रेरित एक ढांचा है। यह एक निर्भरता इंजेक्शन कंटेनर प्रदान करता है और निर्भरताओं की ऑटो-तारों को सक्षम करने के लिए मेटाडेटा का उपयोग करता है। यह दिलचस्प है, लेकिन इसमें थोड़ी सी परेशानी निर्भरता इंजेक्शन का उपयोग करके केर्न्गॉर्म के वैश्विक चर से बचने के लिए इतनी लंबाई तक जाती है लेकिन फिर केंद्रीय घटना प्रेषण के लिए वैश्विक चर का उपयोग करती है।
वे हैं जिन्हें मैंने कोशिश की है या शोध किया है। कुछ ऐसे हैं जिन्हें मैंने सुना है, लेकिन मुझे लगता है कि कोई भी व्यापक रूप से उपयोग नहीं किया जाता है। मेट और स्विज दोनों को हाल ही में 360 | फ्लेक्स सम्मेलन में प्रस्तुत किया गया था, और वहां वीडियो उपलब्ध हैं (the Mate folks have instructions on how to watch them)
अच्छा विश्लेषण और आम तौर पर मैं आपसे सहमत हूं। यह ध्यान दिया जाना चाहिए कि स्विज़ में केंद्रीय प्रेषक वैकल्पिक है और वास्तव में केवल तभी जरूरी है जब आपके पास कोई ईवेंट हो, जिसमें कई विचार/घटकों को लॉगिन, लॉगआउट इत्यादि जैसे अधिसूचना की आवश्यकता होती है, –
लंबे समय से पहले, लेकिन विचारशील उत्तर के लिए धन्यवाद। मैं उस समय PureMVC के लिए पहले ही प्रतिबद्ध था। और मुझे कुछ प्लस (परतों के बीच साफ अलगाव) और minuses (कोड मात्रा, टेस्टेबिलिटी, और अधिसूचना प्रणाली) मिला। आपकी प्रतिक्रिया और दूसरों के आधार पर, मैंने अभी मेट के साथ एक नई परियोजना शुरू की है। – Rydell
जब मैं केर्न्गॉर्म में देखना शुरू कर दिया तो मुझे बिल्कुल वही लगा। मॉडल और एप्लिकेशन स्थिति का ट्रैक रखने के लिए, मुझे पहली बात यह है कि मॉडल मॉडलर है? यह कुछ घंटी बजती है, खासतौर पर एक प्रारंभ करने वाला ट्यूटोरियल के रूप में। – seanmonstar