如何运行 业务逻辑在本地网络的一台计算机上,GUI 在另一台计算机上?

How to run business logic on one computer of the local network and GUI on another?

我在连接到本地网络的计算机上有一个 WPF 应用程序 运行,并且有一个特殊设备连接到此计算机,由该应用程序控制。有什么简单的方法可以将 GUI (WPF XAML) 迁移到连接到同一网络的另一台计算机,以便 GUI 和 BL 保持耦合?

我一直在研究 WCF,但有很多限制使得 WCF 适应我的情况非常耗时。如果 WCF 可以在一个 ServiceContract 中同时处理属性(根本不支持)和事件,那么它会完美地工作。

一种简单的方法?没有。

如您所述,您可以使用 WCF。您还可以使用 SignalR、消息总线、标准 TCP 套接字或许多其他技术。

然而,

None 将为您提供您似乎想要的绝对透明度。它们都解决了您将要在服务器上调用方法的概念,它可能会或可能不会 return 数据。在 TCP 的情况下,您发送数据并可能取回数据。您不只是 access/change 属性 或监听一个事件(SignalR 和 WCF 确实支持服务器-> 客户端调用,这 完全 不一样事情作为一个事件,但它可以像一个事件一样工作)。

我认为您需要考虑实施标准 client/server 模型,尽管您可能认为它很不方便。

不,没有简单的方法可以做到这一点。
如果你的GUI和BL在不同的机器上运行ning,那么你必须实现特殊的代码来执行应用程序之间的网络通信(即GUI和BL是两个不同的应用程序),如果 GUI 和 BL 紧密耦合,那么这样做几乎是不可能的,也毫无意义(与网络相关的代码将包含巨大的服务合同,远程处理将消耗大量时间,使 UI 交互缓慢而痛苦) - 它应该被重构。

但是,您的问题有一个解决方法 - 您可以 运行 您的应用程序在同时具有 BL 和 GUI 的计算机上,然后在不同的计算机上显示 GUI:RemoteDesktop 或 RemoteApp ( https://technet.microsoft.com/en-us/library/cc755055.aspx) 可以提供帮助。