28/5/2008 22:08 El Bruno

[TFS] HowTo: conectar a un servidor TFS utilizando el modelo de objetos ?

Buenas

mañana a 1ra hora por la mañana haremos un pequeño evento interno en Avanade, donde comentaremos las experiencias en varios proyectos <intentando> extender Team Foundation Server 2008. Digo intentando porque este trabajo es bastante delicado, pero para eso me ayudará en la presentación el amigo Edu.

Además esto me ha servido para rescatar algunos drafts de posts que tenía almacenados. Por ejemplo, estas pequeñas lineas de código que nos permiten utilizar el modelo de objetos de TFS para conectarnos a un servidor y listar los proyectos dentro del mismo.

Para hacer el ejemplo simple, dejaré las líneas de código fundamentales y comentaré un poco las mismas.

Agregar Referencias

Debemos agregar las siguientes referencias a nuestro proyecto, recordad que es necesario tener instalado el SDK de Visual Studio para poder acceder a las mismas:

  • "..\Program Files\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Common\Assemblies\Microsoft.TeamFoundation.dll"
  • "..\Program Files\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Common\Assemblies\Microsoft.TeamFoundation.Client.dll"
  • "..\Program Files\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Common\Assemblies\Microsoft.TeamFoundation.Common.Library.dll"
  • "..\Program Files\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Common\Assemblies\Microsoft.TeamFoundation.WorkItemTracking.Client"
  • "..\Program Files\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Common\Assemblies\Microsoft.TeamFoundation.WorkItemTracking.Controls"

Conexion a Team Foundation Server

La siguiente rutina se conecta a Team Foundation Server 2008, utilizando la ventana "clásica" de conexión que ya conocemos por Visual Studio:

1 Private dpp As DomainProjectPicker 2 3 ''' <summary> 4 ''' connects to Team Foundation Server 5 ''' </summary> 6 Sub ConnectToTFS() 7 8 dpp = New DomainProjectPicker() 9 10 ' Server selection from Visual Studio clasic Window 11 If dpp.ShowDialog() = Windows.Forms.DialogResult.OK Then 12 Console.WriteLine("Connecting to server ...") 13 Console.WriteLine(" Name: {0}", dpp.SelectedServer().Name) 14 Console.WriteLine() 15 End If 16 17 End Sub

Listado de Team Projects

Una vez conectado, la siguiente rutina lista los Team Projects que hayamos seleccionado durante la selección del servidor Team Foundation Server 2008:

1 Private dpp As DomainProjectPicker 2 3 ''' <summary> 4 ''' Lists the selected team projects. 5 ''' </summary> 6 Sub ListSelectedTeamProjects() 7 8 ' validate 9 If dpp.SelectedServer Is Nothing Then Exit Sub 10 11 Console.WriteLine("Team Projects") 12 13 ' iterate trough tfs selected projects 14 For Each projectInfo As ProjectInfo In dpp.SelectedProjects() 15 Console.WriteLine(" Name: {0}", projectInfo.Name) 16 Console.WriteLine(" Status: {0}", projectInfo.Status) 17 Console.WriteLine() 18 Next 19 20 End Sub

Resultado

Como se puede apreciar el código es bastante simple, y ahora que ya está bien documentado el modelo de objetos, se pueden hacer cosas muy interesantes. Si juntamos todo el código en una misma rutina de consola y trabajamos con "mi server" obtendremos algo parecido a lo siguiente:

 

Connecting to server ... Name: ElServerDelBruno Team Projects Name: Demo Curso VSTS 01 Status: WellFormed Name: Demo MSF for CMMI Status: WellFormed Name: Learning VSTS Status: WellFormed Name: MSF Agile Demo Status: WellFormed

 

Pueden descargar el proyecto de ejemplo desde aqui: http://geeks.ms/files/folders/elbruno/entry87108.aspx o crear una aplicación de consola con este código completo:

Imports Microsoft.TeamFoundation.Proxy Imports Microsoft.TeamFoundation.Server Module Module1 Private dpp As DomainProjectPicker Sub Main() ' connects to Team Foundation Server ConnectToTFS() ' list Team Foundation Server Projects ListSelectedTeamProjects() ' wait for user input Console.ReadLine() End Sub ''' <summary> ''' connects to Team Foundation Server ''' </summary> Sub ConnectToTFS() dpp = New DomainProjectPicker() ' Server selection from Visual Studio clasic Window If dpp.ShowDialog() = Windows.Forms.DialogResult.OK Then Console.WriteLine("Connecting to server ...") Console.WriteLine(" Name: {0}", dpp.SelectedServer().Name) Console.WriteLine() End If End Sub ''' <summary> ''' Lists the selected team projects. ''' </summary> Sub ListSelectedTeamProjects() ' validate If dpp.SelectedServer Is Nothing Then Exit Sub Console.WriteLine("Team Projects") ' iterate trough tfs selected projects For Each projectInfo As ProjectInfo In dpp.SelectedProjects() Console.WriteLine(" Name: {0}", projectInfo.Name) Console.WriteLine(" Status: {0}", projectInfo.Status) Console.WriteLine() Next End Sub End Module

 

Saludos @ Home

El Bruno

 

Share this post :
Crossposting from ElBruno.com
Archivado en: ,,,,
Comparte este post:

# [TFS2008] Posts y HowTos sobre Team Foundation Server 2008 y 2005 (VI)

Wednesday, September 23, 2009 7:54 PM by El Bruno

Buenas, actualización con los posts, HowTos, posts sobre informes, builds, etc. sobre Team Foundation

# [Spanish] Visual Studio 2010 ALM y Team Foundation Server 2010, 2008 y 2005

Sunday, August 28, 2011 1:04 PM by El Bruno

13 marzo Buenas, Team Foundation Server 2010 WorkItem Tracking [#TFS2010] HowTo: Agregar un estado en