(मैं अन्य MEF/MAF सवालों के बारे में पता है, लेकिन यह एक और अधिक विशिष्ट समस्या है)एक्स्टेंसिबल डब्ल्यूपीएफ एप्लीकेशन - एमईएफ, एमएएफ या सरल लोडिंग?
मैं एक WPF अनुप्रयोग है कि मूल रूप से सिर्फ एक सरल ऐड-इन मेजबान, जीयूआई और सेटिंग हो जाएगा बनाना चाहते हैं। सभी वास्तविक कार्य एक या अधिक प्लगइन द्वारा किए जाएंगे। उन्हें एक दूसरे के बीच संवाद करने की आवश्यकता नहीं है, मुख्य आवेदन उन्हें उपयोगकर्ता इनपुट/आदेश भेज देगा और वे कुछ परिणाम लौटाएंगे (उदाहरण के लिए, प्रस्तुत करने के लिए डब्ल्यूपीएफ यूआई तत्व)।
अब, के बाद से आवेदन की कोर प्लगइन्स पर आधारित होगा मैं उन्हें प्रबंधित करने के लिए एक अच्छा तरीका लेने के लिए की जरूरत है। मैं रनटाइम पर उन्हें लोड/अनलोड/पुनः लोड करने में सक्षम होना चाहता हूं (उदाहरण के लिए जब कोई अपडेट मिलता है और डाउनलोड होता है)। उन्हें शायद अपने आवेदन डोमेन और/या स्थिरता और सुरक्षा के लिए प्रक्रिया में भाग लेना चाहिए।
कुछ अनुसंधान और प्रयोगों से मैं तीन विकल्प के लिए आया था:
System.Addin (MAF): ऐसा लगता है यह सब कुछ मैं जरूरत कर सकते हैं। मेजबान और प्लगइन दृश्य, अनुबंध और अनुबंध के लिए दो एडाप्टर - वहाँ पाइपलाइन एपीआई के कई संस्करण अनुकूलता आदि के लिए एक ही समय में चलाने के लिए लेकिन जब तक मैं कुछ याद कर रहा हूँ मैं एपीआई कई बार बनाने की जरूरत अनुमति देता है। इसके अलावा वहां कुछ भी है (एमईएफ की तुलना में) सूचना और संसाधनों के आसपास और अधिकांश लेख कुछ साल पुराने हैं। मुझे चिंता है कि यह धीरे-धीरे मर रहा है और इसके बजाय इसे एक नई परियोजना के लिए उपयोग नहीं करेगा।
MEF: यह एक सरल लगता है, लेकिन यह भी महसूस करता है वहाँ जादू है कि मैं नियंत्रित नहीं कर सकते का एक बहुत है, और परतों MAF में जितना अलग नहीं कर रहे हैं। मैं सिर्फ एक छोटी सी लाइब्रेरी चाहता हूं जिसे आप एक नई परियोजना से जोड़ सकते हैं, इंटरफेस को लागू कर सकते हैं और प्लगइन किया जाता है।
मैनुअल लोडिंग: अंतिम विकल्प .dlls के लिए फ़ोल्डर मैन्युअल स्कैन, उपयोग प्रतिबिंब प्लगइन वर्गों खोजने के लिए और उदाहरण बना करने के लिए होगा। हालांकि यह संभव है, मैं नहीं बल्कि कुछ ढांचे से मैन्युअल विधानसभाओं लोड करते हैं, का उपयोग अलग प्रक्रिया/appdomain आदि
तो, जो एक आवेदन के इस प्रकार के लिए सबसे अच्छा होगा पैदा करेगा, या वहाँ कुछ है कि मैं है क्या चूक गया
रियल साफ विषय। जोड़े अच्छे संबंधित लेख; http://pwlodek.blogspot.com/2011/07/isolating-mef-components.html और http://blogs.msdn.com/b/tilovell/archive/2011/08/19/wf4-hosting-the- workflowdesigner या अन्य-WPF-सामान में एक-अलग-appdomain।एएसपीएक्स – Will