WPF客户端和Java服务器支持?

时间:2009-11-02 21:55:54

标签: java .net wpf swing

我想就这样的场景提出一些想法:

1)我们需要构建一个在客户端上运行的实时应用程序。某种股票交易功能,每隔25秒就会更新到不同地理位置的少数客户端。 2)在服务器端(Glassfish / Java)收集和预处理数据

我们一直在讨论各种选择并缩小了两个选项: 1)客户端上的WPF 2)Swing(我们之前评估过JavaFX)

您对此有何看法:

1)在Swing vs. WPF中开发“中”复杂客户端应用程序的容易性/速度 2)WPF和app服务器之间的通信。如果我们有一个单片解决方案(Java),那么有更多选项可以进行高吞吐量数据交换,如Java Messaging,无需通过某些.NET到Java桥接器或通过XML,Web服务等发送数据。

欢迎任何想法。

谢谢

2 个答案:

答案 0 :(得分:9)

Swing vs WPF

我使用Swing和WPF完成了大量工作。 Swing至少比WPF落后了整整一代。确实存在无比较。 WPF的数据绑定和模板完全不同。如果您使用WPF,您将节省大量时间和金钱,并最终获得更好的用户体验。

与Java后端的.NET Framework连接

关于在Java端的前端使用.NET Framework:它非常容易实现,并且通常与纯Java解决方案一样好。例外情况是,如果您的主要瓶颈是网络带宽,并且您正在序列化复杂的对象树。

正如itowlson所指出的,WCF并没有谈及Java的专有二进制协议,但仍有很多选择可用于与Java交谈:XML,JSON,文本(REST)。我通常建议使用老式的XML Web Services。 设置WCF与简单的Java Web服务进行通信大约需要两分钟。

XML序列化通常只会增加5-10%的网络带宽而不是二进制,所以除非你有很多复杂的数据并且管道非常紧张,否则我会直接使用WPF / WCF到后端的Java。如果你确实有很多数据和一个小管道,你仍然需要WPF前端,因为它比Swing好得多,但你可以考虑通过线路使用WCF二进制格式化器并在服务器上进行转换。

答案 1 :(得分:1)

关于WPF与应用程序服务器之间的通信,您可以使用.NET的所有消息传递工具,尤其是Windows Communication Foundation。但是,WCF没有对Java的二进制消息传递的开箱即用支持(请参阅Does WCF play well with Java?以阻止信息),因此您需要使用XML,这是两端都可以支持的自定义传输(例如作为MQ)或桥梁。

(对于WPF与Swing的比较无法帮助,因为我没有Swing的经验。)