【发布时间】:2012-05-12 09:57:12
【问题描述】:
我有一个 WPF 客户端调用 2 个 WCF 服务。
一项服务仅用于查询,一项服务用于命令 (CQS pattern)。
我应该如何调用命令服务?
我在某处读到命令服务中的所有操作都必须是“单向”的, 因为它们不应该返回任何值。如果出现问题 - 操作应该向客户端抛出“FaultException”。
但如果命令都是单向的 - 我在客户端该怎么办?
假设我在 WPF 客户端中有一个“添加产品”窗口,我输入信息并按“保存”。
我现在在服务中调用“AddProduct(Product)”,但是:
- 是否应该关闭窗口?
- 是否应该等待 10 秒以查看是否有任何 FaultException?
- 操作不应该是“单向”吗?如果是这样 - 命令服务中的所有操作是否应该返回某种类型为“成功”或“失败”的通用“结果”对象?
- 如果第 3 部分为“是” - 我是否应该在单独的线程中调用该服务并“禁用”窗口上的所有控件,直到我从该服务收到响应?
谢谢。
【问题讨论】:
标签: wcf command-query-separation