2

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

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

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

我们有两种情况(也许您可以添加其他情况):

情景 1。

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

优点:

  • 易于检测任何变化及其影响。
  • 只有一种分布

缺点:

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

情景 2。

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

优点:

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

缺点:

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

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

谢谢!

哈维尔

4

2 回答 2

3

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

您可以探索System.Deployment 命名空间,特别是用于集成“严重更新”要求的ApplicationDeployment.CheckForUpdate 方法,以便应用程序自行更新。

于 2012-07-04T15:17:01.837 回答
0

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

你应该有

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

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

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

于 2012-07-04T15:17:01.970 回答