为 Web 部署购买或构建? [英] Buy or Build for web deployment?
问题描述
我一直在评估可用于 Windows 应用程序的各种安装和 Web 部署解决方案.我只是在这里澄清一下(没有太多细节,这些工具已经在其他问题中介绍过)我对选项的理解:
I have been evaluating the wide range of installation and web deployment solutions available for Windows applications. I will just clarify here (without too much detail, these tools have been covered in other questions) my understanding of the options:
- NSIS - 生成安装可执行文件的免费工具.小二进制.专门的,有时是迟钝的脚本语言.
- Inno Setup - 安装可执行文件的免费工具.各种二进制压缩方案.Pascal 脚本引擎.
- WIX - 生成 MSI 二进制文件的免费工具集.XML 定义语言.
- WIX ClickThrough - 用于打包、网络下载和自动更新检测的附加工具(现在是一部分WIX 核心).
- InstallShield - 用于安装打包的商业开发环境.生成 MSI 二进制文件.类 C 的 InstallScript 语言.
- Wise - 用于安装打包的商业开发环境.生成 MSI 二进制文件.
- ClickOnce - Visual Studio 支持的框架用于将应用程序发布到网络服务器,并自动检测更新.不支持自定义安装要求(INI 文件、注册表等...).软件包设置为 MSI 二进制文件.
- Install Aware - 用于安装的商业开发环境.生成 MSI 二进制文件.自动更新框架(网络更新).
- NSIS - Free tool that generates setup executables. Small binary. Specialized, sometimes obtuse, scripting language.
- Inno Setup - Free tools for setup executables. Various binary compression schemes. Pascal scripting engine.
- WIX - Free toolset to generate MSI binaries. XML definitions language.
- WIX ClickThrough - Additional tools for packaging, web download and auto update detection (now part of WIX core).
- InstallShield - Commercial development environment for installation packaging. Generates MSI binaries. C-like InstallScript language.
- Wise - Commercial development environment for installation packaging. Generates MSI binaries.
- ClickOnce - Visual Studio supported framework for publishing applications to a webserver, with automatic detection of updates. No support for custom installation requirements (INI files, registry etc ...). Packages setup as an MSI binary.
- Install Aware - Commercial development environment for installation. Generates MSI binaries. Automatic Update framework (Web Update).
如果我遗漏了任何内容,请告诉我.
If I have missed any, please let me know.
并在 StackOverflow 上发现了一些关于这些技术的有用讨论:
And found some useful discussions of these technologies on StackOverflow:
我使用过其中一些解决方案,以及少数专有的内部安装解决方案.他们主要关心打包安装并为开发人员提供访问运行时环境的框架.随着对 Web 部署和自动软件更新的需求不断增长,我希望在开发人员之间就软件和后续更新的 Web 交付框架达成更多共识,但我还没有真正找到共识.当然有可用的解决方案(ClickOnce、ClickThrough、InstallShield 更新服务),但它们都有相当大的限制(如果我错误地陈述了其中任何一个,请纠正我).我会对提供以下一些功能的框架感兴趣:
I have worked with a few of these solutions, as well as a handful of proprietary internal installation solutions. They are mostly concerned with packing installations and providing a framework for developers to access the run time environment. With the growing requirement for web deployment and automatic software updates, I expected to find more of a consensus among developers on a framework for web delivery of software and subsequent updates, I haven't really found that consensus. There are certainly solutions available (ClickOnce, ClickThrough, InstallShield Update Service), but they each have considerable limitations (please correct me if I mis-represent any of these). I would be interested in a framework that provided some of the following:
- 第三方托管/管理更新.
- 访问客户端环境(INI 文件、注册表等).
- 用户注册/激活.
- 反馈/错误报告
这给我留下了深刻的印象,即解决 Web 部署问题的最佳方法是通过定制构建的专有解决方案(可能利用现有的安装程序包).我已经看到这种解决方案适用于许多成功的应用程序:
This is leaving me with the strong impression that the best way to approach the web deployment problem is through a custom built proprietary solution (possibly leveraging existing installer packaging). I have seen this sort of solution work well for a number of successful applications:
- FileZilla - 对 update.filezilla-project.org 的 HTTP 请求以检查更新,下载 NSIS 二进制文件(我认为),然后关闭以运行安装.
- 大型多人游戏的自动更新是完全必要的,并且普遍使用专有系统实现.
所以,最后,我的问题:
So, at last, to my questions:
- 我是否错过了可以提供所需功能的 Web 部署框架?
- 我的要求是否过于具体,无法合理地期望第三方框架能够提供?
- 我应该购买还是建造?
推荐答案
- 如果您的特定要求是您业务的核心;即,您的业务的一部分是提供流畅且用户友好的部署/安装,而您觉得没有任何可用的部署库可以让您实现这一点,那么一定要继续构建您自己的.
- 如果您的特定要求很高兴,但它们不会成为您业务的重要组成部分;即最终用户通常不会期望或需要顺利的安装过程,或者永远不需要自己这样做(即他们将这一步骤传递给他们的 IT 部门),那么需要构建自己的只是为了满足您自己的特定要求是可能会被所涉及的额外努力所抵消.
我认为您需要定制解决方案的印象是正确的;看来您的要求将成为产品体验的关键,尤其是当您需要真正流畅的自动更新和反馈时.
I think that your impression that you will be needing a custom solution is a sound one; it seems like your requirements are going to be key to the experience of your product, especially if you need really smooth automatic updates and feedback.
这篇关于为 Web 部署购买或构建?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!