2008-10-29 16 views
6

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

उत्तर

8

डेटाबेस में मानों को संपादित करने के लिए एक मजबूत इंटरफ़ेस बनाने के लिए यह आसान और सुविधाजनक है।

कॉन्फ़िगरेशन फ़ाइल के लिए एक अच्छा बनाना आसान है।

तो मैं आमतौर पर आप सब कुछ जो आप अपने उपयोगकर्ताओं/व्यवस्थापक डेटाबेस में बाद में संपादित करने में सक्षम होना चाहते हैं संग्रहीत करना चाहते हैं। पुन: स्थापना आदि जैसे गंभीर परिवर्तनों के दौरान केवल जो कुछ भी स्पर्श किया जाना चाहिए, वह कॉन्फ़िगरेशन फ़ाइल में बेहतर है।

+0

इलिया, मेरा मानना ​​है कि यह इतना आसान नहीं है। आप अतिरिक्त पृष्ठों, परीक्षण, सुरक्षा प्रबंधन के बारे में बात कर रहे हैं। क्या मैंने परीक्षण का जिक्र किया? इसमें समय, प्रयास और पैसा लगता है। मैं तर्क दूंगा कि कॉन्फ़िगरेशन फ़ाइल में "आसान" और "सुविधाजनक" फायदे हैं। आप डेटाबेस विकल्प चाहते हैं जब: 1. व्यवस्थापकों को कॉन्फ़िगरेशन फ़ाइल तक पहुंच नहीं होगी 2. बहु-स्तरीय सुरक्षा भूमिकाएं हैं 3. सेटिंग्स को केवल अन्य एएसपी.NET एप्लिकेशन के अलावा अन्य अनुप्रयोगों द्वारा पढ़ा जाना चाहिए। दूसरे शब्दों में, बड़ी और अधिक परिष्कृत परिस्थितियों में, कॉन्फ़िगरेशन फ़ाइल पर्याप्त नहीं है। जब यह * पर्याप्त * है, तो इसका इस्तेमाल करें। मैं क्या खो रहा हूँ? –

0

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

मैं आमतौर पर डेटाबेस में एप्लिकेशन के बजाय डेटाबेस में जानकारी से संबंधित अधिक सापेक्ष जानकारी रखता हूं।

यह सब कुछ मामूली रूप से आधारित है और हमेशा मामला नहीं है।

+0

web.config को अपडेट करने से आईआईएस साइट को रीसायकल करने का कारण बनता है। –

+0

जैसा मैंने कहा, सब संदर्भ पर निर्भर करता है। – thismat

+1

यह सच है कि जब आप कॉन्फ़िगरेशन फ़ाइल बदलते हैं, तो एप्लिकेशन तुरंत प्रतिक्रिया करता है। अगली हिट नई और पुराने व्यवहार को नहीं देखती है। यह * सच नहीं है कि आईआईएस रीसायकल करता है। एएसपी.नेट एनटीएफएस फाइल चेंज अधिसूचनाओं का उपयोग करता है, इसलिए फ़ाइल की सामग्री बदलते समय सूचित किया जाता है। आईआईएस रीसाइक्लिंग की तुलना में यह बहुत हल्का वजन है। –

0

यदि मैं कर सकता हूं और मुझे प्रदर्शन की आवश्यकता नहीं है तो मैं डेटाबेस से बचना पसंद करता हूं। यदि आपको डेटाबेस की आवश्यकता है तो मैं कहूंगा कि आप एक ही स्थान पर जितना कर सकते हैं उतना ही डाल सकते हैं। प्रबंधन करने के लिए एक बात है।

3

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

हमारे वातावरण में

इसके अलावा, एक कॉन्फ़िग फ़ाइल यदि कोई त्रुटि हुई थी बदलने, शामिल है पूरे परिवर्तन प्रबंधन प्रक्रिया अनुमोदन/आदि।, जो बहुत दर्दनाक होता है। तो यदि आप डेटाबेस में कॉन्फ़िगरेशन सेटिंग्स को शामिल करने के लिए समय लेते हैं तो मुझे लगता है कि यह लंबे समय तक बेहतर काम करेगा। बस मेरा $ 0.02।

+0

सहमत हैं, अगर ऑडिटिंग आवश्यक है, तो यह डेटाबेस का एक कारण है। यदि आपकी परिवर्तन प्रबंधन प्रक्रिया अलग है क्योंकि डेटाबेस की तुलना में वैचारिक जानकारी फ़ाइल में संग्रहीत की जाती है, तो यह प्रक्रिया त्रुटिपूर्ण होती है। –

1

मैं एक पाठ कॉन्फ़िग फ़ाइल, .ini शैली या XML शैली इन दो कारणों के लिए पसंद करते हैं:

1 - आप पाठ फ़ाइल में टिप्पणी डाल सकते हैं।

2 - टेक्स्ट संपादकों के पास "पूर्ववत करें" कमांड है।

0

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

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

यदि आपके पास पहले से ही उस एप्लिकेशन के लिए डेटाबेस नहीं है जिसे आप विकसित कर रहे हैं, तो यह एप्लिकेशन कॉन्फ़िगरेशन के लिए विशेष रूप से डेटाबेस होने के लिए अधिक हो सकता है।

+0

जेट्टेजीक, मूल प्रश्न एक एएसपी.नेट वेब अनुप्रयोग के बारे में था, इसलिए उपयोगकर्ताओं के लिए कंप्यूटर-विशिष्ट सेटिंग्स लागू नहीं होती हैं। –

0

मैं एक पाठ .ini फ़ाइल पसंद करता हूं। उन्हें संपादित करना आसान होता है, और जब आपका एप्लिकेशन घूमता है तो घूमना आसान होता है। यहां एक उदाहरण Setting class है जो आपको उपयोगी मिल सकता है।

+0

विरोधक, मुझे समझ में नहीं आता कि आप ऐसा क्यों करेंगे। सिद्धांत रूप में, आईएनआई फाइलें और कॉन्फ़िगरेशन फाइलें समान हैं: साधारण टेक्स्ट फाइल जिन्हें टेक्स्ट एडिटर के साथ संशोधित किया जा सकता है, नोटपैड पर्याप्त है। कॉन्फ़िगरेशन फ़ाइलों के साथ अंतर सिस्टम में .NET Framework में व्यापक समर्थन है। कॉन्फ़िगरेशन और System.Web.Configuration नामस्थान। तो कॉन्फ़िगरेशन फ़ाइलें आपको आईएनआई फ़ाइल विचार के गुण, साथ ही व्यापक आधारभूत संरचना समर्थन देती हैं। * केवल * लाभ मैं आईएनआई फाइलों के लिए देख सकता हूं एक व्यक्तिपरक राय है कि आईएनआई मनुष्यों के लिए अधिक पठनीय है। एक्सएमएल पढ़ने का अभ्यास करें! –

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