2

预先,这个问题与设计解决方案有关,没有代码可以分享

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

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

我的偏好将:

  • 在后台运行的 Windows 服务,它执行周期性的后端操作和网络访问。此服务还应向前端 (UI) 轮询信息,该信息在系统托盘图标(气球提示)中显示为警报
  • 向用户显示信息的 Windows 应用程序 - 通过单击托盘图标打开

以上考虑是基于我使用 .net 版本 1.1 进行 Windows 应用程序开发的经验。
但是,现在我在 .net 4.0 中开发并针对 Windows Vista 和 Windows 7 平台。

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

1. 听说不推荐使用与桌面交互的windows服务?
2、是否推荐使用WPF来开发这个应用的UI?
3.还有其他简单的解决方案或模式吗?

4

2 回答 2

4

我读过不建议使用与桌面交互的 Windows 服务?

服务本身不应该——但通过客户端应用程序(监听器)就可以了。

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

如果您需要一定程度的 UI 定制。如果视觉吸引力无关紧要,旧的简单 WinForms 就可以了。

WPF 的数据绑定功能也很出色,但对于大多数简单的场景并没有太大的不同。

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

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

于 2012-08-28T10:50:02.520 回答
1

我读过不建议使用与桌面交互的 Windows 服务?

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

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

这完全取决于您对这种或那种技术的经验。

于 2012-08-28T10:51:51.467 回答