假设有两种产品,一种是用Java编写的,另一种是用C#编写的。您喜欢基于Java的后端(非用户可见部分),但想使用C#(WPF)前端。连接它们的最佳方法是什么?
请注意,后端必须能够在服务器或本地计算机上运行,并且前端应该能够连接到任何一个。
我的第一个想法是使用像Ice这样的东西,或者可能是网络服务。
Go!
修改
转换代码或在各种中性VM(IKVM)中运行代码不是一种选择。
答案 0 :(得分:2)
Web服务应该是您的默认选择,因为在该空间中有很多关于互操作性的工作。
如果你不介意紧耦合,并且必须做出基于性能的决策,我遇到的两个解决方案是:
我确定还有其他人。
答案 1 :(得分:2)
虽然Web服务(WS- *)可能是正确的解决方案,但让堆栈进行互操作可能会很糟糕。
HTTP +(POX | JSON)和REST-ian架构有很多话要说。
答案 2 :(得分:1)
在java后端公开Web服务,让C#前端与java Web服务对话。查看WCF(Windows通信基础),它可能会更容易与Java Web服务交谈。
答案 3 :(得分:0)
您可以使用网络服务。
或者你可以使用IVKM将java代码直接嵌入到.NET程序集中。
答案 4 :(得分:0)
我在java后端工作过C#rich-client。他们通过网络服务进行沟通。我们真正遇到的唯一问题是继承层次结构,Web服务WSDL擦除。
答案 5 :(得分:0)
我相信在Java / .NET平台上使用Web服务存在一些互操作性问题。例如,一起使用Axis2和.net存在一些问题。在大多数情况下,存在变通办法。
我听说过有关使用REST-ian架构的一些好评。
答案 6 :(得分:0)
有几种方法可以创建/获取java和.net系统之间的互操作性。
最常用的是Web服务。 Web服务主要使用基于SOAP的通信机制,这种机制本身可能比其他二进制通信机制慢。 Web服务也不适合在Java和.NET之间传递自定义对象作为参数和返回值。
本文非常清楚地概述了什么: