没有合适的资源?快使用搜索试试~ 我知道了~
C#Remoting开发资料
5星 · 超过95%的资源 需积分: 31 6 下载量 55 浏览量
2013-02-05
15:08:49
上传
评论 1
收藏 602KB DOC 举报
温馨提示
C#Remoting开发资料,介绍了概念和示例代码
资源推荐
资源详情
资源评论
一. 简介:
从某种意义上讲是 的替代品。 服务十分有用,但是这项技术在
企业内联网的解决方案中,对于某些业务请求来说并不快,也没有足够的灵活性,而且,
服务需要有运行时的支持。使用 技术后,可以将 服务提供给世界上的任何地方。
而且可以在所有的应用程序类型中运行 服务。
二.的基本原理:
体系结构图如下:
三.几个重要的概念:
.远程对象:
远程对象类是从 !" 类中派生的。跨越应用程序域调用这个类需要使用代理。
支持两种类型的远程对象:知名的(#$%)远程对象和客户激活(#
"&')远程对象。远程对象其实包括两层含义:
操作远程对象:对象运行在远程,客户段向他发送消息;
传递远程对象:将远程对象拿到本地,或者将本地对象发送过去,对副本进行操作。
(.激活:
使用 % 运算符可以激活远程对象。还有其它一些方式也可以激活远程对象,在以后的随笔里面我会介
绍。
).通道:
一个远程对象使用通道发送和接收消息。服务器选择一个通道来监听请求,客户端选择通道来和服务器通
讯。 提供了内置的通道: 通道和 * 通道,我们也可以编写自己的通道。
+.编组:
数组通过应用程序域被传递的过程称为编组。将变量作为远程对象的参数来发送时,这个变量必须被转换,
以便能够通过应用程序域发送该变量。
,.监听:
使用监听,能够将某些功能置入到方法调用链中。如果调用某个对象的方法,监听层便能够捕获调用来转
换方法调用,或是完成某些日志记录。 调用链的每一部分都是用监听。
四.开发 三步走:
开发 分三步走,在这里以一个简单的例子来说明。
.创建远程对象:
继承 !"
-.
( -".
) -/.
+
, 0"0
1 2
3 0-""*&4 !"
5 2
6 0-"*&78
9 2
:::输出信息,服务器激活
( ;7<服务器激活……<8.
) =
+ 0-"*'78
, 2
1 ;7
3 <服务器端á429=<>8.
5 -<这里是:<?.
6 =
(9 =
( =
(.创建宿主应用程序:
注册通道
注册服务器激活的远程对象
运行宿主程序
-.
( -.
) --.
+ --.
, --"0.
1 --*0.
3
5 0"0
6 2
9
0-""&
( 2
) 0-""7@A8
+ 2
,
1 :::创建 "0 通道
3 "0"B%"07595,8.
5
6 :::创建 *0 通道
(9 *0"(B%*0759518.
(
(( :::注册通道
() &"7"8.
(+ &"7"(8.
(,
(1 C-D%&"0
(3 7
(5 0 7*&8>
(6 <*<>
)9 D%!"'
) 8.
)(
))
)+ ;7<按任意键退出!<8.
), :::下面这行不能少
)1 ';78.
)3 -9.
)5 =
)6
+9 =
+ =
+(
+)
).建立客户端程序:
注册通道
根据 E; 得到对象代理
使用代理调用远程对象
-.
( --.
) --.
+ --"0.
, --*0.
1 -F.
3
5 0"0
6 2
9 0-""
2
( 0-""&'7@A8
) 2
+ :::使用 通道得到远程对象
, "0"B%"078.
1 &"7"8.
3
5 *&!B7*&8"&G!"7
6 0 70*&8>
(9 <"04::"4595,:*<8.
(
(( 7!BB-8
() 2
(+ ;7
(, <连接 服务器失败<8.
(1 =
(3
(5 :::使用 * 通道得到远程对象
(6 *0"(B%*078.
)9 &"7"(8.
)
)( *&!(B7*&8"&G!"7
)) 0 70*&8>
)+ <04::"45951:*<8.
),
)1 7!(BB-8
)3 2
)5 ;7
)6 <连接 * 服务器失败<8.
+9 =
+
+( :::输出信息
+) ;7
++ <*'29=<>
+, !*'7<&<88.
+1 ;7
+3 <**'29=<>
+5 !(*'7<&(<88.
+6 ';78.
,9 =
, =
,( =
什么是 Remoting,简而言之,我们可以将其看作是一种分布式处理方式。从微软的产品角
度来看,可以说 Remoting 就是 DCOM 的一种升级,它改善了很多功能,并极好的融合
到.Net 平台下。Microsoft? .NET Remoting 提供了一种答应对象通过应用程序域与另一对象
进行交互的框架。这也正是我们使用 Remoting 的原因。为什么呢?在 Windows 操作系统中,
是将应用程序分离为单独的进程。这个进程形成了应用程序代码和数据四周的一道边界。
假如不采用进程间通信(RPC)机制,则在一个进程中执行的代码就不能访问另一进程。
这是一种操作系统对应用程序的保护机制。然而在某些情况下,我们需要跨过应用程序域
与另外的应用程序域进行通信,即穿越边界。 在 Remoting 中是通过通道(channel)来实
现两个应用程序域之间对象的通信的。如图所示:
首先,客户端通过 Remoting,访问通道以获得服务端对象,再通过代理解析为客户端
对象。这就提供一种可能性,即以服务的方式来发布服务器对象。远程对象代码可以运行
在服务器上(如服务器激活的对象和客户端激活的对象),然后客户端再通过 Remoting 连
接服务器,获得该服务对象并通过序列化在客户端运行。
在 Remoting 中,对于要传递的对象,设计者除了需要了解通道的类型和端口号之外,
剩余63页未读,继续阅读
资源评论
- devgis2013-02-06很好的资料 学习一下!
灵猪谁仰
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功