C# Remoting的一个简单例子
2007-10-26 09:07
.Net对于远程调用提供了两种方法:Remoting和WebService。
WebService现在是如火如荼,特别是有一种比较流行的架构:Winform+WebService(Java、.Net), 我曾经做过的一个项目就是这样子的,分布式、跨平台、极佳的用户体验,这三者结合起来是不是很诱人? 不过,这里我只说Remoting,Remoting具有以下特点: 1、Tcp通道的Remoting速度非常快 2、虽然是远程的,但是非常接近于本地调用对象 3、可以做到保持对象的状态 4、没有应用程序限制,可以是控制台,winform,iis,windows服务承载远程对象 缺点: 1、不是标准的应用,因此有平台限制 2、脱离iis的话需要有自己的安全机制 可以看出来,比起WebService,Remoting更适合于中小型局域网应用,而不适用于企业级的应用。 下面给出一个极其简单的Sample: Remoting用的对象:
1
将其编译为一个lib文件:
csc /t:library RemoteObject.cs
![]() 2 ![]() ![]() ![]() 3 ![]() 4 ![]() ![]() ![]() 5 ![]() 6 ![]() ![]() ![]() 7 ![]() 8 ![]() 9 ![]() 10 ![]() 11 ![]() ![]() ![]() 12 ![]() 13 ![]() 14 ![]() 15 ![]() Server端:
1
将其编译为一个exe文件:
csc /r:System.Runtime.Remoting.dll /r:RemoteObject.dll RemoteServer.cs
![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 8 ![]() 9 ![]() ![]() ![]() 10 ![]() 11 ![]() ![]() ![]() 12 ![]() 13 ![]() ![]() ![]() 14 ![]() 15 ![]() 16 ![]() 17 ![]() 18 ![]() 19 ![]() 20 ![]() 21 ![]() 22 ![]() Client端:
1
![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 8 ![]() ![]() ![]() 9 ![]() 10 ![]() ![]() ![]() 11 ![]() 12 ![]() ![]() ![]() 13 ![]() 14 ![]() 15 ![]() 16 ![]() 17 ![]() 18 ![]() 19 ![]() 20 ![]() |