ผลสำรวจน้อยของ Martin Fowler ได้กล่าวถึงสถานะของ TFS ในหลายปีที่ผ่านมา 'อันตราย' ค่อนข้างถูกต้อง (ฉันคิดว่านี่หมายถึงวิธีที่ไม่รู้จักการเปลี่ยนแปลงที่เกิดขึ้นนอก VS เพื่อให้คุณสามารถสร้างโครงการ WCF จากนั้นใช้เครื่องมือ svcutil ภายนอกเพื่อสร้างไคลเอ็นต์ของคุณจากนั้นตรวจสอบการเปลี่ยนแปลงทั้งหมดของคุณ แต่ TFS จะ เพิกเฉยต่อการเปลี่ยนแปลงลูกค้าของคุณอย่างมีความสุขเพราะพวกเขาไม่ได้อยู่ใน VS)
คุณต้องนับค่าใช้จ่าย: เวอร์ชันที่จำเป็นของ VS เพื่อรับสินค้า - ตัวอย่างเช่นบทวิจารณ์โค้ดต้องการรุ่นพรีเมียมซึ่งมีราคาแพงกว่ามากหากคุณรับ VS ผ่าน MSDN นอกจากนี้การเข้าถึงระบบสำหรับผู้ใช้ที่ไม่ใช่ VS นั้นใช้ได้ แต่ถ้าพวกเขาต้องการการเข้าถึงแบบเต็มแทนการดูเว็บแบบตัดดาวน์คุณจะต้องคัดลอก CAL สำหรับพวกเขา ค่าใช้จ่ายโดยรวมของ TFS นั้นค่อนข้างมาก แม้แต่รายงานของ Forrester ที่ผ่านมา(มอบหมายโดย Microsoft ดังนั้นคุณต้องอ่านระหว่างบรรทัดเล็กน้อย) กล่าวว่า TFS ต้องการการสนับสนุนด้านการบริหารที่สำคัญ - ที่ปรึกษา 2 คนและผู้ดูแลระบบ 6 คน (ที่ใช้เวลา 25% ของเวลา) จำเป็นต้องรองรับ TFS สำหรับผู้ใช้ 122 ราย (ทำงานได้ถึง 4.5 ผู้ดูแลระบบของผู้ใช้ 122 คน ... นี่เป็นจำนวนมากเมื่อเทียบกับฉันเพียงแค่ตั้งค่าและบำรุงรักษาโซลูชั่น SVN แบบเต็มในขณะที่ยังทำงานประจำวันของฉันด้วย) TFS สามารถใช้ความพยายามอย่างมากเพื่อทำงานต่อไปตามที่ผู้คนคาดหวัง
จากประสบการณ์ของฉันกับ TFS2012 (ลืมรุ่นก่อนหน้าเพราะพวกมันไร้สาระ) นั่นเป็นระบบที่ซับซ้อนมากโดยเฉพาะอย่างยิ่งถ้าคุณออกนอกการตั้งค่าที่กำหนดไว้ล่วงหน้า ตัวอย่างเช่นถ้าคุณใช้ MSBuild เพื่อสร้างทุกอย่างคุณก็สบายดี แต่ถ้าคุณพูดโหลดโพรไฟล์. dvdproj เก่าที่ไม่ได้รับการสนับสนุนจาก MSBuild อีกต่อไปคุณต้องแก้ไขสคริปต์สร้าง xaml ขนาดใหญ่เพื่อสร้างโครงการเหล่านี้ หลังจากผ่านไปหลายวันแล้วสิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือสร้างโซลูชันขึ้นใหม่โดยส่งไปยัง devenv และจากนั้นการสร้างผลลัพธ์ออกมาและสรุปการสร้างก็เป็นไปไม่ได้ ผลลัพธ์ที่คล้ายกันเกิดขึ้นจากทีมอื่น ๆ ที่ใช้ NUnit สำหรับการทดสอบ - ถ้าคุณใช้ MSTest ในตัวมันก็ใช้งานได้ มิฉะนั้นคุณจะถูกยัดสวยมาก
ในฐานะผู้ใช้ฉันพบว่าการรวมเป็นเรื่องที่น่ารำคาญ ฉันชอบ TortoiseSVN และฉันทำงาน SCM เกือบทั้งหมดผ่านทางนั้น (เนื่องจากเป็นเครื่องมือที่ยอดเยี่ยม) ด้วย TFS คุณจะได้รับหน้าจอใหม่ภายใน VS สำหรับทุกการใช้งาน ดังนั้นคุณจะมีแท็บใหม่ในสภาพแวดล้อมของคุณสำหรับทีมสำรวจและอีกหนึ่งสำหรับงานสร้างและอีกส่วนสำหรับแต่ละบทสรุปงานสร้างที่คุณต้องการดู (และถ้าคุณต้องการดูรายละเอียดของงานสร้างข้อผิดพลาดตัวอย่างเช่นคุณมี เพื่อคลิกผ่านลิงค์มากเกินไป) ฉันพบจำนวนเอกสารที่ฉันเปิดเมื่อใช้ TFS มากกว่าไฟล์ต้นฉบับ!
เช่นเดียวกับการเช็คอินการยืนยันการเปลี่ยนแปลงจำเป็นต้องคลิกผ่านหลายแท็บในบานหน้าต่างการเปลี่ยนแปลงที่ค้างอยู่ใน VS เพื่อกำหนดไอเท็มงานและแสดงความคิดเห็นให้กับการเช็คอินของคุณ มันเป็นเรื่องเล็กน้อย แต่ฉันพบว่ามันน่ารำคาญเพราะฉันคุ้นเคยกับเครื่องมือที่มีความคล่องตัวมากขึ้น
การขยายระบบบิลด์เป็นอีกพื้นที่หนึ่งที่ฉันพบว่าไม่เพียงพอ การเพิ่มคุณสมบัติใหม่เข้าไปในบิลด์นั้นทำได้ยากเนื่องจากการกำหนดค่า xaml และการรับผลลัพธ์ของฟีเจอร์เหล่านั้นไปยังหน้าจอบิลด์ของคุณนั้นยากมากหรือเป็นไปไม่ได้ ดังนั้นหากคุณต้องการเพิ่มสิ่งต่าง ๆ เช่นความซับซ้อนของรหัสหรือการวิเคราะห์แบบคงที่หรือแม้กระทั่งการทดสอบอัตโนมัติผ่านพูดซีลีเนียมหรือการปรับใช้ ... ลืมมัน นอกจากว่าคุณกำลังใช้เครื่องมือของ Microsoft สำหรับประเด็นเหล่านี้ (เช่น fxcop)
การอัปเดตเวิร์กโฟลว์เป็นอีกหนึ่ง niggle - แม้ว่า powertoys ช่วยได้อย่างมาก แต่ก็ยังงุ่มง่ามที่จะทำให้เวิร์กโฟลว์ถูกต้องและคุณยังไม่สามารถกำหนดค่าบอร์ดต่อสู้ด้วยข้อมูลที่คุณต้องการดูอีกครั้งคุณจะได้รับค่าเริ่มต้นหรือไม่มีอะไรเลย .
การผสานก็เจ็บปวดเช่นกันฉันคิดว่ามีเหตุผลที่ดีมากที่ MS ได้นำ git มาใช้กับ TFS (โปรดทราบว่านี่ใช้ได้กับโครงการ TFS ใหม่ล่าสุดเท่านั้นคุณไม่สามารถแปลงจาก TFS เป็นแบ็กเอนด์คอมไพล์ได้)
ดังนั้นโดยรวมแล้วมันก็ไม่ได้แย่เหมือนที่มันใช้งานได้ แต่ฉันได้พบว่าเครื่องมืออื่น ๆ มากมายดีกว่ามาก ข้อเสียของเครื่องมือเหล่านี้คือพวกมันไม่ได้รวมเข้าด้วยกันอย่างสมบูรณ์ แต่ IMHO นี่เป็นจุดแข็งที่คุณสามารถเลือกและเลือกบิตที่ดีที่สุดที่คุณต้องการ ด้วย TFS คุณจะได้รับสิ่งที่คนอื่นต้องการให้คุณ หากคุณตัดสินใจว่าระบบบั๊กใน TFS นั้นแย่ (และฉันคิดว่าคุณจะ) คุณจะมีช่วงเวลาที่ยากลำบากในการเปลี่ยนเป็นระบบอื่น
ควรพิจารณา TFS พร้อมกับเครื่องมือวงจรชีวิตขนาดใหญ่และอ้วนอื่น ๆ นักพัฒนาส่วนใหญ่เกลียดสิ่งต่าง ๆ เพราะพวกเขาไม่ชอบข้อ จำกัด ของเครื่องมือเหล่านี้
ฉันจะลองดาวน์โหลดการทดลอง 30 วันและติดตั้ง เมื่อประเมินความจำที่จะเปลี่ยนแปลงเล็กน้อยที่นี่และที่นั่นอย่าใช้เพื่อตรวจสอบซอร์สโค้ดตรวจสอบกับ workitem ที่จำเป็นและรับรายงานตาม workitem นั้น ลองกำหนด checkin ให้กับหลาย workitems และลองรวม workitems เข้าด้วยกันตามที่เกี่ยวข้อง ลองรวมสิ่งที่แตกต่างกันในระบบการสร้างดูวิธีรับรายงานความคืบหน้ารายวันจากบริการรายงานเชื่อมโยงเอกสารกับความต้องการเวิร์กโฟลว์และติดตามผ่านการทดสอบบั๊กไปจนถึงการเข้ารหัสเพื่อสร้างเพื่อนำกลับมาทำใหม่ สาขาและผสานเป็นจำนวนมาก หากคุณไม่สามารถทำสิ่งเหล่านี้ได้อย่างง่ายดายคุณก็อาจติดอยู่กับคอมไพล์ มีจุดไม่มากที่จะใช้ TFS ถ้าคุณไม่ได้ใช้ประโยชน์จากคุณสมบัติส่วนใหญ่ของ ALM