[英]C# Interop with C vs Interop with Java: Which is better/easier/faster?
我在 C# 中有一個應用程序,該應用程序當前通過 LDAP 進行身份驗證。 我們希望擴展功能以支持 IBM 的 Tivoli Access Manager,它由 Policy Server 和 LDAP 服務器(以及其他模塊)組成。 不幸的是,為我們的客戶使用 LDAP 服務器進行身份驗證是不可接受的,因此我們必須與策略服務器綁定。
TAM 的 Policy Server 有 2 個用於身份驗證的 API,一個在 Java,一個在 C
我的問題:對於 C# 互操作、C 或 Java,哪種語言更好?
牢記:可維護性和開發成本。
提前感謝大家。
在我看來,C 是 C# 交互操作的更容易的語言,因為 .NET 中有一個本機接口允許“不安全”訪問。 To communicate with Java, you have to go though JNI to get into Java, or use J#, or otherwise jump through hoops to communicate from C# to Java and back again.
I've not done any C# to Java communication (except across a socket or across Web Services), but I was on a team that used JNI to communicate from Java to COM via C++ code. 我們最終不得不放棄 JNI 解決方案,因為它太笨重了。 我們在 C# 中重寫了 C++ 組件,並使用固定的套接字在兩個組件之間進行通信。 這非常有效。
從這個經驗來看,如果您已經在使用 C#,那么我將使用 ZD7EFA19FBE047D39D74Z5ADB. 這很容易做到。
過去,我在托管 C++/CLI 與 C/C++ 接口方面取得了很好的成功,但在與 java 接口方面不能說太多。
此外,如果您要直接使用 C,您可以將 function 調用直接導出到 C#。
我是jni4net的作者,它是 JVM 和 CLR 之間的開源進程內橋梁。 它建立在 JNI 和 PInvoke 之上。
您不需要在 C# 和 C 或 Java 之間做任何橋接。 正如 Cheeso 所引用的,TAM 已經支持 .NET API 一段時間了——有關信息,請參見此處。
我認為您正在連接的 API 只不過是 API。 One front-end is Java, and the other is C, but you probably aren't interacting with Java code, probably just C.
也就是說,我想無論哪個界面看起來更簡單。 I'm guessing that C is, but if there is some great Java binding software that lets C# access Java libraries easily, it might be better.
它們可能都鏈接到 API 下方的 C 代碼。
我喜歡埃迪的回答,但我會用這個觀察來緩和它 - 這取決於你在家里擁有的技能。 如果你有一堆 Java 專業人士,那么使用 Java 是有意義的。 如果您有一群 C 程序員,那么選擇是顯而易見的。
另一條評論:你確定TAM 不做 .NET嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.