5.1 · WebDev: websites & web applications

Level 5 · WebDev, WinDev Mobile & certification

5.1WebDev: websites & web applications

Goal: Extend Yacine's management application to the web with WEBDEV, distinguishing server code from browser code and mastering sessions, responsive design and hosting.
Estimated time: 11 min · self-paced reading · If you only have 5 min: read “The essentials in 30s” + the diagram.

The essentials in 30 seconds

  • WEBDEV shares WLangage, the analysis and the editors with WinDev: Yacine reuses his customers/items/orders model for a web portal, without starting from scratch.
  • The browser displays, the server processes: server code accesses HFSQL and carries security; browser code is visible and modifiable, therefore never a protection.
  • The web adds its own notions: sessions, responsive design, HTTPS hosting and public exposure — familiar syntax does not exempt you from learning the web model.

Running mini-case — Yacine opens a web portal for the SME's customers

Yacine develops the management application for an electrical equipment trading SME in Oran: customers, items, orders, invoices and stock. The sales reps want to check stock and enter an order from a browser, including at the customer's premises. Yacine opens a WEBDEV project and shares the existing analysis: the Customer, Item and Order files are the same as in WinDev. He places the checks on stock, price and rights on the server side, because the browser must never decide a price. He adds a responsive page for phone and tablet, a session to identify the sales rep, and plans hosting with an HTTPS certificate. He then verifies that a hand-crafted request can neither change a price nor order an out-of-stock item.

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

1. Capitalize without copying

WEBDEV is the member of the PC SOFT range dedicated to the web: websites, intranets and web applications. Its main interest is capitalization: same WLangage, same analysis, same editors and same project logic. Yacine shares the analysis of his management application with the web portal: the Customer, Item, Order and Stock files are not copied, they are shared. Business procedures and some components are also reused. A WinDev developer is therefore not a beginner on the web: they discover a platform while keeping their data model and their language.

2. Server and browser

The web works client/server by nature: the browser displays, the server processes. WEBDEV distinguishes code executed on the server side (secure, with access to HFSQL data) from code executed on the browser side (fast, but visible and modifiable by the user). Absolute consequence: a price, stock or rights check placed only in the browser can be bypassed. The user can even send a request directly to the server, without going through Yacine's pages. Every validation that matters is redone on the server side. Browser code is for convenience, never for security.

3. Sessions, responsive design and hosting

The web is stateless: you must manage a session to recognize the sales rep from one page to the next. Responsive design is anticipated from the design stage (layouts, zoning) to adapt to computer, tablet and phone. Hosting requires a WEBDEV application server, a domain name and an HTTPS certificate. Finally, a public site is exposed: injections, session hijacking and automated attacks make security more critical than internally. Yacine therefore tests the portal on several screens and checks rights on the server side before any go-live.

Common misinterpretation: “The web is just WinDev with pages, checks can stay on the browser side, and hosting is sorted out afterwards.” No, three mistakes. The web model must be learned: server/browser architecture, sessions, responsive design, hosting. Browser code is visible and modifiable: it never carries security, every critical validation is done on the server side. And hosting (server, domain, HTTPS) is part of the design, not a final detail. Yacine capitalizes on the analysis and WLangage, but treats the web as a platform in its own right.
The WEBDEV model Capitalize on WinDev while respecting the server/browser boundary. CapitalizationWLangage + shared analysis+Server codeValidation, HFSQL, security+Browser codeDisplay only, never security The browser displays, the server decides.
Capitalize on WinDev while respecting the server/browser boundary.
Text version of the diagram (SEO / screen readers / translation): 1) Yacine, a developer in an electrical equipment trading SME in Oran, wants a web portal to check stock and enter orders. 2) He opens a WEBDEV project and shares the existing WinDev analysis (Customer, Item, Order, Stock), reusing WLangage and the business procedures. 3) He places the price, stock and rights checks on the server side, adds a sales session, makes the pages responsive and plans HTTPS hosting. Lesson: WEBDEV capitalizes on WinDev, but the browser displays while the server decides and secures.

🔎 Concrete example — 🔎 Concrete example — Validating an order on the server

Yacine rejects an order line forged from the browser:

// Code SERVEUR — contrôle d'une ligne de commande WebDev
PROCEDURE ValiderLigneCommande(Ligne est une LigneCommande) : booléen
SI Ligne.Quantite <= 0 ALORS
    Erreur("Quantité invalide")
    RENVOYER Faux
FIN
SI Ligne.PrixUnitaireHT < PrixCatalogue(Ligne.CodeArticle) ALORS
    Erreur("Prix inférieur au catalogue")
    RENVOYER Faux
FIN
SI StockDisponible(Ligne.CodeArticle) < Ligne.Quantite ALORS
    Erreur("Stock insuffisant")
    RENVOYER Faux
FIN
RENVOYER Vrai

Result: a hand-crafted request is rejected by the server, even if the page has been modified.

Reflex: every check that matters is redone on the server side, never only in the browser.

Section vocabulary

WEBDEV
Member of the PC SOFT range dedicated to the web (websites, intranets, web applications), sharing WLangage and the analysis with WinDev.

Simple example: Yacine opens a WEBDEV project for his SME's customer portal.

What it is not: believing you have to learn another language.

Reflex: WEBDEV = same WLangage, another platform.

Capitalization
Reuse of WinDev assets (analysis, WLangage, procedures, components) in a WEBDEV project.

Simple example: Yacine shares the Customer/Item/Order analysis with the portal.

What it is not: recreating a second database for the web.

Reflex: capitalize = a single data model.

Server code
Code executed on the web server, secure, with access to data and business checks.

Simple example: Yacine checks the catalogue price and available stock there.

What it is not: entrusting validation to the displayed page.

Reflex: server = decision and security.

Browser code
Code executed in the user's browser: visible, modifiable, useful for convenience only.

Simple example: Yacine displays an invalid-entry message there.

What it is not: placing a price or rights check there.

Reflex: browser = display, never protection.

Web session
Context kept on the server side to recognize a user from one page to the next.

Simple example: Yacine remembers the logged-in sales rep throughout their order.

What it is not: believing the web keeps context by itself.

Reflex: session = controlled identity and context.

In practice — In practice — Opening a web portal with WEBDEV

  1. Identify what you capitalize on (analysis, WLangage, procedures, components) and what is new (web model, sessions, responsive design).
  2. Create the WEBDEV project by sharing the WinDev analysis, then design the stock consultation and order entry pages.
  3. Systematically place price, stock and rights validations in server code; keep the browser for display and convenience.
  4. Plan responsive design, HTTPS hosting and a sales session, then test a hand-crafted request.
You know what WEBDEV reuses from WinDev and which web specifics (server/browser, sessions, responsive design, hosting) must be mastered.

Step-by-step script — securing the customer login (10 min)

Yacine sets up the sales rep's session before displaying the dashboard.

The session is created on the server side; the browser only receives a session identifier, never the password.

Copy-paste template — my WEBDEV portal

// Projet WEBDEV — portail de gestion Yacine
// Analyse partagée : Client, Article, Commande, Facture, Stock
// Pages : PAGE_Connexion, PAGE_Stock, PAGE_Commande
// Contrôles SERVEUR : prix catalogue, stock, droits du commercial
// Session : gsCommercialConnecte (côté serveur)
// Responsive : dispositions téléphone / tablette
// Hébergement : serveur WEBDEV + domaine + HTTPS

Customer portal

Yacine lets his customers check stock and the status of their orders from a browser.

Sales intranet

Yacine reserves order entry for sales reps identified by a session.

Ordering on mobile web

Yacine makes the pages responsive so orders can be placed from a phone at the customer's premises.

Shared analysis

Yacine keeps a single analysis between the WinDev application and the WEBDEV portal.

✓ Best practices

  • Capitalize on the analysis and WLangage rather than copying.
  • Put every critical validation on the server side.
  • Think about sessions, responsive design and HTTPS from the design stage.

✗ Common pitfalls

  • Placing a price or rights check in the browser.
  • Believing the web keeps context without a session.
  • Handling hosting and security after go-live.

Key takeaways

  • WEBDEV shares WLangage, the analysis and the editors with WinDev.
  • The browser displays and the server processes: security is on the server side.
  • The web imposes sessions, responsive design and HTTPS hosting.
  • A public site is exposed: familiar syntax does not exempt you from the web model.

48h challenge — apply it tomorrow

Like Yacine, open a small WEBDEV project sharing an existing analysis (customers, items, orders). Create a consultation page and an entry page, then place a price and stock check on the server side. Test a hand-crafted request and verify that it is refused. Note what you reused and what was genuinely new.

Section exit checklist
  • I can explain what WEBDEV reuses from WinDev.
  • I can distinguish server code from browser code.
  • I know why and how to validate an order on the server side.
Self-assessment 1-5: do I place critical checks on the right side?Self-assessment 1-5: have I tested a forged request against my portal?

Frequently asked questions

Can a WinDev developer move to WEBDEV easily?

The transition is made easier by the same WLangage, the same analysis and the same editors, but it is not immediate: you have to learn the web model. What transfers directly: the language, the data model, HFSQL and SQL functions, procedures, components and concepts. What must be learned: server/browser architecture, server-side security, sessions, responsive design, hosting (server, domain, HTTPS), performance and search engine optimization. Yacine reuses his management analysis but rethinks the way pages load and the way rights are checked.

Why should you never do a security check in the browser?

Because everything that runs in the browser is under the user's control: they can read the code, modify it, disable it or send a request directly to the server without going through the pages. A browser-side check is therefore a usability convenience, never a protection. If Yacine checks a price only in the page, a user can send a price below the catalogue. The absolute rule: every validation that matters (price, stock, rights, amounts, identifiers) is redone on the server side, without exception.

Check your understanding

Where should stock be checked before saving a WEBDEV order?

Additional resources (optional, to go further)

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