簡體   English   中英

C# 與 C 互操作與與 Java 互操作:哪個更好/更容易/更快?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM