डेस्कटॉप अनुप्रयोगों के लिए App.config और वेब अनुप्रयोगों के लिए Web.config .NET कॉन्फ़िगरेशन सिस्टम का हिस्सा हैं। मुख्य रूप से वे हमारे आवेदन के संबंध में .NET ढांचे सेटिंग्स को नियंत्रित करने के लिए उपयोग किया जाता है। ये ऐसी कॉन्फ़िगरेशन सेटिंग्स हैं जो असेंबली के संस्करणों के प्रतिस्थापन (अनुभाग < असेंबली बाइंडिंग >), .NET फ्रेमवर्क संस्करण (< स्टार्टअप >) आदि का प्रतिस्थापन (पूर्ण app.config स्कीमा के लिए msdn देखें।) एक अनुभाग कस्टम सेटिंग्स के लिए समर्पित है एप्लिकेशन डेवलपर्स (< ऐपसेटिंग >)। कस्टम अनुभाग बनाने की संभावना भी है। इसलिए, जब हमें सेटिंग्स को स्टोर करने की आवश्यकता होती है तो हम या तो app.config पर पिग्गी-बैक कर सकते हैं या अपनी अलग कॉन्फ़िगरेशन फाइलें बना सकते हैं।
यहां प्रो और app.config का उपयोग करने का contras हैं:
प्रो: वहां पहले से ही appSettings अनुभाग से सेटिंग पढ़ने .NET में एक मानक एपीआई है। अगर आपको केवल कुछ कॉन्फ़िगरेशन सेटिंग्स की आवश्यकता है, तो अपनी कॉन्फ़िगरेशन फ़ाइलों को पढ़ने के लिए अपनी खुद की कक्षा को विकसित और परीक्षण करने के बजाय इस तैयार एपीआई का उपयोग करना बहुत आसान है। इसके अलावा, app.config फ़ाइल पहले से ही आपके लिए वीएस प्रोजेक्ट में शामिल है।
प्रो: machine.config/app.config का एक मानक पदानुक्रम है। यदि आप ऐसी सेटिंग्स की योजना बनाते हैं जिन्हें अलग-अलग अनुप्रयोगों के लिए मशीन-व्यापी और ओवरराइड या बाएं सेट किया जा सकता है, तो आपको app.config का उपयोग करना चाहिए।
प्रो/कॉन: App.config रन-टाइम में कैश किया गया है। यदि आप अपने एप्लिकेशन के चलते इसके अपडेट का अनुमान लगाते हैं, तो आपको विशेष रूप से कॉन्फ़िगरेशन फ़ाइल के कुछ अनुभाग को रीफ्रेश करने का अनुरोध करना होगा। Web.config के लिए फ़ाइल में कुछ बदलते समय वेब ऐप स्वचालित रूप से पुनरारंभ होता है। यह काफी सुविधाजनक है।
Con: app.config को आपकी .exe फ़ाइल के समान निर्देशिका में संग्रहीत किया जाता है। आम तौर पर यह सी: \ प्रोग्राम फ़ाइलों के सबफ़ोल्डर में होगा। यह निर्देशिका विंडोज 7 में लेखन से अतिरिक्त संरक्षित है।आपको वहां लिखने के लिए व्यवस्थापक समूह का सदस्य होना चाहिए और यदि नियंत्रण कक्ष में आपका यूएसी (उपयोगकर्ता एक्सेस कंट्रोल) स्तर 0 पर सेट नहीं है (जो आमतौर पर नहीं है), तो आपको ओएस द्वारा सी से पूछने की पुष्टि करने के लिए कहा जाएगा: \ कार्यक्रम फाइलें। इसलिए, व्यवस्थापक अधिकार के बिना उपयोगकर्ता app.config में कॉन्फ़िगरेशन को बदलने में सक्षम नहीं होंगे। प्रोग्रामेटिक रूप से आपकी सेटिंग्स को बदलने के लिए वही होता है: ऐप.कॉन्फिग लिखने का प्रयास करते समय आपका एप्लिकेशन अपवाद प्राप्त होगा यदि यह विंडोज 7 पर किसी व्यवस्थापक उपयोगकर्ता के अंतर्गत नहीं चलता है। आपकी स्वयं की कॉन्फ़िगरेशन फ़ाइलें आमतौर पर C: \ ProgramData \ या c: \ Users subfolder पर जाती हैं (विंडोज 7 पर)। ये स्थान उपयोगकर्ता या कार्यक्रमों द्वारा लिखित करने के लिए मित्रवत हैं।
Con: यदि उपयोगकर्ता ने आपकी app.config फ़ाइल संपादित की है और गलती से इसे दूषित कर दिया है, तो पूरा एप्लिकेशन कुछ अस्पष्ट त्रुटि संदेश से शुरू नहीं होगा। यदि आपकी अलग कॉन्फ़िगरेशन फ़ाइल दूषित हो गई है, तो आप अधिक विस्तृत त्रुटि संदेश प्रदान करने में सक्षम होंगे।
निष्कर्ष में: app.config आपको आसान (तेज़ विकास) दृष्टिकोण देता है, जो आमतौर पर केवल पढ़ने के लिए उपयुक्त सेटिंग्स के लिए उपयुक्त है। कस्टम सेटिंग्स फ़ाइल आपको अधिक स्वतंत्रता प्रदान करती है (फ़ाइल को संग्रहीत करने के लिए, सत्यापन/त्रुटि प्रबंधन, इसकी स्कीमा के साथ अधिक लचीलापन) लेकिन विकास के दौरान और अधिक काम की आवश्यकता है।
एप्लिकेशन विस्तृत सेटिंग्स app.config में संग्रहीत हो जाती है http://geekswithblogs.net/mbcrump/archive/2010/06/17/configuring-applicationuser-settings-in-wpf-the-easy-way.aspx – kenny
हाँ लेकिन एप्लिकेशन – IEnumerable
हां के रूप में दायरे का चयन करके ऐप विस्तृत सेटिंग्स का उपयोग सेटिंग फ़ाइल में भी किया जा सकता है। सेटिंग्स फ़ाइल के कवर के नीचे देखें और यह app.config – kenny