【问题标题】:OData based WCF service or regular WCF service for Silverlight applicationSilverlight 应用程序的基于 OData 的 WCF 服务或常规 WCF 服务
【发布时间】:2010-11-13 16:25:18
【问题描述】:

我刚刚开始评估是否应该使用受 OData 影响的 wcf 数据服务或标准 WCF 服务应用程序作为 Silverlight 应用程序的主要数据源。我想知道在什么情况/情况下哪种方法更好。什么比电线更轻,更容易维护等等。

到目前为止我收集到的是:

  • 据我所知,VS2010 中没有 Wcf 数据服务模板,我需要先创建一个 asp.net Web 项目,然后添加一个 wcf 数据服务,所以它会影响我如何构建我的项目。
  • WCF 数据服务通过服务公开实际的表名。我还不知道有什么方法可以给它们起别名,我不确定让全世界都知道我的表结构是个好主意
  • 在标准 wcf 服务中,我需要针对服务端的 EF 或域服务类编写 linq 查询,而在数据服务中,我可以将该处理逻辑移至客户端。
  • 乍一看,检查 wcf 数据服务公开的类似乎比 EF 公开的类更容易阅读和理解

请添加您对此的想法..

感谢您的宝贵时间。

【问题讨论】:

    标签: silverlight-4.0 wcf odata


    【解决方案1】:

    没有 Wcf 数据服务 我所知道的VS2010中的模板,

    不是项目模板 - 只是一个项目模板(用于在 ASP.NET 网站或 Web 应用程序中使用)。 WCF 数据服务与 HTTP 非常紧密耦合,因此它们仅在网站/应用程序中才有意义。

    WCF 数据服务公开实际表 服务名称。

    不! 至少不一定。 EF 的全部意义在于,您可以将数据库的实际物理结构与暴露的(概念)模型 分离。您可以完全重命名实体,可以将多个实体映射到一个表上,将一个实体拆分为多个表,您可以省略属性 - 任何您喜欢的!

    乍一看检查类 由 wcf 数据服务公开的似乎 比阅读和理解更容易 EF暴露的那些

    我对此表示怀疑 - 因为默认情况下,WCF 数据服务将使用 Linq-to-SQL 或 EF 模型作为它们的基础,真的。您可以根据自己的喜好将其变得简单或复杂。

    在公司内部网络(不适用于 Internet 场景)- 不是您可以使用 WCF DataServices 执行的操作。

    我认为主要区别在于 SOAP 与 REST 的区别:

    • SOAP(传统 WCF)面向 方法 - 您根据方法来思考和设计系统 - 您可以做的事情(GetCustomerSaveOrder 等)

    • REST(WCF 数据服务方法)都是关于 资源,例如您拥有自己的资源和资源集合(例如Customers),并使用标准 HTTP 动词 (GET, POST, PUT, DELETE) 而非您定义的单独特定方法将它们公开给全世界

    所以这两种方法各有利弊。我想最重要的问题是:你要创建什么样的应用程序,你的目标受众是什么类型的用户?

    更新

    • 对于 Intranet / 内部应用程序,我认为 netTcpBinding(二进制编码)的优势可以证明使用经典 WCF 服务是合理的——同样对于数据密集型应用程序,我个人发现了一种基于方法的方法( GetCustomer, SaveCustomer) 更易于使用和理解

    • 1234563为用户

    【讨论】:

    • 感谢您的回答。好吧,目前我正在研究这两种方法并试图找到同一个问题的答案。对于哪种类型的应用程序,两者中的哪一个是更好的选择.. 应用程序类型是.. 1.) 数据密集型 Intranet 应用程序 2.) 数据密集型面向公众的互联网应用程序
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 2011-10-10
    • 1970-01-01
    相关资源
    最近更新 更多