现在的位置: 首页 > 综合 > 正文

.net 4.0中出现的几个service的区别和解释

2013年08月30日 ⁄ 综合 ⁄ 共 1677字 ⁄ 字号 评论关闭

原文链接 

http://allenlsy.com/2011/06/08/net-4-0%E4%B8%AD%E5%87%BA%E7%8E%B0%E7%9A%84%E5%87%A0%E4%B8%AAservice%E7%9A%84%E5%8C%BA%E5%88%AB%E5%92%8C%E8%A7%A3%E9%87%8A/

 

首先说web service的概念。它是一个向外部提供软件内部功能的手段。这里的内部外部,可以是一个软件内部组件向另一个组件提供服务,也可以是一个软件整体向另一个软件提供服务,只是那个软件通过RPC调用服务。web service是基于这个思想的。另外 Web service具有行业标准,比如最重要的是数据传输标准,使用XML/SOAP的传输协议。这个协议是在HTTP或者FTP的支持下运行的。之所以有这个标准,是为了让各种不同的实现web service的技术能够相互通信。因为web service出现的前夜,各技术使用的通信协议很不一样,比如有DCOM, RMI, CORBA,乱得一团糟。使用统一的XML就解决了这个问题。

.net开发中可能会遇到以下一些service,概念是容易搞混的

  • Web Service:出现于.net 2.0时代。它提供一个很普通web service。用asp.net及相关技术实现。但它有很多缺陷,主要体现在安全性方面,没有提供授权、验证之类的架构。第三方是可以篡改消息中的内容的。对电子商务网站来说很不可靠。
  • WCF Service:出现于.net 3.0时代,它的具体实现据说也是用的2.0的代码。它完全能够替代Web Service,在Web Service基础上,它在安全性、分布式管理啊等方面有很大提高。它的实际意思是WCF RIA Service。之所以有RIA在里面,和微软提出的MVVM的架构有不小的关系。WCF RIA Service看起来很像是为这个架构量身定做的。顺便提下,在也许是VS2010刚发布的一些版本中,WCF RIA service显示为.Net RIA Service。如果你打过补丁,这个名字就应该被替换掉了
  • Domain Service:它是向外界暴露DAL(Data Access Layer)的一个WCF Service,就算是特殊的WCF Service吧。因为真正的WCF Service一般都是暴露BLL(Business Logic Layer)或者称为BCL(Business Control Layer)的功能。另外提一下的是,最近我在做Silverlight的开发。里面用到了MVVM的架构,向V层提供本地的M层的服务,通过domain service实现是个很常见的方式。
  • WCF Data Service:它也是向外界暴露DAL的,但是它支持REST这种架构理念。在传输使用的数据格式上没有太多限制,XML和JSON都支持。它的前身是ADO.Net Data Service。大家都知道ADO.Net entity framework。ADO.Net Data Service就是把EF封装成服务给外界去用,但ADOEF是不支持REST的。

这里有个WCF的结构图


这下算把这几个confusing的概念理出来了。

 

推荐参考:

1. http://forums.silverlight.net/forums/p/228959/556599.aspx

2. WCF REST vs. ADO.NET Data Serviceshttp://stackoverflow.com/questions/334639/wcf-rest-vs-ado-net-data-services

3. WCF, Data Services and RIA Services Alignment Questions and Answers,http://blogs.msdn.com/b/endpoint/archive/2010/01/04/wcf-data-services-ria-services-alignment-questions-and-answers.aspx

 

 

抱歉!评论已关闭.