Concepts fondamentaux
Philosophie
Vous connaissez 4D ? Vous connaissez BWEB.
BWEB n est pas un framework qui necessite une expertise JavaScript. C est un composant purement base sur 4D. Un developpeur 4D doit pouvoir creer un site web sans changer de monde.
BWEB cible les portails publics et CMS avec potentiellement 300 000+ utilisateurs - pas les dashboards internes (pour ca, il y a Qodly).
Tailwind s apprend en un jour. React prend plusieurs mois.
Hierarchie : Domaine - Page - Bloc
Tout dans BWEB s organise en 3 niveaux :
| Niveau | Table | Description | Exemple |
|---|---|---|---|
| Domaine | BSPK_WEB_DOMAIN | Un site web complet | monsite.fr |
| Page | BSPK_WEB_DOMAIN_MENU | Une URL accessible ou un composant reutilisable | /suppliers, header, footer |
| Bloc | BSPK_WEB_CONTENT | Un element UI formant un arbre via parentUuid | wrapper, text, button, listbox |
Le template assemble les composants (header, footer, sidebars) autour du contenu de chaque page.
Pages vs Composants
| Page | Composant | |
|---|---|---|
| category | page | component |
| Accessible via URL | Oui (/suppliers, /contact) | Non |
| Reutilisable | Non | Oui (header, footer, sidebar) |
| Affiche via | Navigation directe | Template du domaine |
Responsive design
BWEB utilise l approche mobile-first de Tailwind CSS. Chaque bloc stocke ses styles par breakpoint dans cssProperties.
| Breakpoint | Largeur min. | Cible |
|---|---|---|
| default | 0px | Mobile |
| sm | 640px | Petit ecran |
| md | 768px | Tablette |
| lg | 1024px | Portable |
| xl | 1280px | Desktop |
| 2xl | 1536px | Grand ecran |
Exemple : un conteneur en colonne sur mobile, en ligne sur desktop :
{bspk: {default: {customClass: flex flex-col gap-2}, md: {customClass: flex-row gap-4}, lg: {customClass: gap-6}}}Affichage conditionnel
3 mecanismes pour controler la visibilite des blocs :
| Mecanisme | Description | Exemple |
|---|---|---|
| linked | Lie la visibilite d un bloc a un autre | Un panneau de detail s affiche quand une ligne est selectionnee |
| effect | Effet d apparition | fade, slide |
| conditionalDisplay | Condition basee sur les donnees | Entity#null, isPublished=true |
Variables process et persistance
BWEB gere l etat cote serveur, pas cote client :
- L Entity persiste pendant la session via les variables process
- Pas d etat client (pas de Redux, Zustand, etc.)
- Le serveur est la source unique de verite
- Le STAMP (verrouillage optimiste) est gere nativement par ORDA
- Les sessions 4D sont scalables et preemptives
Claude ne remplace pas BWEB, il l alimente.

