मैं अपने एप्लिकेशन के app.config अनुभाग में सभी मेरी कॉन्फ़िगरेशन सेटिंग्स को संग्रहीत करने की योजना बना रहा हूं (ConfigurationManager.AppSettings
कक्षा का उपयोग करके)। चूंकि उपयोगकर्ता ऐप के यूआई (चेकबॉक्स पर क्लिक करके, रेडियो बटन आदि का चयन करके) सेटिंग्स बदलता है, इसलिए मैं उन परिवर्तनों को AppSettings
पर लिखने की योजना बना रहा हूं। साथ ही, प्रोग्राम चल रहा है, मैं लगातार एक प्रक्रिया से AppSettings
तक पहुंचने की योजना बना रहा हूं जो लगातार डेटा संसाधित करेगा। यूआई के माध्यम से सेटिंग्स में परिवर्तन वास्तविक समय में डेटा प्रोसेसिंग को प्रभावित करने की आवश्यकता है, यही कारण है कि प्रक्रिया लगातार AppSettings
तक पहुंच जाएगी।ConfigurationManager.AppSettings प्रदर्शन संबंधी चिंताएं
क्या यह प्रदर्शन के संबंध में एक अच्छा विचार है? .NET ऐप्स लिखते समय AppSettings
का उपयोग कॉन्फ़िगरेशन सेटिंग्स को स्टोर और एक्सेस करने के लिए "सही तरीका" माना जाता है, लेकिन मुझे चिंता है कि यह विधि निरंतर लोड के लिए नहीं थी (कम से कम सेटिंग्स को लगातार पढ़ने के संदर्भ में)।
अगर किसी के पास इसका अनुभव है, तो मैं इनपुट की सराहना करता हूं।
अद्यतन: मुझे शायद कुछ बिंदुओं को स्पष्ट करना चाहिए।
यह एक वेब अनुप्रयोग नहीं है, इसलिए एप्लिकेशन में डेटाबेस को कनेक्ट करना कॉन्फ़िगरेशन सेटिंग्स को संग्रहीत करने के लिए अधिक हो सकता है। यह एक विंडोज़ फॉर्म एप्लीकेशन है।
एमएसडीएन दस्तावेज के अनुसार, ConfigurationManager
न केवल आवेदन स्तर सेटिंग्स, बल्कि उपयोगकर्ता सेटिंग्स को संग्रहीत करने के लिए भी है। (विशेष रूप से महत्वपूर्ण है, उदाहरण के लिए, आवेदन एक आंशिक विश्वास आवेदन के रूप में स्थापित किया गया है।)
अद्यतन 2: मैं lomaxx का जवाब स्वीकार किया, क्योंकि Properties
वास्तव में एक अच्छा समाधान की तरह लग रही है, किसी भी अतिरिक्त परतों को जोड़ने के बिना मेरे आवेदन के लिए (जैसे एक डेटाबेस)। गुणों का उपयोग करते समय, यह पहले से ही उन सभी कैशिंग को करता है जो दूसरों ने सुझाए हैं। इसका मतलब है कि किसी भी बदलाव और बाद में पढ़े सभी स्मृति में किए जाते हैं, जिससे यह बेहद तेज़ हो जाता है। जब आप इसे स्पष्ट रूप से बताते हैं तो गुण केवल डिस्क में परिवर्तन लिखते हैं। इसका मतलब है कि मैं रन टाइम पर कॉन्फ़िगरेशन सेटिंग्स पर कॉन्फ़िगरेशन सेटिंग्स में परिवर्तन कर सकता हूं और फिर प्रोग्राम से निकलने पर केवल डिस्क पर अंतिम बचत कर सकता हूं।
बस यह सत्यापित करने के लिए कि वास्तव में मुझे आवश्यक लोड को संभालने में सक्षम होगा, मैंने अपने लैपटॉप पर कुछ परीक्षण किया था और गुणों का उपयोग करके प्रति सेकंड 750,000 पढ़ने और 7,500 लिखने में सक्षम था। यह अब तक और उससे परे है कि मेरा आवेदन कभी भी भी इस बात की आवश्यकता के करीब आ जाएगा कि मैं प्रदर्शन को प्रभावित किए बिना गुणों का उपयोग करने में काफी सुरक्षित महसूस करता हूं।