InstallShield .v. InstallAware sequences.
Posted: Wed Feb 11, 2009 10:14 am
IS has a number of potentially complicated sequences for UI and execution. The sequences in IS can be quite intimidating especially when you pepper it with custom actions. I even find it tricky to maintain project files when I'm the author!
From where I sit, IA has a much less cluttered sequence. I'm going to be quizzed on it for sure but do you think IS has over-complicated the sequencing or has IA over simplified it? The point I'm getting at is that maybe IS is more comprehensive or tries to do or offers too much.
IA on the other hand has a much less cluttered interface which is refreshing but does less cluttered and simplified translate into less powerful? I know IA was designed from bottom-up but I'd like someone to comment all the same. I don't see any major red flags waving at me but when I go into the proposal for purchase phase, I'd like to try and preempt some topics that are likely to be queried. Thanks.
Posted: Wed Feb 11, 2009 2:09 pm
Good questions, Peter.
Think of MSI tables as assembly language (indeed, they are that difficult).
Think of InstallShield as an MSI editor (an IDE for assembly programming) with a few bells and whistles on top (such as the ability to run custom InstallScript, and visually render part of assembly code).
Now enter InstallAware.
Think of InstallAware as a high level programming language (such as C++), featuring a script called MSIcode which automatically gets compiled into assembly code at build time (MSI tables).
This is exactly what happens - your MSIcode script is parsed and built into an MSI database at build time.
So there you have it. The difference is like night and day. InstallAware is both more powerful and easier than InstallShield in real world usage.
As for MSI sequences...since InstallAware is an MSI compiler, naturally, MSI packages created by InstallAware also have sequences, just like those generated by InstallShield. The difference is in the abstraction.
The MSIcode script (or anywhere else in the InstallAware IDE) never exposes MSI sequences, because as far as we are concerned, they are too low level and the developer should never have to worry about them. You just author your MSIcode script, your high level language, and let us worry about the details.
Whereas with InstallShield, no such abstraction exists.
Also, InstallShield has two separate notions: the MSI tables (and their visual editors for things like files, etc.) and the InstallScript. As you know, the script is totally divorced from the tables - since InstallShield is an assembly language compiler with a script patched on top, they cannot really integrate the two.
Contrast this with the InstallAware approach. The visual editors emit and update MSIcode script directly in the background. The script is not separate from the remainder of the setup, because the script IS the setup. Everything you spell out in the script happens line by line at runtime. The "how" (tables, sequences, etc.) is handled by the InstallAware MSI compiler, which is exactly as it should be.
So in InstallAware, you can rapidly prototype your setup in the GUI, and then swap to the script editor and customize everything as you need to, scaling up in complexity as your requirements dictate - while still retaining quick, visual access to all your MSIcode script when you go back to the visual editors to get a big picture perspective. No such possibility exists in InstallShield - since they are a low-level only tool with scripting patched on top, they cannot provide this level of integration and ease of use.
Posted: Wed Feb 11, 2009 3:31 pm
You mentioned the MSI tables and that made me shudder with dread and fear. I know from experience having to edit those tables on occasions and how easy it was to break something because the relationships among the tables is poorly documented. On one or two occasions I had to patch a table because IS failed to complete the relationships. You'd only know about it at install time when some really cryptic messages popped up from the woodwork.
It's comforting to know that IA handles all of that directly. The positive side is that you don't have to expose those tables so I'm working on the idea that Pandora's box is best left locked and hidden. Another thing I like is that the MSIcode is robust. You can only add code that is syntactically valid unlike InstallScript where you edit to your heart's content and then hope that all the toys you've brought to the party work on the big day. I eschewed InstallScript when I could although it was sometimes required. VBScript was not much better and made the assumption that all the correct runtimes were installed on the target machine. Mostly yes, but once in a while no, such as the scripting runtime dll and I recall, a missing file that tacoed the DOS "choice" command.
I've almost got a bald spot above my right ear trying to work things out. Now, IA has at least allowed some of the hair to grow back.
Re: InstallShield .v. InstallAware sequences.
Posted: Tue Oct 19, 2010 10:45 am
..."without Rocket Science" is a good tag for the product. Doesn't really matter whether you are an expert at MSI ot not, the bottom line is the bottom line. No one builds a better install than IA as fast or easy. Any one that argues that fact needs to take some business classes. Time is money and IA saves and makes me money period. It also makes me look good. First impressions are even more important in this day and age. Some IA support guys may seem a bit snooty, but the product speaks for itself and I think it has earned that right and continues to prove it with each new version.
Re: InstallShield .v. InstallAware sequences.
Posted: Fri Nov 02, 2012 10:55 am
Many many thanks ... but do you really think that I seem a bit snooty?
By the way I am really happy that IA has at least allowed some of your hair to grow back.