0

我有一个调用 .NET WCF Web 服务的 .NET WPF 智能客户端。Web 服务完成大部分工作并将少量信息返回给客户端。因此,它与浏览器并不完全不同。

客户端调用 Web 服务,此时 Web 服务会做一些工作并返回一个“结果”对象。事情变得越来越复杂,我认为这是因为我没有应用 CQS(注意我现在说的是 CQS 而不是 CQRS)。我想重构一些东西以简化并引入 CQS。我仍然可以很高兴地更改 WCF 合同,以便这样做。

但是,这表明客户端应用程序将“发送命令消息”(即在 Web 服务上调用命令方法),然后“查询”(在同一 Web 服务上调用不同的方法)下一步该做什么. 我觉得这是不必要的;请求/响应样式是一种非常常见的样式(想想浏览器),如果您考虑一下,它在技术上会破坏 CQS。我在想,在我的情况下,在 Web 服务中提供操作并遵循 CQS,可以为两者之间的实际 Web 服务调用稍微欺骗系统。

这可以接受吗?

4

1 回答 1

0

编码设计决策是高度主观的,如果不遵循严格的标准来使整个应用程序受益,那么没有人会责备你。

CQS(命令查询分离)很好,因为它让您更有信心返回对象是正确的。这在访问内存中的对象时效果很好,但在请求/响应风格的系统中它确实变得非常健谈(在已经非常健谈的协议之上)。

如果系统位于同一个 LAN 上,那么我会使用 CQS。但是,如果您通过互联网访问它或需要更快的性能,那么请使用常规的请求/响应模式。

于 2011-12-05T18:14:22.557 回答