ZeroC 的 ICE (www.zeroc.com) 看起来很有趣,我有兴趣查看它并将其与我们使用 WCF 的现有软件进行比较。特别是,我们的 WCF 应用程序使用服务器回调(通过 HTTP)。
有谁对比过吗?进展如何?我对性能方面特别感兴趣,因为目前我们不太关心互操作性。谢谢!
几年前,我对 ICE 进行了非常简洁的回顾,虽然我之前没有直接比较过它们,但对 WCF 有一定的了解,我的想法可能有一定的相关性。
首先,将 WCF 与 ICE 进行比较并不完全公平,因为 WCF 是一种特定的远程通信机制,而 WCF 是更高级别的远程通信框架。
虽然 WCF 通常被认为是实现 SOAP Web 服务,并且这确实是它迄今为止的主要用途,但它也可以用于使用各种编码和传输通道来实现远程服务,这意味着理论上它可以用于高性能通信应用程序之间。
相比之下,ICE 是一种跨平台远程通信机制,它使用二进制编码在应用程序之间进行高性能通信。它是 CORBA 的简化演变,与 CORBA、DCOM、.NET Remoting 和 JNI 更直接可比。
然而,即使 ICE 和 WCF 之间没有直接对应关系,如果您需要 .NET 应用程序进行远程通信,那么它们都是竞争者。您可能需要考虑的一些决策点包括:
资源配置。与 ICE 经验相比,找到具有 WCF 经验的开发人员会更容易。
表现。如果您想要性能,那么 ICE 执行速度很快,但 WCF 也可以在高性能配置中使用。或者,.NET Remoting 可以提供非常好的性能,无论 MS 赞助的基准测试如何,我都发现它的性能比 WCF 好 10%。
跨平台。如果您需要与非 Windows 应用程序通信,那么您可以使用的 WCF 选项将受到限制。此外,由于每个 SOAP 堆栈似乎以不同的方式实现标准,因此创建真正通用的 Web 服务可能会很痛苦(尽管 WS-I 有所帮助)
如果您不需要从第一天起就追求每一点性能,那么我个人会选择从 WCF 开始,然后在性能变得至关重要时再考虑 ICE。即使如此,扩展服务盒可能比迁移到 ICE 更便宜,并且如果您没有任何奇特的跨平台需求,那么您总是可以考虑重新配置 WCF 以进行二进制编码等
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)