2008-08-31 12 views
33

मैं वर्तमान में फ्लेक्स एमवीसी फ्रेमवर्क PureMVC का उपयोग करके आनंद ले रहा हूं और आनंद ले रहा हूं। मैंने केर्न्गॉर्म के बारे में कुछ अच्छी बातें सुनी हैं, जो एडोब द्वारा समर्थित है और इसकी पहली बाजार गति है। और मैट नामक एक नया खिलाड़ी है, जिसमें एक अच्छा सौदा है।फ्लेक्स एमवीसी फ्रेमवर्क

क्या किसी ने इनमें से दो या तीन ढांचे की कोशिश की है और एक राय बनाई है?

धन्यवाद!

उत्तर

48

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)

+0

अच्छा विश्लेषण और आम तौर पर मैं आपसे सहमत हूं। यह ध्यान दिया जाना चाहिए कि स्विज़ में केंद्रीय प्रेषक वैकल्पिक है और वास्तव में केवल तभी जरूरी है जब आपके पास कोई ईवेंट हो, जिसमें कई विचार/घटकों को लॉगिन, लॉगआउट इत्यादि जैसे अधिसूचना की आवश्यकता होती है, –

+0

लंबे समय से पहले, लेकिन विचारशील उत्तर के लिए धन्यवाद। मैं उस समय PureMVC के लिए पहले ही प्रतिबद्ध था। और मुझे कुछ प्लस (परतों के बीच साफ अलगाव) और minuses (कोड मात्रा, टेस्टेबिलिटी, और अधिसूचना प्रणाली) मिला। आपकी प्रतिक्रिया और दूसरों के आधार पर, मैंने अभी मेट के साथ एक नई परियोजना शुरू की है। – Rydell

+0

जब मैं केर्न्गॉर्म में देखना शुरू कर दिया तो मुझे बिल्कुल वही लगा। मॉडल और एप्लिकेशन स्थिति का ट्रैक रखने के लिए, मुझे पहली बात यह है कि मॉडल मॉडलर है? यह कुछ घंटी बजती है, खासतौर पर एक प्रारंभ करने वाला ट्यूटोरियल के रूप में। – seanmonstar

0

ध्यान रखें कि केयरंगॉर्म एडोब प्रायोजित ढांचा है, और अब opensource.adobe.com पर होस्ट किया गया है। यह भी ध्यान रखें कि फिलहाल डेवलपर्स के बीच यह सबसे अधिक प्रभावशाली है।

यदि आप केयरंगॉर्म जानते हैं और नौकरी की तलाश में हैं, तो आप बहुत गलत नहीं होंगे।

0

कैनगोम उपयोग करने के लिए आसान है और अच्छी तरह से प्रलेखित है: http://www.cairngormdocs.org/

मैं Cairngorm Diagram Explorer और Cairngorm के बारे में क्लासिक लेख सलाह देते हैं।

जब मैं केर्न्गॉर्म को सीखा तो मैं फ्लेक्स के लिए नया था लेकिन उपर्युक्त के साथ सीखना उपयोगी और आसान पाया।

1

हम वर्तमान में Spring ActionScript ढांचे में MVCS कार्यान्वयन पर काम कर रहे हैं। यह नियंत्रण कंटेनर के उलटा की पूरी शक्ति का उपयोग करता है ताकि आपके पास केंद्रीकृत निर्भरता प्रबंधन हो और आसानी से चीजों को स्वैप करने में सक्षम हो। यह चीजों को कैसे करता है में यह बहुत ही अनुवादात्मक नहीं है बल्कि आपको एक बहुत ही लचीला बुनियादी ढांचा प्रदान करता है।

यदि आप वसंत ActionScript और MVCS लिए नए हैं, मैं अपने ब्लॉग पर एक परिचयात्मक पोस्ट किया है: http://www.herrodius.com/blog/158

5

मैं कई चर्चाओं में कई बार इस प्रकार की देखा है। वे आम तौर पर आपके द्वारा उपयोग किए जाने वाले फ्लेक्स ढांचे के साथ शुरू करते हैं। बहुत से लोग सवाल नहीं पूछते हैं कि आपको फ्लेक्स ढांचे के शीर्ष पर किसी भी ढांचे का उपयोग करने की आवश्यकता क्यों है।

मैं फ्लेक्स कोड में किसी भी एमवीसी फ्रेमवर्क (केर्न्गॉर्म, शुद्ध एमवीसी) का उपयोग करने के पक्ष में नहीं हूं। मेट एक बेहतर उम्मीदवार है। कम से कम यह समझना आसान है और गैर घुसपैठ नहीं है। मैं बढ़ाए गए घटकों
à la carte का उपयोग करना पसंद करता हूं। हम बना लिया है और खुले http://sourceforge.net/projects/cleartoolkit/ पर उन्हें (साफ़ टूलकिट में clear.swc देखने का एक समूह sourced।

हमारे आगामी ओ रेली पुस्तक "फ्लेक्स के साथ उद्यम विकास" के प्रथम अध्याय कई फ्लेक्स की एक विस्तृत तुलना है चौखटे:। http://my.safaribooksonline.com/9780596801465

+0

एकमात्र समझदार उत्तर जोड़ने के लिए धन्यवाद - ढांचे का उपयोग न करें। आखिरकार कुछ सैनिटी को तर्क में लाया गया है। यदि आप स्पेगेटी कोड के असंभव रूप से difficuly और bloated ढेर में एक सरल समाधान बारी करना चाहते हैं तो ढांचे आपके लिए हैं। यदि आप स्लिम, साफ कोड पसंद करते हैं जो वास्तव में काम करता है और लिखना और बनाए रखना आसान है तो मेरा सुझाव है कि आप सभी ढांचे को स्पष्ट करें। मुझे लगता है कि यह इस तथ्य से पैदा हुआ है कि इस चर्चा में सबसे लोकप्रिय रूपरेखा यह है कि "कम से कम घुसपैठ" है। शून्य घुसपैठ का प्रयास करें, यह बहुत ताज़ा है। – chris

0

मेट जो क्या एक रूपरेखा क्या करना चाहिए करता है go.A ढांचे के लिए रास्ता है डी युग्मित वास्तुकला सरल छोटे पैर प्रिंट क्षमता

0

मैं थोड़े इन MVC पर अपना शक है। ढांचे (मेट, केयरगॉर्म, इत्यादि ...) जिस तरह से वे ई लागू करते हैं वेंट मैप्स और इवेंट कंट्रोलर, यह मुझे उस तरह के wxwidgets और अन्य जीयूआई टूलकिट की बहुत याद दिलाता है।

हालांकि, वास्तव में अच्छा होगा अगर फ्लेक्स या इनमें से एक एमवीसी फ्रेमवर्क सिग्नल/स्लॉट प्रतिमान का उपयोग करता है जो Qt ऑफ़र करता है।

0

मैं महान और जटिल परियोजनाओं, अन्य फ्रेमवर्क की तरह विकसित करने के लिए मेट उपयोग करने के लिए, पते मेट ऐसी घटना से निपटने, बाध्यकारी डेटा, और अतुल्यकालिक प्रसंस्करण के रूप में फ्लेक्स में आम वास्तु चिंताओं की सलाह देते हैं, लेकिन सबसे महत्वपूर्ण लक्ष्य है कि यह केवल टैग है आधारित है इसलिए हमारे फ्लेक्स अनुप्रयोगों में इसका उपयोग करना बहुत आसान है।

7

Robotlegs देखें।

"यह गोंद प्रदान करता है कि आपके आवेदन को आसानी से एक decoupled तरीके से काम करने की जरूरत है। स्वचालित मेटाडाटा आधारित निर्भरता इंजेक्शन के उपयोग के माध्यम से Robotlegs एक आवेदन में बॉयलरप्लेट कोड हटा देता है। ढीले युग्मन को बढ़ावा देने और सिंगलेट और सांख्यिकी के उपयोग से परहेज करके ढांचे में रोबोटेलग्स आपको कोड लिखने में मदद कर सकता है जो अत्यधिक टेस्टेबल है। "

+1

रोबोटेलग्स के लिए 1+ वोट, केयरंगॉर्म एक खराब ढांचे में से एक था जिसे मैंने कभी भी सिंगलटन ओवरयूज के कारण उपयोग किया था। – Eran

0

हां मैट फ्लेक्स के लिए सबसे अच्छा ढांचा है। मैंने एक आवेदन में उपयोग किया है जिसमें जीयूआई और बैक-एंड डेटा सेवा के मामले में कई संशोधन हुए थे। जब भी कोई बदलाव आया तो मुझे केवल अपने इवेंट-मैप को बदलने की जरूरत थी।

मेट में भी मॉक सेवा कार्यान्वयन है जो परीक्षण को आसान बनाता है, लेकिन किसी के पास अच्छा नहीं है।

1

मैं स्विज ढांचे का उपयोग कर रहा हूं (और अनुशंसा करता हूं)। यह जटिल और शुद्ध एमवीसी नहीं है, लेकिन यह काम पूरा हो जाता है। इसके अलावा, यह एक आईओसी कंटेनर है, और मुझे आईओसी पसंद है।

मैंने कभी मेट का उपयोग नहीं किया, इसलिए मैं उस पर टिप्पणी नहीं कर सकता। लेकिन मैं केर्न्गॉर्म के खिलाफ सिफारिश करता हूं। केर्न्गर्म को ओपन सोर्स कहा जाता है, लेकिन यह वास्तव में समुदाय द्वारा समर्थित नहीं है। यह रिलीज चक्र भी धीमा है। मैं बीटा से बाहर आने के लिए नेविगेशन लाइब्रेरी के लिए आगे इंतजार कर रहा हूं।

0

आपको अपनी खुद की जरूरतों के आधार पर एमवीसी "फ्रेमवर्क" डिजाइन करना चाहिए। यदि आप डिज़ाइन पैटर्न के बारे में कुछ जानते हैं, तो फ्लेक्स के पास मूल रूप से पेशकश करने के लिए बहुत कुछ है।

अपनी खुद की एमवीसी डिजाइन करने की सबसे अच्छी बात यह है कि यह एक हल्के वजन या जटिल हो सकता है जैसा आपको चाहिए।

ढांचे के साथ मेरा अनुभव यह है कि आपको मूल रूप से ढांचे का उपयोग किए बिना दो गुना अधिक कोड लिखना होगा। ढांचे के बारे में अच्छी बात यह है कि यह आपको लगातार तरीके से काम करने के लिए मजबूर करता है, लेकिन यदि आप डिजाइन पैटर्न, सर्वोत्तम प्रथाओं और सामान्य ज्ञान का उपयोग करके लगातार तरीके से काम कर सकते हैं, तो मैं ढांचे से दूर रहने का सुझाव दूंगा।

0

यह निष्कर्ष निकालना बहुत मुश्किल है कि किस ढांचे के मुकाबले दूसरों की तुलना में बेहतर है। प्रकृति और परियोजना और टीम के सदस्यों की जटिलता के आधार विशेषज्ञता & वरीयता एक किसी परिस्थिति

मैं फ्लेक्स फ़्रेमवर्क की एक सूची वहाँ संक्षिप्त विवरण और संकेत के साथ और अधिक जानकारी के लिए उनके बारे में इस में संकलित किया है में अन्य की तुलना में अधिक उपयुक्त हो सकता है यूआरएल। http://practicalflex.blogspot.com/2011/08/list-of-adobe-flex-tools-frameworks.html यूआरएल किसी भी व्यक्ति के लिए फ्लेक्स ढांचे का मूल्यांकन करने के लिए सहायक हो सकता है।

फ्लेक्स ढांचे के कई अधिकांश मूल्यांकन के बाद मुझे स्विज ढांचे को एक नया डेवलपर के साथ शुरू करने के लिए सबसे आसान और आसान पाया गया। इसलिए यह आपके अनुप्रयोग की आसान रखरखाव & विस्तारशीलता सुनिश्चित करता है।

0

मैंने कैरंगॉर्म और साथी फ्रेमवर्क पर काम किया है। मैं cairngorm ढांचे के साथ शुरू किया। काम करना अच्छा है लेकिन शुरुआत में समझना मुश्किल है। यह घटना को चतुराई से प्रेषण संभालता है। आप कक्षाओं से ही घटनाओं को प्रेषित कर सकते हैं और इसे फ्रेमवर्क वायर्ड कमांड कक्षाओं की देखभाल की जाएगी। डेटा को स्टोर करने के लिए एकल भंडार है, डेटा को संभालना इतना आसान है। यह एक सिंगलटन वर्ग है। एक बार जब आप ढांचे को पकड़ लेंगे, तो काम आसान है। दूसरी ओर मेट टैग आधारित ढांचे है। यह एक घटना संचालित ढांचा है, इसलिए घटनाक्रम फ़ाइल में सभी घटनाओं को संभाला जाता है। यह इस वर्ग से घटना सुनना, संपत्ति इंजेक्शन, और कई अन्य चीजें करता है। आप फ्रेमवर्क इवेंट प्रेषक के उदाहरण को पारित करके कक्षाओं से घटनाओं को प्रेषित कर सकते हैं। आपको सिंगलटन क्लास का उपयोग कैरंगॉर्म जैसे नहीं करना है। आप प्रॉपर्टी इंजेक्शन का उपयोग करके सीधे कक्षा में संपत्ति को बाध्य कर सकते हैं ताकि किसी सिंगलटन क्लास का उपयोग करने की आवश्यकता न हो। साथी में सभी वर्ग और दृश्य ढांचे कोड से मुक्त होते हैं, इसलिए यह ढांचा ढांचा है। घटकों को एक स्थान से दूसरे स्थान पर ले जाना आसान है।

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