代码之家  ›  专栏  ›  技术社区  ›  Mark

.NET远程处理真的被弃用了吗?

  •  89
  • Mark  · 技术社区  · 16 年前

    每个人都在说.NETRemoting是如何被WCF取代的,但我想知道这到底有多准确。我还没有看到任何官方的说法表明远程处理正在被弃用,而且在我看来,在某些情况下,远程处理比WCF更有意义。没有任何与远程处理相关的对象或方法被弃用,即使在框架的4.0版本中也是如此。据我所知,3.5和4.0框架中的System.AddIn使用远程处理。

    有人有任何官方的说法与此相反吗?

    在文章中,, Choosing Communication Options in .NET (对于3.0,这是该文章的最新版本),它指出:

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

    当然,这并不准确,因为WCF当然可以用于跨越appdomain边界,但它是否给出了该场景的官方建议?

    最新消息:我向克莱门斯·维斯特斯(他是负责远程处理和WCF的团队成员)提出了以下问题:

    克莱门斯,我知道你在拥有远程处理和wcf的团队中,我有几个问题,我认为我需要去问来源。

    首先,我有一个关于远程处理是否会消失的问题。具体来说,我们有一个相当大的应用程序,它广泛使用远程处理进行进程内跨appdomain通信,我想知道这种远程处理的使用是否被视为“遗留”。如果是这样,AppDomain.CreateInstance和friends是否会被其他内容替换?

    远程处理是.Net框架的一部分,因此它不会消失。COM从windowsnt3.5/windows95开始就在Windows中,而且还没有消失,我也不认为它会很快消失。

    也就是说,对远程处理的开发投资非常少。WCF是远程处理的继承者,它取代了托管代码的COM/DCOM。

    对于进程内通信,跨appdomain通信远程处理是CLR的本机通信方式。如果您发现在短时间内产生大量数据或大量消息的性能问题,您应该认真研究WCF和NetNamedPipeBinding。

    5 回复  |  直到 6 年前
        1
  •  54
  •   RichardOD    16 年前

    称之为遗留技术是更准确的描述。

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

    此主题特定于遗留问题 保留用于生产的技术 为了新的发展。分布的 现在应该开发应用程序 使用Windows通信 基金会(WCF)。

    更新:WCF不区分内部/内部/流程/内部/内部appdomain。如果您在WCF中使用单机通信,那么您可以使用命名管道——在几乎所有现实场景中,使用它都会提供良好的性能。

    see here .

        2
  •  11
  •   Matthijs Wessels    11 年前

    .NET Remoting

    文章的第一行用粗体表示:

    本主题特定于遗留技术,保留该技术是为了与现有应用程序向后兼容,而不是 建议进行新的开发。分布式应用程序现在应该 使用Windows通信基金会(WCF)开发。

    我认为这句话是“不赞成的”,但显然他们把它称为“遗产”

        3
  •  7
  •   Jean-Claude    7 年前

    如果您想迁移到.NET Core,您必须为它找到另一个解决方案

    .NET远程处理被确定为有问题的体系结构。它用于跨AppDomain通信,不再受支持。此外,远程处理需要运行时支持,维护成本很高。因此,, .NET Core不支持.NET远程处理,我们也不打算在将来添加对它的支持。

    https://docs.microsoft.com/en-us/dotnet/core/porting/libraries#remoting

        4
  •  2
  •   JohannesH    16 年前

    微软.NET服务总线(即远程处理和WCF)的技术负责人Clemens Vasters在年讨论了WCF与远程处理的关系 this forum post . 总结这篇文章,他最终推荐WCF而不是远程处理。

    我不确定.NET4.0是否在内部使用远程处理,但您可以尝试向Clemens发送问题。。。我相信他知道答案。

        5
  •  2
  •   Armando    11 年前

    我认为现在(2015年),即使是交叉应用也很清楚 域: https://msdn.microsoft.com/en-us/library/vstudio/ms180984(v=vs.100).aspx

    跨应用程序域远程处理 为与现有系统向后兼容而保留的技术 应用程序,不建议用于新开发。分布的 应用程序现在应该使用Windows通信开发

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

    推荐文章