需要WCF或Windows服务建议

时间:2012-02-23 15:26:49

标签: wcf c#-4.0 windows-services

我需要一些关于如何处理我准备开始的项目的建议。

我们有一个 Windows应用程序用户界面,其中包含20个图表控件,每个控件都有自己的选项卡控件。

这些图表显示了零件在工厂中通过输送线移动时的数据。

每个图表都显示了输送线不同区域的不同传感器的数据。

传感器全部与黑匣子接口通信,黑匣子接口又发送一个byte []流。

我从服务器上的套接字连接连接到字节流,并将数据读入我的程序。

在连接到该套接字时,字节流发送最后100条记录以使用。

更新图表

在第一个初始的100条记录之后,字节流只发送更新的数据。

这个字节流每隔几秒就会不断变化。

我无法对字节流的工作方式进行任何更改。

Windows应用中,我将该字节流分开,将其转换回可读数据并将该信息存储到内存中的表中。

表中只存储了最后100条记录。

使用后台工作程序,我不断读取字节流并更新表, 并从那里更新图表。

所有这些工作都在 Windows应用中完成。

我想创建一项服务来完成所有这些工作。

我希望服务只发送序列化图表数据并创建一个gui,它将在客户端的图表中读取并将图表更新给用户。

我必须能够在从字节流更新服务器时更新客户端。因此,所有更新都必须通过服务器启动。

我看过WCF,但似乎使用背景工作者不满意。

然而,看起来只是使用Windows服务,客户端将不得不定期发起回服务,而这实际上并不是实时的。

我考虑过两者的混合,但这似乎有点矫枉过正,但也许不是 - 这就是我在这里寻求建议的原因!

任何帮助或建议将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:2)

我会这样做:

[黑匣子] - > [ - > [服务] - > [数据存储] - > [wcf service]] - > [你的应用]

主要架构:

  • Windows服务[服务]定期从邮箱中提取数据
  • [service]抓取数据并将其存储在本地存储中的某个位置:数据库,时间序列,平面文件
  • [service]也封装了黑匣子,其余的基础设施不再与[黑匣子]交谈,只与你的wcf服务对话。这很好,因为您可以根据需要制作接口。
  • [wcf service]是应用程序数据需求的唯一接口,它通常由其他东西托管:您的应用程序,Windows服务或iis。我是最简单的选择。
  • [您的应用]是来自wcf服务的数据的最终消费者,并且它对黑匣子一无所知。