Concepts fondamentaux

Philosophie

Vous connaissez 4D ? Vous connaissez BWEB.

BWEB n'est pas un framework qui nécessite une expertise JavaScript. C'est un composant purement basé sur 4D. Un développeur 4D doit pouvoir créer un site web sans changer de monde.

BWEB cible les portails publics et CMS avec potentiellement 300 000+ utilisateurs - pas les dashboards internes (pour ça, il y a Qodly).

Tailwind s'apprend en un jour. React prend plusieurs mois.

Hiérarchie : Domaine - Page - Bloc

Tout dans BWEB s'organise en 3 niveaux :

Niveau Table Description Exemple
DomaineBSPK_WEB_DOMAINUn site web completmonsite.fr
PageBSPK_WEB_DOMAIN_MENUUne URL accessible ou un composant réutilisable/suppliers, header, footer
BlocBSPK_WEB_CONTENTUn élément UI formant un arbre via parentUuidwrapper, text, button, listbox

Le template assemble les composants (header, footer, sidebars) autour du contenu de chaque page.

Pages vs Composants

Catégorie Page Composant
Accessible via URLOui (/suppliers, /contact)Non
RéutilisableNonOui (header, footer, sidebar)
Affiché viaNavigation directeTemplate 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
default0pxMobile
sm640pxPetit écran
md768pxTablette
lg1024pxPortable
xl1280pxDesktop
2xl1536pxGrand écran

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 mécanismes pour contrôler la visibilité des blocs :

Mécanisme Description Exemple
linkedLie la visibilité d'un bloc à un autreUn panneau de détail s'affiche quand une ligne est sélectionnée
effectEffet d'apparitionfade, slide
conditionalDisplayCondition basée sur les donnéesEntity#null, isPublished=true

Variables process et persistance

BWEB gère l'état côté serveur, pas côté client :

  • L'Entity persiste pendant la session via les variables process

  • Pas d'état client (pas de Redux, Zustand, etc.)

  • Le serveur est la source unique de vérité

Le STAMP (verrouillage optimiste) est géré nativement par ORDA

  • Les sessions 4D sont scalables et préemptives

Claude ne remplace pas BWEB, il l'alimente.