【问题标题】:Custom RPC vs WCF vs .NET Remoting自定义 RPC、WCF、.NET 远程处理
【发布时间】:2011-05-10 06:18:11
【问题描述】:

我编写了一个简单的 RPC 类,可以让我在 .net 桌面应用程序和 .net 服务器应用程序之间序列化和发送二进制数据。简而言之,客户端可以发送:

Dim Message as new TCPMessage
Message.Handler = "NewUser"
Message.AddField("FirstName", "Paul")
Message.AddField("Photo", PhotoBytes)
Message.Send()

服务器会在另一端重建数据:

Public Sub NewUser (Message As TCPMessage)
    Dim FirstName as string = Message.GetString("FirstName")
    Dim Photo() as Bytes = Message.GetBytes("Photo")
    ...
End Sub

这一切都适用于我目前正在做的事情 - 它看起来非常轻量级和高性能。

我想知道的是,通过 .NET Remoting / WCF 执行此操作的优点/缺点是什么?我对这些技术知之甚少,但它们似乎更加灵活,而且它们的性能也可能较低,并且需要相当长的学习曲线。

根据性能、学习曲线的标准,并牢记没有其他人将维护代码,我应该继续使用我的 DIY 方案构建小型内部应用程序,还是尽快放弃它以进行远程处理/WCF?

编辑:性能是关键,客户端应用程序将定期接收约 200,000 行的数据集(是的,接收这么多数据是绝对必要的)。这一切都只在局域网上运行。

【问题讨论】:

  • 我绝对没有数据可以支持这一点,但是 WCF 提供了很多深度,同时设法变得非常轻量级。如果存在显着的性能差异,我会感到惊讶。
  • 谢谢,这实际上只是假设 WCF 会更慢。一旦我对 WCF 有了更多了解,我会做一些性能测试。
  • 你最终使用了 WCF 吗?任何性能测试,谢谢
  • 我最终还是使用了我自己的自定义协议,它很好地满足了这个应用程序的性能要求。不过,我没有与 WCF 相比的任何特定基准。

标签: .net wcf serialization .net-remoting


【解决方案1】:

首先,.Net Remoting 现在已弃用,取而代之的是 WCF,请参阅 Does WCF really replace .NET Remoting?

WCF 速度快且相对轻量级。 不过,WCF 的主要好处是它是可配置的。几乎只进行配置更改,您就可以更改序列化格式、传输协议、身份验证机制、QOS 功能(可靠性/安全性/可扩展性)。它也具有足够的可扩展性,如果它不能提供你需要的东西,你可以自己添加它。最后从通信代码中抽象出应用代码。

我肯定会在新项目中使用 WCF。我会从稳定、高性能、定制构建的解决方案中更改现有应用程序吗?这取决于变化的程度、现有解决方案的缺点以及 wcf 可能带来的潜在好处。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-24
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多