中间层异步 WCF 服务调用和向 UI 层返回数据的质量设计

Posted

技术标签:

【中文标题】中间层异步 WCF 服务调用和向 UI 层返回数据的质量设计【英文标题】:Quality Design for Asynchronous WCF Services Calls in a Middle-Tier and Returning Data to UI Tier 【发布时间】:2011-02-15 15:08:08 【问题描述】:

我有一个 WPF 应用程序,其中包含一组异步 WCF 服务调用,所有这些调用都混搭到背后的代码中,包括事件处理程序和所有内容,我必须对其进行重构以进行生产和维护。

我想在这里将关注点分开,以实现可维护性和所有其他这样做的充分理由,但我不确定如何实现这一点。有人对如何做到这一点有任何好的想法,或者至少有一些链接可以让我朝着正确的方向前进?

我的想法:创建一个“基础设施”层并引用那里的服务。将异步事件处理程序移至该层。当调用更新时,我将使用我自己派生的 EventArgs 类来冒泡我自己的事件,该派生类包含 UI 所需的数据。我将 UI 与基础设施层进行了相当耦合的挂钩,因为它将消耗我在完成异步数据调用后触发的事件。

【问题讨论】:

【参考方案1】:

设计 WPF 应用程序的最常见模式是模型-视图-视图模型 (MVVM)。 See this article for an introduction话题。

【讨论】:

以上是关于中间层异步 WCF 服务调用和向 UI 层返回数据的质量设计的主要内容,如果未能解决你的问题,请参考以下文章

WCF:尽管调用是异步的,但 DNS 查找会冻结 UI

WCF 仅异步操作

WCF服务需要调用异步

WP7:无法在对 WCF 服务的异步调用中捕获 FaultException

同时等待多个具有独立延续的 WCF 异步调用

如何异步调用我的 WCF 服务?