1

別のアプリケーションがクエリステータス情報と通信できるようにする外部 API ライブラリを提供したいメディアアプリケーションに取り組んでいます。私のアプリケーションは C# で書かれており、API DLL は同じです。最初は、WCF と名前付きパイプを単純に使用することを考えていました。インターフェイス全体を非常に簡単にコーディングできるからです。

ただし、これを行うと、たとえば Android や Web リモートを作成したい場合に、他の言語やプラットフォームがアプリケーションと通信することがほぼ不可能になることに気付きました。

では、C# コード内からの高速でシンプルなインターフェイスを可能にするだけでなく、他のプラットフォームで API を記述できるようにするために、どのプロトコルを使用できますか?

基本的な要件は次のとおりです。

  • ローカルおよびリモート通信
  • 低オーバーヘッド
  • 手続き呼び出し
  • ファイル転送 (メディアを送信するため)
  • 既存の C#、オープン ソース ライブラリがあれば便利です。

以前に XML-RPC と JSON-RPC を使用して、多くのオプションを見てきましたが、コミュニティが最良のオプションであると考えているものを知りたいです。

4

1 に答える 1

2

WCF を使用することが、やりたいことを行うための最良の方法だと思います。メンテナンスが簡単で、すべての要件をカバーし、拡張も簡単です。API へのアクセスを net.pipe だけに制限しないでください。net.pipe、net.tcp、および基本的な http をプライマリ バインディングとして使用する必要があると思います。サービスごとに複数のエンドポイントを意味します。したがって、クライアント アプリは、記述されている言語に関係なく、API サーバーへのアクセスに使用するバインディングを選択できます。

例えば:

  • 同じマシン上の C# クライアント アプリ - net.pipe を使用
  • Web の PHP クライアント アプリ - 基本的な http を使用
  • 別のマシン上の Java クライアント アプリ - net.tcp を使用

例として:

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

于 2011-08-14T04:34:49.130 に答える