使用 OData Service 在多种设备上访问 Team Foundation Server 2010

  • Jenni Konrad
  • 侯伯薇

2011 年 5 月 15 日

话题:SOA.NET语言 & 开发架构

微软最近发布了 OData Service for Team Foundation Server 2010 的 beta 版本,它让所有支持 HTTP 协议的设备都可以访问 TFS 对象模型。OData services 已经在多个微软产品中存在一段时间了,这些产品包括 SharePoint Server 2010 和 SQL Server 2008 R2,而在 Team Foundation Server 上实现,这还是第一次。

高级技术布道师Brian Keller为其发布了预告,但该产品现在还没有得到官方的支持。他说他们现在正在处理客户的反馈,v1 版本应该会在几个月之内发布。开发者可以在 Channel 9 上查看他关于 OData Service 的演示,并从微软直接下载产品的 beta 版本

Keller 还告诉我们很多关于 OData Services for TFS 2010 的信息。

我非常高兴看到 Team Foundation Server 和 OData 的组合,(这个项目)可能会帮助产品团队决定是否要在 Team Foundation Server 的未来版本中提供本地的 OData 支持。另外,尽管现在这个服务还没有得到支持,但我们已经为其提供了所有源代码,开发者可以对其自定义、扩展、调整,以适应他们自己的需要。

我很感谢开发者社区,大家仅仅在上周就提供了很多正面的反馈。我不想抢他们的风头,因为他们还没有公开自己的应用程序,但是我可以在此分享一个例子。你可以查看TFS Monitor,这是 Ordina Belgium 创建的一个 Windows Phone 7 的应用程序。这个应用使用 OData Service for Team Foundation Server 提供了很好的接口,让你可以访问 Team Foundation Server 的项目。我真的很喜欢它所完成的功能,包括通知、离线支持以及一种很简便的可以与你的项目团队成员联系的方式。

还有另一个很棒的例子,它是由 Doug Finke 创建的与 OData Service 交互的PowerShell 命令行工具。我非常高兴看到人们使用它创造出另一种类型的体验。

服务会与特定的团队项目集合(Team Project Collection)连接,这样用户就能够查看构建(Builds)、变更集(Changesets)、变更(Changes)、分支(Branches)、工作项(WorkItems)、附件(Attachments)、项目(Projects)、查询(Queries)和区域路径(Area Paths)。我们还可以创建或者更新工作项和附件。开发者或者可以在 Windows Azure 上运行服务,或者可以使用已经存在的带有Microsoft 托管服务的 CodePlex 项目。

我们和 Keller 谈到了服务的其它一些细节,包括它与 Web Services 的将来之间的关系。

InfoQ:你建议从 Web Services 向 OData 转变,是否意味着 Web Services 会在将来被淘汰呢?

Web Services 还将继续被整合在 Team Foundation Server 的架构中。但是第三方公司无法使用它对 Team Foundation Server 进行扩展或者自定义,因为他们很难适应每过一段时间就会做出的变更(在各个发布的版本之间,甚至是在发布的补丁包之间)。然而,我们告诉想要扩展并操作 Team Foundation Server 的开发者,可以使用客户端对象模型(它会使用后台中的 Web 服务)。

而 OData Service for Team Foundation Server 2010 所提供的方法会在客户对象模型之上提供一个层,从而提供我们想要暴露的 OData 接口。这个方法为我们提供了最好的稳定性,并且能够使其与每过一段时间就会改变的 Team Foundation Server 的 Web 服务层保持隔离。下图应该有助于说明我们是如何创建 OData Service for Team Foundation Server 2010 的架构(左边的客户端只是一部分——你可以想到其它设备,像平板电脑等等):

InfoQ:OData Service 支持什么样的认证方式?

OData Service for Team Foundation Server 2010 使用基于 HTTPS 的基本认证方式。这让服务的用户可以通过 web 请求以纯文本的方式传递证书,然后这会通过 HTTPS 以 Base64 方式进行加密,从而保证用户的安全性。需要注意的很重要一点是,OData Service for Team Foundation Server 2010 不会缓存或者以任何的方式存储任何用户证书。OData Service 只是提供了一种纯粹的通道,它会把认证传递给底层的 Team Foundation Server 对象模型。

查看英文原文:Access Team Foundation Server 2010 on Multiple Devices Using the OData Service

SOA.NET语言 & 开发架构