asp.net mvc एएसपी.नेट एमवीसी के साथ एमईएफ कार्यान्वित करना?




asp.net-mvc plugins (5)

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

ऐप शुरू होने पर डीएलएल को गतिशील रूप से लोड करने का कोई तरीका है, और फिर मुख्य सिस्टम के साथ एक दृश्य और नियंत्रक मेर्ज करें? मुझे नहीं पता कि मैं यहां सही रास्ते पर हूं या नहीं।

फिर, मुझे लगता है कि ऐप के साथ आने वाले "मानक" विचारों में, मैं यह पता लगाने के लिए "आईएफ फिर" का उपयोग कर सकता हूं कि प्लगइन लोड हो गया है और उपयोगकर्ता नियंत्रण में MERGE है।

खैर, मैं यहाँ जोर से बात कर रहा हूं, लेकिन मुझे लगता है कि आप समझते हैं कि मैं क्या प्राप्त कर रहा हूं।

कोई विचार?




इसे देखो :

http://www.fidelitydesign.net/?p=104

मॉड्यूलर एएसपी.नेट एमवीसी प्रबंधित एक्सटेंसिबिलिटी फ्रेमवर्क (एमईएफ), मैथ्यू एबॉट द्वारा भाग वन का उपयोग कर।


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

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


हम एएसपी.नेट एमवीसी में एमईएफ के टन का उपयोग कर रहे हैं, हालांकि इसमें से अधिकांश नियंत्रक स्तर के नीचे एक स्तर पर बैठते हैं, क्योंकि हमारे निचले स्तर के मॉड्यूल में अनुमतियों की जांच करने और डेटा को सत्यापित करने के लिए एमईएफ प्लगइन का उपयोग किया जाता है।

हालांकि, हम भी हमारे नियंत्रकों के लिए एक और अधिक अनुकूल दृष्टिकोण का उपयोग करते हैं। दृश्य अधिक कठिन हैं, लेकिन हमने वास्तव में नियमित रूप से नियमित ASP.NET MVC दृश्यों के उपयोग को समाप्त कर दिया है और डेटाबेस में स्निपेट में हमारे रेजर दृश्यों को संग्रहीत किया है। हमारे नियंत्रक फिर रनटाइम पर एक दृश्य के लिए टेम्पलेट इंजन से पूछते हैं और व्यू ("व्यूनाम") इत्यादि के बदले प्रतिक्रिया के लिए ContentResult प्रस्तुत करते हैं।

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

तो, आपके पास एक IUserController की तरह कुछ हो सकता है जिसमें "लॉगिन", "लॉगआउट" आदि के तरीकों को शामिल किया गया हो।

उस वास्तविक कार्यक्षमता के अतिरिक्त, हम "SiteId" नामक इंटरफ़ेस में केवल पढ़ने-योग्य GUID प्रॉपर्टी जोड़ देंगे। प्रत्येक कार्यान्वयन तब साइटआईडी के लिए कड़ी-कोड करेगा जिसका उद्देश्य यह है। कोर कोड में "डिफ़ॉल्ट" कार्यान्वयन के लिए, यह "Guid.Empty" वापस कर देगा।

फिर, जब हम एमईएफ का आह्वान करते हैं और IUserController का उपयोग करने के लिए किस कार्यान्वयन की तलाश करते हैं, तो हम उन सभी की एक आयात सूची में एक सूची में करेंगे और फिर गुणों से पूछने के लिए LINQ का उपयोग करें कि इसका उपयोग किसके लिए किया जाए:

var _currentUserController = _availableUserControllers.FirstOrDefault(
  c=>c.SiteId == AppSettings.SiteId);
if(_currentUserController == null){
    //There is no site-specific override
    _currentUserController = _availableUserControllers.FirstOrDefault(
      c=>c.SiteId == Guid.Empty);
}

नियंत्रकों के साथ ऐसा करने के लिए, आपकी सबसे अच्छी शर्त वेब पर एमईएफ-आधारित नियंत्रक कारखानों के कुछ कार्यान्वयन को देखना है।

हालांकि, जैसा कि मैंने कहा था, हम इसे लगभग एक स्तर पर करते हैं जो कम है और हमारे मॉड्यूल या नियंत्रक इस तरह के लुकअप करते हैं कि यह निर्धारित करने के लिए कि कौन से प्लगइन चलाना है।





composite