1.5The RAD: generating a complete application
The essentials in 30 seconds
- The RAD generates automatically from the analysis: windows, tables, menus, buttons, data management code, sometimes reports.
- It depends entirely on the quality of the analysis: a shaky model gives a shaky application, just faster.
- It does not replace the developer: generated code is generic and ignores your business rules, which you must write afterwards.
Running mini-case — Yacine runs the RAD on his analysis
Yacine's analysis is ready (Client, Produit, Commande, LigneCommande). He runs the RAD. Within minutes, WinDev generates a complete application: a consultation window with an orders table, add and modify windows, a menu, buttons and the standard data management code. Yacine can already enter and consult data — it is spectacular. But he quickly sees the limits: the RAD does not know that his SME grants a 5% discount beyond ten items, nor that an order must be blocked in case of unpaid invoices, nor that stock must not become negative. These business rules, he must write himself (sections 1.3 and 1.4). He then uses the RAD by element to add a window on a new file, then customizes. Yacine remembers: the RAD is a formidable starter accelerator, not a substitute for design.
Standalone case for this section: it returns in the course, diagram, script and 48h challenge of section 1.5.
1. What the RAD generates
The RAD (Rapid Application Development) is WinDev's emblematic feature: from your ANALYSIS, it automatically generates a complete, functional application — input windows, consultation windows with tables, menus, action buttons, data management code, even print reports.
In a few minutes, you go from a data model to an application you can actually run, enter data in, search and print. A distinction is made between the full RAD (the whole application) and the RAD by element (one window for a specific file) — the latter is often the most useful day to day.
2. What the RAD does not do
The RAD accelerates the start by producing a coherent base that complies with the workshop standards. But it does not replace the developer: generated code is generic and knows nothing about your business rules (discount, consistency check, validation workflow).
It depends entirely on the quality of the analysis: a shaky analysis produces a shaky application, faster but shaky. The result must always be customized — ergonomics, labels, rules, sequences.
3. An accelerator, not a substitute
The right approach: take care of the analysis, then generate (full RAD at the start, or by element as you go), test the generated application, then customize it by adding your business rules.
Finally, the RAD is an excellent learning tool: reading the generated code reveals the workshop's functions and good practices. Yacine uses it as a starting point, never as a final deliverable.
🔎 Concrete example — 🔎 Concrete example — Full RAD or by element?
Two uses of the RAD in Yacine's project:
RAD complet : analyse "NegoceElec" → application entière
(fenêtres Ajout / Modification / Consultation, menus, tables, états)
RAD par élément : un fichier précis (ex. Facture) → une fenêtre dédiée
(souvent le plus maniable au quotidien)
→ base fonctionnelle générée, PUIS on ajoute en WLangage :
remise 5 %, blocage sur impayé, stock non négatif…
Reading: the RAD delivers an immediate functional base; everything specific to Yacine's business remains to be written.
Reflex: take care of the analysis first, generate next, then customize.
Section vocabulary
- RAD
- Rapid Application Development: automatic generation, from the analysis, of a complete application (windows, tables, menus, management code, reports).
Simple example: Yacine runs the RAD and gets a functional trading application in a few minutes.
What it is not: recoding each window by hand when the RAD generates them.
Reflex: analysis ready → generate with the RAD.
- Full RAD / RAD by element
- The full RAD generates the whole application at once; the RAD by element generates a window (or a report) for a specific file.
Simple example: Yacine generates a dedicated window on the Facture file with the RAD by element.
What it is not: regenerating the whole application to add a single screen.
Reflex: a specific screen → RAD by element.
- Dependence on the analysis
- The RAD relies entirely on the analysis: a shaky data model produces a shaky application, just faster.
Simple example: Yacine takes care of his analysis because the RAD depends directly on it.
What it is not: running the RAD on a sloppy analysis and delivering an inconsistent application.
Reflex: quality RAD → quality analysis first.
- Business rules (to write)
- Generated code is generic: calculations, checks, validations and sequences specific to the business must be written in WLangage.
Simple example: Yacine codes the 5% discount and the blocking on unpaid invoices himself.
What it is not: believing the RAD will guess the SME's commercial rules.
Reflex: business rules → written by the developer.
- Learning tool
- Examining the code generated by the RAD is an excellent way to discover the workshop's functions and good practices.
Simple example: Yacine re-reads the generated code to learn the HFSQL functions.
What it is not: ignoring the generated code instead of using it to improve.
Reflex: starting out → read the RAD code.
In practice — In practice — Generating an application with the RAD
- First make sure your ANALYSIS is correct (files, well-typed items, primary keys, relationships) — the RAD depends entirely on it.
- Run the RAD (full for a whole application, or by element to generate a window on a specific file) and let WinDev produce the base.
- TEST the generated application: input, search, modification, deletion, printing.
- Then CUSTOMIZE: ergonomics, labels, sequences, and above all add your BUSINESS RULES (checks, calculations) that the RAD cannot guess.
Step-by-step script — generate then customize like Yacine (4 min)
1) Check the analysis (files, types, keys, relationships): the RAD depends on it. 2) Run the full RAD to get the whole application, or the RAD by element for a specific file. 3) Run the generated application and test input, search, modification, deletion. 4) Customize the ergonomics and labels. 5) Add your business rules in WLangage (discount, blocking, stock) that the RAD does not guess. 6) Re-read the generated code to learn.
The RAD knows neither your priorities nor your business rules: customization is part of the work.
Copy-paste template — Yacine's RAD checklist
[ ] Analysis checked (files, types, primary keys, relationships)
[ ] Mode chosen: full RAD (application) or RAD by element (one screen)
[ ] Application generated and tested (input, search, modification, deletion)
[ ] Ergonomics and labels customized
[ ] Business rules added in WLangage (discount, blocking, stock…)
[ ] Generated code re-read (learning tool)
[ ] Functional base adopted as a starting point, not as a final deliverable
Full RAD at the start
Yacine generates the whole trading application at once to quickly get a working base.
RAD by element
When management adds invoice management, Yacine only generates the window on the Facture file.
Learning
Yacine re-reads the generated code to understand the HFSQL functions and draw inspiration for his own screens.
Business customization
After generation, Yacine adds his rules: 5% discount, blocking on unpaid invoices, refusal of negative stock.
✓ Best practices
- Take care of the analysis before running the RAD: it depends entirely on it.
- Use the RAD as a starter accelerator, then customize.
- Add the business rules yourself, which the RAD cannot guess.
✗ Common pitfalls
- Delivering the generated application as is, without customization.
- Running the RAD on a sloppy analysis.
- Believing the RAD writes your business rules for you.
Key takeaways
- The RAD automatically generates a complete application from the analysis: windows, tables, menus, management code.
- It depends entirely on the quality of the analysis: a shaky model gives a shaky application.
- It does not replace the developer: generated code is generic and ignores your business rules.
- It is used as a starter accelerator, then customized — and reading the generated code helps you learn.
48h challenge — apply it tomorrow
Take a small analysis (files, types, keys, relationships) and generate an application with the RAD, like Yacine. Test it, then add one business rule in WLangage that the RAD does not know. Write in one sentence why the RAD does not excuse you from learning to program.
- I understand what the RAD automatically generates from the analysis.
- I know how to choose between full RAD and RAD by element.
- I know that business rules remain to be written after generation.
Frequently asked questions
Does the RAD really allow developing an application without knowing how to program?
No: the RAD generates an impressive functional base without writing a single line, but any real application requires business rules, checks and sequences that demand programming knowledge. The RAD accelerates the developer, it does not replace them. Yacine uses it to start fast, then writes his own 5% discount, his blocking on unpaid invoices and his stock check.
Should the RAD be used on a real project or should you code by hand?
Use the RAD as a starting point, then customize: it is the best compromise between time saving and control. Coding everything by hand wastes time on the repetitive part; generating without reviewing produces a generic, impersonal application. The approach: take care of the analysis, generate, test, then customize the ergonomics and add your business rules — re-reading the generated code as an example of good practices.
What does the RAD do and what is its main limitation?