3 Replies - 601 Views - Last Post: 06 March 2018 - 04:16 PM

#1 Gotti   User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 13
  • Joined: 31-January 18

When would a piece of software need an installer?

Posted 05 March 2018 - 07:21 PM

My question is why do some pieces of software require and installing while others can simply be run via the .exe
E.g. I recently coded a text-editor that translates american english into russian, in C#. How do I know whether my project needs an installer to be run on other devices or not.

Thanks,
Is This A Good Question/Topic? 0
  • +

Replies To: When would a piece of software need an installer?

#2 Martyr2   User is offline

  • Programming Theoretician
  • member icon

Reputation: 5485
  • View blog
  • Posts: 14,451
  • Joined: 18-April 07

Re: When would a piece of software need an installer?

Posted 05 March 2018 - 11:44 PM

Installers are typically needed when there is advanced setup. For instance you need to place files in different parts of the file system, create some initial configuration settings based on a user's computer, needs to ask the user for some info before copying the files and to package along asset files (images etc) that don't all fit into a binary executable.

Another great example that should hit home for you in C# is the .NET framework. Installers can help the user make sure the correct version of the .NET framework gets loaded. If your program needs to do a bunch of different setup things before running the software for the first time, then an installer makes sense. :)
Was This Post Helpful? 2
  • +
  • -

#3 Radius Nightly   User is offline

  • D.I.C Regular

Reputation: 39
  • View blog
  • Posts: 321
  • Joined: 07-May 15

Re: When would a piece of software need an installer?

Posted 06 March 2018 - 08:44 AM

You can make anything stand-alone, but when you wanna include lots of advanced options that touches users and their settings in file system or doing some checks, etc., its easier with installer then making it all by yourself.

Im not fan of installers until they are really big and not avoidable, but depends on purpose of your software and its options.

For example you have software that have setting to add its own context menu on the right click.
Making it stand-alone/portable, imagine enabling that option, it will touch a registry of a current or all users, but you delete that simple .exe, because you didnt like it (no way for portable application to take care of that one), or you put it in a different location (like move from downloads to documents), so its context menu are left behind in the system as not valid option that will irritate you or another user, to remove it, you need to get application again, and remove context menu from settings, while uninstaller or new version installer could take care of it, as well as other changes in build.

Another example, one computer are shared among 3 users, you, Martyr2 and me, we both like Firefox to have.
With stand-alone, each one of us will need a duplicate (as simple stupid users who dont know anything), not so nice for storage (specially if its a big one), while with installer we can all get it from program files. But you want Chrome to be your default and Firefox as alternative, or different version, maybe your project works with only a specific .NET build, same as mine but different version, so we wont like to share it, not on same computer as users, same as our applications. You can make it, i can make it, but with installer its easier to isolate and decide settings that apply to all of users, and settings of each individual. You can make it with local and roaming or so, but maybe you wont like it for various reasons.

There are also another benefits from installers, such as compression to save storage (put it on CD, DVD, USB, internet...), that can speed up installing/coping files to PC (eg. from USB) for future use, by reading less data and writing more data then it would be with simple copy/paste whole big portable software. Stand-alone applications can have compression, to be able to launch them faster (eg. from CD or USB thats slow) for the bigger price of RAM.
Most installers also comes with some security features, such as digital signature (to sign whole packet), in order to check data before installing, if some file of your software are damaged, installer wont work. In another hand in stand-alone application will work, cant have signature to whole packet sometimes, and you have to make this check by yourself, checking each files CRC, writing a code to be checked with this specific hashes and while compiling, hope there was no changes on file, and future work would put more pressure on you disabling this checks and updating it (specially if your application have thousand of files). Or lets say your application are using some specific fonts or dll from eg. .NET, in stand-alone software you have to write this check and preparation by yourself in order to get application working.

Both have its own advantage and purpose, so its not like something is better over the other.
Was This Post Helpful? 2
  • +
  • -

#4 Gotti   User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 13
  • Joined: 31-January 18

Re: When would a piece of software need an installer?

Posted 06 March 2018 - 04:16 PM

View PostMartyr2, on 05 March 2018 - 11:44 PM, said:

Installers are typically needed when there is advanced setup. For instance you need to place files in different parts of the file system, create some initial configuration settings based on a user's computer, needs to ask the user for some info before copying the files and to package along asset files (images etc) that don't all fit into a binary executable.

Another great example that should hit home for you in C# is the .NET framework. Installers can help the user make sure the correct version of the .NET framework gets loaded. If your program needs to do a bunch of different setup things before running the software for the first time, then an installer makes sense. :)/>

Thank you very much, installers make much more sense to me now.

View PostRadius Nightly, on 06 March 2018 - 08:44 AM, said:

You can make anything stand-alone, but when you wanna include lots of advanced options that touches users and their settings in file system or doing some checks, etc., its easier with installer then making it all by yourself.

Im not fan of installers until they are really big and not avoidable, but depends on purpose of your software and its options.

For example you have software that have setting to add its own context menu on the right click.
Making it stand-alone/portable, imagine enabling that option, it will touch a registry of a current or all users, but you delete that simple .exe, because you didnt like it (no way for portable application to take care of that one), or you put it in a different location (like move from downloads to documents), so its context menu are left behind in the system as not valid option that will irritate you or another user, to remove it, you need to get application again, and remove context menu from settings, while uninstaller or new version installer could take care of it, as well as other changes in build.

Another example, one computer are shared among 3 users, you, Martyr2 and me, we both like Firefox to have.
With stand-alone, each one of us will need a duplicate (as simple stupid users who dont know anything), not so nice for storage (specially if its a big one), while with installer we can all get it from program files. But you want Chrome to be your default and Firefox as alternative, or different version, maybe your project works with only a specific .NET build, same as mine but different version, so we wont like to share it, not on same computer as users, same as our applications. You can make it, i can make it, but with installer its easier to isolate and decide settings that apply to all of users, and settings of each individual. You can make it with local and roaming or so, but maybe you wont like it for various reasons.

There are also another benefits from installers, such as compression to save storage (put it on CD, DVD, USB, internet...), that can speed up installing/coping files to PC (eg. from USB) for future use, by reading less data and writing more data then it would be with simple copy/paste whole big portable software. Stand-alone applications can have compression, to be able to launch them faster (eg. from CD or USB thats slow) for the bigger price of RAM.
Most installers also comes with some security features, such as digital signature (to sign whole packet), in order to check data before installing, if some file of your software are damaged, installer wont work. In another hand in stand-alone application will work, cant have signature to whole packet sometimes, and you have to make this check by yourself, checking each files CRC, writing a code to be checked with this specific hashes and while compiling, hope there was no changes on file, and future work would put more pressure on you disabling this checks and updating it (specially if your application have thousand of files). Or lets say your application are using some specific fonts or dll from eg. .NET, in stand-alone software you have to write this check and preparation by yourself in order to get application working.

Both have its own advantage and purpose, so its not like something is better over the other.


Thank you for response, it's incredibly detailed I'm definitely going to be referring back to it in the future. Great insight. Thank you again for your time and knowledge.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1