एकाधिक .NET अनुप्रयोगों को कॉन्फ़िगर करने के लिए सर्वश्रेष्ठ दृष्टिकोण

हमारे पास इंटरलिंक्ड नेट 3.5 अनुप्रयोगों का एक सूट है। कुछ वेब साइटें हैं, कुछ वेब सेवाएं हैं, और कुछ विंडोज़ एप्लिकेशन हैं। प्रत्येक ऐप में वर्तमान में अपनी कॉन्फ़िगरेशन फ़ाइल (app.config या web.config) है, और वर्तमान में कॉन्फ़िगरेशन फ़ाइलों में कुछ डुप्लिकेट कुंजी हैं (जो इस समय मैन्युअल रूप से सिंक में रखी जाती हैं) क्योंकि एकाधिक ऐप्स को एक ही कॉन्फ़िगरेशन मान की आवश्यकता होती है। इसके अलावा, अनुप्रयोगों का यह सूट विभिन्न envrionemnts (देव, परीक्षण, लाइव आदि) में तैनात किया जाता है

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

0

5 उत्तर

आप App.config को एकाधिक कॉन्फ़िगरेशन फ़ाइलों में विभाजित कर सकते हैं। आप बस उस फ़ाइल का नाम निर्दिष्ट करते हैं जिसमें कॉन्फ़िगरेशन अनुभाग होता है।

App.config बदलें:


  
  


  

App.config और SomeSetting.xml में:



जहां SomeSetting.xml में शामिल हैं:

अब आप विभिन्न एप फाइलों से अपने ऐप.कॉन्फिग को किसी प्रकार के निर्माण या स्क्रिप्ट को तैनात कर सकते हैं। उदा .:

if debug copy SomeSettingDebug.xml deploydir/SomeSetting.xml
if MySql copy OtherSectionMySql.xml deploydir/OtherSetting.xml
0
जोड़ा

विजुअल स्टूडियो में अपेक्षाकृत अस्पष्ट सुविधा है जो आपको मौजूदा आइटम को लिंक के रूप में जोड़ने देती है, जो आप जो खोज रहे हैं उसे पूरा करना चाहिए। देखें अधिक जानकारी के लिए इस विषय पर डेरिक व्हिटकर की पोस्ट

विजुअल स्टूडियो वास्तव में इस विकल्प को और अधिक दृश्यमान बनाना चाहिए। कोई भी वास्तव में "जोड़ें" बटन के बगल में उस छोटे तीर पर क्लिक करने के लिए सोचता है।

0
जोड़ा

Microsofts पैटर्न और प्रथाओं समूह से प्रिज्म ढांचे की जांच करें?

0
जोड़ा
प्रिज्म कॉन्फ़िगरेशन समस्याओं के साथ कैसे मदद करेगा?
जोड़ा लेखक Robert MacLean, स्रोत

हम फ़ाइल टेम्पलेट्स जैसे MyApp.config.template और MyWeb.config.template का उपयोग एनएएनटी गुणों के साथ करते हैं जो वातावरण के बीच अलग-अलग बिट्स के लिए हैं। तो टेम्पलेट फ़ाइल कुछ इस तरह दिख सकती है:


    ${DbConnString}
    

एक निर्माण के दौरान हम एनएएनटी स्क्रिप्ट में प्रत्येक पर्यावरण के माध्यम से लूपिंग करके विभिन्न परिवेशों के लिए सभी कॉन्फ़िगरेशन उत्पन्न करते हैं, प्रत्येक पर्यावरण के लिए NANT गुण $ {DbConnString} और $ {WebServiceUri} के मान को बदलते हैं (वास्तव में ये सभी सेट हैं प्रत्येक वातावरण के लिए अनुभागों वाला एक फ़ाइल), और गुणों का विस्तार करने के विकल्प के साथ एक NANT प्रतिलिपि कर रहा है।

इसे सेट अप करने में थोड़ी देर लग गई, लेकिन उसने हमें कम से कम दस गुना वापस कॉन्फ़िगरेशन फ़ाइलों के विभिन्न संस्करणों के साथ सहेजे गए समय में भुगतान किया है।

0
जोड़ा
0
जोड़ा
मुझे नहीं पता कि यह नकारात्मक क्यों हुआ, कॉन्फ़िगरेशन प्रबंधित करते समय उन 2 प्रश्न बहुत उपयोगी होंगे।
जोड़ा लेखक sontek, स्रोत