WCFで快適かつ生産的に感じる場合は、他に何かを使用する強い理由はないかもしれません。WCFは、その契約パターンに従うと、必要に応じて他のシステムで動作するように変換するのが簡単なパターンになるため、開始するのに適していると思います。
私自身のプロジェクトの1つとして、WCFプロトタイプから始めました。「ラストマイル」を開始したとき、私は多くの場合、物事を成し遂げるためにWCFと戦っていました。特に、WCFのピアツーピアスタックでのゲームマッチメイキングに問題があり、必要なツールが十分に提供されませんでした。そのプロジェクトで、結局XNAのネットワークライブラリに切り替えました。これにより、探していたXboxのようなマッチメイキング(およびゲーマータグなど)が得られ、WCFで(ひどく)エミュレートしようとしました。(もちろん、XNAのネットワークライブラリは、XNAゲームで作業していることを前提としていますが、残念ながら、GfWライブコントラクトのないWindowsでのゲームの公開はサポートしていません。)
WCFからXNA Netへの切り替えでは、コントラクト自体(インターフェイスクラス)はそれほど(WCF属性を削除する以外)変更しなかったので、ネットワークコードの多くには触れませんでした。私の契約を実装または消費するリーダー/ライタークラスを書くことは、かなり簡単でした。おそらく両方のサポートを少し変更することで維持できたかもしれませんが#if WINDOWS
、その時点でWCFのサポートをやめることにしました。これは、そのプロジェクトの処理が簡略化されたためです。おそらく興味深いのは、XNAネットワーキングで他のプロジェクトを直接開始する際に、WCFのインターフェイス/プロキシ主導の「契約」パターンを使用していることです。私はそれをフォローするのは良いパターンだと思うので、その件についてブログ投稿を書くつもりでした。