web-dev-qa-db-ja.com

WCFとASP.NET-バイナリIPC

私はWindowsサービスとリモートIISサーバーがあり、ユーザーとの対話なしで通信する必要があります。2台のマシンが同じネットワーク上にあることを保証できないため、サービスはインターネット経由でサーバーのパブリックIP(セキュリティは非常に重要です)を送信し、暗号化されたバイナリを送受信しますが、サーバー側でASP.NET RESTfulサービスまたはWCFのどちらを使用するかを決定しようとしています。

クライアント開発でPOCOを直接参照して使用できるように、WCFのアイデアとそのインターフェースを公開するのが好きです。しかし、それは私にとってかなり新しいものであり、すべてを設定してセキュリティを正しく設定するのは面倒です(特に、net.tcpにHTTPをドロップしている場合)。

ASP.NETはセットアップと実行がはるかに簡単ですが、クライアント側のhttpクライアントオブジェクトからREST apiを使用するのは不格好です。Webページがないので、HTTPリクエストがあるので応答は冗長なオーバーヘッドのようです。

WCFについてもう少し知っている人から、これはASP.NETを介したWCFのより適切な使用でしょうか?または、ここで何か不足していますか?

2
user1868265

バイナリJSON(BSON)またはJSON-RPCでASP.NET MVCを使用することを検討してください。

全体として、JSONは、WCFで使用されるSOAPプロトコルよりもオーバーヘッドがはるかに低く、今後Microsoft(およびその他)からのサポートが向上します。

JSONをサポートしているように見えても、このためにWCFは使用しません。 WCFは扱いが難しいという評判があり、より優れた、より機敏な(そしてもちろん、より現代的な)代替手段があります。

RESTコンプライアンスは必ずしも必要ではありません。RESTは、インターネット上のドキュメントおよびその他のリソースの標準的な表現と操作を確立するためのプロトコルです。この機能が必要な場合、RESTは必要ありません。

参照
JSON RPC仕様
Asp.Net Core用のJSON Rpcルーター
BSON仕様
ASP.NET Web API 2.1でのBSONサポート
私が説明した方法REST妻に

0
Robert Harvey

WCFが持つさまざまなセキュリティとプロトコルのオプションに関しては、WCFが優れた技術であることは間違いありません。ただし、実際は、Restスタイルの.net Web.Apiまたは.netコアMVC APIに取って代わられています。

HTTPSは十分に安全で、バイナリデータは適切にエンコードでき、クライアントは手動で記述でき、非常に重要なjson APIはWebサイトやMicrosoft以外の言語で簡単に利用できます。

古いからといって、2018年にWeb.ApiよりもWCFを推奨する人はいないと思います。

0
Ewan