.NET Remoting是在不同应用程序域之间通信的技术,它可以用来访问另一个应用程序域(一个系统的不同进程或者不同系统的进程)中的对象。 

      让我们从计算个人所得税的简单例子开始认识.NET Remoting技术,对它的构成部分远程对象、服务器、客户机有一个感性的认识,而暂时不考虑Remoting技术细节。下图是示例中用到的类:
.NET Remoting学习点滴(一):简单示例
 
     1.远程对象:远程对象类Tax继承了基类MarshalByRefObject和接口ITax,代码如下:

.NET Remoting学习点滴(一):简单示例    //定义接口类ITax
.NET Remoting学习点滴(一):简单示例    
//编译生成ITaxTemoting.dll
.NET Remoting学习点滴(一):简单示例    
//服务器端和客户端都要添加该类dll的引用
.NET Remoting学习点滴(一):简单示例
    public interface ITax
    }



      2.服务器端:定义信道并监听,注册远程对象

.NET Remoting学习点滴(一):简单示例using System;
.NET Remoting学习点滴(一):简单示例
using System.Collections.Generic;
.NET Remoting学习点滴(一):简单示例
using System.Text;
.NET Remoting学习点滴(一):简单示例
.NET Remoting学习点滴(一):简单示例
using System.Runtime.Remoting;
.NET Remoting学习点滴(一):简单示例
using System.Runtime.Remoting.Channels;
.NET Remoting学习点滴(一):简单示例
using System.Runtime.Remoting.Channels.Tcp;
.NET Remoting学习点滴(一):简单示例
using TaxRemoting;
.NET Remoting学习点滴(一):简单示例
.NET Remoting学习点滴(一):简单示例
namespace TaxServer
}



      3.客户机端:注册信道,根据URL获取远程对象代理,使用代理调用服务器端的远程对象。

.NET Remoting学习点滴(一):简单示例using System;
.NET Remoting学习点滴(一):简单示例
using System.Collections.Generic;
.NET Remoting学习点滴(一):简单示例
using System.Text;
.NET Remoting学习点滴(一):简单示例
.NET Remoting学习点滴(一):简单示例
using System.Runtime.Remoting;
.NET Remoting学习点滴(一):简单示例
using System.Runtime.Remoting.Channels;
.NET Remoting学习点滴(一):简单示例
using System.Runtime.Remoting.Channels.Tcp;
.NET Remoting学习点滴(一):简单示例
using ITaxTemoting;
.NET Remoting学习点滴(一):简单示例
.NET Remoting学习点滴(一):简单示例
namespace TaxClient



      运行服务器端和客户端EXE程序,输出结果(上图为服务器端,下图为客户端)如下:
      .NET Remoting学习点滴(一):简单示例

      开始学习.NET Remoting时,一直迷惑于客户端和服务器端都要添加远程对象的引用,这样做不是把实现细节都暴露给客户端了吗?而且部署起来也很麻烦,客户端总是需要复制远程对象的程序集,这样做有什么意义呢?随着了解的增多,才逐渐明白:客户端并不需要远程对象的具体实现,因为客户端是通过远程对象代理调用服务器端远程对象方法实现的,客户端需要的仅仅是元数据,因此,我们应该采用面向接口编程的方法,用接口把客户端代码和服务器端代码分开。本文计算个人所得税的示例想要说明的就是这一点,当计算个人所得税的算法发生改变时,只需修改Tax类就可以了,而客户端的代码是不需要改变的,这也是面向接口编程的好处。

      源代码下载地址: 点击下载完整示例程序

相关文章:

  • 2022-02-19
  • 2021-06-03
  • 2021-12-05
  • 2021-12-01
  • 2022-12-23
  • 2022-12-23
  • 2022-02-27
  • 2022-01-02
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-08
  • 2021-10-27
  • 2021-07-11
  • 2022-03-05
  • 2022-12-23
相关资源
相似解决方案