2011-05-10 216 views
2

我已经写了一个简单的RPC类,它允许我在.net桌面应用程序和.net服务器应用程序之间序列化和发送二进制数据。简单地说,客户可以发送:自定义RPC vs WCF vs .NET Remoting

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行数据集(是的,这绝对有必要接收这么多的数据)。这全部只在局域网上运行。

+0

我绝对没有数据可以支持这个,但WCF提供了很多深度,同时管理非常轻巧。如果存在显着的性能差异,我会感到惊讶。 – 2011-05-10 06:49:49

+0

谢谢,这实际上只是一个假设,WCF会更慢。一旦我了解了更多有关WCF的信息,我会做一些性能测试。 – Satellite 2011-05-11 07:10:25

+0

你最终使用过WCF吗?任何性能测试,谢谢 – 2011-11-02 05:22:13

回答

1

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

WCF是快速和相对轻巧。 虽然WCF的关键好处是它是如此可配置的。几乎只做配置更改,您可以更改系列化格式,传输协议,身份验证机制,QOS功能(可靠性/安全性/可伸缩性)。它的可扩展性还不够,如果它不提供你所需要的,你可以自己添加它。最后它从通信代码中提取应用程序代码。

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