【问题标题】:How to test and deploy distributed applications?如何测试和部署分布式应用程序?
【发布时间】:2012-06-14 18:58:39
【问题描述】:

我编写了一个客户端-服务器应用程序。有一台计算机运行服务器应用程序,多台计算机运行客户端应用程序。

到目前为止,每次我的应用程序有新版本/补丁时,我首先通过 VNC 将二进制文件复制到服务器应用程序,然后启动一个脚本,该脚本在客户端执行一个脚本,即复制将二进制文件复制到本地文件夹(网络执行不起作用!)...然后在每台客户端计算机上启动客户端应用程序...

那么有什么好的机会可以替代我的旧方法呢?

我尝试创建通过 http/ftp 更新的单击一次应用程序...但没有成功 ^^

【问题讨论】:

  • 我使用了开源软件部署。我建议使用 wpkg..wpkg.org。它很容易使用。它是使用javascript和xml实现的。
  • 我尝试创建一个通过 http/ftp 更新的单击一次应用程序...但没有成功 - 你能说得更具体些吗?我已经多次使用 Click Once over http。

标签: c# deployment


【解决方案1】:

我们使用一个名为 Presto 的开源应用程序:http://presto.codeplex.com/

完成初始设置后,每次部署只需两个手动步骤:
1. 将二进制文件复制到网络位置
2. 按下 Presto 中的按钮启动新部署

Presto 的最大优势在于您可以使用它来初始设置您的应用程序和服务器,并为每个环境指定适当的配置设置。启动部署后,安装会自动进行,并将正确的值写入配置文件(QA 获取 QA 值,生产获取生产值等...)。

使用 Presto,您可以停止服务、删除文件夹、复制新的二进制文件、更新配置文件等等……而且这一切都是自动化的。

【讨论】:

    【解决方案2】:

    这就是网络前端如此受欢迎的原因:)

    尝试实现良好的自动更新机制和版本控制。客户端具有硬编码的服务器版本,第一次调用所有调用服务器都包含自己的版本。当版本不匹配时 - 自动更新时间。在服务器上 - 它只是下载客户端应用程序安装的端点,这是跨版本的标准。

    所以客户端有外部更新进程,在客户端知道新版本存在后启动。更新程序的目标是下载新的安装/包,或者运行安装更新/重新安装客户端,或者解压并复制新的/修改的文件。

    当不使用某些外部库时。流程如下。

    单击一次是另一种方法,也应该有效。

    类似的问题在这里

    Auto update .NET applications

    无论如何,您的客户端应用程序可能需要一个好的安装程序。当您有安装程序时,只需执行简单的下载器/更新器和服务版本控制。

    【讨论】:

      【解决方案3】:

      用更少的代码做到这一点并不难。

      1. 在您的应用程序中设置 http 服务。
      2. 创建一个列出当前版本的文件。
      3. 在您的应用程序中设置 ftp 服务以提供新的二进制文件。
      4. 向客户端添加一个 Updater.exe 应用程序,这将通过 http 检查新更新并通过 ftp 下载新版本。还应制作客户端版本文件。

      因此,您只需再执行一次旧式方法即可完成! 现在我不知道客户端应用程序是否可以运行服务器,如果是这样,我建议将服务(http、ftp)与服务器应用程序分开。

      【讨论】:

        猜你喜欢
        • 2015-05-07
        • 2012-04-07
        • 1970-01-01
        • 2014-05-08
        • 1970-01-01
        • 1970-01-01
        • 2010-10-12
        • 2014-01-07
        • 1970-01-01
        相关资源
        最近更新 更多