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

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

在这篇文章中,Choosing Communication Options in .NET(对于3.0,因为这是该文章的最新版本)声明:

8跨应用程序域通信

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

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

更新:我向Clemens Vaster(他在拥有Remoting和WCF的团队中)发送了这个问题:

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

首先,我有一个关于远程处理是否会消失的问题.具体来说,我们有一个相当大的应用程序,它广泛使用远程处理进行进程内跨应用程序域通信,我想知道远程处理的这种使用是否被视为"遗留".如果是这样的话,AppDomain公司也会这么做.CreateInstance和朋友会被其他东西取代吗?

以下是他的回答:

远程处理是应用程序的一部分.Net框架,因此它不会消失.COM自Windows NT 3.5/Windows 95以来就一直在Windows中,并没有消失,我也不认为这种情况会很快消失.

也就是说,用于远程处理的开发投资非常少.WCF是远程处理的继任者,取代了托管代码的COM/DCOM.

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

推荐答案

称其为遗留技术是更准确的描述.

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

本主题特定于旧版本 为以下目的保留的技术 向后兼容现有的 应用程序,不推荐使用 为了新的发展.分布式 现在应该开发应用程序 使用Windows通信 基础(WCF).

更新:WCF不区分内部/内部/进程/内部/内部应用程序域.如果您在WCF中使用单机通信,则使用命名管道-使用它在几乎所有现实场景中都会提供良好的性能.

各种分布式通信技术的性能比较see here.

.net相关问答推荐

API响应返回null错误. NET MAUI

将Visual Studio更新到v17.9.3后,IDE关闭,dotnet.exe命令报告致命错误.内部CLR错误.(0x80131506)

如何处理以用户为中心的CSP现时值?(uc-lock.bundle.js)

创建仅包含msBuild.Target的Nuget包

升级到.NET8后,SignalR(在坞站容器上)网关损坏

为什么我在环境变量中有不同的值?

如何判断属性设置器是否公开

如何在选项卡中 Select Winforms NumericUpDown 中的所有文本?

ICommand MVVM 实现

如何在 C# 中直接执行 SQL 查询?

msbuild,定义条件编译符号

找不到 Assert.Fail 和 Assert.Pass 或等效项

在 .NET (C#) 中本地存储数据的最佳方式

如何在 C# 中安全地将 System.Object 转换为bool?

如何在 RabbitMQ 中设置重试次数?

哪个密码字符在 winforms 文本框中显示黑点 (•)?

实体框架中的 POCO 是什么?

确定使用 ContextMenuStrip 的控件

我可以为 Dictionary 条目使用集合初始化程序吗?

枚举和匹配属性的 C# 命名约定