摘要:
一步一步学Remoting之六:事件(1) 周末又过去了要上班了,一大早起来继续写。 概念就不说了,具体参见msdn相关章节: http://msdn.microsoft.com/library/CHS/cpguide/html/cpconEvents.asp 我们先来改造一下上次的程序,为上次的主线程方法添加事件,能不断的引发事件来汇报处理的进度: publicclassMyEventArgs ... 阅读全文
摘要:
一步一步学Remoting之六:事件(2) 到了午休的时间,抓紧时间继续写,上次说有2个遗留问题:(1)关闭一个客户端以后会影响其他的客户端事件原因:客户端没有取消事件订阅就关闭了,触发事件的时候找不到事件订阅者解决:遍历委托链,找到异常的对象,从委托链中卸下(2)服务器端对客户端广播,客户端能收到其他客户端的事件处理信息原因:使用了Singleton模式,共享远程对象解决:因为需要远程对象有状态... 阅读全文
摘要:
一步一步学Remoting之五:异步操作如果你还不知道什么是异步也不要紧,我们还是来看实例,通过实例来理解才是最深刻的。在Remoting中,我们可以使用以下几种异步的方式:1、普通异步2、回调异步3、单向异步一个一个来说,首先我们这么修改我们的远程对象:publicintALongTimeMethod(inta,intb,inttime){Console.WriteLine("异步方法开始");... 阅读全文
摘要:
一步一步学Remoting之四:承载方式(2)这里来说一下iis承载方式,顺便简单说一下remoting的通道和【复杂对象】中的遗留问题。首先明确一点:iis来承载的话只能是http通道方式的。我们来建立一个web项目,比如叫remoting,删除项目中的所有webform,把远程对象dll-RemoteObject.dll复制到项目的dll文件夹下面,然后打开web.config进行服务端设置:... 阅读全文
摘要:
一步一步学Remoting之四:承载方式(1)在实际的应用中我们通常只会选择用windows服务和iis来承载远程对象。选择windows服务的原因是能自启动服务,服务器重启后不需要再去考虑启动service。选择iis的理由是我们能使用集成验证等一些iis的特性。 在msdn中可以找到相关文章: http://www.microsoft.com/china/msdn/library/archit... 阅读全文
摘要:
一步一步学Remoting之三:复杂对象这里说的复杂对象是比较复杂的类的实例,比如说我们在应用中经常使用的DataSet,我们自己的类等,通常我们会给远程的对象传递一些自己的类,或者要求对象返回处理的结果,这个时候通常也就是需要远程对象有状态,上次我们说了几种激活模式提到说只有客户端激活和Singleton是有状态的,而客户端激活和Singleton区别在于Singleton是共享对象的。因此我们... 阅读全文
摘要:
一步一步学Remoting之二:激活模式 远程对象的激活模式分服务端激活和客户端激活两种,(也就是对象分服务端激活对象或者说是知名对象和客户端激活对象两种)先看看msdn怎么描述服务端激活的:服务器激活的对象是其生存期由服务器直接控制的对象。服务器应用程序域只有在客户端在对象上进行方法调用时才创建这些对象,而不会在客户端调用 new 或 Activator.GetObject 时创建这些对象;这节... 阅读全文
摘要:
一步一步学Remoting之一:从简单开始 一、Remoting的优缺点? 优点: 1、能让我们进行分布式开发 2、Tcp通道的Remoting速度非常快 3、虽然是远程的,但是非常接近于本地调用对象 4、可以做到保持对象的状态 5、没有应用程序限制,可以是控制台,winform,iis,windows服务承载远程对象 缺点: 1、非标准的应用因此有平台限制 2、脱离iis的话需要有自己的安全机制... 阅读全文