13

मेरी आखिरी परियोजना में हमने एमएसबिल्ड को एक स्क्रिप्टिंग भाषा के रूप में उपयोग किया। (हाँ, वास्तव में!) हमने उन हिस्सों के लिए सैकड़ों कस्टम एमएसबिल्ड कार्यों को भी लिखा, जो सी # में अधिक समझ में आए। (मैंने एमएसबिल्ड कार्य के लिए बॉयलरप्लेट कोड उत्पन्न करने के लिए एक एमएसबिल्ड कार्य भी लिखा था। हाँ, यह स्वयं खपत हुआ।).NET में निर्भरता पेड़ को प्रबंधित करने का सबसे अच्छा तरीका क्या है?

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

Step1: CopyFiles 
Step2: CopyFiles, Step1 

और जब आप Step2 निष्पादित, यह केवल एक बार फ़ाइलों की प्रतिलिपि होगा।

भवन और एक निर्भरता वृक्ष संतोषजनक सॉफ्टवेयर में एक सुंदर आम है। मेरी इच्छा है कि एमएसबिल्ड टीम अपना निर्भरता प्रबंधन कोड ले ले, इसे एमएसबिल्ड से हटा दें, और इसे .NET Framework में ले जाएं जहां कोई भी इसका उपयोग कर सके। बारिंग, आपको पर निर्भरताओं के प्रबंधन के लिए सबसे अच्छा विकल्प क्या लगता है?

उत्तर

5

मुझे लगता है कि आप इस प्रकार के व्यवहार को पाने के लिए स्प्रिंग जैसे आईओसी कंटेनर का उपयोग कर सकते हैं।

किसी भी कार्य को तत्काल करें जो केवल एक बार सिंगलटन के रूप में चलाना चाहिए और कार्य ऑब्जेक्ट का कन्स्ट्रक्टर कार्य को चलाता है। फिर उस कार्य पर निर्भरता के साथ आने वाली कोई भी वस्तु उस कार्य का संदर्भ प्राप्त करेगी जो पहले से ही दौड़ चुकी है और उस कार्य के परिणाम प्राप्त करने में सक्षम हो या अनुमान लगा सके कि वह कार्य पहले ही सफलतापूर्वक चलाया जा चुका है।

वसंत कॉन्फ़िगरेशन में आप एक साथ बंधे कई कार्यों के साथ समाप्त हो जाएंगे, प्रत्येक व्यक्ति अपने कन्स्ट्रक्टर कॉन्फ़िगरेशन में अन्य कार्यों का संदर्भ देता है। यह दृष्टिकोण सबसे लचीला है और आप उस कार्य के लिए "कार्य" या कुछ भी भारी नहीं हैं।

मुझे लगता है कि किसी वर्कफ़्लो लाइब्रेरी में भी समान अवधारणाएं हैं। लेकिन मैं इनके साथ वास्तव में परिचित नहीं हूं।

मुझे लगता है कि कुछ भी छोटे के लिए, लोगों को सिर्फ अपने स्वयं के ऑब्जेक्ट ग्राफ़ और इंटरफेस को विज़िटर पैटर्न का उपयोग करके और शायद एक शब्द को पकड़ने के लिए रोल करना होगा।

1

कोडप्लेक्स पर Refix प्रोजेक्ट पर नज़र डालें। यह संदर्भ फिक्स के लिए खड़ा है और यह बहुत अच्छी तरह से काम करता है।

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

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