2012-03-22 114 views
1

我想知道在使用WCF手动完成二进制序列化时是否有任何性能开销问题需要考虑。我正在构建一个n层网站,并希望跨层实现异步行为。我计划以二进制形式传递数据以减少带宽。 WCF似乎是构建自己的工具的好捷径,但是我想知道在使用WCF和System.IO命名空间并构建自己的轻量级库之间是否有任何要点需要注意。二进制序列化与使用WCF

回答

2

有一个WCF的二进制格式化程序,虽然它不完全是二进制的;它会生成SOAP消息,其内容使用XML的.NET二进制格式进行格式化,这是一种高度压缩的XML格式。 (在this samples page上可以找到这样的例子。)

另外,只要格式化程序在客户端和服务器端都可用,就可以实现自己的custom message formatter,然后根据需要进行格式化。 (我觉得你还是得从WCF一些开销,但并不多。)

个人意见,没有开销的节省你可以从定义一个定制的二进制格式,和写所有的序列化/反序列化的获取量代码来手动实现它,将永远弥补你将花费在试图实现和调试这种机制上的时间和精力。

+0

Michael,感谢您在这里的评论。这也是我的猜测。我曾阅读过有关“WCF”不完全是二元的事实,这引发了我的担忧。我开始研究WCF,以避免必须编写我自己的所有管道。该链接非常有帮助。我将在设计几个“服务器层”时做些什么,并希望能够根据需求灵活地打破每个逻辑层。 WCF将为我节省很多时间。该网站将是异步的,并阅读密集。带宽始终是一个问题,但如果WCF重量轻 - 可能忽略不计。 – 2012-03-26 10:36:19