- 浏览: 83845 次
- 性别:
- 来自: 河南省
文章分类
最新评论
-
sjrhero:
都是只看不评论呀。
SQL Server循环语句 -
sjrhero:
没事儿别老踩哥,文章哥还没有写完呢。
各种数据源的连接字符串
一、Remoting的优缺点?
优点:
1、能让我们进行分布式开发
2、Tcp通道的Remoting速度非常快
3、虽然是远程的,但是非常接近于本地调用对象
4、可以做到保持对象的状态
5、没有应用程序限制,可以是控制台,winform,iis,windows服务承载远程对象
缺点:
1、非标准的应用因此有平台限制
2、脱离iis的话需要有自己的安全机制
二、Remoting和Web服务的区别?
ASP.NET Web 服务基础结构通过将 SOAP 消息映射到方法调用,为 Web 服务提供了简单的 API。通过提供一种非常简单的编程模型(基于将 SOAP 消息交换映射到方法调用),它实现了此机制。ASP.NET Web 服务的客户端不需要了解用于创建它们的平台、对象模型或编程语言。而服务也不需要了解向它们发送消息的客户端。唯一的要求是:双方都要认可正在创建和使用的 SOAP 消息的格式,该格式是由使用 WSDL 和 XML 架构 (XSD) 表示的 Web 服务合约定义来定义的。
. NET Remoting 为分布式对象提供了一个基础结构。它使用既灵活又可扩展的管线向远程进程提供 .NET 的完全对象语义。ASP.NET Web 服务基于消息传递提供非常简单的编程模型,而 .NET Remoting 提供较为复杂的功能,包括支持通过值或引用传递对象、回调,以及多对象激活和生命周期管理策略等。要使用 .NET Remoting,客户端需要了解所有这些详细信息,简而言之,需要使用 .NET 建立客户端。.NET Remoting 管线还支持 SOAP 消息,但必须注意这并没有改变其对客户端的要求。如果 Remoting 端点提供 .NET 专用的对象语义,不管是否通过 SOAP,客户端必须理解它们。
三、最简单的Remoting的例子
首先说明一点儿,下面的例子都建在了一个解决方案下面,实际开发中这种机率几乎是不可能的。(笔者注)
1、远程对象:
建立类库项目:RemoteObject
usingSystem;
namespaceRemoteObject
{
publicclassMyObject:MarshalByRefObject
{
publicintAdd(inta,intb)
{
returna+b;
}
}
}
2、服务端
建立控制台项目:RemoteServer
usingSystem;
usingSystem.Runtime.Remoting;
namespaceRemoteServer
{
classMyServer
{
[STAThread]
staticvoidMain(string[]args)
{
RemotingConfiguration.Configure("RemoteServer.exe.config");
Console.ReadLine();
}
}
}
此时将第一个类库生成一下。并在此服务端引用RemoteObject.DLL。(笔者注)
下面在此服务端添加配置文件(笔者注)
建立配置文件:app.config
<configuration>
<system.runtime.remoting>
<applicationname="RemoteServer">
<service>
<wellknowntype="RemoteObject.MyObject,RemoteObject"objectUri="RemoteObject.MyObject"
mode="Singleton"/>
</service>
<channels>
<channelref="tcp"port="9999"/>
</channels>
</application>
</system.runtime.remoting>
</configuration>
3、客户端:
建立控制台项目:RemoteClient
usingSystem;
namespaceRemoteClient
{
classMyClient
{
[STAThread]
staticvoidMain(string[]args)
{
RemoteObject.MyObjectapp=(RemoteObject.MyObject)Activator.GetObject(typeof(RemoteObject.MyObject),System.Configuration.ConfigurationSettings.AppSettings["ServiceURL"]);
Console.WriteLine(app.Add(1,2));
Console.ReadLine();
}
}
}
下面在此客户端添加配置文件(笔者注)
建立配置文件:app.config
<configuration>
<appSettings>
<addkey="ServiceURL"value="tcp://localhost:9999/RemoteObject.MyObject"/>
</appSettings>
</configuration>
配置文件建立完成之后,在客户端添加引用,引用RemoteObject.DLL文件
4、测试
如果在最后编译的时候发现编译报错:
1、找不到app.Add()
2、找不到RemoteObject
一定是忘记在服务端或者客户端引用DLL文件了。
注:要先运行服务端再运行客户端。客户端程序显示3,测试成功。(笔者注)
四、结束语
我们通过一个简单的例子实现了最简单的remoting,对其实质没有做任何介绍,我想通过例子入门才是最简单的。
原文地址:http://www.cnblogs.com/lovecherry/archive/2005/05/19/158784.html
此文与原文略有不同,原文最后讲的不是那么清楚。所以我改了。
发表评论
-
C# 运行指定文件
2011-03-27 19:49 2242//CreateFolder Operatio ... -
winform 获取相对路径
2011-03-25 16:40 3570//获取相对路径 //例如:System.Wi ... -
通过线程访问窗体控件
2011-03-18 08:53 785其实就是在窗体初始化之前写一句代码: Control. ... -
递归为TreeView控件添加节点
2011-01-25 14:09 1413private void BindTreeNode(strin ... -
递归绑定ComboBox
2011-01-26 13:58 781/*递归方法*/ pri ... -
winform中窗体显示和传值
2011-01-26 14:18 956A.WinForm中窗体显示显 ... -
WinForm递归绑定TreeView
2011-01-26 16:28 1081绑定方法 /// <summary ... -
TreeView右击空白处删除问题
2011-01-27 15:17 1120在WinForm程序中添加了一个TreeView,但是当右击一 ... -
递归绑定TreeView
2011-02-13 13:40 732DataAccess.DT();是返回所有地区信息(返回类型D ... -
C# 操作Excel单元格格式
2011-02-26 15:22 1332range.NumberFormatLoca ... -
winform下ListView单击某一行时被选中
2011-03-15 18:06 2148如题,其实很简单:就是将ListView的FullRowSel ... -
SqlTransaction事务处理
2011-03-14 16:28 1889首先新建一个“控制台应用程序”,添加一个类,这里就叫DbHel ... -
rdlc 报表实现百分比显示
2011-03-11 15:35 1474=FormatPercent(sum(Fields!recha ... -
DateTime 减和加天数操作技巧
2011-03-06 17:57 2195/*在dt上加天数*/ DateTime dt=Dat ... -
为RDLC报表动态绑定数据
2011-03-06 16:14 3538string conStr = "Data S ... -
ComboBox绑定数据
2011-03-06 15:54 1203//返回可按照索引单独访问的一组对象 IList< ... -
调用RDLC报表提示错误:尚未指定报表定义的来源
2011-03-03 11:04 10186定义一下源:this.reportViewer1.LocalR ... -
两个完全一样的listview,将第一个中的全部数据复制到第二个中去
2011-03-01 19:42 1054ListViewItem[] a ...
相关推荐
一步一步学Remoting之一:从简单开始 一、Remoting的优缺点? 优点: 1、能让我们进行分布式开发 2、Tcp通道的Remoting速度非常快 3、虽然是远程的,但是非常接近于本地调用对象 4、可以做到保持对象的状态 5...
一步一步学Remoting.doc
2.2.1 一步一步学Remoting之一:从简单开始..........................................84 2.2.2 一步一步学Remoting之二:激活模式..............................................87 2.2.3 一步一步学Remoting之...
学习 remoting 学习 remoting
学习 remoting 学习 remoting 学习 remoting 学习 remoting 学习 remoting 学习 remoting 学习 remoting 学习 remoting
Remoting Remoting 之SERVER Remoting 之SERVER
Asp.net 2.0功能体验,细节之Web控件(一) 隐藏控件 Asp.net 2.0功能体验,总体设计思想 Asp.net 2.0 WebPart使用经验点滴 革新:.NET 2.0的自定义配置文件体系初探 关于如何在ASP.NET 2.0中定制Expression ...
Remoting 基础学习Remoting 基础学习Remoting 基础学习Remoting 基础学习
介绍.net下的Remoting技术. Microsoft .Net Remoting系列专题之一
Remoting入门学习程序源码,比较好的入门程序。
开始学习Remoting 自己实例源码 拿出来分享
DWR-Direct Web Remoting 自己收集整理的DWR学习资料,包括了: 1.开发所需的dwr.jar; 2.DWR和Ajax技术的ppt文件; 3.DWR中文文档; 4.网上的一些文章; 5.收集的一些简单实例
在互联网日渐普及,网络传输速度不断提高的情况下,分布式的应用程序是软件开发的一个重要方向。在.Net中,我们可以通过Web Service 或者Remoting 技术构建...最后我们将创建一个基于Remoting的网络聊天程序作为结束。
Microsoft Net Remoting系列专题之一Net Remoting基础篇.doc
remoting 广播
Microsoft .Net Remoting系列专题之三:Remoting事件处理全接触
一个非常简单的Remoting实例,适合Remoting入门学习,
remoting分布式技术入门教程,不可多得
C# .Net Remoting 两个简单示例,一个为普通的,一个为工厂模式的,更为安全一点.简单范例却是打好了一个框架,想要做东西,扩展就可以了. 使用说明和运行截图:http://www.our-code.com/news/2010105/n4920152.html 关于2...