2009-10-20 12 views
14

मैं एक .NET 3.5 सी # डेस्कटॉप एप्लिकेशन विकसित कर रहा हूं। यह प्लग-इन के माध्यम से एक्स्टेंसिबल होना चाहिए।एमईएफ बनाम मोनो। जोड़ें

क्या कोई लेख आदि हैं। एमईएफ और मोनो के बीच मतभेदों पर चर्चा करते हुए। मुझे सूचित निर्णय लेने में मदद करने के लिए जोड़ें?

या इससे भी बेहतर आप इन दोनों ढांचे के साथ अनुभव प्राप्त कर चुके हैं और उन पर टिप्पणी कर सकते हैं?

धन्यवाद, पैट्रिक

उत्तर

4

मेरा मानना ​​है कि Hanselminutes Show #181 Mono.AddIns और क्या यह तालिका में लाता है के बारे में कुछ चर्चा है।

वेब को खराब करते समय मुझे this discussion भी मिला जो कि इन दो ढांचे में वर्तमान में कैटलॉग कैशिंग को कैसे संभाला जाता है, इस पर एक अंतर दर्शाता है।

+0

धन्यवाद। यह एक शुरुआत है ... –

1

मैंने दोनों की जांच की और एमईएफ के साथ जाने का फैसला किया, क्योंकि ज्यादातर इसे .NET 4 के हिस्से के रूप में रिलीज़ होने जा रहा है, इसलिए इसके आसपास स्वचालित रूप से अधिक समर्थन, चर्चा और विकास होगा। इसके अलावा, एमईएफ कोड में सही गुणों का उपयोग करने के लिए आवश्यक सब कुछ करने में सक्षम था, और मोनो। AddIns को कुछ मेटाडाटा फ़ाइलों की आवश्यकता होती है, अगर मुझे सही याद है।

संपादित: आप MEF का उपयोग कर एक विस्तृत आवेदन ढांचे का निर्माण करने के लिए पर मेरे प्रयासों का परिणाम देखने के लिए चाहते हैं, तो मैं खुला है यह sourced, और यह एक नाम दिया: SoapBox Core

+0

आप मोनो ड्राइव कर सकते हैं। विशेषताओं से एडिन भी। एक्सएमएल मैनिफेस्ट केवल तभी जरूरी है जब आप डेटा/मेटाडेटा में प्लग करना चाहते हैं या कुछ और उन्नत सुविधाओं का उपयोग करना चाहते हैं। आप मिश्रण और मैच भी कर सकते हैं! –

+0

@mhutch: मुझे पता है लेकिन कुछ विशेषताएं थीं जो केवल एक्सएमएल मैनिफेस्ट में उपलब्ध थीं, और मैंने एमईएफ के ऑल-एट्रिब्यूट मॉडल को प्राथमिकता दी। लेकिन यह बहुत मामूली है, मैं सहमत हूं। –

18

[ध्यान दें: मैं monodevelop, जो Mono.Addins का उपयोग करता है पर काम करते हैं, लेकिन मैं पिछले हफ्ते MEF टीम से MEF और Mono.Addins बड़े पैमाने पर के बीच मतभेद ग्लेन ब्लॉक के साथ चर्चा की]

MEF कोड रचना पर आधारित है हालांकि, अंतर्निहित abstractions बहुत लचीला हैं। इसके विपरीत, मोनो। एडिन मेटाडेटा के पेड़ पर आधारित है, जहां आप डेटा/मेटाडेटा/कोड को अपनी परिभाषा के समृद्ध स्कीमा में प्लग कर सकते हैं, इसलिए एक्सटेंशन डेटा/मेटाडेटा के साथ-साथ कोड भी जोड़ सकते हैं।

मोनो। एडिनस आपको बॉक्स के बाहर एक एडिन प्रबंधन/पैकेजिंग/रिपोजिटरी/अपडेट सिस्टम देता है। एमईएफ के लिए, इस बिंदु पर, आपको अपना खुद का निर्माण करना होगा।

एमईएफ में प्रवेश के लिए थोड़ा कम अवरोध है, और बहुत अधिक डिज़ाइन कार्य इसकी उपयोगिता और अंतर्निहित अवशोषण में चला गया है। इसके अलावा, यह .NET 4 का हिस्सा है, इसलिए इसमें उपयोगकर्ताओं के साथ विकास करने वाले उपयोगकर्ताओं का एक बड़ा समुदाय होगा।

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

+0

2014 के रूप में मोनो। एडिन की स्थिति क्या है? कोडप्लेक्स में अंतिम प्रतिबद्धता 2012 में थी, इसका मतलब है कि यह या तो मृत या बहुत स्थिर है :) – user3557327

+1

यह सक्रिय रूप से गिटहब पर बनाए रखा गया है: https://github.com/mono/mono-addins –