【问题标题】:Beginner Windows Service / WCF and front end GUI implementation Question初学者 Windows 服务/WCF 和前端 GUI 实现问题
【发布时间】:2011-03-12 00:16:37
【问题描述】:

我正在尝试找出实现此设计的最佳方法...以下是我正在尝试做的一些背景:

我有一个简单的数字 I/O 控制器,它通过以太网将数据发送到我的计算机。我有一个程序可以通过以太网接收这些数据。我想要一个单独的前端应用程序,在 GUI 中呈现这些数据。我试图找出连接通过以太网获取 I/O 数据的程序以及将其显示为前端的程序的最佳方式。每当计算机启动并在后台不断轮询 I/O 时,该接口都应该运行。

我已经阅读了有关 Windows Communication Foundation (WCF) 的信息,这似乎是一个不错的方法。由于 Windows 服务会悄悄地不断轮询 I/O,并且任何连接到 WCF 接口的客户端都可以在 GUI 中呈现这些数据。

这一切都错了吗?这似乎是做事的好方法吗?我的前端客户端将如何从 WCF 服务中获取数据?

提前谢谢你。

【问题讨论】:

    标签: wcf windows-services wcfserviceclient


    【解决方案1】:

    这正是我所做的 - 在 Windows 服务中托管 WCF 服务。 Windows服务是进程; WCF 服务是完成工作的地方。

    就我而言,我的基于 WCF 的 CollectionService 大部分时间都处于待机状态。我使用 WCF 来启动和停止收集器,因为 WCF 编程模型使这很容易。但是,为了将数据从收集器获取到 UI,我使用 TCP 套接字,而不是 WCF。我知道 WCF 具有流模式,但是 (1) 我从未使用过它,并且 (2) 我相信以这种方式使用 WCF 会产生一些开销。套接字对我来说只是一个舒适的后备方案,但我认为 WCF 可以工作。

    如果您刚刚开始,可以参考这两个答案来使用 C# 启动和运行您的 Windows 服务。从那里,您只需创建 ServiceHost 并分别在 Windows 服务的 OnStart()OnStop() 回调中关闭它。

    如果您是 WCF 新手,请查看这个 SO question。

    Good and easy books/tutorials to learn WCF latest stuff

    还有一件事。在您的工作过程中,您可能会发现您希望 WCF 服务在某些事情发生时向您的 UI 提供事件。例如,您可以提供一个事件,定期通知 UI 已接收的字节数。为此,我强烈推荐 WCF 大神之一 Juval Lowy 的这篇文章。

    What You Need To Know About One-Way Calls, Callbacks, And Events

    他的发布-订阅框架可在他的网站IDesign.net 上免费获得,以及其他几个工作 WCF 示例。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      • 2012-12-18
      相关资源
      最近更新 更多