Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Buy or Build for web deployment? [closed]

Tags:

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 - 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.

And found some useful discussions of these technologies on StackOverflow:

  • Best Simple Install System
  • Best choice for Windows installers
  • Alternatives to ClickOnce

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:

  • Third party hosting/management of updates.
  • Access to client environment (INI files, registry, etc..).
  • User registration/activation.
  • Feedback/Error reporting

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 - HTTP request to update.filezilla-project.org to check for updates, downloads an NSIS binary (I think) and then shuts down to run the install.
  • Automatic updates for Massively Multiplayer games are entirely necessary and universally implemented using proprietary systems.

So, at last, to my questions:

  • Have I missed a web deployment framework that will provide the functionality I need?
  • Are my requirements too specific to reasonably expect a third party framework to deliver?
  • Should I buy or build?