2009-03-05 17 views
1

私はC#で現在LDAPに認証されているアプリケーションを持っています。 IBMのTivoli Access Managerは、ポリシー・サーバーとLDAPサーバー(および他のモジュールも含む)で構成されています。残念ながら、私たちの顧客のためにLDAPサーバーで認証することは受け入れられないため、代わりにポリシーサーバーにバインドする必要があります。相互運用、CやJavaのC#のためのよりよい言語は何ですか:C#とCとの相互運用Javaとの相互運用:どの方が優れていますか?

TAMのポリシーサーバが2つの認証のためのAPI、Javaで1、およびC

で1つの

私の質問を持っていますか?

メンテナンス性と開発コストを念頭に置いてください。

アドバンスの皆さんありがとうございます。

答えて

2

Cは、安全ではないアクセスを許可するために、.NETにネイティブインターフェイスがあるため、C#との相互運用が容易な言語です。 Javaと通信するには、JNIを経由してJavaに入るか、J#を使用するか、それ以外の方法でC#からJavaに通信して再び通信する必要があります。

私はJava通信(ソケットやWebサービスを除く)を行っていませんが、JNIを使​​用してJavaからCOMにC++コードで通信するチームでした。私たちはJNIソリューションをあまりにも扱いにくいものとして捨てなければならなくなりました。私たちはC#でC++コンポーネントを書き換え、2つのコンポーネント間の通信に専用のソケットを使用しました。これはすごくうまくいった。

この経験から、既にC#を使用している場合は、C#のC APIを使用します。これは簡単です。

1

私は過去にC/C++とインターフェースするためのManaged C++/CLIでうまくいって成功しました.Javaとのインターフェースについてはあまり話せません。

また、ストレートCの場合は、関数呼び出しを直接C#にエクスポートできます。

0

私はあなたが接続しているAPIはAPIだと思います。 1つのフロントエンドはJavaで、もう1つはCですが、Javaコード(おそらくCのみ)と対話していない可能性があります。

これは、どちらのインターフェースももっとシンプルだと思います。私はCがあると推測していますが、C#でJavaライブラリに簡単にアクセスできるようにする、優れたJavaバインディングソフトウェアがあれば、より良いかもしれません。

チャンスは両方とも、APIのすぐ下のCコードにリンクしています。

0

私はエディの答えが気に入っていますが、私はこの観察でそれを緩和します。あなたが家に帰ってきたスキルに依存します。あなたがJavaのプロをたくさん持っていれば、Javaを使うのが理にかなっています。たくさんのCプログラマがいるなら、そのチョイスは明らかです。

もう1つのコメント:確かですかTAM doesn't do .NET

0

私はjni4netの著者であり、JVMとCLRの間のオープンソースのインプロセスブリッジです。それはJNIとPInvokeの上に構築されています。

0

C#とCまたはJavaの間でブリッジを行う必要はありません。 Cheesoが参照しているように、TAMにはしばらくの間、サポートされている.NET APIがありました。詳細はhereを参照してください。