自定义RPC与WCF对比.NET Remoting

时间:2011-05-10 06:18:12

标签: .net wcf serialization .net-remoting

我编写了一个简单的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方案构建小型内部应用程序,还是尽快抛弃Remoting / WCF?

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

1 个答案:

答案 0 :(得分:1)

首先,.Net Remoting现已弃用,有利于WCF,请参阅Does WCF really replace .NET Remoting?

WCF快速且相对轻量级。 然而,WCF的主要优点是它是如此可配置。几乎只进行配置更改,您可以更改序列化格式,传输协议,身份验证机制,QOS功能(可靠性/安全性/可伸缩性)。它还具有足够的可扩展性,如果它不能满足您的需求,您可以自己添加它。最后,它从通信代码中抽象出应用程序代码。

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