यह प्रश्न एक में से दो में से एक है, लेकिन दोनों एक ही समस्या से संबंधित हैं।अलग-अलग * .csproj/* .config सेटिंग्स प्रत्येक टीम के सदस्य और शाखा
हम 10 डेवलपर्स की एक टीम हैं, कुछ डेवलपर्स आईआईएस के पूर्ण उदाहरण का उपयोग करना पसंद करते हैं, जबकि अन्य आईआईएस-एक्सप्रेस का उपयोग करना पसंद करते हैं। या तो उपयोग करने के लिए योग्यताएं हैं, उदाहरण के लिए, आईआईएस उत्पादन के समान दिखता है, जबकि आईआईएस-एक्सप्रेस संपादन-और-जारी डिबगिंग की अनुमति देता है।
10 डेवलपर कार्य टीम के अलावा, हम स्रोत नियंत्रण का उपयोग कर रहे हैं, और हमारे पास शाखाकरण संरचना है। प्रत्येक शाखा में अलग-अलग web.config/app.config सेटिंग्स हो सकती हैं, जैसे डेटाबेस कनेक्शन स्ट्रिंग्स। एक डेवलपर एक बार एक से अधिक शाखाओं पर काम कर रहा है, इसलिए हमारे पास आमतौर पर प्रति शाखा एक डेटाबेस होता है, हम स्थानीय डेटाबेस वाले डेवलपर्स को देख रहे हैं, लेकिन नामकरण टकराव अभी भी दृष्टिकोण के बावजूद एक समस्या है (यानी एक डेवलपर के पास 2 हो सकता है स्थानीय डेटाबेस, प्रत्येक शाखा के लिए एक)।
पहला मुद्दा, csproj फ़ाइलों के साथ एक है, विशेष रूप से वेब-सर्वर सेटिंग्स। यदि एक डेवलपर आईएसआई-एक्सप्रेस का उपयोग करने वाली सीस्पोज़ फ़ाइल में जांच करता है, और अन्य डेवलपर नवीनतम प्राप्त करता है, तो यह उनकी कॉन्फ़िगरेशन को ओवरराइट करेगा, समय बर्बाद कर देगा और निराशा पैदा करेगा।
बेशक, सबसे आसान समाधान सभी को एक उपकरण, एक कॉन्फ़िगरेशन का उपयोग करने के लिए मजबूर करना होगा, लेकिन मैं ऐसा नहीं करना चाहूंगा, खासतौर से ऐसा कुछ जिसके लिए परिणामी आउटपुट (संकलित कोड) पर कोई असर नहीं पड़ता है।
दूसरा मुद्दा कॉन्फ़िगरेशन फ़ाइलों के साथ है, कॉन्फ़िगरेशन फ़ाइलों को स्रोत नियंत्रण में संग्रहीत किया जाता है (बस किसी अन्य फ़ाइल की तरह), इसलिए जब हम ब्रांचिंग-विलय करते हैं, तो इन फ़ाइलों को बाद में मैन्युअल रूप से अपडेट किया जाना चाहिए। मुझे पता है कि कॉन्फ़िगरेशन फ़ाइलों के लिए डीबग और रिलीज ट्रांसफॉर्मेशन हैं, जिनके पास दोनों में अलग-अलग कनेक्शन स्ट्रिंग हो सकते हैं, लेकिन यह समस्या को हल नहीं करता है क्योंकि दो अलग-अलग डेवलपर एक ही शाखा पर काम कर रहे हैं लेकिन विभिन्न कनेक्शन स्ट्रिंग्स के साथ।
इसका स्पष्ट समाधान है कि हर किसी के पास हमेशा एक ही सेटिंग होती है, लेकिन कुछ डेवलपर स्थानीय डीबी इंस्टेंस का उपयोग करना चाहेंगे, अन्य एसक्यूएल-एक्सप्रेस का उपयोग करना चाहेंगे, जबकि स्टेजिंग सर्वर पूर्ण-ऑन SQLServer इंस्टेंस का उपयोग करता है। दोबारा, यह एक और सेटिंग है जिसमें अंतिम परिणाम नहीं है।
टीम सदस्यों के बीच कॉन्फ़िगरेशन प्रबंधित करने और शाखा/विलय के बीच में, मैंने अपनी विशेष समस्याओं का कोई समाधान नहीं देखा है।
मैं लोगों को एक ही वातावरण रखने के लिए मजबूर करने की ओर झुकता हूं। वेब सर्वर या डेटाबेस संस्करणों के बीच सूक्ष्म अंतर का मतलब उत्पादन में काम करने या नहीं (एक मशीन "मेरी मशीन पर डरावना" काम करता है) के बीच का अंतर हो सकता है। आईआईएस (या आईआईएस एक्सप्रेस) बनाम कैसिनी एक बड़ा है। लेकिन अगर आप किसी भी पैटर्न से बचते हैं जो संभावित रूप से एक समस्या हो सकती है, तो मुझे लगता है कि आप शायद ठीक रहेगा। –
मैं मानता हूं कि यह सब एक ही चीज़ का उपयोग करने के लिए एक ठोस दृष्टिकोण होगा, अगर हम सभी को यह मानने के लिए मिल सके कि यह क्या होना चाहिए। दुर्भाग्य से मैं दूसरों को यह बताने की स्थिति में नहीं हूं कि कैसे काम करना है। – Matthew