Day 017 - Installing applications

Lesson 2.9 is about deploying applications. 

With my project open, I went to Workshop | Executable, where I had a choice of 32 bit Windows, 64 bit Windows, or Linux:

Although the tutorial indicated 32 bit Windows, I decided to go with 64 bit. 

The project configuration wizard asked me for a project name, then let me choose the elements to include (windows, reports, queries, etc), the external components (CCMenu for the ? menu, and the Tip of the Day component).

Out of curiosity, I deselected the predefined query I'd created earlier; I wanted to see if this would be noticed by the configuration wizard. 

No warnings came up in the wizard itself, but when I completed the wizard WinDev compiled the application and produced the following warnings:

I fixed the problem, but I noticed that I wasn't seeing most of the configuration options as indicated in the tutorial.

There's a second phase to executable generation that happens after the initial definition of components and a successful compile (or a decision to continue in the face of an unsuccessful compile. The first window of that process looks like this:

I didn't see this window because I didn't continue after getting the error. But going back to the Workshop menu and choosing the option to create my 64 bit executable did bring it up.

Page 1 provided some feedback on my testing environment, including the number of tested elements. I don't have very high code coverage in this app. 

Options you can specify when creating the EXE include:

  • A splash screen
  • Whether to link in the "main library" or keep it separate (or not use it at all, which is not recommended)
  • Whether to allow multiple instances of the app on one computer
  • Error message customization
  • Whether to allow users to write and execute W language code
  • Create a patch instead of a full install (or something like that)
  • Data directory
  • Information to be included with the application (visible via Windows Explorer)
  • Code signing
  • Version numbering
  • Framework options

I'm a little unclear on the difference between "main library" and "framework". Clearly the framework involves a whole lot of files. But what then is the main library? Core RTL functions? 

There are a few different ways to handle the WinDev framework, and for some of these you have the option of renaming the DLLs, if that's important for your product branding. 

The following image shows all of the framework DLLs. There are quite a few, giving some idea of the breadth of WinDev's built in functionality. 

There is UAC support, and you can choose whether to include a manifest. 

That's about it for app options. I created my executable and had a look at the resulting directory. The app EXE itself came in at around 1.5 megs, but with all of the supporting DLLs the footprint was actually 42 megs. At launch the app used 14 megs of memory and did show as a 64 bit application. 

I don't have a desktop Linux install at the moment so I didn't test the Linux version of the app. But certainly being able to create a 64 bit version has some benefits; even if your app doesn't actually need massive amounts of memory, 64 bit support can be helpful on the marketing side. 

I still didn't have a setup program, but that wasn't hard to do. I decided to take this on myself rather than delegating to a child, as the manual implied I could do. 

The setup procedure (a.k.a. the installer)

The first part of the setup procedure wizard (available from the Workshop menu) covers pretty much the same territory as the configuration wizard.

The second part deals with setup specifics, such as:

  • Whether to include automatic update, and so which option:
    • LAN "push" update
    • via HTTP or HTTPS
    • Network reference setup via HTTP or HTTPS
  • Standard, compact, or MSI installer
  • Default directory
  • Customizing the installed files list
  • Whether to automatically synchronize database changes
  • Whether to install database drivers
  • Installing additional modules such as user macro support, reports and queries etc
  • Display a license agreement
  • Display a readme file
  • Add an uninstaller

The wizard indicates that including Reports and Queries (presumably this is end user stuff) in your install will add "181 Mo" which translates as 181 MB. This installer can also be downloaded via the ? menu if you don't want it included in the standard install.

There are a number of other optional tools that can be installed:

And you can skin the installer and specify supported languages. 

There are a number of deployment options including, surprisingly, diskettes:

I don't think I'd want to try floppies with the reports and queries library... 

I created a bog standard installer and tested it:

The installer defaulted to C:\Program Files (x86)\My Accounts\ which is for 32 bit apps. I think it should have been C:\Program Files\My Accounts\. 

The installer gave me the option of installing Reports and Queries, and provided a little more clarity on what this module does:

The installer ran without incident (other than using the wrong Program Files directory) and created a suitable shortcut for the app, which also ran just fine.