|The Installers competition|
|Written by Administrator|
|Monday, 11 May 2009 09:55|
Well, I guess it's time to compare the Ghost Installer with some of the market's leaders. We'll compare Ghost Installer with recent versions of Wise and InstallShield.
Ghost Installer 4.1, Wise for Windows Installer 5.0 Professional and InstallShield X Professional were used for testing purposes. Please note that at the present moment new versions of the specified products may be available. You can find information about last versions at the following locations:
Now let's proceed to the most interesting parts of this article.
When you see any program for the first time, I suggest that you pay close attention to its user interface. Let's start by comparing the UI.
User Interface At Work.
First of all, let's take a look on the screenshots of every program in action:
As you can see, all three programs are somewhat similar. But while working with a project, I've noticed that the InstallShield interface is not always so intuitive and user-friendly as it needs to be. There is an annoying help panel in every IDE module (which generally is an attribute of bad-planned user interface). Also I've noticed that the InstallShield IDE is quite slow and has some other minor disadvantages (such as lack of scrollbars in the dialog editor which made me unable to edit some of the "wide" dialog windows). As for the Ghost Installer IDE, it's just good. Everything is well planned, very intuitive and simple. The same is applicable to the Wise IDE.
One of the important parts of the user interface is a project wizard.
Project wizard allows you to create your project with just a few mouse clicks. It should gather required information (your application name, your company, etc.) and provide ready-to-build project as an output.
Ghost Installer contains several wizards to help you prepare your project with minimum time spent. No matter what programming language you're using, Ghost Installer Wizard will gather maximum information from your application project files and will automatically fill in all corresponding fields where possible (such as application name, company, and version information). It will also scan binary files of your program for dependencies and will automatically add corresponding files into the installation project. The following wizards are available in the Ghost Installer:
Also, there are several templates available in the Ghost Installer by default: .NET Application (Single file deployment), .NET Application (Web-based deployment), Advanced Project, Simple Project and Web Setup.
Let's see what other IDE's are being offered. Wise contains the following items in the start-up box:
InstallShield offers almost the same set of wizards and templates, but there is a project assistant which generally works almost as good as the Ghost Installer Wizard. The difference is that the InstallShield's project assistant doesn't detect required files for your application automatically (in InstallShield this can be done only for C#, Visual C++ and Visual Basic applications by analyzing their solution files).
All of these three IDE's allows you to save current project file as a template for new projects.
Microsoft .NET technology makes programming easy and fun enough, but you may get a headache trying to distribute your application. You need to distribute .NET Framework which is around 20Mb in size, install assemblies and solve many other problems. Let's see how our competitors are going to solve this very complicated task.
First of all we'll check out how the Ghost Installer copes with this problem.
Great functionality, isn't it?
Now we're switching to Wise. Wise for Windows Installer offers to distribute .NET Framework as a merge module and supports downloading .NET runtime files from the Web. But it doesn't have Ghost Installer's convenient version recognition system, so you're unable to specify the exact version of the .NET framework. Also Wise is unable to install .NET Framework service packs or J# redist. Wise can install assemblies as private or in the Global Assembly Cache and register them for COM interop. It can also install Visual Studio components, register assemblies for VS and generate native code during installation.
Unfortunately I was unable to perform detailed examination of how the InstallShield handles .NET installations for one reason: after using C# Setup Wizard InstallShield has modified my VS.NET solution file. After that my C# application's solution file wasn't recognized by the Visual Studio as a correct solution anymore. InstallShield supports .NET Framework and J# redist installation as well as installing .NET assemblies. It also integrates well with the Visual Studio IDE, but still its interface is not very intuitive and is simply inconvenient.
Ghost Installer puts a lot of effort to make deployment easy as possible. So Ghost Installer gets 5 out of 5, Wise - 5/5 and InstallShield gets 3/5 because of its hard-to-understand user interface and tendency to damage your Visual Studio solution files.
User Interface Issues:
User interface is one of the most important aspects of the installation program. Installer is the first thing the user sees after he/she downloaded or purchased your application. So it is important to make a good impression on the user from the first moments of communication with your software. Generally, installation interface presents several dialog windows joined into a sequence. Dialog windows can be skinned to match the style of your program.
Dialog editors of all three competitors offer almost the same functionality. gDesigner dialog editor offers some additional controls (such as WebBrowser component or Animation object) and an easy way to create and use custom dialog templates. As mentioned above, InstallShield's dialog editor doesn't have scrollbars, making it is very difficult to edit wide dialog windows.
The skinning. Although InstallShield supports skinning, its skins are kept in their own proprietary format and it seems that there is no way to edit them. There are a few samples available in the InstallShield distribution. Here's one of them:
Ghost Installer offers rich skinning capabilities, thanks to the Mr.Skinner plug-in. Any of the dialog controls can be skinned (windows, buttons, check-boxes, etc.) and dialog windows can be of any form, not just rectangular. See the sample:
Ghost Installer skin project consists of XML-file and several bitmap files. The skin compiler is included into the GI distribution. You can easily edit your existing skins or create your own skins from scratch.
Ghost Installer gets 5/5 once again, thanks to its extensive skinning capabilities. InstallShield gets 4/5. Wise gets 3/5 due to lack of skinning.
Advantages of Multilingual Installations:
Every user (especially someone inexperienced) would like to see the installation program in his native language. The task of the deployment program is to provide an easy way to edit and create language-specific strings, and to provide the installation program's developer with as many pre-translated languages as possible.
All of our competitors allow to manipulate language strings and files. Ghost Installer contains 31 pre-translated languages, InstallShield X contains 33 (this is applicable to the InstallShield X Premier/Professional; other editions may require to purchase language pack for an additional cost), and Wise offers only 5 languages "out of the box". (Language pack with a support for 20 additional languages can be purchased for $799. This price is valid on the moment of publication).
Ghost Installer allows your custom plug-ins to operate with language strings, the language tools are integrated into the dialog editor, and Installer's engine automatically selects an appropriate language during installation but still leaves a way for the user to choose language manually.
Ghost Installer and InstallShield got 5/5. Wise got 3/5 because of small number of languages included into the default distribution and it would be necessity to buy additional language pack for a high price.
Installation of Web-based applications:
If your application is Web-based then some additional steps are required to install your application. First of all you'll need to create virtual directories in the IIS service or install ISAPI filters. Also you may need to get a real disk path to such folders as InetPub, wwwroot etc.
All of our competitors support installation of Web-based applications. Let's begin with InstallShield. It supports IIS Web Servers and Virtual Folders. But there is one major problem. Is seems that there is no way to create a virtual directory without creating Web server. That's quite bad. As a user, I'd prefer to create a server manually or at least to have a choice whether to install directories onto a new server or to the existing one. Ghost Installer doesn't allow to create a new server but instead GI allows the user to choose a required server during installation. In addition to that, Ghost Installer let's you install ISAPI filters (globally or to a specific server). Wise does not allows to create servers or to install ISAPI filters. It just allows to create virtual directories. Both the InstallShield and the Ghost Installer allow you to fine-tune all of the Web-application settings (set application name and even modify application mapping). Wise only allows to s! et application name. All three competitors can restart IIS service during installation.
Ghost Installer receives 4,5 out of 5. It can create virtual directories and install ISAPI filter. But there is one minor disadvantage: it can't create IIS Web servers. InstallShield gets 4/5 and Wise 3,5/5.
Performing DirectX Installations:
If you are developing games or other multimedia software, it is most likely that you are using some of the DirectX's components such as DirectDraw, Direct3D, etc. So your deployment software must take full responsibility for installing these components.
As far as it seems, Wise doesn't support DirectX installation at all. InstallShield allows you to include DirectX runtimes into your installation as merge modules.
Ghost Installer offers a more powerful way to accomplish this task. First of all, you can take any DirectX distribution package which is required to run your application. Then you need to specify DirectX version. The installation program will check if the DirectX runtime of the specified version is available on the target computer and if not, DirectX components will be installed using provided redistributable files. But there is a number of additional DirectX deployment features available in the Ghost Installer. You can upload DirectX redistributable files to any Web-server and configure Ghost Installer to download these files during the installation if required. Ghost Installer will only download the files that are needed to install DirectX under user's operating system. You can even choose whether to install managed DirectX or not. And one more notable feature: DirectX installation process is being performed in CustomUI dialog windows. So you can edit and skin any of the DirectX installation dialogs (this includes DirectX EULA and installation progress dialogs).
Wise remains unranked in this round. Although I think that you can use DirectX merge modules with Wise, these modules are not included into Wise distribution. InstallShield receives 4/5. Ghost Installer gets 5/5 because of its outstanding customization possibilities.
All three competitors provide extensive functionality of working with files, folders, shortcuts, and the registry. Ghost Installer looks a little bit better because of its powerful mechanism of conditional processing which enables you to create most advanced conditions and control installation flow.
So the Ghost Installer receives 5 out of 5 and both Wise and InstallShield get 4,5/5.
Sometimes it is not enough to provide the user with just an ability to install and uninstall your application. For example, if the user accidentally deletes some of your application's vital files, the installer need to provide an easy and fast way to repair those files. There can be a situation when the user doesn't want to completely re-install or uninstall your program but would rather add or remove some of the application's components.
Wise and InstallShield are MSI-based installation systems. Maintenance functionality is native to MSI, so both of them support repair and add/remove modes. Ghost Installer can provide the same maintenance functionality with one exception. MSI-based installers can usually automatically detect when important application files are damaged and prompt the user to perform a repair procedure. With Ghost Installer, the user will need to start up the repair procedure manually.
Wise and InstallShield - 5 of 5. Ghost Installer - 4/5 because of the minor disadvantage mentioned above.
Why and How To Protect Your Installation:
Why do you need to protect your installation? If your program is completely unprotected, it is very easy for any user to install and to use your application without purchasing it. Protecting your installation with a simple password or a serial number leaves a chance that this information will be published on the underground Internet sites and boards, and you will lose money by allowing every unregistered user to install your application.
Installation protection is one of the most outstanding features of the Ghost Installer. While both Wise and InstallShield allow you to protect installation package with a simple password or a serial number, Ghost Installer offers you a complete Serial Number Kit.
First of all, your installation is protected with a powerful, standard RSA technology, which makes it impossible to crack (decrypt) your installation package without receiving a registration key. Every registration key can be traced back to its user. So if any registration key is published on the Internet, you will always know to which user this key belongs. You can easily block this user, disabling him/her to install any future release, because of violating the license agreement. License key may be up to 4096 bits long!
But that's not all. Ghost Installer includes SNK User Manager. This application keeps all information about your customers (names, e-mail and postal addresses, phones, purchase dates and much more). With SNK User Manager it is possible to send registration and news letters to your users with just a few mouse clicks. You can easily see all blocked or expired users. If you're selling your software via registrators such as RegNow or ShareIt, SNK User Manager will help you add new users to the user base automatically, thanks to its regexp-based parsing engine.
User Manager can easily integrate this user base with your installation projects.
It is claimed that the Ghost Installer was never cracked since this product appeared on the market. And I suppose that you can believe this.
No doubt, Ghost Installer's protection system is much more powerful than that of Wise or InstallShield. So Ghost Installer receives 5/5 once more. Wise and InstallShield receive 2/5.
If your application is database-driven, then you will probably need a way to perform SQL queries during application installation process.
All of our competitors allow execution of SQL queries. Ghost Installer supports MS SQL, MySQL, PostgreSQL, and Oracle servers. InstallShield and Wise support is limited to MS SQL server.
InstallShield has a number of additional tools, such as database import wizard.
Ghost Installer gets 4,5 out of 5 (it doesn't have the database import wizard), InstallShield receives 4/5 (lack of MySQL, PostgreSQL and Oracle support) and Wise only gets 3,5/5.
If your application consists of several components (for example, application files, sample files, help documentation, etc.), you can allow users to download only required components to save end users' bandwidth and to reduce your server's workload. In this case, the user will download small .exe file, which will ask the user to select required components and will download and install them. Web deployment may also be used for distributing OS specific files (if the user has Windows 98, there is no need to download files for running on Windows XP) as well as for third-party runtimes. The basic principle of Web deployment is to download only required files to save user's time and bandwidth and to lower your download server's average load.
Wise, Ghost Installer and InstallShield offer almost identical WebDeploy functionality. They allow users to download required application components and to distribute third-party runtimes via Web.
All of the competitors receive 5 out of 5 because of the extensive Web deployment capabilities.
Let's script a little:
Supporting scripts gives you almost unlimited customization possibilities. It is very convenient when you can control any aspect of the installation flow and perform any custom actions which are not offered by the engine of the installation program. For example, you can download and execute some file when the user presses one of the dialog buttons or you can validate entered information. There are many useful cases for scripting.
Let's see how our competitors support scripting mechanism. Let's examine InstallShield first.
InstallShield is powered by the InstallScript engine. InstallScript provides syntax-rich C-like language, as well as a large functions set for writing custom scripts. With InstallShield you can program very complex actions. That's really good. But there is one major disadvantage. Empty installation (without any user files) built with InstallScript are more than 2,2Mb in size! It is quite important for downloading applications, especially if the application size may be up to ten times smaller than the installation program overhead.
Now let's turn to the Ghost Installer. Ghost Installer has several layers of scripting support. First of these layers was already mentioned in this article - it is so called conditional processing. It allows you to apply a complex condition to an installation item (file, registry entry, shortcut, etc). This item will be installed, only if specified condition evaluates as true. Condition may look like "FileExists ('c:\myfile.exe') and RegKeyExists ('HKLM\MyKey')".
Second layer is presented by XML-based scripting actions. You can perform any custom actions by reacting on events broadcasted by the installer engine or any other plug-ins. You can use If-Then-Else conditions and variables. The following is a sample of scripting custom actions (please note that all commercial editions of the Ghost Installer include easy and convenient editor for custom actions):
<event eventid="EV_BEFOREINSTALL" name="MyEventHandler">
Such actions are processed directly by the installer engine. No additional overhead is added to the installation package if you use these actions.
As for Wise, it supports basic MSI scripting sequences and allows you to execute scripts based on WiseScript engine, which is quite similar to the Ghost Installer XML-based custom actions mechanism.
Ghost Installer gets 5/5 again. InstallShield gets 4/5 (for a very large size of the InstallShield engine), and Wise gets 3/5 because its scripting possibilities are not on the same level as InstallShield or Ghost Installer scripting.
More speed, less size:
Now it is time to perform some additional testing. We will measure sizes of installer engine overhead, installation preparation time, and actual installation time.
Before presenting you with the actual comparison, I'd like to say a few words about test stand's configuration and product version information. Our test computer has the following hardware specifications:
CPU: AMD Athlon XP 1900+
All programs (Ghost Installer, InstallShield and Wise) were installed onto the first 40Gb NTFS partition, and all of the test files (source files and compiled packages) were placed on the second 40Gb NTFS partition. System reboot was performed after every measurement to avoid influence of system cache.
Let's begin with the InstallShield. We tested both InstallScript and MSI-based installations. We selected to build single self-extracting .exe file. MSI and InstallScript were included into the installation package to ensure that installation will run on every operating system.
First we created an empty InstallScript installation (we did not add any files or any other installation items).
Now we're building an empty MSI-based project.
Then we chose to embed Windows Installer engine into the output setup.exe file.
It is an empty installation. It doesn't contain any useful files.
Then we prepared 460Mb of different files including text files, bitmaps, and executables. All these files were included into single installation package.
Created installation is MSI-based. Expected overhead is around 4,6Mb. Resulting total file size is 193Mb. Now let's measure installation preparation time for this package. Installation preparation time is the time from executing setup.exe until the first dialog of the installation sequence appears. 4 minutes and 30 seconds passed since double-clicking on the setup.exe icon and until "Welcome to the InstallShield wizard" window appeared! Installation process took 3 minutes and 5 seconds of time. During installation preparation and while files were being copied, it was impossible to work on the computer. It was simply overloaded.
Let's perform same tests with Wise.
For empty MSI-based installation (MSI engine is included) resulting file size is 4,27Mb.
Installation preparation time is 1 minute and 55 seconds. Installation time is 1 minute and 59 seconds. That's much faster than InstallShield's results.
Now it's time to test Ghost Installer. First of all, we built an empty installation. Its size was 420Kb. Let's add all of our test files. Setup.exe file size changed to 163Mb.
No doubt, the Ghost Installer has the best speed and compression when compared with other competitors. Since it doesn't use MSI for application deployment, Ghost Installer have an instant start-up, minimum overhead, and great speed. So Ghost Installer gets 5/5. Wise is a bit slower and gets 4/5. InstallShield is the last in these tests, and receives 3/5.
The InstallShield is a trademark of InstallShield Software Corporation.