.NET Remoting真的被弃用了吗?

大家都在说.NET Remoting如何被WCF取代,但是我想知道这是多么准确。 我还没有看到任何官方的说Remoting被弃用,在我看来Remoting确实比WCF更有意义。 与Remoting相关的对象或方法都不被推荐,即使在框架的4.0版本中也是如此。 这也是我的理解,3.5和4.0框架中的System.AddIn使用远程处理。

有没有人有任何官方的话呢?

在文章中, select.NET中的通信选项 (3.0版本,因为这是该文章的最新版本),它指出:

8跨应用域通信

如果您需要支持同一进程中不同应用程序域中对象之间的通信,则必须使用.NET远程处理。

那么,这当然不准确,因为WCF肯定可以用来跨越应用程序边界,但它是否给出了正式的build议呢?

更新:我发送了Clemens Vasters(谁是拥有Remoting和WCF的团队)这个问题:

克莱门斯,我知道你是在同时拥有远程和wcf的团队中的,我有几个问题,我相信我需要去源代码。

首先,我有一个关于远程遥控是否正在消失的问题。 具体来说,我们有一个相当大的应用程序,广泛使用远程处理跨进程的跨应用程序域通信,我想知道这种远程使用是否被认为是“遗留”。 如果是这样,将AppDomain.CreateInstance和朋友用别的东西replace?

这是他的回答:

远程处理是.Net框架的一部分,因此它不会消失。 COM自Windows NT 3.5 / Windows 95以来一直在Windows,并没有消失,我也看不到很快就会离开。

也就是说,Remoting有很less的开发投入。 WCF是Remoting的inheritance者,代替了托pipe代码的COM / DCOM。

对于进行中的跨应用程序域通信,Remoting是CLR本身的通信方式。 如果您在短时间内看到性能问题抽取大量数据或发送大量消息,则应该仔细查看WCF和NetNamedPipeBinding。

称其为传统技术是一个更准确的描述。

http://msdn.microsoft.com/en-us/library/72x4h507%28VS.85%29.aspx

这个主题是特定于遗留的技术,为了向后兼容现有的应用程序保留,不build议新的开发。 现在应该使用Windows Communication Foundation(WCF)开发分布式应用程序。

更新:WCF不区分inter / intra / process / inter / intra-appdomain。 如果您在WCF中使用单机通信,则使用命名pipe道,使用它应该可以在几乎所有的实际场景中提供良好的性能。

有关各种分布式通信技术的性能比较, 请参阅此处 。

是。 Remoting已被弃用…并且是微软官方提供的。 这是链接:

.NET Remoting

文章的第一行粗体显示:

这个主题是特定于遗留的技术,为了向后兼容现有的应用程序保留,不build议新的开发。 现在应该使用Windows Communication Foundation(WCF)开发分布式应用程序。

我认为这个措辞是“不赞成的”,但显然他们把它称为“传统”

Clemens Vasters是Microsoft .NET Service Bus的技术负责人(这意味着Remoting和WCF都在这篇论坛post中讨论了WCF和Remoting)。 总结一下,他最终推荐WCF通过Remoting。

我不确定.NET 4.0是否在内部使用远程,但是可以尝试给Clemens发送这个问题……我确信他知道答案。

我认为现在(2015年)即使是跨应用程序域也是非常清楚的: https : //msdn.microsoft.com/en-us/library/vstudio/ms180984(v=vs.100).aspx

远程处理跨应用程序域本主题特定于遗留技术,为保持与现有应用程序的向后兼容性而保留,不build议用于新开发。 现在应该使用Windows Communication Foundation(WCF)开发分布式应用程序。

那么WCF也应该用于跨应用程序域。