2008-11-12 42 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

相關問題