假設你有兩個產品,一個用Java編寫,另一個用C#編寫。您喜歡基於Java的後端(非用戶可見部分),但希望使用C#(WPF)前端。連接它們的最佳方式是什麼?接口C#和Java的最佳方式是什麼?
請注意,後端必須能夠在服務器或本地計算機上運行,並且前端應能夠連接到任一服務器。
我的第一個想法是使用類似Ice,或者可能是一個web服務。
然後去!
編輯
轉換的代碼或在某些品種中性VM(IKVM)的運行它不是一個選項。
假設你有兩個產品,一個用Java編寫,另一個用C#編寫。您喜歡基於Java的後端(非用戶可見部分),但希望使用C#(WPF)前端。連接它們的最佳方式是什麼?接口C#和Java的最佳方式是什麼?
請注意,後端必須能夠在服務器或本地計算機上運行,並且前端應能夠連接到任一服務器。
我的第一個想法是使用類似Ice,或者可能是一個web服務。
然後去!
編輯
轉換的代碼或在某些品種中性VM(IKVM)的運行它不是一個選項。
在java後端公開Web服務並使C#前端與java Web服務通信。看看WCF(Windows通信基礎),它可能使得與java web服務交談變得更容易。
您可以使用webservices。
或者您可以使用IVKM將java代碼直接嵌入到.NET程序集中。
我已經在Java後端工作到C#富客戶端。他們通過網絡服務進行溝通。我們真正遇到的唯一問題是繼承層次結構,即Web服務WSDL的擦除。
雖然Web服務(WS- *)可能是是正確的解決方案,但讓堆棧互操作可能會非常困難。
對於HTTP +(POX | JSON)和REST-ian體系結構有很多要說的。
我確實認爲跨Java/.NET平臺使用Web服務存在一些互操作性問題。例如,一起使用Axis2和.net會出現一些問題。在大多數情況下,解決方法存在。
雖然我聽到了一些關於使用REST-ian體系結構的好評。
有幾種創建/獲得java和.net系統之間互操作性的方法。
Web服務是最常用的。 Web服務通常使用基於SOAP的通信機制,其本質上可能比其他二進制通信機制慢。 Web服務也不適合在Java和.NET之間傳遞自定義對象作爲參數並返回值。
這篇文章給出了什麼是真正的很好的概述什麼: