适用于Windows 8 / WP8应用程序的WCF服务或OData

时间:2013-07-08 15:47:48

标签: wcf windows-phone-8 odata

我必须在这两种可能性中选择从Windows应用商店/ Windows Phone 8应用访问数据库:

  • 普通WCF服务,包含Entity Framework,以及获取数据的方法(例如:GetUsers())

  • WCF数据服务(OData)也包含实体框架

我测试了这两种方法并且正在进行中,但我现在不知道该选择什么。

那么,每种方法的差异和优势是什么?

由于

1 个答案:

答案 0 :(得分:0)

如果您的服务可能会与您无法控制的客户交谈,那么WCF DS(以及因此OData)可能应该是您的选择,因为您的服务将比其他任何服务更具互操作性。不断增长的OData生态系统。

如果您不关心任何客户,只关心您自己的客户,那么您可能会根据开发的简易性,性能,可维护性等做出决定。

直接的WCF服务将为您提供更精确的控制,并且可能以各种方式提高性能,因为您可以更好地控制数据的外观。但它可能意味着更多的工作。

WCF DS服务器/客户端将使您永远不必担心将数据序列化或反序列化为请求或响应。 WCF DS Client可以构建多种类型的请求,并且可以免费进行实体状态跟踪。如果您正在使用实体框架,则服务器很容易启动和运行。如果您需要执行不在OData中的操作,则可能难以使用WCF DS,具体取决于您的需要。在这种情况下使用Web API还有很多动力 - 请查看Web API + OData以获取服务。如果您朝这个方向发展,那么您仍然希望使用WCF DS客户端。

结论:WCF DS很可能会更快地启动并运行您可能需要的许多功能。但是如果你最终需要一些堆栈无法处理的自定义逻辑,那么它将比直接的WCF服务更难工作。

请注意,WCF DS客户端现在有一个5.6.0-alpha .NET Portable Library可用(预发布),它将支持来自同一DLL的Windows应用商店和Windows Phone 8应用。这缺少了手机应用程序经常需要的一些功能,例如墓穴石刻支持。如果这是一个问题,请考虑使用older releases (5.0) of the specific Windows Store and Windows Phone 8 versions of WCF DS Client