2011-08-13 37 views
1

我上,我想提供一個外部API庫,將允許其他應用程序與我的查詢狀態信息通信的媒體應用工作。我的應用程序是用C#編寫的,並且API DLL將是相同的。最初我的想法是簡單地使用WCF和命名管道,因爲它提供了一個非常簡單的方法來編寫整個接口。最兼容的進程間通信協議

但是,我意識到,這樣做會非常排除來自與應用程序通信的任何其他語言或平臺,如果我曾經想製作,例如,Android或網絡遠程它。

所以,我可以使用什麼協議,將允許從我的C#代碼中的快速和簡單的界面,而且還允許在其他平臺編寫的API。

基本要求是:

  • 本地和遠程通訊
  • 低開銷
  • 過程調用
  • 文件傳輸(發送媒體)
  • 預現有的C#,開源庫會對人好點。

我已經看了很多的選項,使用XML-RPC和JSON-RPC過,但想知道什麼是社會認爲是最好的選擇。

回答

2

我想使用WCF這是做你想做的最好的方法。維護簡單,覆蓋您的所有需求並易於擴展。只是不要僅限於net.pipe訪問您的API。我認爲你應該使用net.pipe,net.tcp和基本http作爲主綁定。我的意思是每個服務的幾個端點。因此,無論用什麼語言編寫客戶端應用程序,都可以選擇使用什麼綁定來訪問您的API服務器。

例如:在同一臺機器上

  • C#客戶端應用程序 - 使用net.pipe在網絡
  • PHP客戶端應用程序 - 使用基本的HTTP
  • Java客戶端應用程序在另一臺機器上 - 使用net。 TCP

作爲一個例子:

http://www.kevingao.net/wcf-java-interop/java-client-and-wcf-server.html