上一次我们熟悉了一下TFS 2010的整体架构,搭建了x64平台下的开发、测试环境。本次开始我们来深入研究一下TFS 2010的对象模型,TFS 2010的PowerShell扩展也是建立在其对象模型基础之上。
本系列所有脚本均在Windows Server 2008 R2 DataCenter (PowerShell 2.0) + PowerGUI Script Editor Free Edition x64中测试通过。
TFS 2010系列使用了TFS 2010 Ultimate x64、TFS 2010 Power Tools April 2010。
转载请注明出处:http://www.cnblogs.com/brooks-dotnet/archive/2010/10/08/1846117.html
- TFS 2010的对象模型分为两大部分:服务器端和客户端
- TFS 2010 API位于%VS2010 Root%\Common7\IDE\ReferenceAssemblies\v2.0:
- Team Project Collections
Team Project Collections是TFS 2010中新添加的一个概念,指团队项目的集合。在连接TFS 2010时可以看到:
一个Team Project Collection可以包含很多个Team Project,类似于解决方案与项目之间的一对多关系。
- TFS Farms
TFS场的概念有点类似于SharePoint服务器场的概念,是一个巨大的容器。TFS 2010终于允许被安装在域控制器上了,对开发人员来说是一个福音,因为开发机器往往是AD + SQL Server + VS + TFS + …,All in one。
TFS Farms更改内容如下:
4.1、对TFS应用层的网络负载平衡支持
4.2、数据层的平面型扩容
- TFS 2010的数据库
5.1、Tfs_Configuration:保存了所有的配置信息、Team Project Collections列表等;
5.2、Tfs_Warehouse:保存了所有的报表数据;
5.3、其他数据库是每创建一个Team Project Collection就添加一个数据库。
注意,不要手动去修改TFS数据库中的内容,理解其包含的表和字段可以更好的理解TFS 2010体系结构。
- 说了这么多理论,最后以一个简单的PowerShell命令来结束今天的研究:
获取当前TFS 2010上的工作区(Workspace):
工作区相当于连接TFS 2010的客户端。
首先要添加程序集,就像一般项目添加引用一样,
Clear-Host
# Load client OM assembly.
[Reflection.Assembly]::Load("Microsoft.TeamFoundation.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
$url = New-Object -TypeName Uri -ArgumentList "http://brookspcnb:8080/tfs/DefaultCollection"
$project = New-Object -TypeName Microsoft.TeamFoundation.Client.TfsTeamProjectCollection -ArgumentList $url
Get-TfsWorkspace -Server $project
运行结果:
小结:
本次主要研究了TFS 2010的客户端模型的整体架构以及TFS 2010新增的一些概念和特性,最终以一个实例结束了这次测试。后续篇章会继续深入研究TFS 2010对象模型的细节,敬请关注、探讨。