4.4 · Deployment: installation & automatic update

Level 4 · Expert: professional applications & deployment

4.4Deployment: installation & automatic update

Goal: Generate the executable, create the installation program and configure automatic update, with a test on a clean machine and a rollback plan.
Estimated time: 12 min · self-paced reading · If you only have 5 min: read “The essentials in 30s” + the diagram.

The essentials in 30 seconds

  • The WinDev delivery chain: executable generation (32/64-bit configuration), element library, installation program generated by a wizard (files, shortcuts, prerequisites, database, uninstallation) and automatic update.
  • ⚠️ Do not forget anything: the executable alone is not enough — you need the WinDev framework, the native database access, images, reports, resources and configuration files; an incomplete deployment results in errors at startup on the customer's machine.
  • ⚠️ Golden rule: test the installation on a CLEAN MACHINE, different from the development workstation; for an update, back up the data first, test on a copy and provide a rollback.

Mini-case thread — Yacine delivers his trading management application to the customer

Yacine, a WinDev developer at an electrical equipment trading SME in Oran, must deliver his management application to the company's workstations. He first generates the executable in the right configuration, then creates the installation program with the wizard: files, shortcuts, prerequisites, database creation, uninstallation. He checks that everything is included — WinDev framework, native database access, images, reports, configuration files. Then he tests the installation on a clean machine, different from his development workstation: that is where he discovers that his own machine 'accidentally' had an element that was missing elsewhere. He also configures automatic update so that the application detects and installs new versions. For the first production update, he backs up the data beforehand, tests the structure conversion on a copy of the real data, schedules the intervention outside critical hours and provides a rollback. He notes the reflex: never send an executable without having installed it on a clean machine.

Standalone case for this section: it returns in the course, the diagram, the script and the 48h challenge of section 4.4.

1. The delivery chain

Developing is one thing, delivering is another. WinDev provides a complete chain. (1) Generation of the executable: the program is produced from the project, choosing the configuration (32/64 bits, options). (2) The library: the project elements (windows, reports, queries) can be packaged into a file accompanying the executable. (3) The installation program: a wizard generates a complete installer (files, shortcuts, prerequisites, database, uninstallation). (4) Automatic update: an integrated mechanism lets the deployed application detect and install a new version — a considerable comfort as soon as there are more than a few workstations.

2. Forget nothing, test on a clean machine

The watch points of a successful deployment. (1) Forget nothing: the executable alone is generally not enough — you need the WinDev framework (runtime libraries), native database access, images and resources, reports, configuration files, special fonts. An incomplete deployment shows up as errors at startup. (2) Test on a clean machine, different from the development workstation: it is the only way to spot what you have 'in excess' on your machine — it is the golden rule of deployment. Your workstation already contains everything, the application necessarily works there, which masks what is missing.

3. Manage data and updates

Data requires particular attention. Distinguish the first installation (create the database) from the update (preserve the data and possibly evolve the structure — a delicate operation). For any production update: back up beforehand, test on a copy of the real data, schedule outside critical hours and provide a rollback. Also think about the necessary rights (installation, writing to certain folders), standard system locations, and inform users of what changes.

Common misinterpretation: 'The executable alone is enough to deliver an application; testing at home is the same as at the customer's; and an update does not need a backup'. No, triple mistake. The executable alone is incomplete: the framework, native access, resources and fonts are often missing. Testing at home proves nothing, because the development workstation already contains everything: only a clean machine reveals what is missing. And an update that changes the data structure requires a prior backup — Yacine first tests on a copy of the real data.
From the workshop to the customer workstation Generate, package, install, test on a clean machine, then update while preserving the data. Generation & library Executable+ elementsInstallation program Files,prerequisites, databaseClean-machine test &update Data preserved, rollback
Generate, package, install, test on a clean machine, then update while preserving the data.
Text version of the diagram (SEO / screen readers / translation): 1) Yacine, a WinDev developer at an electrical equipment trading SME in Oran, learns that delivery goes through a chain: executable generation (32/64-bit configuration), element library, installation program generated by a wizard (files, shortcuts, prerequisites, database, uninstallation) and automatic update. 2) He remembers that nothing must be forgotten (framework, native access, images, reports, configuration files, fonts) and above all that the installation must be tested on a clean machine, the only way to spot what is missing; for an update, you must preserve the data, evolve the structure carefully, back up beforehand and provide a rollback. 3) He therefore generates the executable, creates the installer, tests on a clean machine, configures automatic update and prepares an update tested on a copy of the real data. Lesson: testing on a clean machine is the golden rule of deployment.

🔎 Concrete example — 🔎 Concrete example — The delivery chain

The delivery steps, as Yacine follows them:

Chaine de livraison WinDev :
1) Generer l'executable (configuration 32/64 bits)
2) Bibliotheque : fenetres, etats, requetes empaquetes
3) Programme d'installation (assistant) : fichiers, raccourcis,
   prerequis, base, desinstallation
4) Mise a jour automatique : l'application detecte et installe
   la nouvelle version

REGLE D'OR : tester l'installation sur une MACHINE VIERGE
   -> revele le framework manquant, les acces natifs,
      les ressources, les polices, les droits

Reading: delivery is not 'copy the executable': it is a chain that goes from generation to automatic update.

Lesson: the clean-machine test is what distinguishes a successful deployment from a failure in front of the user.

Section vocabulary

Executable generation
Produce the program from the project, choosing the configuration (32/64 bits, options) — the first delivery step.

Simple example: Yacine generates the executable of his trading application.

What it is not: sending the source project to the customer.

Reflex: produce the program → generation.

Installation program
The installer generated by a wizard: it places the files, creates shortcuts, installs prerequisites, prepares the database and handles uninstallation.

Simple example: Yacine generates the installer with the WinDev wizard.

What it is not: copying the files by hand to each workstation.

Reflex: install cleanly → the installation program.

Automatic update
Integrated mechanism allowing the deployed application to detect and install a new version.

Simple example: Yacine configures automatic update for the six workstations.

What it is not: manually reinstalling each workstation for every version.

Reflex: distribute a version → automatic update.

Clean-machine test (⚠️)
The golden rule: test the installation on a machine different from the development workstation, the only way to spot missing elements (framework, native access, resources).

Simple example: Yacine installs on a clean machine and discovers a forgotten native access.

What it is not: testing only on his development workstation.

Reflex: reveal what is missing → the clean-machine test.

Data structure evolution
During an update, existing data must be preserved and its structure possibly modified — a delicate operation, to be backed up and tested.

Simple example: Yacine converts the structure on a copy of the real data before deploying.

What it is not: modifying the structure directly in production without a backup.

Reflex: evolve without losing → the tested structure evolution.

In practice — In practice — Deploy an application

  1. Generate the executable in the right configuration, then create the installation program with the wizard (files, shortcuts, prerequisites, database), like Yacine.
  2. Check that everything is included: WinDev framework, native database access, images, reports, resources, configuration files.
  3. Test the installation on a clean machine, different from your development workstation — the only way to detect what is missing.
  4. Distinguish first installation (create the database) from update (preserve the data, evolve the structure); back up before any update and provide a rollback.
You deliver an application that installs cleanly at the customer's site, updates without losing data, with a fallback solution in case of a problem.

Step-by-step script — deploy like Yacine (5 min)

1) Generate the executable (32/64-bit configuration). 2) Create the installation program with the wizard (files, shortcuts, prerequisites, database). 3) Check for the presence of the framework, native access, images, reports and configuration files. 4) Install on a clean machine and note everything that is missing. 5) Configure automatic update. 6) For a production update: back up, test the conversion on a copy of the real data, schedule outside critical hours and prepare a rollback.

Never deliver an executable without having installed it on a clean machine: your development workstation masks what is missing.

Copy-paste template — my deployment sheet

Generation  : executable (configuration 32/64 bits)
Bibliotheque: fenetres, etats, requetes empaquetes
Installeur  : assistant (fichiers, raccourcis, prerequis, base)
MAJ auto    : l'application detecte et installe la nouvelle version
Ne rien oublier : framework, acces natifs, images, etats, config, polices
REGLE D'OR  : test sur MACHINE VIERGE (jamais le poste de dev)
Mise a jour : sauvegarder AVANT, tester sur COPIE, retour arriere

Generated installer

Yacine generates a complete installer with the WinDev wizard.

Clean-machine test

Yacine installs on a clean machine and spots a missing framework.

Automatic update

Yacine configures the application to detect and install new versions.

Rollback

Yacine prepares a fallback solution if the new version causes problems.

Caution: Generic reminder: a deployment and an update affect real data and production workstations. Always back up the data (and the previous version) before an update, test the structure conversion on a representative copy, schedule the intervention outside critical hours, check that nobody is using the application during the operation and provide a rollback. Never deliver an executable without a clean-machine test.

✓ Best practices

  • Check that nothing is missing (framework, native access, resources).
  • Test on a clean machine, never only on your own workstation.
  • For an update: back up, test on a copy, provide a rollback.

✗ Common pitfalls

  • Delivering the executable alone and believing it is enough.
  • Testing only on the development workstation.
  • Updating without a backup or a test on a copy.

Key takeaways

  • The delivery chain: generation, library, installer, automatic update.
  • ⚠️ Forget nothing: framework, native access, images, reports, configuration, fonts.
  • ⚠️ Golden rule: test the installation on a clean machine.
  • Manage data: back up before an update, test on a copy, provide a rollback.

48h challenge — apply it tomorrow

Like Yacine, generate the executable of your application and create its installation program. Install it on a clean machine (or a clean virtual machine) and note everything that is missing: framework, native access, images, reports, fonts. Fix the installer until the installation is clean. Then configure automatic update and, if your database must evolve, test the conversion on a copy of the real data while keeping a rollback.

Section exit checklist
  • I generate the executable and create an installation program.
  • I check that nothing is missing and I test on a clean machine.
  • I manage data during updates, with backup and rollback.
Self-assessment 1-5: do I always test my installation on a clean machine?Self-assessment 1-5: can I prepare an update without risk to the data?

Frequently asked questions

Why is testing the installation on a clean machine essential?

Because your development workstation already contains everything needed (framework, drivers, native access, fonts, components): the application necessarily works there, which masks everything that will be missing at the customer's site — only a clean-machine test reveals the truth. What the test reveals: missing or incomplete framework, undeployed native access, forgotten resources (images, reports, configuration, templates), absent fonts, insufficient rights, different regional settings, hard-coded paths. It is the no. 1 cause of failed deployments, and it is discovered at the worst moment: delivery day.

How do you manage updates to an application already in production?

With method: back up the data beforehand, test the update on a copy, plan for structure evolution, schedule outside critical hours, inform users and keep a rollback option. The specific challenges of an update: there is real data to preserve, the structure may have evolved (new items, changed types) and a failure is immediately visible. Back up, test on a representative copy (an artificial test set does not reveal accumulated special cases), check that nobody is using the application, deploy, then check the main functions and some known data.

Check your understanding

What is the golden rule before delivering a WinDev application?

Additional resources (optional, to go further)

Level 4 examFresh, harder questions to test what you've learned