【问题标题】:WPF Application Update Best Practices - Architectural ExplanationWPF 应用程序更新最佳实践 - 架构解释
【发布时间】:2013-08-12 12:25:07
【问题描述】:

这个问题不仅适用于 WPF,也适用于其他编程语言,但为了我和其他人,我会向家里的专家寻求专业建议。

我正在 WPF c# 中启动一个桌面应用程序,并且应用程序模块几乎每天都会更新。

以 WPF C# 为案例研究,谁能给出设计此类应用程序的架构解释。

例如,应用程序可以执行会计、审计等。主窗口 UI 和其他 UI 以及应用程序中的所有应用程序逻辑都会根据每日更新而发生变化。

更新任务应在后台执行,并在计算机启动时启动。更新在用户使用时不得干扰程序,但应在应用程序未运行或提示用户时执行更新安装。

我会感谢业内专家的贡献。

谢谢

【问题讨论】:

  • 有整本书可以回答这个问题
  • 我们可以从某个地方开始或提供参考吗?我将不胜感激。

标签: c# wpf architecture desktop-application auto-update


【解决方案1】:

您在此处描述的内容非常适合研究使用 MEF。

管理可扩展性框架将允许您使用符合您定义的标准接口的非静态引用库文件。由于它们不是静态引用的,因此您可以在已安装的应用程序中替换这些库文件,而无需重新编译应用程序的其余部分。

在这些术语中,任何“可替换”逻辑都应放在这些 MEF 库中,并像插件一样对待。这样您就可以在需要时更新它们。

至于处理新版本插件的检测和下载,您必须自己动手。

【讨论】:

  • 感谢您的回答,我现在正在研究这个 MEF,我认为这是一个起点,Kudos man,我可以从这里开始。
  • 如果您以前构建过此类应用程序,您如何处理下载和覆盖过程。虽然我可以从脑海中挤出一个可行的解决方案,但经过测试且可行的解决方案将有助于我的 RAD。
  • 这将涉及很多,因为您无法从应用程序域中卸载 dll,这会导致覆盖已加载到内存中的 dll 出现问题。 MEF 确实具有允许重建目录的功能,但我不确定它是如何在后台运行的。最大的问题是覆盖正在使用的 dll。
  • 好吧,我想我得坐下来处理这件事了。但至少给我这个提示,其余的应该是我的问题。上帝保佑你,真的很感激。
猜你喜欢
  • 2011-07-20
  • 1970-01-01
  • 2013-05-07
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-04
相关资源
最近更新 更多