2012-02-10 12 views
21

हम अपने .NET आधारित परियोजनाओं और कार्य प्रबंधन प्लेटफॉर्म के रूप में टीएफएस पर विचार कर रहे हैं। कुछ टीम जावा में विशेष रूप से विकसित होती हैं और वे एसवीएन (उपclipse) से काफी खुश हैं।जावा के लिए टीएफएस - बुरा विचार?

हमारे प्रबंधकों निम्न प्रश्नों के साथ आया था:

  • हम साथ ही TFS के लिए जावा टीमों की ओर पलायन करना चाहिए?
  • क्या टीएफएस (केवल स्रोत नियंत्रण) जावा परियोजनाओं को अच्छी तरह से संभालता है?
  • क्या यह हमारे जावा कोड बेस और उपclipse से TFS तक इतिहास माइग्रेट करने का दर्द है?

वर्तमान में हम टीएफएस को बनाए रखने के कारणों के लिए एकमात्र स्रोत नियंत्रण मंच के रूप में उपयोग करना चाहते हैं। हम अपने आईटी लड़कों को कई प्रणालियों का समर्थन करने से बचना चाहते हैं।

धन्यवाद

+0

अपने जावा का उपयोग कर डेवलपर्स क्या आईडीई कर रहे हैं? माइक्रोसॉफ्ट टीएफएस के लिए एक्लिप्स में प्लग-इन जहाज करता है। डाउनलोड के लिए एक मुफ्त डेमो उपलब्ध है ताकि आपके जावा डेवलपर इसे देख सकें। http://www.microsoft.com/visualstudio/en-us/products/2010-editions/team-explorer- हर जगह –

+0

वे ग्रहण का उपयोग करते हैं। लिंक के लिए धन्यवाद। मैं इसे देख लूंगा। – Jabberwocky

+0

ध्यान दें कि आपने एक साल पहले यह पूछा था, मुझे आश्चर्य है कि क्या आपके पास फॉलो अप है? –

उत्तर

45

पूर्ण प्रकटीकरण, मैं टीम है कि जावा टूलींग लिखने पर काम के लिए TFS इतनी के रूप में उचित रूप से पक्षपाती :-)

जहां तक ​​TFS का संबंध है इस सवाल का जवाब लेने के लिए - सभी कोड को समान बनाया जाता है। यह केवल फाइलों में बाइट है जो यह संस्करण नियंत्रण में जांचता है। सभी एससीएम सिस्टम की तरह यह परवाह नहीं करता कि फाइलें किस भाषा में लिखी गई हैं।

माइक्रोसॉफ्ट एक पूर्ण, समृद्ध TFS Plug-in for Eclipse (टीम एक्सप्लोरर हर जगह कहा जाता है) प्रदान करता है। यह ग्रहण आधारित आईडीई से टीएफएस में पूर्ण स्रोत नियंत्रण, कार्य आइटम ट्रैकिंग, निर्माण, शेयरपॉइंट, रिपोर्ट एक्सेस इत्यादि प्रदान करता है। यह 100% जावा में लिखा गया है और टीएफएस द्वारा उजागर की गई वेब सेवाओं से सीधे बात करता है।

इसके अलावा हम cross-platform command line client for TFS भी प्रदान करते हैं ताकि आप अपनी ऑपरेटिंग सिस्टम (मैक, लिनक्स, सोलारिस, एचपी-यूएक्स, ऐक्स इत्यादि) पर कमांड लाइन से टीएफएस से पूरी तरह से समर्थित हो सकें।

अंत में, यदि आप जावा में लिखा उपकरण है कि TFS से बात करना चाहते है तो वे TFS SDK for Java जो पूर्ण एपीआई है कि हम ग्रहण एकीकरण और पार मंच कमांड लाइन ग्राहक बनाने के लिए इस्तेमाल लेकिन पैक है का उपयोग कर सकते नमूने और स्निपेट के साथ और आपके अनुप्रयोगों के साथ पुनर्वितरण के लिए तैयार है।

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

तो - जावा के लिए समर्थन का स्तर बहुत अधिक है और माइक्रोसॉफ्ट ने इस क्षेत्र में लगातार निवेश दिखाया है। हमने हाल ही में कुछ TFS 2010 Power Tools for Eclipse भेज दिए हैं और हम टीम फाउंडेशन सर्वर 11 के साथ टीम एक्सप्लोरर हर जगह 11 के पूर्वावलोकन रिलीज भी भेज रहे हैं (हम कंपनी के अंदर एक ही टीम हैं)।

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

उम्मीद है कि मदद करता है।

+1

मार्टिन, यह बहुत उपयोगी है। धन्यवाद! – Jabberwocky

-1

.NET परियोजनाओं के लिए एसवीएन का उपयोग क्यों नहीं करें? क्या इसके लिए कोई कारण है? विजुअल स्टूडियो में एसवीएन के साथ-साथ विंडोज शैल extension में एसवीएन के लिए कई plugins हैं।

+2

उत्तर एलेक्स के लिए धन्यवाद। परियोजना प्रबंधन और टीएफएस की बग ट्रैकिंग सुविधाओं जैसे हमारी .NET टीमों का मुख्य कारण। एएलएम भावी में, यह परियोजनाओं की प्रगति पर हमें अधिक नियंत्रण और दृष्टिकोण देता है। दूसरा कारण यह है कि हमारी जावा परियोजनाएं पुरानी विरासत परियोजनाएं हैं और हम जानते हैं कि कुछ दिन हम 100% .NET होंगे। हमारे पास जावा पर .NET को पोर्ट करने वाली एक टीम है, जैसा कि हम बोलते हैं ... – Jabberwocky

+1

खुले एएलएम प्लेटफार्म हैं जिनमें सबबर्सन जैसे कोलाबनेट टीमफोर्ज - http://www.open.collab.net/products/ctf/ शामिल हैं।इसमें विजुअल स्टूडियो और एक्लिप्स क्लाइंट इश्यू ट्रैकर और सबवर्जन के लिए शामिल हैं। यदि आप भविष्य में चाहते हैं तो गिट के लिए समर्थन भी शामिल है। –

+0

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

4

मुझे @Martin_Woodward का उत्तर बहुत पसंद है, लेकिन यह मेरी राय में बहुत अधिक पक्षपातपूर्ण है, इसलिए मैं यहां अपने 2 सेंट जोड़ता हूं। हम हमारी कंपनी में एक समान स्थिति में हैं, और निर्णय (मेरी राय में) संदर्भ पर निर्भर करता है। मैं 3 अलग-अलग परिस्थितियों को देख सकता हूं, और निर्णय प्रत्येक में भिन्न हो सकते हैं:

  1. आप ज्यादातर .NET समाधान विकसित कर रहे हैं, और जावा भागों .NET समाधानों में एकीकृत हैं।
  2. आपके .NET समाधान जावा समाधान से स्वतंत्र विकसित हैं, और वे आधा .NET, आधा जावा हैं।
  3. अपने समाधान के अधिकांश जावा के साथ विकसित कर रहे हैं, और केवल एक छोटा सा प्रतिशत मैं केवल पहले मामले में मार्टिन के साथ सहमत होगा नेट

साथ विकसित की है। आपको सामान्य विकास पर्यावरण, स्रोत कोड नियंत्रण, निर्माण प्रक्रिया से लाभ मिलेगा ... आपके जावा लोग टीएफएस स्रोत नियंत्रण में अंतर सीखेंगे (क्या इसका नाम है ??)। और आपका भविष्य उज्ज्वल दिखाई देगा ;-)

यदि आपके .NET समाधान और जावा समाधान एक दूसरे से स्वतंत्र हैं, तो जावा समाधान विकसित करने के लिए टीएफएस का उपयोग करने का एकमात्र तर्क ऑपरेशन में लागत है। और आपको ध्यान से देखना चाहिए, अगर विकास पर्यावरण के संचालन के लिए बचत केवल टीएफएस आपकी सबवर्सन परियोजनाओं को टीएफएस में बदलने की अतिरिक्त लागत का भार उठाएगी।

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

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

+4

इस उत्तर में एक महत्वपूर्ण बात यह है कि टीएफएस केवल स्रोत नियंत्रण से बहुत अधिक जोड़ता है। टीम एक्सप्लोरर हर जगह वर्क आइटम प्रबंधन, मूल समस्या ट्रैकिंग, और क्रॉस प्रोजेक्ट रिपोर्टिंग क्षमताओं को भी जोड़ता है। चीजें अकेले एसवीएन प्रदान नहीं करेंगे। मुझे यह मानना ​​है कि ओपन सोर्स टूल्स हैं जो एक समान फीचर सेट प्रदान करते हैं, लेकिन जावा और .NET विकास दोनों के लिए टीएफएस के रूप में मुझे एक फीचर सेट के रूप में प्रदान करने के बारे में कोई भी जानकारी नहीं है। – jessehouwing

6

टीएफएस का उपयोग कर जावा/जेवीएम प्रोजेक्ट पर काम करने के एक साल बाद, मैं इसे करने से किसी को भी निराश करना चाहता हूं। जबकि टीएफएस को .NET डेवलपर्स के लिए टॉप-ऑफ-द-लाइन माना जा सकता है, आपको इसके साथ किसी भी अनुभव के साथ कोई जावा डेवलपर नहीं मिलेगा। ग्रहण के लिए प्लग-इन और इंटेलिजे के लिए एक बंदरगाह है, लेकिन मुझे दोनों के साथ भयानक भाग्य मिला है, हालांकि मुझे लगता है कि यह मुख्य रूप से है क्योंकि टीएफएस किसी अन्य वीसीएस की तरह काम नहीं करता है।

हमारी टीम पर, हमने टीएफएस और इसके कारण होने वाली जटिलताओं के कारण 10-15% ओवरहेड का अनुमान लगाया है। काम के दिन गुम हो गए क्योंकि टीएफएस ने फाइलों को ओवरराइट करने का फैसला किया, अपूर्ण टीएफएस अपडेट के कारण समस्या निवारण के मुद्दों के दिन। हमने 6 महीने में एक शाखा की है क्योंकि आखिरी बार हमने दो दिन खो दिया था। वाक्यांश को सुनना आम बात है "मैंने अभी आपके नवीनतम परिवर्तनों के साथ अपडेट किया है, क्या आप यह सुनिश्चित करने के लिए जांच सकते हैं कि मर्ज में कुछ भी गायब नहीं हुआ?"। जिरा का उपयोग करने के बजाय, हम टीएफएस में भयानक समस्या-ट्रैकिंग का उपयोग कर फंस गए हैं, जिससे और भी अधिक समस्याएं पैदा हुई हैं।

टीम के कई डेवलपर्स ने या तो गिट, या तो स्टैंडअलोन या गिट-टीएफएस पुल का उपयोग करने के लिए लिया है।अन्य लोग बस स्रोत पेड़ नकल किसी भी 'जोखिम भरा' गतिविधियों के लिए पहले, अद्यतन करने या में जाँच की तरह।

किसी भी तरह से, मैं इसे एक टीम है कि यह साथ अनुभव नहीं है के लिए सिफारिश नहीं होगा ...

+4

क्यूएफटी। हमारे पास कई मामले हैं जहां टीएफएस (या एक्लिप्स प्लग-इन, जो जानता है) ने सब कुछ भंडार में नहीं किया है। ग्राहक पक्ष ने दावा किया कि प्रत्येक परिवर्तन किया गया था, जबकि सर्वर पर यह वहां नहीं था। वीसीएस के लिए यह चिंताजनक व्यवहार है। इसके अलावा, शुभकामनाएं टीएफएस के साथ आपकी पैकेज संरचना का नाम बदलकर लगातार आपको बताती हैं कि "इस समय टीम फाउंडेशन सर्वर नामांकन के बाद एक खाली पैकेज नहीं हटा सकता है।" टीएफएस और ग्रहण प्लग-इन स्वाभाविक रूप से खराब नहीं हैं, वे मेरे लिए अनुशंसा करने में सक्षम होने के लिए पर्याप्त रूप से पर्याप्त काम नहीं करते हैं। – tmbrggmn

+2

क्या यह उत्तर अभी भी मान्य है? मैं सोच रहा हूं, क्योंकि टीएफएस अब गिट का समर्थन करता है। –

+0

अब मैं टीएफएस का उपयोग नहीं करता, लेकिन मुझे संदेह है कि माइक्रोसॉफ्ट ने पहली कोशिश पर गिट इम्यूलेशन को सही पाया ... –

3

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

सबसे पहले, यह ग्रहण प्लगइन सीवीएस/एसवीएन में एक साथ कई परियोजनाओं के लिए शाखा बनाने की अनुमति नहीं देता है। प्रत्येक परियोजना के लिए एक शाखा को अलग से बनाने की जरूरत है। फिर हम शाखा में एक ही प्रोजेक्ट नाम नहीं रख सकते हैं - किसी को एक परियोजना का नाम बदलने की जरूरत है और शाखा से बाहर निकलने के बाद मूल नाम का नाम बदलना होगा। मेरी पोस्ट How to associate an Eclipse Workspace with TFS workspace? भी देखें, TFS कार्यक्षेत्र के साथ ग्रहण कार्यक्षेत्र को जोड़ने का कोई तरीका नहीं है। इस प्रकार, स्थानीय फ़ोल्डर के लिए मानचित्रण सहेजा नहीं जा सकता है; शाखा भवन के लिए एक और ग्रहण कार्यक्षेत्र खोलने के बाद इसे फिर से करने की जरूरत है। और चूंकि स्थानीय मैपिंग वही है, इसलिए डस्टी जे के रूप में सहेजे गए काम के साथ स्थानीय फ़ोल्डर को मिटाने की संभावना है।

यह चेतावनी के बिना स्थानीय फ़ाइलों को हटा रहा है टीएफएस की एक भयानक विशेषता है (Why command get from a command line in TFS removes parallel projects? पोस्ट देखें)। क्या माइक्रोसॉफ्ट स्थानीय फाइलों को नियमित रूप से नियमित विकल्प "ग्रहण में स्थानीय मैपिंग निकालें" के तहत मिटाने की संभावना के बारे में सोचता है?

तो, टीएफएस सीखने के मेरे प्रयास के बावजूद मैं पहले से उपयोग किए गए सीवीएस की तुलना में विभिन्न बिल्डों के लिए 10 गुना अधिक समय बिताता हूं।

+0

मुझे खेद है कि आप निराश हैं, लेकिन मैं पूरी तरह से नहीं हूं जो आप पूछ रहे हैं। निश्चित रूप से आप एक ही समय में कई परियोजनाओं को शाखा बनाने में सक्षम होना चाहिए। क्या आपने यहां या एमएसडीएन मंच पर एक प्रश्न पूछा है? http://social.msdn.microsoft.com/Forums/vstudio/en-US/home?forum=tee –

+0

आप सुनिश्चित क्यों हैं कि ग्रहण प्लगइन के साथ यह संभव है? मैंने कई बार –

+0

की कोशिश की हमने Teamprise 2.0 में ब्रांचिंग कार्यक्षमता जोड़ा और इसे बड़े पैमाने पर परीक्षण किया है; हम आपको एक बहुत ही जटिल कार्यक्षेत्र मैपिंग की शाखा बनाने की अनुमति देते हैं। तो हम समझने के लिए आपके वर्कफ़्लो को बेहतर ढंग से समझना अच्छा लगेगा कि प्लग-इन आपके लिए क्यों काम नहीं कर रहा है। –

0

(एक और पक्षपाती एमएस कर्मचारी)

TFS एक टीम के बारे में 18 महीने पहले गठित जावा अनुभव TFS/टीम सेवाओं में और सभी प्लेटफार्मों भर में महान बनाने पर ध्यान केंद्रित करने के लिए। मैं उस टीम में हूं और मुझे लगता है कि हमने बड़ी प्रगति की है। मैं इस बात से असहमत नहीं होगा कि इस सवाल के बारे में पूछे जाने पर कहानी खत्म होने का अंत बहुत बुरा था, लेकिन मुझे लगता है कि पिछले साल में जवाब काफी बदल गया है।

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

यदि आप अधिक जानकारी चाहते हैं, तो चेकआउट http://java.visualstudio.com देखें।

धन्यवाद, जेसन प्रिकेट

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