聊天话题:.NET Remoting
聊天话题:.NET Remoting
主持人和专家介绍
Host Guide_Wendy_MS says: 下面就欢迎大家就.NET Remoting的问题向苏骏工程师踊跃提问。
Host Guest_junsu[MS] says: Remoting 是微软用来开发分布式应用的技术
来宾提问 Q 和专家解答 A
[Q]: 我们能够利用remoting来怎样实现应用?
[A]: remoting 主要用来开发分布式的应用,和原来的DCOM的技术用于同样的环境
[Q]: Remoting主要指什么啊
[A]: remoting是.net 中用来跨越machine, process, appdomain 进行方法调用的技术
[A]: 可以参考.NET Framework SDK
[Q]: 你的意思是说remoting是dcom的升级吗[A]可以这样理解
[Q]: 在什么情况下应该使用remoting技术
[A]: 我们常说的三成结构的程序,就可以使用remoting技术来构建.它是分布应用的基础技术
[Q]: 有没有一些在线文档啊?
[A]: MSDN是很好的文档
[A]: http://msdn.microsoft.com/library/en-us/cpguide/html/cpconaccessingobjectsinotherapplicationdomainsusingnetremoting.asp
这里是msdn中remoting 的在线文档,比较好的书dvanced .NET Remoting>
[Q]: remoting有没有使用中间件技术?
[A]: remoting 本身不包括中间件技术,但它可以基于COM+来开发应用程序
[Q]: 三层或多层不用Remoting也能构件,那他的好处究竟在那呢
[A]: remoting 相对于其他的一些技术,我们来比较一下, [DCOM] 只能用于Windows平台,而且是二进制的标准, 扩展性不够
[CORBA] 比较难学习, 厂商实现不一致
[Q]: 而且是二进制的标准",这是什么意思?
[A]: 在调用的时候, 数据是人不可读的二进制数据
[Q]: 那么[remoting]难学吗?需要具备哪些准备知识?相对于DCOM而言,个人觉得要容易很多.基本的知识是.NET 的编程
大家可以下载了.NET FRAMEWORK SDK以后,看一下文档和例子,
[A]: 很少有人把java和dcom放在一起用的.说一下J2EE的解决方案的比较把REMOTING 是第一个不需要生成PROXY/STUB的技术
使用META DATA的.NET FRAMEWORK可以很好地用一个通用的PROXY来支持所有的类.而且,在.NET设计时,就考虑了REMOTING,是一个和.NET CLR结合很紧密的一部分.
[A]to bluelaugh 不仅仅是远程过程调用啊.remoting 可以使用有状态的对象, 服务器能帮助你保持对象状态
刚才有人问webservice和remoting 的区别, 这是一个很大的方面
[Q]: remoting是native的么?remoting下面有没有用到DCOM?
[A]: 对,remoting 基本是managed code, 网络通讯用的是managed socket
[Q]: new 与 Activator.GetObject 有什么区别,功能一样,那应该怎么选择或是无所谓呢
[A]: new 的时候会最后调用Activator.GetObject , 但是你无法使用new 来建一个接口申明的远程对象.EJB最后还是使用rmi来完成调用的
[A]: 客户端和服务端有三种方法共享assembly的
[A]: 使用activator.GetObject(typeof(BankInf), "http://server:port/bank.soap")
[A]如果你使用的bankimp是个marshalbyref的对象, 你还可以去查看soapsuds.exe得文档,
[A]: 它会生成一个只有metadata的assembly(没有code)放到客户端去
[A]: 这个细节比较多,我想你去看一下msdn会有帮助的
[A]: 你的wellknowobject只能使用byref的,但是参数可以是一个serializable的对象(byval)
[A]\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Bin
[A]remoting大家可以去看看ingo的dvanced .NET Remoting>很好的一本书,
[A]对于remoting, c# and vb.net都可以,没什么区别的remoting是一个很容易扩展的结构, 是一个非常构思巧妙的结构
[Q]: 关于企业级的应用主要有哪些?
[A]: 在企业级的应用中,remoting 是用于在多个layer间通讯的,
[Q]: Remoting在安全方面性是怎样控制的?
[A]:remoting 现在已有的安全机制是依赖于IIS的,IIS的验证机制将会验证用户, remoting 的代码就在这个用户的身份下运行了
[Q]: 通讯时有用到XML/SOAP吗?
[A]remoting不限制使用的是什么样的通讯格式,在现在的实现中
[A]XMLSerializer使用soap 的rpc/document格式来传送数据
[A]remoting 能够使用未来的一些接口
[A] 据我所知,有爱好者在写ws-security for remoting 的实现
[Q]: 是的,微软的标准太多了
[A]: 这些可是业界的标准哦.SUN, IBM都是这个标准的成员
[Q]: remoting 是不是属于WebService啊,还是可以由WebService调用
[A]: remoting和webservice是两个独立的技术, 他们没有隶属的关系, remoting是一个倾向rpc的技术
[Q]: remoting的dll可以通过某种方法expose一个webservices的接口
[A]: 在.NET Remoting使用[WebMethod] 我知道的,加一个[SoapRpcService()] 到你的webmethod上去
[Q]: web services不也是rpc么?
[A]: remoting中使用了soap的关于rpc的一部分规范, webservice就比较全了,他使用document 作为wsdl的描述,和remoting的rpc描述方法不同
结束语
Host Guide_Wendy_MS says: 大家好,今天聊天的事件马上就要到了
Host Guide_Wendy_MS says: 感谢大家参加这次的聊天,感谢苏峻工程师主持聊天
Host Guest_junsu[MS] says: 关于remoting的问题,microsoft.public.dotnet.framework.remoting是一个很热烈的讨论组
Host Guest_junsu[MS] says: :)
Host Guide_Wendy_MS says: 我们会尽快将今天聊天的记录整理出来,放在www.microsoft.com/china/community网站上
Host Guide_Wendy_MS says: 谢谢大家,再见