如何开发代理以通知用户

时间:2014-11-07 06:49:52

标签: c# wpf winforms wcf agent

我想开发一个可以在用户桌面上运行的程序(代理)。它必须定期与Web服务通信,然后如果状态发生更改,它将通知通知气球中的用户。

我可以进行winforms或wpf项目吗? (它将与Web服务通信并通知用户)

或者我应该单独执行一项Windows服务,该服务将首先与Web服务通信,然后与另一个将通知用户的独立winforms应用程序进行通信?

感谢。

1 个答案:

答案 0 :(得分:0)

通过服务定期提取状态

您可以实现一个可执行(控制台)应用程序,该应用程序应具有调用Web服务以获取状态的逻辑。您可以使用windows task scheduler定期执行此exe。

有许多任务调度程序包装程序库可供使用,根据您的需要可以使用其中任何一个。

通知用户

如果状态已更改,则可以通过任何用户界面通知用户,这可以是WinForm或WPF应用程序。当任务调度程序启动的exe发现状态更改时,它将执行您创建的UI应用程序以通知用户。

如果您只需要一个表单来通知用户,那么除非您想使用WPF显示任何精美的UI,否则Windows窗体应该足够了。

为什么Windows服务可能不是一个好选择

使用Windows服务实际上很容易定期调用Web服务而不是使用任务调度程序,但是您将面临的问题是它无法与用户桌面轻松通信,这意味着它可以在用户桌面上直接显示/执行任何用户界面应用程序。您最终将编写一个IPC(进程间通信)机制,以便与Windows服务中的任何UI应用程序进行通信。