2010-05-25 4 views

답변

1

가장 좋은 방법은 TFS DLL과 해당 API (http://msdn.microsoft.com/en-us/library/bb130146(VS.80).aspxhttp://msdn.microsoft.com/en-us/library/bb130334(v=VS.80).aspx)를 사용하는 것입니다. 내가 이해하는 바로는, 웹 서비스를 직접 치는 것은 눈살을 찌푸리게됩니다.

프로젝트 목록을 얻으려면 여러 가지 방법이 있다고 생각합니다. 필자는 사용한 코드를 게시했습니다. GetServer 메서드를 사용하여 프로젝트 컬렉션을 가져온 다음 ListProjects() 메서드를 통해 나열합니다. 나는 지역과 반복을 얻을 필요가 있기 때문에 이것을해야했다. 이를 위해서는 Microsoft.TeamFoundation.Client 네임 스페이스가 필요합니다.

var tfs = TeamFoundationServerFactory.GetServer(Constants.TEAMFOUNDSERVER); 
var projectCollection = (ICommonStructureService)tfs.GetService(typeof(ICommonStructureService)); 
foreach (var projectInfo in projectCollection.ListProjects()) 
{ 
    //do stuff here 
} 
+1

감사합니다. TFS DLL을 사용하는 것이 좋습니다. 하지만 우분투에서 개발 중이므로 TFS와 통신하는 데 더 좋은 옵션이 없다고 생각합니다. 하나가 있으면 알려주세요. –

+0

Robaticus에 동의합니다. .NET에서 자신의 webservice 계층을 작성하고 실행하십시오. 이. 그렇지 않으면 Microsoft가 웹 서비스 계층을 변경하면 많은 재 작업이 필요합니다. 또는 Mono와 함께 하시겠습니까? 나는 DLL이 관리 코드라고 생각한다. – bryanjonker

5

나는 또한 브라이언 존커와 일치한다. 웹 서비스를 직접 호출하지 마십시오. 내부 용으로 예약되어 있습니다. 나만의 액세스 레이어를 만들고 API를 호출하십시오.

개체 모델을 사용하여 ICommonStructureService에 액세스 할 수도 있습니다. 나는 최근에 이것을 사용하기 시작했고, 그것을 더 깨끗하게 발견한다. 아래 코드는 bryanjonker의 예제와 동일합니다.

var tfs = TeamFoundationServerFactory.GetServer(serverUri); 

    var projectCollection = tfs.GetService<ICommonStructureService>(); 

    foreach (var projectInfo in projectCollection.ListProjects()) 
    { 
     listBox1.Items.Add(projectInfo.Name); 
    } 
+0

감사합니다. TFS DLL을 사용하는 것이 좋습니다. 하지만 우분투에서 개발 중이므로 TFS와 통신하는 데 더 좋은 옵션이 없다고 생각합니다. 하나만 있으면 알려주세요 –

+0

TFS 서버에 앉아서 직접 웹 서비스 계층을 만들 수 있습니까? – Robaticus

+0

@Prashant : 우분투에서 사용하는 언어는 무엇입니까? –

관련 문제