सबसे अच्छा तरीका: एक मौजूदा टीम फाउंडेशन सर्वर (टीएफएस) समाधान का पुनर्गठन


12

मेरे विभाग में हम कुछ एकीकृत संचार सर्वर के लिए कई छोटे AddOns विकसित कर रहे हैं। संस्करण और वितरित विकास के लिए हम एक टीम फाउंडेशन सर्वर 2012 का उपयोग करते हैं।

लेकिन: हमारे सभी अनुप्रयोगों और पुस्तकालयों के लिए केवल एक बड़ा TFS समाधान है:

  • मुख्य समाधान
    • अनुप्रयोग
      • ऐप 1
      • ऐप 2
      • ऐप 3
    • पैदा हुई कारण
    • पुस्तकालय
      • लिब 1
      • लिब 2
    • उपकरण

"एप्लिकेशन" पथ में सभी मुख्य अनुप्रयोग शामिल हैं। वे एक दूसरे पर निर्भर नहीं हैं, लेकिन वे पुस्तकालयों और बाह्य परियोजनाओं पर निर्भर हैं।

"बाहरी" पथ में हमारे एप्लिकेशन और लाइब्रेरी में संदर्भित कुछ बाहरी DLL शामिल हैं।

लाइब्रेरी पथ में आमतौर पर उपयोग किए जाने वाले लिब (यूआई टेम्पलेट, हेल्पर कक्षाएं, आदि) होते हैं। वे एक-दूसरे पर निर्भर नहीं होते हैं और उन्हें पुस्तकालयों और उपकरण परियोजनाओं में संदर्भित किया जाता है।

टूल पाथ में कुछ हेल्पर प्रोग्राम होते हैं जैसे सेटअप हेल्पर्स, अपडेट वेब सर्विसेज आदि।

अब, कुछ प्रमुख बिंदु हैं कि मैं इस संरचना को क्यों बदलना चाहूंगा:

  • हम सर्वर बिल्ड का उपयोग नहीं कर सकते।
  • टीएफएस स्क्रैम मैनेजमेंट को स्प्रिंट, इम्पेडिमेंट आदि जैसे समाधान संरचना के साथ प्रबंधित करना असुविधाजनक है।
  • प्रत्येक डेवलपर के पास हमेशा समाधान में सभी परियोजनाओं तक पहुंच होती है।
  • एक पूरा निर्माण बहुत लंबे समय तक रहता है अगर कोई गलती से दृश्य स्टूडियो में [F6] हिट हो जाता है ...

आप इस समाधान में क्या बदलाव करेंगे? आप उन परियोजनाओं को छोटे समाधानों में कैसे तोड़ेंगे, उन समाधानों को कैसे संरचित किया जाना चाहिए।

मेरा पहला दृष्टिकोण होगा, प्रत्येक एप्लिकेशन, लाइब्रेरी और टूल के लिए एक टीएफएस प्रोजेक्ट बनाना। लेकिन मैं यह कैसे सुनिश्चित कर सकता हूं कि उदाहरण के लिए ऐप 2 में हमेशा लीब 1 का नवीनतम संस्करण शामिल हो? क्या मुझे Lib 1 पर बदलावों की निगरानी करनी है और जैसे ही Lib बदलते हैं, ऐप 2 को मैन्युअल रूप से अपडेट करना होगा? या मैं किसी भी तरह किसी भी बाहरी परियोजना के नवीनतम संस्करण का उपयोग करने के लिए विजुअल स्टूडियो को मजबूर कर सकता हूं?

संपादित करें: TFS पर, केवल एक TFS टीम प्रोजेक्ट संग्रह है, जिसमें एक TFS टीम प्रोजेक्ट है। टीम प्रोजेक्ट में एक बड़ा विज़ुअल स्टूडियो सॉल्यूशन होता है, जिसमें कई फ़ोल्डर्स होते हैं (ऊपर की संरचना देखें) जिनमें से प्रत्येक में कई वीएस प्रोजेक्ट होते हैं।

मेरा सवाल अब यह है कि आप फिर से कैसे संगठित होंगे:

  1. टीएफएस टीम प्रोजेक्ट्स
  2. वीएस प्रोजेक्ट्स

1
जब आप "एक बड़ा TFS समाधान" कहते हैं, तो क्या आप TFS टीम प्रोजेक्ट संग्रह, या TFS टीम प्रोजेक्ट, या विज़ुअल स्टूडियो समाधान के बारे में बात कर रहे हैं?
ज़ुगबो

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

बहुत कम विवरण प्रदान करने के लिए क्षमा करें। मैं अपने प्रारंभिक प्रश्न को संपादित करूँगा।
dhh

जवाबों:


11

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

अपने वीएस समाधान को कई समाधानों में विभाजित करें, एक प्रमुख एप्लिकेशन के अनुसार। यह स्थानीय बिल्ड को बहुत तेज़ करेगा, साथ ही साथ बिल्ड सर्वर भी।

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

सभी तृतीय पक्ष संदर्भित पुस्तकालयों के लिए NuGet पैकेज बनाएं जो पहले से ही एक नहीं है। उन्हें एक निजी रिपॉजिटरी (विंडोज़ साझा फ़ोल्डर) में संग्रहीत करें और हर समाधान पर राइट क्लिक करके और इसे सक्षम करने के लिए पैकेज पुनर्स्थापना सुविधा को सक्षम करें (यह भी बनाम सेटिंग्स में पैकेज डाउनलोड करने के लिए पैकेज को पुनर्स्थापित करने की अनुमति दें)।

यदि आपके पास कोई साझा आंतरिक पुस्तकालय है, तो उनके लिए भी NuGet पैकेज बनाएं, और उस लाइब्रेरी वाले बनाम समाधान का निर्माण करें। नगेट पैकेज बनाने के लिए एक पोस्ट बिल्ड कमांड जोड़ें, या इसे करने के लिए अपने tfs बिल्ड टेम्पलेट का विस्तार करें (इसमें बहुत से टेम्पलेट हैं जो पहले से ही ऐसा करते हैं)।


+1 - काश मैं इसे और बना पाता। आवेदन संरचना में परिवर्तन के लिए रेपो संरचना को आवेदन संरचना में बांधना एक समस्या है। सॉल्यूशन फ़ाइलों की 'सॉफ्ट' सेग्रीगेशन करें, एरियाज और इटरेशंस सीमाओं के रूप में काम करते हैं और जो साझा करने के लिए समझ में आता है उसे साझा करते हैं।
तेलस्तीन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.