【问题标题】:Best WinForms Distribution Plan最佳 WinForms 分发计划
【发布时间】:2012-07-04 15:09:57
【问题描述】:

我在一家冶金企业工作,我们自己开发生产性软件。我们正在考虑改变我们的分配计划以适应我们当前的需求。我希望你能提供一些想法。

我们的应用程序是一个 WinForms,C# Framework 4.0。它位于 Intranet 中。它分为三个项目(UX、业务层和模型层)。应用程序被“逻辑地”划分为模块,每个模块执行不同的任务,但它们共享一些功能(即商业模块、财务模块、报价模块)。

如果需要,还需要注销所有用户,以便他们可以更新他们的应用程序(在严重更新的情况下)。

我们有两个场景(也许您可以添加其他场景):

场景 1。

整个应用程序只是一个随 ClicOnce 分发的 EXE。

专业人士:

  • 很容易发现任何变化及其影响。
  • 只有一个分布

缺点:

  • 小改动会影响整个公司(如果有改动为什么要更新 不会影响我的“模块”?)
  • 分布较重
  • 必须改进您的测试,以减少分发中的错误。

场景 2。

一个“触发”不同 EXE(每个模块一个)的小型应用程序 (EXE)。

专业人士:

  • 更新打火机。
  • 孤立的错误。
  • 孤立开发。

缺点:

  • 必须检测每个更改才能重新编译/分发每个模块 (EXE) 受影响。
  • 创建一个新项目以存储共享内容(表单、 类等)。

你怎么看?你知道其他的分销计划吗?

谢谢!

哈维尔

【问题讨论】:

  • 我知道这有点离题了,但是很多这些问题都会随着 Internet Web 应用程序而消失。为什么不接受这个?从技术上讲,这是另一种分配计划。
  • 也许,重新编写整个大型应用程序有点“昂贵”?
  • 对我来说,这看起来像是 programmers
  • 我有一个类似上面的场景。我们已经通过内部网络服务解决了。每个工作站都有一个要更新的模块的专用列表,并询问 Web 服务是否有待更新的更新,然后执行更新。
  • 我不知道您的预算,您需要配置多少台机器等,但我们使用单一产品来管理我们的远程位置,包括修补、软件配置......convergentinfo.com/products/afaria_components/configuration.htm 喜欢你,根据需要,我们有相同项目的不同版本的某些位置/PC。我们将所有安装存储在公司主要办公室的服务器上,并将零售地点分组。脚本控制哪些组获得哪些版本等。不适合每个人,但一石多鸟。

标签: c# winforms clickonce distribution


【解决方案1】:

我会混合使用您的两种方案,并为每个模块部署一个 ClickOnce。共享代码的更改将“触发”每个依赖模块的新部署。

您可以探索System.Deployment namespace,尤其是ApplicationDeployment.CheckForUpdate method 以集成“严重更新”要求,以便应用程序自行更新。

【讨论】:

  • ClickOnce 部署将很快进行小更新,因为显然只有已更改的模块需要重新部署。我目前有一个通过 ClickOnce 部署的大型单体程序,并且更新还不错(或者至少用户没有抱怨)。按照 Austin 的建议采用混合解决方案,您应该会很高兴。
【解决方案2】:

嗯...我想有人已经遇到过这个问题。 他决定创建动态链接库。

你应该有

  • 1 exe:具有非常简单代码的 GUI:仅调用模块

  • n dll : 具有明确 API 的模块,可由 GUI 或其他模块调用。

然后您可以轻松地用自动更新替换一个模块。 例如,IE 就是这样工作的。

【讨论】:

    猜你喜欢
    • 2021-09-27
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 2015-08-17
    • 2016-03-20
    • 2020-10-15
    相关资源
    最近更新 更多