【问题标题】:Architecture for a windows desktop monitor application in C# [closed]C# 中 Windows 桌面监视器应用程序的架构 [关闭]
【发布时间】:2012-08-29 16:54:58
【问题描述】:

前面,这个问题是关于设计解决方案的,没有代码可以分享

我正在.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.有没有其他简单的解决方案或模式?

【问题讨论】:

    标签: c# winforms design-patterns architecture


    【解决方案1】:

    我了解到不建议使用与桌面交互的 Windows 服务?

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

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

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

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

    还有其他简单的解决方案或模式吗?

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

    【讨论】:

      【解决方案2】:

      我了解到不建议使用与桌面交互的 Windows 服务?

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

      是否推荐使用 WPF 开发此应用程序的 UI?

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-08
        • 2010-12-21
        • 2010-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-18
        相关资源
        最近更新 更多