문제

우리는 대부분 MS 숍에서 일을 하고 있다.NET LOB 개발.우리는 또한 사용 MS 역학에 대한 우리의 CRM 응용 프로그램...모든 테마가 포함되어 있습니다 현재 사용하여 대/SQL Server2008.우리는 또한 사용 VSS,하지만 모두가 그것을 미워하는 일에 그에 신속하게 그것의 방법입니다.

우리는 우리의 시작에 대한 이니셔티브 TDD 구현은 팀에서(~수십 ppl).I've teamcity 는 설치하고 나의 첫번째 자동 빌드에 성공적으로 실행하는 사용 2008sln builder 도를 사용하여 SVN 는 공동 작업자 했다 설정을 하고 있는 소스 제어 분석한다.때연을 관리,나는 생각한 그들은 구입하기 시작했으로 나의 뱀 오일 및 던졌의 제안으로 찾고 있 TFS.

이 던진 렌치를 계획했던 것에 대한 우리의 TDD 건축에서 좋은 방법이기 때문에,하지만 나는 항상 가정 TFS 너무 비싸지 않은 가치가 그것이 우리의 팀을 위해(그리고 나는 본 적이 동일한 다른 상점에서 난에서 일/알).나는 것 같은 느낌 MS 년 뒤에 TDD/CI 역는 타사 제품들은 아마도 더 나은 더 성숙한...나는 아직도 많이 수행해야의 연구지만,나는 내가 여기에 와서 보면 사람이 실제로 사용되는 모두 시스템입니다.

하지만 그게 아니라는 것을 깨달았 TFS 포함한 더 많은 그냥 건축 server...그러나 나는 하고 싶지 않았을 만들이 너무 광범위하의 질문에 목적이 있다. 은 무엇 실용적인 장점/단점의 사용 TFS/TFB 대신 teamcity 는 예를 들어어떤 혜택을 잃/얻?는 누구나 여기에 실제로 사용되는 두 시스템(TFS 에 대한 TDD/CI teamcity 는/SVN)고 말할 수 있습에서 실용적 관점에서?

나는 몇 가지 중에서 이제,그리고 한 후 저는 여기에서 언급한 것의 단점 TFB 었다 그것은 단지 지원되는 스위치를 참조하십시오내가 사용하여 계획되었 FinalBuilder 와 teamcity 는;그리고 그것은 또한 지원합 TFS 니다.

감사에 대한 조언

편집:누군가 사용 TFS 으로 구축/CI server 고 말할 수 있는 성공/실패 응용 프로그램입니다.

도움이 되었습니까?

해결책

우리는 소규모 개발 상점이며 Team Foundation Server가 우리에게 너무 많은 오버 헤드를 가지고 있다고 결정했습니다. 우리는 명령 줄에서 실행하기 위해 사용자 정의 MSBuild 스크립트를 작성했지만 TeamCity를 발견 한 후 전체 빌드 프로세스를 이로 옮겼습니다.

우리는 TeamCity가 사용하기 쉽고 구성하기 쉽다는 것을 알았으며 JetBrains는 우수한 지원과 문서를 제공합니다. 또한 Microsoft보다 훨씬 빠른 릴리스 및 업데이트주기에 있습니다.

SVN 소스 제어에 대한 그들의 지원은 우수하며, 우리는 그들이 단위 테스트를 위해 Mstest와 Nunit을 모두 지원한다는 사실을 좋아합니다.

우리는 또한 TeamCity Professional Edition이 무료라는 사실을 좋아했기 때문에 그것을 평가하여 그것이 우리에게 효과가 있는지 확인할 수있었습니다. 우리는 Enterprise Edition으로 업그레이드 해야하는 프로젝트 구성 (20)의 수를 누르지 않았습니다.

다른 팁

이 질문 TeamCity에 대한 좋은 답변이 많이 있습니다. 그것은 TF와 비교하지 않지만 TeamCity에 대한 빛을 비추는 것일 수 있습니다.

나는 둘 다 사용했고, 둘 다 성공했지만 TeamCity는 훨씬 쉬웠습니다. TeamCity는 설정하고 구성하기가 산들 바람이었습니다. TFS는 아니었다. TeamCity는 견고하고 유지하기가 쉽고 평범한 작동입니다. JetBrains의 개발자들은 커뮤니티에 대응하는 훌륭한 일을 해왔습니다. 그들은 6 개월에서 8 개월마다 릴리스되어 실제 가치를 더합니다. TFS는 2 년 이상주기입니다.

TeamCity는 구축 방법과 사용하는 소스 제어에 더 많은 선택을 제공합니다. 그것은 모두 하나는 아니지만 때로는 좋은 일입니다. 확장 포인트 세트도 있습니다. 우리는 또한 그분의 에이전트 모델에 정말 만족했습니다.

나는 TeamCity에서 3 개의 절대적으로 Painles 업그레이드를 겪었습니다. 우리가 한 하나의 TFS 업그레이드는 3 일 동안 빌드 및 소스 제어를 중단했습니다. 저는 프로젝트에서 TeamCity의 관리자이며 한 달에 몇 시간이 걸립니다. TFS는 일주일에 며칠이 걸렸습니다.

TeamCity + SVN + VisualSVN은 내가 일한 것 중 가장 부드러운 환경이었습니다. TFS는 일반적으로 매일 매끄럽지 만 누군가가 실행을 유지하는 경우에만 가능합니다.

도움이되기를 바랍니다

TFS의 이점은 Microsoft가 지원하는 통합 환경 중 하나입니다. 나는 개인적으로 소스 제어를 위해 TFS를 좋아하지 않으며 많은 문제가있었습니다. 그것은 끔찍하지만, 통합 대 통합의 이점이있었습니다 (VisualSVN에서도 사용할 수 있지만 강력하지는 않습니다).

개인적으로, 나는 당신이 SVN/TeamCity를 사용하는 것이 훨씬 나아질 것이라고 생각합니다. 예상대로 작업하는 것이 더 쉽고 행동하는 것이 더 쉽습니다. 대부분의 오픈 소스 소프트웨어와 마찬가지로, 둘 다 지속적으로 발전하고 있으며 Microsoft 이전에는 항상 최신 기능을 갖추고 있습니다. 2 사이의 통합은 정말 좋으며 시스템에서 치명적인 결함을 발견하지 못했습니다. 나는 훨씬 더 나은 워크 플로라고 생각하기 때문에 현재 회사 (우리는 TFS를 사용) 에서이 경로를 끊임없이 추진합니다. 추가 혜택으로 TFS 경로를 사용하는 것보다 훨씬 저렴합니다.

나는 또한 TFS와 함께 FinalBuilder를 사용했습니다. 내 질문은 Nant/MSBuild로 할 수없는 FinalBuilder와 함께 실제로 무엇을 구매하고 있습니까? 내 가게의 대답은 불행히도 IMO가 거의 없습니다.

먼저,이 게시물을 참조하십시오:

SVN 대Team 서버

으로 귀하의 질문에 환경에 대한 더 나은 육성 TDD 과 같은 내 두 개의 센트 빌드 관리 시스템의 문제보다 훨씬 적은 무엇에서 빌드 파일 자체입니다.Ant 또는 MSBuild 파일이 있어야 하는 대상 당신 테스트합니다.MSBuild 또는 개미,당신은 당신을 사용할 필요가 없 MS 의 테스트 제품군입니다.여전히 사용할 수 있습 nUnit 또는 다른 당신이 원하는.는 경우 그것은 중요하지 않 TFS 를 호출하 MSBuild 파일 경우,또는 CruiseControl 는 경우,또는 teamcity 는습니다.영리 모두를 구축 파일과 도구를 통합합니다.

나 개인적인 선택입니다 얻을하지 않으로 잠겨 있 TFS 의 방법으로의 일을 하기 때문에,당신은 더 많은 자유를 위한 많은 적은 비용으로 재산을 오픈 소스는 테스트 도구를 제공합니다.TFS 한 주요 업그레이드,뿐만 아니라.만약 당신이 갈 TFS,내가 조언은 적어도 기다려 2010 년까지 해제됩니다.에 집중하 MSBuild 파일을 만큼 좋은 그들이 할 수 있습니다.

그는 말했다,인정하는 TFS 는 하나의 가장 좋은 시스템을 구축 거기(2005 년 끔찍한,2008was nice).수 있다는 것은 쉽게 알림을 사용자 정의 및 릴리스 프로세스에 모든 내부입니다.순 코드는 정말 멋진-당신은 더 많이 했을 중앙 제어를 구축하고 공개 정책보다 우리가 CruiseControl.NET.

그래서 나는 사용 TFS 및 SVN/CCNet.내가 말할 수 없이 많 teamcity 는.하지만 IMO 빌드 관리 시스템은 상당히 관계없이 무엇을 만들어야 하는지 어떻게 그것이 내장되어있다.우리를 위해,여분의 컨트롤 릴리스 관리 프로세스는 TFS 가져온 우리에게 충분하지 않았의 보너스를 위한 미국을 정당화하는 크게 증가하는 관리의 노력이 완벽하게 통합하 TFS 솔루션입니다.또 그것을 정당화하기에 충분한 추가 당 라이센스의 비용 TFS,는 중요할 수 있습니다.

오래된 TFS 빌드는 XAML 기반이며 매우 번거 롭고 함께 일하기에 좋지 않았습니다. 즉, 새로운 TFS 2015 빌드 시스템은 도약과 경계가 더 좋으며 많은 웹 후크와 타사 통합이있는 스크립트입니다. 팀 시티와 매우 유사합니다. 또한 TFS는 이제 GIT를 지원하므로 TFVC (Team Foundation Version Control)를 사용하는 데 더 이상 국한되지 않습니다. 또한 TFS를 사용하면 자체 온 프렘 설치를 사용하거나 VisualStudio.com을 통해 호스팅 된 솔루션을 활용할 수 있습니다. TFS는 완전히 통합 된 환경 (작업 항목, 계획, 빌드, 테스트, 배포)이기 때문에 훌륭합니다. 반면 팀 시티는 빌드 솔루션 일뿐입니다. 이 질문이 원래 2010 년에 질문을 받았을 때 나는 Team City의 손을 추천했을 것입니다. 그러나 이제 2는 매우 경쟁력이 있습니다. 올인원 솔루션을 원한다면 TFS와 함께 가면서 끓을 수 있다고 말하지만, 순전히 빌드 시스템을 찾고 있다면 팀 시티를 찾고 있다면.

TeamCity를 Visual Studio Team Services와 비교 (Microsoft의 최신 클라우드 기반 제품) :

  • 둘 다 지속적인 통합 프로세스를 구현하는 데 적합합니다

  • TeamCity는 더 성숙하고 모든 것이 작동합니다.

  • 대조적으로 Visual Studio Team Services는 TeamCity를 따라 잡기 위해 지속적으로 발전하고 있으며 일부는 잘 작동하지 않습니다 (예 : GIT의 변경 사항이있는 경로를 기반으로 빌드를 트리거하려고합니다. 문서가 약하고 기능 자체가 작동하지 않습니다. (2016 년 8 월 현재)

  • Visual Studio Team Services를 사용하면 클라우드 기반 에이전트 만 빌드를 쉽게 실행할 수 있습니다 (그러나 단점은 각각의 빌드에 1 분 이상을 추가 할 수있는 각 빌드에 대해 리포지토리를 깨끗하게 잡아 당겨야한다는 것입니다). 둘 다 신선한 빌드에 대해 작업 디렉토리를 닦을 필요가없는 로컬 빌드 에이전트를 지원할 수 있습니다.

그러나 두 경우 모두에 대한 대부분의 구성 정보를 이동하는 CakeBuild도 강력히 추천합니다. 어떻게 CI 시스템과 다른 모든 소스 코드와 함께 GIT 저장소에있는 C# 코드로 빌드를 수행합니다. CakeBuild를 사용하면 CI 시스템에서 실행되는 것과 동일한 빌드를 로컬로 실행할 수 있으며 특정 버전을 빌드하기 위해 한 달을 되돌아 가야하는 경우 소스 코드와 빌드 스크립트가 있습니다.

CakeBuild를 사용하면 이제 TeamCity와 Visual Studio Team 서비스를 쉽게 전환 할 수 있습니다.

CakeBuild의 유일한 단점은 모든 빌드 단계가 CI 시스템의 단일 작업으로 번들로 표시되어보고를 약간 덜 멋지게 만들고 CI보고 시스템이 사용할 수있는 형식으로 테스트 결과를 얻을 수있는 추가 작업이 포함될 수 있다는 것입니다.

MS는 TDD/CI 지역에서 몇 년 뒤

4 년 동안 TDD를 한 사람이되기 때문에 당신은 맞습니다. MS는 여전히 홍보조차하지 않으며 TDD 흐름과 잘 어울리는 도구를 제공하지도 않습니다.

모든 종류의 자동화, 소스 제어 또는 민첩한 워크 플로우 기간에 대해 Visual Studio를 다루지 마십시오 (TFS를 사용하지 마십시오 !!). 그들이 "새로운"이라고 말하지만 그 물건은 모 놀리 식적이고 항상 이상한 문제와 부풀어 오릅니다. 항상 고통 스럽습니다.

나는 팀 시티를 사용했고 단순히 놀랍고, 일이 작동하며, 유용성을 위해 설계되었으며, 단순히 대부분의 모든 테스트 도구와 함께 잘 설계되고 호환됩니다. 코드에 비주얼 스튜디오를 잘 사용합니다. 더 나은 CI를 구축하는 데 도움이되는 외부 및 오픈 소스 도구를 찾으십시오. "당신은 모든 것을 올바르게 할 수 있습니다"판매는 판매되지 않으며 작동하지 않습니다. 오늘날 사람들은 외부와 다른 도구를 결합하여 일을 끝내는 데 익숙하고 항상 익숙합니다. 모든 MS 도구 세트에 의존하는 것은 .NET의 IMO로가는 방법이 아닙니다. MS는 "여기서 바로 모든 일을 할 수 있습니다"라고 팔기를 좋아합니다. 그러나 당신은 그 길을 가서 그들의 쿨 라드 (TFS, MS Fakes 등)를 마실 때 고통만으로 끝납니다.

TDD를 계획하고 있다면 모든 MS 도구를 사용하고 싶지는 않습니다. 당신은 도구로 TDD를 시도하거나 완전히 제한적 일 때 종종 독점적이거나 부풀어 오르는 일을하는 "그들의 길"을 내려 놓을 것입니다. TDD의 경우 다른 테스트 프레임 워크, 어설 션 라이브러리 등에 계층화하기로 결정할 때 유연성과 선택을 할 수 있어야합니다.

추가하다 문어 Team City 위에, 그리고 그것은 훌륭한 것입니다 ... 당신은 단순히 개발자로서 또는 DevOps를하는 사람과 사랑에 빠질 것입니다.

Agile Tool Offings에서 Microsofts 지속 실패에 의존하는 것을 중지하십시오.

상자 밖에서보기 시작하고 새로운 것을 시도하는 것은 제가 .NET 세계로 계속 반복하는 것입니다. 저는 과거에 .NET 개발자이며 MS 세계 밖에서 새로운 것을 시도한 사람입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top