आप प्रबंधित एक्स्टेंसिबिलिटी फ्रेमवर्क का उपयोग कैसे कर रहे हैं?


10

मैं एमईएफ के साथ लगभग 2 सप्ताह से काम कर रहा हूं। मैं इस बारे में सोचने लगा कि एमईएफ क्या है, एमईएफ का उपयोग कैसे करें, और अंत में 3 मॉड्यूल के साथ एक मेजबान को लागू करने के लिए शोध करने के लिए। अनुबंध आसानी से समझ में आ रहे हैं और मॉड्यूल आसानी से प्रबंधित हो रहे हैं।

यद्यपि MEF का बहुत ही व्यावहारिक उपयोग है, मैं सोच रहा हूं कि किस हद तक? मेरा मतलब है, क्या हर कोई एक्स्टेंसिबिलिटी के लिए मौजूदा एप्लिकेशन को फिर से लिखने जा रहा है?

हां, यह लगता है, और पागलपनपूर्ण अव्यावहारिक है। शाब्दिक रूप से बोलना:

  • MEF प्रोग्रामिंग में वर्तमान रुझानों को कैसे प्रभावित कर रहा है?

  • क्या आपने MEF का उपयोग करने के अवसरों की तलाश शुरू कर दी है?

  • क्या आपने मौजूदा ऐप के प्रमुख पुन: लिखने की योजना शुरू कर दी है जो कि एक्स्टेंसिबिलिटी से लाभान्वित हो सकता है?

उस ने कहा, मेरे सवाल हैं:
मुझे कैसे पता चलेगा कि मुझे एक्स्टेंसिबिलिटी वाले नए प्रोजेक्ट की योजना बनानी चाहिए?
मुझे कैसे पता चलेगा कि मौजूदा परियोजना को फिर से विस्तार के लिए लिखा जाना चाहिए?

क्या कोई MEF का उपयोग कर रहा है?

जवाबों:


8

क्या कोई MEF का उपयोग कर रहा है?

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

हाँ, वहाँ कुछ शुद्धतावादी हैं जो कहेंगे MEF निर्भरता इंजेक्शन के लिए अभिप्रेत नहीं है और एक वास्तविक निर्भरता इंजेक्शन फ्रेमवर्क बहुत बेहतर करेगा। हालाँकि, MEF को .NET में राइट बेक किया गया है, जो एक बड़ा प्लस है, और यह हमारी जरूरतों को पूरा करने के लिए पर्याप्त था।

मुझे कैसे पता चलेगा कि मुझे एक्स्टेंसिबिलिटी वाले नए प्रोजेक्ट की योजना बनानी चाहिए? मुझे कैसे पता चलेगा कि मौजूदा परियोजना को फिर से विस्तार के लिए लिखा जाना चाहिए?

IMO, आपको हमेशा अलग-अलग चिंताओं को अलग-अलग करना चाहिए और अलग-अलग मॉड्यूल को अनिश्चित रूप से बदलने की अनुमति देने के लिए इंटरफेस का उपयोग करना चाहिए। यदि आप यह अधिकार करते हैं, तो जब आपको एक्स्टेंसिबिलिटी की आवश्यकता होती है, तो MEF को जोड़ना आसान होना चाहिए। लेकिन मैं एक ऐसी परियोजना शुरू नहीं करूंगा जिसमें कोई एक्स्टेंसिबिलिटी की आवश्यकता न हो और केवल मामले में MEF को रखा जाए। मैं वहाँ एक आवश्यकता होने का इंतजार करूँगा। मौजूदा परियोजनाओं के लिए, यदि कोई आवश्यकता उत्पन्न होती है, तो मैं एमईएफ बनाम वैकल्पिक समाधानों का उपयोग करने के लिए परियोजना को फिर से शुरू करने के प्रयास का मूल्यांकन करूंगा। कुछ भी नहीं कर रहा है, और देखें कि कौन जीतता है।


6

लोग जो गलती करते हैं, और मुझे लगता है कि नामकरण (प्रबंधित एक्स्टेंसिबिलिटी फ्रेमवर्क) के कारण यह माना जाता है कि MEF केवल एक्स्टेंसिबिलिटी के लिए व्यावहारिक है। MEF वास्तव में तीन प्रमुख चीजों को संबोधित करता है: एक्स्टेंसिबिलिटी, डिस्कवरी और मेटाडेटा। पिछले दो भी एक आवेदन के लिए बहुत शक्तिशाली हैं जो कभी भी एक प्लग-इन या एक्सटेंशन नहीं देखेंगे।

यह एक लेख है जो मैंने IOC कंटेनर के रूप में खोज के लिए शक्ति के बारे में लिखा है: http://www.informit.com/articles/article.aspx?p=1635818

मैं व्यावसायिक अनुप्रयोगों के अधिकांश उद्यम लाइन में MEF का उपयोग करता हूं क्योंकि यह सिल्वरलाइट में मॉड्यूलर अनुप्रयोगों के निर्माण और रखरखाव को तेज और आसान बनाता है।


मैंने आपका लेख पढ़ा है - दो बार कम से कम;)
आईब्रेट

4

वर्तमान में मैं कुछ परियोजनाओं में MEF का उपयोग कर रहा हूं जो रिपॉजिटरी पैटर्न को शामिल करता है।

एक इकाई परीक्षण करते समय विभिन्न रिपॉजिटरी प्रकारों का उपयोग कर रहा है, दूसरी परियोजना स्थानीय (सीधे DB), रिमोट (WCF) और परीक्षण रिपॉजिटरी का उपयोग कर रही है।

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

आज तक, दोनों परियोजनाएं अविश्वसनीय रूप से अच्छी तरह से चल रही हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.