2010-12-02 19 views
30

मैंने Prism v4 डाउनलोड किया और इंस्टॉलर चलाया। मैं निर्देशिका में चला गया और दो निम्नलिखित बैच फ़ाइलों भाग गया: - MEF QuickStart.bat प्रिज्म v4: एकता या एमईएफ?

  • डेस्कटॉप केवल के साथ खोलें प्रतिरूपकता -

    • डेस्कटॉप केवल ओपन प्रतिरूपकता के साथ एकता QuickStart.bat

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

    • आवेदन WPF (नहीं सिल्वरलाइट) में लिखा जा रहा है।
    • मुख्य आवेदन बेहद पतला होगा।
    • मुख्य एप्लिकेशन किसी व्यक्ति के पास "ऐप्स/मॉड्यूल" के मेनू का निर्माण करने के लिए वेब सेवा का उपयोग करेगा।
    • "प्रबंधित/मॉड्यूल" अन्य प्रबंधित पुस्तकालयों में पूरी तरह से निहित होंगे।
    • मुख्य अनुप्रयोग इन डीएलएल में प्रतिबिंबित करके दृश्य और दृश्यमान प्राप्त करता है।
    • मुख्य एप्लिकेशन को इन "ऐप्स/मॉड्यूल" में लॉगिंग आदि के लिए सेवाओं में फ़ीड करना चाहिए।

    उदाहरण के लिए:

    एक बुनियादी उपयोगकर्ता के विकल्प हो सकता है:

    • ViewOnly पता रिकॉर्ड

    सभी आइटम संबंधित पता Address.dll के भीतर हैं।

    एक उन्नत उपयोगकर्ता के विकल्प हो सकता है:

    • नया पता रिकॉर्ड
    • ओपन पता रिकॉर्ड (अद्यतन/हटाना)

    सभी आइटम हैं संबंधित पता उपयोगकर्ताओं को प्रबंधित करें Address.dll के भीतर।
    सभी आइटम संबंधित प्रबंधित करें Admin.dll के अंतर्गत हैं।

    एप्लिकेशन वास्तव में इन DLLs के दोनों का संदर्भ नहीं चाहिए, मैं इतना है कि अगर वहाँ 100 विभिन्न मॉड्यूल हैं और एक उपयोगकर्ता उनमें से केवल 2 की पहुंच है, उनमें से केवल 2 डाउनलोड किया है और उपयोग किया जाता है उन्हें में प्रतिबिंबित करने के लिए योजना है। जबकि एक उपयोगकर्ता जिनके पास 10 तक पहुंच है उन्हें 10 मिलते हैं।

    मैंने वेब सेवा के माध्यम से डीएलएल डाउनलोड करने से पहले ही हल कर लिया है। :)

  • +0

    यूनिटी और डब्ल्यूपीएफ के साथ प्रिज्म 2.1 का उपयोग करना ... अब तक खुश है, व्यक्तिगत रूप से एमईएफ का उपयोग नहीं किया है ... –

    +0

    आप किसके साथ आगे बढ़ रहे थे? मैं एक समान स्कॉप्ड प्रोजेक्ट देख रहा हूं इसलिए आपका इनपुट बहुत अच्छा होगा। – John

    +0

    @ जॉन: शुद्ध MEF। –

    उत्तर

    21

    कोई भी "बेहतर" नहीं है: वे अलग-अलग चीजें हैं।

    आईएमओ आपकी पसंद केवल आपकी आवश्यकताओं द्वारा संचालित की जानी चाहिए। यहां पोस्ट की गई आवश्यकताओं के आधार पर मैं आपको एमईएफ का उपयोग करने का सुझाव दूंगा, क्योंकि आपके पास डीएलएल में निहित मॉड्यूल हैं और मुख्य ऐप लोड करने के लिए मॉड्यूल से अनजान है। उन कार्यों का कारण है कि एमईएफ क्यों मौजूद है।

    वैसे भी आप उन दोनों को इस्तेमाल कर सकते हैं: प्रतिरूपकता और एकता के लिए MEF निर्भरता इंजेक्शन के फायदे लेने के लिए (testability, पुनर्प्रयोग, ...)

    +0

    क्या वे एक दूसरे के साथ अच्छा स्थान रखते हैं या यहां तक ​​कि उन्हें एक साथ काम करने के लिए कुछ वास्तव में खराब बढ़ती पीड़ा होने जा रहे हैं (एमईएफ/एकता)। –

    +10

    मैं उनके साथ मिलकर काम करता हूं। वे पूरी तरह से स्वतंत्र हैं। केवल दर्द तब होता है जब आप कुछ नया डिजाइन कर रहे होते हैं और आपको यह कहना होगा कि यह इंजेक्शन योग्य निर्भरता या बाहरी घटक है या नहीं। लेकिन ज्यादातर बार आसान है। – onof

    +6

    आपकी टिप्पणी पर अपना +1 समझाएं: मुझे ** इंजेक्शन योग्य निर्भरता ** बनाम ** बाहरी घटक ** वाक्यांश पसंद है जो एकता या मेफ द्वारा प्रदान की जाने वाली चीज़ों के बीच अंतर करने में मदद करने के लिए है। – odalet

    4

    सभी मॉड्यूल एप्लिकेशन के रूप में एक ही समय में कंपाइल नहीं कर रहे हैं, तो एमईएफ आपको मुख्य ऐप में बदलते इंटरफेस से निपटने के कई तरीके प्रदान करता है। अन्यथा MEF अधिक जटिल हो तो आपको आवश्यकता हो सकती है।

    2

    मैं PRISM के साथ एक वर्ष में एकता का उपयोग कर रहा हूं लेकिन मैंने कुछ गंभीर स्मृति लीकिंग मुद्दों पर ध्यान दिया है। इसलिए मैंने प्रिज्म 4 और एमईएफ को जाने का फैसला किया। मैंने जो किया है वह सबसे पहले मेरे ऐप को एकता के साथ PRISM 4 का उपयोग करने के लिए परिवर्तित कर रहा है। फिर मैंने एक शाखा को एमईएफ का उपयोग करने के लिए परिवर्तित कर दिया। यह मजाकिया लग सकता है लेकिन एमईएफ मेमोरी खपत को संभालने और यूनिटी की तुलना में किसी भी तरह से बेहतर प्रतीत होता है।

    यह सुनकर अच्छा लगेगा कि दूसरों ने एक ही अनुभव किया है या नहीं?

    +0

    दिलचस्प लगता है – Shimmy

    +9

    मुझे समझ में नहीं आ रहा है कि इस जवाब में 3 + है, बिना किसी टिप्पणी के। या तो यह अन्य लोगों के साथ हुआ है (यही कारण है कि उन्हें +1 और टिप्पणी करना चाहिए), या स्मृति रिसाव एकता से पूरी तरह से असंबंधित है। मैंने खुद को ऐसा कुछ भी सामना नहीं किया है। –

    2

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

    +5

    क्या आप उस एप्लिकेशन को हमारे साथ साझा कर सकते हैं? – John

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