C# C语言中windows桌面监视器应用程序的体系结构#

C# C语言中windows桌面监视器应用程序的体系结构#,c#,winforms,design-patterns,architecture,C#,Winforms,Design Patterns,Architecture,首先,此问题与设计解决方案有关,没有可共享的代码 我正在.NET4.0(一种系统监视器)中设计一个C#桌面应用程序,其行为如下 当用户登录到windows桌面时(且仅当用户登录时),应用程序启动 在整个用户会话中定期运行。 在用户桌面上显示系统托盘图标 单击托盘图标将打开一个窗口,其中显示一些信息(具有丰富的用户体验) 应用程序在用户注销时存在 此应用程序可能会在启动时保存其状态并存在(可能会保存到系统注册表) 需要访问网络和文件系统等系统资源 我的偏好是: 在后台运行的windows

首先,此问题与设计解决方案有关,没有可共享的代码

我正在.NET4.0(一种系统监视器)中设计一个C#桌面应用程序,其行为如下

  • 当用户登录到windows桌面时(且仅当用户登录时),应用程序启动
  • 在整个用户会话中定期运行。
    • 在用户桌面上显示系统托盘图标
    • 单击托盘图标将打开一个窗口,其中显示一些信息(具有丰富的用户体验)
  • 应用程序在用户注销时存在
  • 此应用程序可能会在启动时保存其状态并存在(可能会保存到系统注册表)
  • 需要访问网络和文件系统等系统资源
我的偏好是:

  • 在后台运行的windows服务,它执行定期的后端操作和网络访问。此服务还应轮询前端(UI)的信息,该信息在系统托盘图标(气球提示)中显示为警报
  • 用于向用户显示信息的windows应用程序-通过单击任务栏图标打开
上述注意事项基于我使用.net 1.1版开发windows应用程序的经验
但是,现在我正在.net 4.0中开发,目标是Windows Vista和Windows 7平台

我对最新趋势不太熟悉,我的问题是:-

1。我读到不建议使用与桌面交互的windows服务?
2。是否建议使用WPF为此应用程序开发UI?
3。有其他简单的解决方案或模式吗?

我读到不建议使用与桌面交互的windows服务

服务本身不应该这样,但通过客户端应用程序(侦听器)就可以了

是否建议使用WPF为此应用程序开发UI

如果您需要某种程度的用户界面定制。如果视觉吸引力不重要,旧的简单WinForms就可以了

WPF的数据绑定特性也很优越,但对于大多数简单场景来说,它并没有太大的区别

有没有其他简单的解决方案或模式

正在运行的Windows服务加上侦听该服务的客户端应用程序(这些选项不是相互排斥的,恰恰相反)

我读到不建议使用与桌面交互的windows服务

服务本身不应该这样,但通过客户端应用程序(侦听器)就可以了

是否建议使用WPF为此应用程序开发UI

如果您需要某种程度的用户界面定制。如果视觉吸引力不重要,旧的简单WinForms就可以了

WPF的数据绑定特性也很优越,但对于大多数简单场景来说,它并没有太大的区别

有没有其他简单的解决方案或模式

正在运行的Windows服务加上侦听该服务的客户端应用程序(这些选项不是相互排斥的,恰恰相反)

我读到不建议使用与桌面交互的windows服务

服务不应直接与桌面交互。但是,对于服务来说,公开一些供桌面应用程序使用的API之王(我想说,WCF)是完全可以的

是否建议使用WPF为此应用程序开发UI

这完全取决于你对这项或那项技术的经验

我读到不建议使用与桌面交互的windows服务

服务不应直接与桌面交互。但是,对于服务来说,公开一些供桌面应用程序使用的API之王(我想说,WCF)是完全可以的

是否建议使用WPF为此应用程序开发UI

这完全取决于你对这项或那项技术的经验