对于其他平台,操作系统,语言,还有其他类似WCF的东西吗?

时间:2011-12-18 11:47:34

标签: .net wcf

我觉得Windows Communication Foundation真的很棒(并且只有在4.5之后才能通过集成压缩获得更好)满足各种通信需求,我真的很喜欢用.NET编程。

但我真的很想知道其他语言的程序员如何处理他们所有的通信需求。还有像WCF这样的其他比较全面的解决方案吗?

(我知道Mono有部分WCF,这个问题是关于真正不同的方法,平台和操作系统。)

2 个答案:

答案 0 :(得分:2)

RemObjects SDKRemObjects Software提供的商业组件,可在各种平台,协议和语言之间提供类似WCF的功能。虽然可能没有WCF那么完整,但是RemObjects已经存在很长时间了(自2002年以来),它确实提供了很多功能:

平台支持:.NET(从1.1版开始,包括Mono),Delphi(版本7及更高版本,也包括Linux上的FreePascal),XCode(Objective-C和Cocoa),Silverlight,Javascript和Java(仍在开发中)想)

有些事情比WCF更容易,有些事情更难,(我只有.NET和Delphi平台的经验),但方法一般如下:

  • 您使用名为 Service Builder 的GUI工具(通常作为IDE插件提供)来定义您的服务,参数和结构,并生成一个名为 RODL 元数据文件(类似于WSDL),从中为任何或所有受支持的平台生成接口和实现文件。还会生成每个调用的异步版本。

  • 将组件拖放到表单上以配置要使用的通道和消息格式,并通过这些格式配置所有内容。存在许多不同的通道组件,例如HTTP,HTTPS,称为SuperHTTP的双向,TCP,SuperTCP,命名管道,UDP和广播通道,电子邮件等。您还可以选择许多不同的消息格式SOAP,JSON, XML-RPC,一种快速专有的二进制格式等。

  • 其他类似WCF的功能包括: ZeroConf ,类似于WCF服务器发现; 智能服务允许您同时使用多种协议轻松发布相同的服务;它可以通过可以提供额外日志记录,安全性等的事件进行扩展(类似于WCF IServiceBehaviors)。

答案 1 :(得分:0)

  

但我真的很想知道其他语言的程序员如何处理他们所有的沟通需求。

这实际上是非常有趣的问题,因为它涉及.NET程序员的最大问题。其他平台上的开发人员通常没有“半神”公司提供的“单一API来统治所有”。它们通常有多种选择,其中一些非常专业,以最有效的方式解决单一通信类型。因此,他们首先必须了解问题,然后选择最合适的API。 .NET开发人员通常不考虑任何其他选择,因为他们有WCF和WCF必须解决所有问题,不是吗?

通常,单个API可以做的事情越多,它就越复杂。它需要更多技能来使用API​​和更多技能来添加API的新功能。我喜欢WCF,但它是我曾经使用过的.NET世界中最复杂,最难以使用的API(留下简单的例子并尝试使用任何复杂的东西或与其他平台集成),同时也是WCF(特别是不合适的)框实现)不是解决每个跨进程或跨机器通信问题的API。有时WCF根本不合适。作为示例,我将使用双向通信,其中开箱即用的WCF实现会带来许多额外的需求和开销。另一个例子是大数据传输 - SOAP服务中的流传输不是传递数十(或更多)MB的解决方案。