2012-06-26 55 views
0

我做的一個項目,有一個C#庫調用C#代碼在C代碼的最佳方式,但我需要調用它的C代碼Linux操作系統。什麼是最有效的方式來做到這一點?性能是首要考慮因素。什麼是Linux上

當然,我可以做一個C#服務,並使用TCP交談。但我不知道這是最好的辦法......

謝謝!

+3

如果性能是首要考慮因素,那麼用C語言重寫庫會是最好的性能表現。如果您需要維護一個C版本和一個.NET版本,那麼當然這個懲罰就是易於開發和維護的。 *親自*,我會去服務路線。這是SOA設計的目的 - 可重複使用的跨平臺可插入組件。但我很懶。我討厭維護兩行或重寫一些有用的東西。 – David

+0

感謝您的回覆。重寫不太可能。我只是看看[mono-c](http://www.mono-project.com/Embedding_Mono?title=Special:Upload&wpDestFile=Callback.png)。不知道它是否比服務選項更好。還有其他方法嗎? – user1165560

+0

@ user1165560當然是mono。有沒有其他方法可以在Linux上運行C#代碼? – Jasper

回答

0

我覺得最標準的解決方案是讓你的C#的服務出口「網絡服務」的遠程API,它的C代碼可以然後通過標準的Linux Web服務封裝訪問。實際上,這些支持RPC的一種形式,但具有編碼請求的網頁以及回覆。使用Web服務的優勢是一般性的;您的解決方案將移植到任何平臺,並將從任何語言,而不只是C.

另一種方式去是使用來自谷歌,Facebook,Twitter等一幫新的開源軟件包之一雲供應商開放其RPC基礎設施,因爲許多客戶提出了確切的問題並需要這些解決方案。在其他方面它們肯定會更快更強大:它們包括強大的性能可視化工具和各種調試器。微軟也有一個遠程方法調用技術。所以這些都是一種選擇,可能不那麼一般,但肯定更快。所以,你就必須要問的速度是多麼重要,對於這個特定的路徑...

那麼底線是,有,也許你可以使用五個包。不知道哪個獲勝或最好!