2008-11-12 65 views
5

假设你有两个产品,一个用Java编写,另一个用C#编写。您喜欢基于Java的后端(非用户可见部分),但希望使用C#(WPF)前端。连接它们的最佳方式是什么?接口C#和Java的最佳方式是什么?

请注意,后端必须能够在服务器或本地计算机上运行,​​并且前端应能够连接到任一服务器。

我的第一个想法是使用类似Ice,或者可能是一个web服务。

然后去!

编辑

转换的代码或在某些品种中性VM(IKVM)的运行它不是一个选项。

回答

1

在java后端公开Web服务并使C#前端与java Web服务通信。看看WCF(Windows通信基础),它可能使得与java web服务交谈变得更容易。

0

您可以使用webservices。

或者您可以使用IVKM将java代码直接嵌入到.NET程序集中。

0

我已经在Java后端工作到C#富客户端。他们通过网络服务进行沟通。我们真正遇到的唯一问题是继承层次结构,即Web服务WSDL的擦除。

2

Web服务应该是您的默认选择,因为围绕这个空间的互操作性有很多工作要做。

如果你不介意的紧耦合,而且必须基于服务表现决定,两种解决我所遇到的是:

我敢肯定有其他。

2

虽然Web服务(WS- *)可能是是正确的解决方案,但让堆栈互操作可能会非常困难。

对于HTTP +(POX | JSON)和REST-ian体系结构有很多要说的。

0

我确实认为跨Java/.NET平台使用Web服务存在一些互操作性问题。例如,一起使用Axis2和.net会出现一些问题。在大多数情况下,解决方法存在。

虽然我听到了一些关于使用REST-ian体系结构的好评。

0

有几种创建/获得java和.net系统之间互操作性的方法。

  • Web服务
  • 的Visual J#
  • Java本地接口(JNI)
  • BytecodeTranslation
  • 运行桥

Web服务是最常用的。 Web服务通常使用基于SOAP的通信机制,其本质上可能比其他二进制通信机制慢。 Web服务也不适合在Java和.NET之间传递自定义对象作为参数并返回值。

这篇文章给出了什么是真正的很好的概述什么:

http://www.devx.com/interop/Article/19945

相关问题