每个人都在说如何用WCF取代.NET Remoting,但我想知道它是多么准确.我还没有看到任何关于Remoting被弃用的官方消息,在我看来,Remoting肯定比WCF更有意义.即使在框架的4.0版本中,也没有弃用与Remoting相关的对象或方法.我的理解是3.5和4.0框架中的System.AddIn使用Remoting.
有没有人有任何相反的官方消息?
在文章" 选择.NET中的通信选项(3.0版,因为那是该文章的最新版本)"中,它指出:
8跨应用程序域通信
如果需要在同一进程中支持不同应用程序域中的对象之间的通信,则必须使用.NET远程处理.
现在,这当然不准确,因为WCF当然可以用于跨越appdomain边界,但它是否正在为该场景提供官方建议?
更新:我发送了Clemens Vasters(谁是拥有Remoting和WCF的团队)这个问题:
Clemens,我知道你是拥有远程控制和wcf的团队,我有几个问题,我认为我需要去找源代码.
首先,我有一个关于远程处理是否会消失的问题.具体来说,我们有一个相当大的应用程序,它广泛使用远程处理进行跨域appdomain通信,我想知道远程处理的这种用法是否被认为是"遗留".如果是这样,AppDomain.CreateInstance和朋友会被其他东西取代吗?
这是他的回复:
远程处理是.Net框架的一部分,因此它不会消失.自Windows NT 3.5/Windows 95以来,COM一直在Windows中,并且还没有消失,我也不认为它会很快消失.
也就是说,Remoting的开发投资非常少.WCF是Remoting的继承者,并取代了托管代码的COM/DCOM.
对于进程内,跨域应用程序通信远程处理是CLR的本地通信方式.如果您发现在短时间内抽取大量数据或大量消息的性能问题,您应该认真考虑WCF和NetNamedPipeBinding.
使用.Net,与服务交互的最佳方式是什么(即大多数托盘应用程序如何与其服务器通信).如果这种方法也是跨平台的(在Mono中工作,那么我认为远程处理已经出来了?)
忘了提一下,我们仍然需要在现场支持Windows 2000机器,所以WCF和.Net 2.0以上的任何东西都不会飞.
从net.tcp切换到命名管道绑定的性能优势是什么?
问,因为我们在命名管道工作时遇到了一些问题,因此想知道是否值得付出努力.
我有一个C#应用程序,我想从我的app调用一个函数名称,例如SendChatMessage(字符串消息,int userid).但是这个函数属于我计算机上另一个运行的基于客户端/服务器的应用程序.我找不到如何做到这一点的方式.
我尝试使用Reflection库进行此操作但失败了.希望有人帮助我.
感谢帮助.
我目前有两个程序需要与另一个程序通信.它不一定是复杂的东西,它只是将数据从一个传递到另一个,非常简单.我正在考虑使用.net远程处理,但我听说有一个新东西WCF.我应该去.net远程处理还是尝试WCF?或者有更简单的东西使用?
编辑:两个应用程序都很简单,我不想与IIS,服务等有任何关系.
谢谢
在同一个盒子上的应用程序之间实现进程间通信的最佳方法是什么 - 都是用c#编写的?
管理器应用程序将发送命令,例如:停止,启动到其他应用程序.它还将监视应用程序并可能要求数据.
所有应用程序都将在Windows 7操作系统上运行的同一台机器上运行.
IPC Channel是一个不错的选择吗?被命名为Pipes更好的选择?或者套接字是更好的选择吗?
正在管理的应用程序都具有相同的名称.当它们启动时,它们会加载一个dll来确定运行哪些算法.
非常感谢您提供的任何帮助.
在同一台机器上有两个独立的项目A和B(你有他们的源代码),两者都可以编译成EXE文件.当A运行时,有一个类的实例,比方说a,我们希望它在运行时在B中的数据.什么是最简单的方法?面试问题和我的回答是:序列化并在B中反序列化.但是面试官对这个答案不满意,因为他告诉我"它可以更容易".最后我放弃了,因为我没有更好的解决方案.你的想法是什么?