by Ross Mack - GUI Computing
WISE 6 has arrived, but has it really improved ?
To be honest I would have to say that WISE is probably my favourite development tool, warts and all. So I was immediately interested when WISE 6 was released to see what improvements had been made and where. Let's go through a few of them and see what some of the important differences really are.
If you develop apps for Windows with FoxPro you will be happy to know that support for distribution of FoxPro runtimes is now built in to WISE. This works just like the support for Visual Basic or BDE runtimes.
Debugging. (Enterprise Only)
Now this is a boon. In past versions even when you were running a script, even in test mode, there was no really good way of seeing what was going on under the covers short of plugging in a huge number of 'Display Message' items to tell you what the values of script variables and such were at certain points. This worked most of the time but really wasn't ideal. It often became an arduous process as you added more and more 'Display Message' items that displayed more and more information.
Now WISE Enterprise includes a real debugger that, although rudimentary compared to what you might find in Delphi or VB, is an excellent addition.
The debugger allows you to set breakpoints in the script wherever you like, and step through execution. A panel on the left of the script window lists all Script variables defined and their current values at all times, essentially playing the role of a simple watch/immediate window.
This feature is not yet perfect but is a great step forward and will help immeasurably in finding and sorting out those subtle logic errors that can creep in. It would be nice to somehow debug a script running on a remote PC, but this can usually be achieved simply by installing WISE (if temporarily) on that PC. This is a fairly reasonable option as WISE basically has no support files or registry settings that will effect the configuration of a particular PC, and therefore, how a script runs.
As WISE does not really use Syntax so much as predefined script items the above is something of a misnomer. Regardless of that this simple feature allows the user to view a script colour coded much like the code in most modern development environments. In fact the default colouration is similar to VB's defaults.
This certainly breaks up large scripts visually to allow them to be read more easily and to allow different script items to be more readily identified. I wouldn't say this feature has changed my life, however. Many of the script items still come out the same colour as they always were.
Custom Actions. (Enterprise Only)
This rather spurious name for a new feature really means that the user can configure a short list of script items that they commonly use (not every install script will need the 'Install ActiveX' item). The Script item list on the left of the script editor window now has a number of tabs. One is the normal list of script items as with previous versions of WISE, one is used in debug mode to display script variables (see above) and the other is the user's own list of 'favourite' script items. This is quite easy to configure, with it's own little dialog where script items can easily be moved to and from the custom item list.
|Those who have made extensive use of WISE in the past have sometimes found the need to make calls to exterior applications and functionality. Some have even discovered that this was possible by building DLLs that expose a specific interface that WISE knows how to call. This actually worked quite nicely but the fact that the interface had to be specific meant that it wasn't overly flexible and that you always needed to write your own DLLs.
WISE 6, however, allows you to not only call DLLs written to be called from WISE but any DLL function. This is really rather clever. You simply give WISE the location of the DLL, the function name and list the parameters including their types and whether they are input or output.
This feature is a real boon for those who demand a little more than what WISE delivers out of the box. You certainly won't need this feature in every WISE script you build, but it will really be a lifesaver when you do need it. Fortunately it's also implemented in a reasonably elegant way (for such a technical feature). Sample DLL code that demonstrates the usefulness and implementation of this feature also ships with WISE. The code is available for C, Delphi, and even VB. You could even call the Windows API directly.
One bonus with WISE 6 which I don't think made it onto the 'What's New' list is that it now ships with a complete copy of all the latest ODBC support files. This means that you don't have to rely on whatever versions are installed on your system being the correct versions to distribute. As newer versions are released you can simply update these directories. I tend to think this approach is valuable with all sorts of Runtime components from VBXs to MFC DLLs, to the huge array of support files that Crystal Reports (for example) needs.
One of the seemingly more simple enhancements in this version is the ability to perform more complicated expression parsing and string manipulation within your script. This can be very handy when you are reading information from data files or other obscure sources during your install or even just interpreting some Registry keys or INI file entries. Most common string functions are supported as well as boolean operators and simple mathematical operations.
It's not altogether obvious that these abilities are available, but have a look in the help file under Expression Parser and it lists the script items that support it.
All in all WISE 6 has given us a number of important improvements. Not everything will be useful every time around but the set of features now available (particularly in the Enterprise version) is now very complete. I would like to see some way to call ActiveX servers from WISE but I do realise that this presents a large number of technical issues that must be resolved before this can be done (requiring the installation of OLE, for example). WISE is certainly as good an installation product as I have seen, and WISE 6 puts it even further in front.