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
Crossposting from
ElBruno.com
Archivado en: Visual Studio,Visual Studio Team System,VSTS,Team Foundation Server,HowTo
Comparte este post: