WCFサービスを介していくつかのドメインロジックを公開しています。MVC WebアプリケーションでWCFプロキシ呼び出しなどを明示的に記述するのではなく、WCFサービス参照を独自のプロジェクト(MyProject.BizLogic.Endpoint)にラップしてから、このプロジェクトへの参照をWebアプリに追加しました。
これは、コントローラーコードをクリーンで読みやすい状態に保つのに最適です。Endpointは、RetrieveCustomerDetails(int customerId)などの抽象化されたメソッドを使用してICrmSystemインターフェイスを公開し、CustomerQuery DTOにラップされ、リモートのCustomerQueryHandlerサービスで起動されるエンドポイントクラス内に公開します。分離テストでは、ICrmSystemをモックし、モックされた実装に対してコントローラーメソッドをテストします。
つまり、WCFには多くの不可解で繊細な構成が必要であり、現時点では、Webアプリのweb.configファイルにsystem.serviceModelバインディングとクライアント構成全体を含める必要があります。
この構成を管理するためのよりクリーンな方法はありますか?できればエンドポイント抽象化モジュールの一部として、Web開発者がWCFが舞台裏で行われていることを知る必要さえないようにしますか?どういうわけか、エンドポイントの構成ファイルへの参照をWebアプリに入れることはできますか?または、宣言的ではなくプログラム的にWCF構成を管理しますか?
ありがとう、
ディラン