LightSwitch 新增 OData 服务支持

  • Jonathan Allen
  • 曹如进

2012 年 4 月 6 日

话题:.NET语言 & 开发

微软正在继续推进它的计划,将 OData 变得像 Web 服务一样无所不在。微软提供的最新服务是在 LightSwitch 2 中支持创建和使用 OData 服务。

LightSwitch 是一款基于.NET 的快速应用程序开发平台,它强调自助服务(self-service)。围绕“公民程序员(citizen programmer)“的理念,Visual Studio LightSwitch 旨在让富有经验的终端用户在不需要 IT 部门的帮助下,能够创建自己的业务应用程序。那么既然如此,为什么普通的办公室职员在创建 CRUD 应用程序需要在意OData呢?

这是因为,OData 带来了一些 REST 和 Web 服务都无法提供的好处:标准 API。尽管代理生成工具可以格式化 WS 请求和解析结果,但它们实际上并不提供任何方式将服务挂钩到应用程序上。相反,开发人员需要小心地将调用和结果映射为正确格式。而且,REST 相比于 OData,在软件套件中所处的位置更低,它提供的通常只有原始的 XML 或 JSON。

相比之下,每一个 OData API 看起来都差不多。请求总是通过相同的约定完成;唯一显著的区别是返回列不同。这种方式使得像 LightSwitch 这样的工具可以用与数据库驱动相同的工作方式操作 OData。事实上,从 LightSwitch 中使用 OData 服务所用到的附加数据源向导和用于数据库的向导是同一个。

从 LightSwitch 中暴露 OData,你只需简单地使用三层配置中的其中一个部署应用程序即可。这么做不仅可以使 LightSwitch,还可以让其他启用 OData 的应用程序能够使用 OData 服务。Beth Massi 给出的示例展示了使用PowerPivot扩展将 LightSwitch 数据导入到 Excel。

LightSwitch 的另一个新功能是能够重定义来自外部数据源的表格之间的关系。John Stallo 写到

我们收到最多的要求是能够在相同的数据容器中定义数据关系(就像目前可以跨数据源添加关系一样)。事实表明,有不少数据库在模式中并不定义关系——相反,它们通过表格中的数据隐含概念上的关联。当用户使用 LightSwitch 连接到这些数据库时会有些问题,因为在检测到关系之后,虽然 LightSwitch 会帮助处理大量的默认值和应用程序模式,但是这仅限于控制数据库中预定义的关系。用户希望的是在数据模型中能够定义自己的关系,从而让 LightSwitch 可以使用一个更加丰富的信息集来生成更多的应用程序功能。好了,现在问题解决了——在数据模型导入项目之后,你可以在相同容器的实体间指定自定义的关系了。

LightSwitch 提供了”Metro 风格主题“,不过眼下它实际上还没有生成 Windows 8 或 Windows Phone 风格的应用程序。不过,它确实提供了选项可以将 LightSwitch 应用程序托管在 Windows Azure 中。

查看英文原文:OData for LightSwitch

.NET语言 & 开发