.NET Remoting 技术深入解析
1. .NET Remoting 基础概念
1.1 可插拔特性
“可插拔”(pluggable)是 .NET Remoting 中常提及的术语。它意味着特定部分的设计允许通过自定义实现进行替换。例如,有效负载(payload)用于传输方法调用的参数,其编码方式也能被替换。微软提供了 SOAP 和二进制编码机制,你既可以将 SOAP 格式化器与 HTTP 通道搭配使用,也能将 HTTP 与二进制格式化器结合,而且这两种格式化器同样适用于 TCP 通道。不过需要注意的是,.NET Remoting 仅支持 SOAP RPC 样式,而 ASP.NET Web 服务则同时支持 DOC 样式(默认)和 RPC 样式。
1.2 .NET Remoting 的应用范围
.NET Remoting 不仅能让你在每个 .NET 应用程序中使用服务器功能,而且无论你是在构建控制台应用、Windows 应用、Windows 服务还是 COM+ 组件,都可以使用它。此外,它也是对等通信的理想技术。
1.3 CLR 对象远程处理
CLR 对象远程处理是 .NET Remoting 的重要方面。所有语言构造,如构造函数、委托、接口、方法、属性和字段,都能用于远程对象。.NET Remoting 扩展了 CLR 对象在网络上的功能,处理激活、分布式标识、生命周期和调用上下文等问题。这与 XML Web 服务有很大不同,在 XML Web 服务中,对象是抽象的,客户端无需了解服务器的对象类型,并且 XML Web 服务具有平台独立性。