2010-11-13 101 views
1

我刚开始评估是否应该使用OData影响的wcf数据服务或标准WCF服务应用程序作为Silverlight应用程序的主要数据源。我希望你的想法在哪种情况/情况下更好。什么是过线更轻,更易于维护等基于OData的WCF服务或适用于Silverlight应用程序的常规WCF服务

我已经收集到目前为止是:

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

暴露做这将您的想法..

感谢您的时间。

回答

5

没有WCF数据服务在VS2010 模板,我知道的,

不是项目模板 - 只是一个项目模板(一个ASP.NET网站或web应用程序中使用)。 WCF DataServices与HTTP紧密耦合,因此它们只在网站/应用程序中才有意义。

WCF数据服务通过服务暴露实际表 名称。

不!至少不一定。 EF的全部意义在于,您可以将数据库的实际物理结构从(概念性)型号中分离出来。您可以完全重命名实体,您可以将多个实体映射到单个表格上,将实体分割为多个表格,您可以省略属性 - 任何您喜欢的东西!

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

我怀疑它暴露 - 因为默认情况下,WCF数据服务将真正使用Linq-to-SQL或EF模型作为其基础。你可以尽可能简单或复杂。

在公司内部网络中使用Silverlight 4应用程序时,使用“常规”WCF服务可以使用netTcpBinding获得更快的性能(感谢二进制消息编码与其他绑定的文本消息相比)不适用于互联网场景) - 不是你可以用WCF DataServices做的事情。

在我看来,主要的区别是SOAP与REST的区别:

  • SOAP(传统WCF)是面向方法 - 你认为和设计你的系统的方法方面 - 你的事情可以做(GetCustomerSaveOrder等)

  • REST(WCF的DataService的做法)是所有关于资源,如你有你的资源和资源的集合(如Customers),你揭露那些向世界,与标准的HTTP动词(GET, POST, PUT, DELETE),而不是您定义

所以这两种方法都各有独立的具体方法利弊。我想最重要的问题是:您创建了什么样的应用程序,以及您定位的是哪类用户受众?

更新

  • 内部网/内部应用程序,我想一个netTcpBinding(二进制编码)的优势将证明采用经典的WCF服务 - 也为数据密集型的应用程序,我个人找到基于方法的方法(GetCustomer, SaveCustomer)更易于使用和理解

  • 对于面向公众的应用程序,使用HTTP并尽可能互操作可能是您的主要关注点,所以在那种情况下,我会可能有利于WCF Da ta服务 - 易于使用,易于理解的用户网址

+0

感谢您的回答。那么现在我正在研究这两种方法并试图找到同样问题的答案。哪一个是哪种类型的应用程序更好的选择..应用程序的类型是..)1.数据密集型内联网应用程序2.)数据密集型公众面向互联网应用程序 – user20358 2010-11-14 10:24:18

+0

@ user20358:更新我的答复与一些额外的信息 – 2010-11-14 11:03:49

相关问题