如何测试和部署分布式应用程序?

时间:2012-06-14 18:58:40

标签: c# deployment

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

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

那么什么是可以取代旧式方法的好机会呢?

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

3 个答案:

答案 0 :(得分:4)

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

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

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

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

答案 1 :(得分:1)

这就是为什么网络前端如此受欢迎:)

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

因此客户端具有外部更新程序进程,该进程在客户端知道存在新版本后启动。更新程序进程的目标是下载新的安装/程序包,要么运行将更新/重新安装客户端的安装,请解压缩并复制新的/修改的文件。

不使用某些外部库时。流程看起来像这样。

Click-once是另一种方法,也应该有效。

Similr问题在这里

Auto update .NET applications

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

答案 2 :(得分:0)

用较少的代码来做这件事并不难。

  1. 在您的应用程序中设置http服务。
  2. 创建列出当前版本的文件。
  3. 在您的应用程序中设置ftp服务以提供新的二进制文件。
  4. 将Updater.exe应用程序添加到客户端,这将通过http检查新的更新并通过ftp下载新版本。还应该创建一个客户端版本文件。
  5. 所以你只需再做一次旧式的方法就可以了! 现在我不知道客户端应用程序是否可以运行服务器,如果是这样的话,我建议从服务器应用程序中分离服务(http,ftp)。