समस्या:
मैं एक रूपरेखा है जो एक फ़ाइल को स्वीकार किया निर्माण कर रहा हूँ, इसकी अनुवाद और यह कार्यान्वित। फ्रेमवर्क किसी भी प्रकार की फाइल को संभालने में सक्षम होना चाहिए, इस अंत में मैंने और को निष्पादित करने के लिए कक्षाओं और विधियों वाले डीएलएल को अपलोड करने का एक तरीका प्रदान किया है।
इंटरफेस जो सार्वजनिक रूप से उपलब्ध हैं का एक सेट को परिभाषित करें: क्या मैं, रहा हूँ प्लगइन इंटरफ़ेसप्लगइन पैटर्न
समाधान एक परिभाषित करने के लिए सबसे अच्छा तरीका है। प्लगइन्स इन इंटरफेस को लागू करना चाहिए।
समाधान बी:
कुछ अमूर्त वर्ग है जो सार्वजनिक रूप से उपलब्ध हैं परिभाषित करें। प्लगइन्स विरासत में होना चाहिए और इन वर्गों पर अमूर्त तरीकों को ओवरराइड करना चाहिए।
समाधान सी:rcravens
दर्रा इंटरफेस के आसपास कोड के अंदर, एक अमूर्त वर्ग जो सार्वजनिक रूप से प्लगइन तानाना के लिए अनुमति देने के लिए उपलब्ध है बनाएँ। चुना गया
यह समाधान केवल इंटरफ़ेस से पहले चुना गया था क्योंकि यह मूल कार्यान्वयन (इस मामले में आसान) को सक्षम बनाता है। इसे केवल अमूर्त वर्ग से पहले चुना गया था क्योंकि यह कोड के भीतर मॉकिंग सक्षम बनाता है। संरचना ढांचे उत्कृष्ट हैं, लेकिन इस एप्लिकेशन के रूप में हल्के वजन के लिए शीर्ष पर थोड़ा सा है जहां केवल सीमित विस्तारशीलता वांछित है।
समाधान डी:Jay और Chris Shain
(जैसे Managed Extensibility Framework(MEF) के रूप में) एक संरचना ढांचे को लागू करें और इसके चारों ओर
किसी भी नए समाधान दिखाई देते हैं, मैं उन्हें इस सूची में जोड़ना होगा निर्माण। जवाब
अग्रिम धन्यवाद,
टेक टेस्ट Dude
एमईएफ और एमएएफ के बारे में क्या? जब आप अनुवाद के बारे में बात करते हैं तो मुझे नहीं पता कि आप क्या मतलब रखते हैं, लेकिन एमईएफ और एमएएफ (संभावित रूप से कुछ सामान्य डी सामान से समृद्ध) समग्र अनुप्रयोगों के निर्माण के लिए बनाए जाते हैं। आप प्रिज्म (समग्र WPF) कोड को स्किम पढ़ना चाहते हैं, पूरी सामग्री समग्र अनुप्रयोग उर्फ मॉड्यूल/प्लगइन्स के बारे में है। यदि आप वेब अनुप्रयोगों के बारे में बात कर रहे हैं तो ऑर्चर्ड सीएमएस का स्रोत भी दिलचस्प हो सकता है। इन लोगों ने एएसपी.नेट एमवीसी के शीर्ष पर एक अच्छा प्लगइन आधारभूत संरचना बनाई है। – Jay
प्रश्न में आवेदन एक सर्वर पर बैठे एक webservice है। विचार यह है कि कई लोग 'अनुवाद' के लिए फाइलें प्रदान कर सकते हैं और कुछ लोग प्लगइन प्रदान कर सकते हैं। जब लोग अपनी फाइलें प्रदान करते हैं, तो वे चुनेंगे कि किस प्लगइन का इस्तेमाल 'अनुवाद' करने के लिए किया जाना चाहिए। वास्तविक यूआई अंत (डब्ल्यूपीएफ, एमवीसी, इत्यादि) अभी इस मुद्दे पर नहीं है। मैं अब तक पूर्व-रक्षा ढांचे से दूर रहा हूं क्योंकि वे काफी असहनीय होने की ओर रुख करते हैं। अगर मैं त्रुटि में हूं तो मुझे सही करें –
अभी तक एमएएफ के साथ काम नहीं किया है और यह नहीं पता कि यह अभी भी एमएस द्वारा बनाए रखा गया है, लेकिन मुझे लगता है कि कम से कम एमईएफ को आवश्यक बुनियादी ढांचा प्रदान करना चाहिए। यह जीयूआई सामान तक ही सीमित नहीं है। हालांकि मुझे लगता है कि @ क्रिस शैन सही है, पहिया को फिर से न लगाएं। बीटीडब्ल्यू: सुरक्षा के बारे में क्या? मेरा मतलब है कि कोई प्लगइन के रूप में दुर्भावनापूर्ण कोड अपलोड कर सकता है। लगता है कि एक सैंडबॉक्स की आवश्यकता है। – Jay