0

我必须在这两种可能性之间进行选择,才能从 Windows Store/Windows Phone 8 应用程序访问数据库:

  • 普通的 WCF 服务,带有实体框架,以及获取我的数据的方法(例如:GetUsers())

  • WCF 数据服务 (OData) 也带有实体框架

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

那么,每种方法的区别和优势是什么?

谢谢

4

1 回答 1

0

如果您的服务可能会与您无法控制的客户端进行通信,那么 WCF DS(以及因此 OData)应该是您的选择,因为您的服务将比其他任何东西都更具互操作性,因为成为不断增长的 OData 的一部分生态系统。

如果您只关心您自己的客户,那么您的决定可能是基于易于开发、性能、可维护性等。

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

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

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

请注意,WCF DS 客户端现在有一个可用的5.6.0-alpha .NET 便携式库(预发布),它将支持来自同一 DLL 的 Windows 应用商店和 Windows Phone 8 应用程序。这缺少电话应用程序通常需要的一些功能,例如墓碑支持。如果这是一个问题,请考虑使用特定 Windows 应用商店的旧版本 (5.0) 和 WCF DS 客户端的 Windows Phone 8 版本

于 2013-07-16T00:03:21.167 回答