यह वास्तव में आपके साझा कोड की परिपक्वता पर निर्भर करता है। मैं कहूंगा कि वहाँ तीन तरीकों आप का अनुसरण कर सकते, अपने स्वयं के पक्ष-विपक्ष के साथ प्रत्येक:
विकल्प 1: सीधे उन्हें अपने टीम परियोजना
Team Project Application 1
--> Development
--> ...
--> MAIN
--> Sources
--> Application 1
--> Application1.sln
Team Project Application 2
--> Development
--> ...
--> MAIN
--> Sources
--> Application 2
--> Application1.sln
Team Project CoreProject 1
--> Development
--> ...
--> MAIN
--> Sources
--> CoreProject1.csproj
से बाहर संदर्भ इस दृष्टिकोण के साथ, आप में सेट कर सकते हैं एक बार कोरप्रोजेक्ट में चेक-इन करने के बाद आपके सीआई बिल्डिंग शुरू कर देते हैं।
आप (या कोई अन्य टूट जाएगा संकलन) के लिए टीम परियोजनाओं स्थानीय स्तर पर एक सम्मेलन के साथ मैप किया बाध्य कर रहे हैं
यह एक अच्छा दृष्टिकोण है, तो आप लगातार CoreProject & बदल उन परिवर्तनों को जल्दी से सभी प्रभावित ऐप्स को देखना चाहते हैं तो है।
यह भी दर्शाता है कि आप एक निश्चित ऐप पर अस्थिरता का जोखिम उठा सकते हैं, क्या कोरप्रोजेक्ट में ब्रेकिंग बदलाव करना चाहिए।
विकल्प 2: परोक्ष रूप से
Team Project Application 1
--> Development
--> ...
--> MAIN
--> SharedSources
--> CoreProject1_branch
--> CoreProject1.csproj
--> Sources
--> Application 1
---> Application1.sln
Team Project Application 2
--> Development
--> ...
--> MAIN
--> SharedSources
--> CoreProject1_branch
--> CoreProject1.csproj
--> Sources
--> Application 2
---> Application1.sln
Team Project CoreProject 1
--> Development
--> ...
--> MAIN
--> Sources
--> CoreProject1.csproj
शाखाओं में इस दृष्टिकोण के साथ के माध्यम से उन्हें संदर्भ, हर बार जब आप CoreProject1 में परिवर्तन में जाँच की है, आपको प्रत्येक प्रभावित आवेदन करने के लिए किसी मर्ज को व्यवस्थित करने की जरूरत है। यह कुछ प्रयास करता है, लेकिन आपको कोरप्रोजेक्ट को अपने खेल के मैदान पर स्थिर करने का समय देता है और फिर इसे अपने ऐप्स में विलय करता है।
इस दृष्टिकोण का तात्पर्य है कि आपके पास प्रत्येक कोरप्रोजेक्ट के लिए बिल्ड परिभाषा भी है।
सामान्य रूप से यह आगे बढ़ने का एक अच्छा तरीका है यदि आप CoreProject & की स्थिरता मानते हैं तो आपके ऐप्स को 'दूषित' करने का जोखिम नहीं उठा सकता है, जिससे समस्याएं हो सकती हैं। यह उस दृष्टिकोण के बारे में है जिस पर हम गए थे।
विकल्प 3: प्रत्येक आवेदन
Team Project Application 1
--> Development
--> ...
--> MAIN
--> SharedBinaries
--> CoreProject1_branch
--> CoreProject1.dll
--> Sources
--> Application 1
---> Application1.sln
Team Project Application 2
--> Development
--> ...
--> MAIN
--> SharedBinaries
--> CoreProject1_branch
--> CoreProject1.dll
--> Sources
--> Application 2
---> Application1.sln
Team Project CoreProject 1
--> Development
--> ...
--> MAIN
--> Sources
--> CoreProject1.csproj
इस दृष्टिकोण के साथ में फ़ाइल संदर्भ बनाने, तुम d एक CoreApplication प्रत्येक आवेदन में निर्माण की बाइनरी उत्पादन में जाँच करने के लिए की जरूरत है।
यह केवल तभी अनुशंसा की जाती है जब आपको विश्वास हो कि CoreAplication स्थिर है & आपको इसे नियमित आधार पर डीबग करने की आवश्यकता नहीं होगी।
अनिवार्य रूप से विकल्प 2 & विकल्प 3 समान हैं, प्रसिद्ध बहस "प्रोजेक्ट बनाम फ़ाइल संदर्भ" से अलग हैं। एसओ संसाधन के लिए here देखें, खोजों के माध्यम से बहुत अधिक पुनर्प्राप्त किया जा सकता है।
यदि आपके कोर प्रोजेक्ट निरंतर परिवर्तन के कारण हैं और/या कम इकाई परीक्षण कवरेज है तो आपको विकल्प 2 (या 3) के लिए जाना चाहिए।
यदि आप उनकी गुणवत्ता पर भरोसा रखते हैं, तो विकल्प 1 के लिए जाना एक अच्छा विकल्प है, क्योंकि इससे आपकी समग्र उत्पादकता में काफी वृद्धि होगी।
आपके उत्पादों और उनकी गुणवत्ता पर किसी भी जानकारी के बिना, केवल आपके द्वारा प्रदान की जाने वाली काफी बड़ी संख्या (20 लोग, 50 समाधान, 7 कोर प्रोजेक्ट) के आधार पर, मैं विकल्प 2/3 के लिए जाऊंगा।
एक और महत्वपूर्ण संकेत: यह अक्सर से अधिक होता है कि साझा प्रोजेक्ट में अलग परीक्षण का कोई साधन नहीं है। यदि यह मामला है और कोर प्रोजेक्ट्स के पास कोई यूनिट टेस्ट नहीं है, कोई समर्पित टेस्ट प्लान इत्यादि नहीं है, तो विकल्प 1 से कुछ और करने में कोई बात नहीं है।
इस मामले पर एक अतिरिक्त महान संसाधन एएलएम रेंजरों द्वारा work है।
एसओ के लिए यह विषय कैसे है? मैं कल्पना नहीं कर सकता कि यह हमारे प्रोग्रामर बहन साइट के लिए बेहतर फिट हो। –