本文介绍.NET中的Remoting技术与.NET中的Web Services的对比:
Remoting完全是为.NET平台设计的,只能用在远程通讯的客户端和服务端都采用.NET实现的情况下。
Web Services则支持异构系统,客户端和服务端可以采用完全不同的技术实现,并且可以完全运行在不同的平台上。
正因为要支持异构系统,所以Web Services对数据类型没有太强制的要求,只要通讯的数据可以被序列化成XML,客户端和服务端都能够相互解析就可以了,这就是为什么Web Services采用XML来传递数据的原因。如果采用Remoting,我们可以采用任何支持序列化或者封送(Marshal)的类,可以像普通的类一样,被通讯的双方(客户端和服务端)引用。采用Web Services我们只能采用SOAP和WSDL标准的数据类型,并且要实现类型的引用在技术上很复杂(有的人可能认为很简单,那是因为微软在Visual Studio的“添加Web引用”上做了很多工作,让这一个过程彻底的傻瓜化了,将其做成跟普通类的引用一样)。
我们一般采用Web Services来实现需要运行在Internet的分布式系统,而Remoting主要用来实现运行在采用相同协议的局域网环境中。当然我们可以在Remoting采用TCP、HTTP,最近微软又在Remoting中实现了ICP的支持,而Web Services则能采用HTTP来实现通讯。
由于Remoting完全运行在.NET平台上,所以我们可以直接使用强大的.NET Framework类库来实现程序功能。