
Objectif du framework
Le framework est d’abord là pour faciliter la vie du programmeur en ne réinventant pas, à chaque projet, la même roue. De même, puisque faites une fois pour toute, les fonctions qui s’y trouvent peuvent atteindre un haut degré de complexité tout en restant simple lors de l’appel. L’objectif final est de diviser le temps de développement par 2 et d’augmenter la fiabilité du même facteur tout en offrant des fonctions inédites par la même occasion.
Dès son démarrage, en janvier 2018, il a été pensé pour devenir open-source. Sachant que plus de 50% des développeurs participent activement à des projets open-source, nous espérons qu’il attirera, autour de lui, une petite communauté de développeurs senior pour qu’il grandisse et devienne une référence. L’open-source est également apprécié par les utilisateurs finaux/les clients puisque ça les assure une pérennité du noyau tout en bénéficiant des nouveautés et corrections.
Structure des classes du framework
Le framework se compose, pour l’instant, d’une petite 30aine de classes, chacune spécialisée. Les héritages sont peu nombreux, ce qui rend la compréhension rapide (un niveau avancé est quand même nécessaire).
Il est accompagné de 11 collections de procédures (une est illustrée ci-dessous), rassemblant 120 fonctions.
Afin d’avoir une compatibilité multi-plateforme, des contraintes liées au WLangage ont imposé au framework quelques tours de passe-passe dans le code. Entre-autres exemples : une classe ne peut hériter que d’une seule autre classe, des syntaxes de déclaration d’objet dynamique sont possibles pour certaines plateformes et pas d’autres, des constantes ne sont pas reconnues partout …
Concepts de la programmation orientée objet
Le framework est conçu principalement pour être utilisé en programmation orientée objet (POO). Pour ceux qui veulent commencer ou se perfectionner dans cette voie,
Ce framework permet pour l’instant
Contexte légal
La licence choisie pour Betula est LGPL (Licence publique générale GNU amoindrie) qui n’oblige pas à ce que le logiciel qui utilisera ce framework soit aussi open-source. De ce fait, Betula peut être intégré, sans contrainte, dans un produit commercial ou un logiciel interne d’entreprise.
Garantie
Malgré toute l’expérience cumulée de l’équipe originale et de tous les autres contributeurs, malgré l’attention à coder et à tester correctement, nous savons tous que des erreurs peuvent se dissimuler dans un tel projet. De même, nous ne sommes pas à l’abri d’un problème dans les éditeurs eux-même.
De ce fait, tant l’équipe originale que tous les contributeurs à ce projet déclinent toute responsabilité sur le fonctionnement du framework quel que soit la situation dans laquelle il est utilisé.
En pratique
Betula est livré complètement anonymisé (le seul « programmeur » visible est Betula) et en Unicode. Tous les projets qui l’utilisent doivent donc être en Unicode.
Tous les messages et libellés sont traduits en 4 langues : Francais (code Nation 5), Anglais (code Nation 3), Canadien Français (code Nation 9) et Américain (code Nation 2).
Code source
Pour chaque release, l’ensemble des sources sera disponible sous format ZIP (voir ci-dessous).
Composant
Pour ceux qui ne veulent pas « mettre les mains dans le cambouis » ou qui veulent « figer » le framework pour assurer sa stabilité, un composant externe sera proposé pour chaque release de Betula (voir ci-dessous). Pour rappel, les composants externes sont utilisables en WinDev et WebDev, pas en WinDev mobile.
Ce framework se comportera alors comme une « boite noire ». Raison supplémentaire de parfaitement tester et documenter toutes les fonctions (voir ci-dessous).
Version : celle de PCSOFT – 1
Betula a été développé, initialement, en WD23 afin de profiter des dernières évolutions de l’outil, notamment pour la POO, mais aussi dans un esprit d’aller « vers l’avant ».
Chaque programmeur est libre de passer le framework à une autre version Wx. Par contre, l’équipe originale ne publiera pas de version majeure du framework avant le 15 octobre. En effet, la version suivante des éditeurs est habituellement annoncée en novembre, ce qui implique qu’il n’y a plus de mise-à-jour pour les éditeurs courants après mi-octobre. L’éditeur courant n’évoluant plus après cette date et est considéré au « maximum de sa stabilité », le framework sera alors testé et compilé avec cette version de l’éditeur.
Betula va donc suivre, pour la version majeure du framework, la fréquence de mise à jour de PCSOFT avec un décalage d’un an : Betula 23 est sorti en novembre 2018, Betula 24 sortira après le 15 oct 2019, Betula 25 sortira après le 15 oct 2020, etc …
![]() |
Cliquez ici pour téléchargez l’ensemble des sources ou le composant |
![]() |
Parcourez le menu « Framework Betula » / « Documentation » pour en savoir plus |
![]() |
Cliquez ici pour télécharger un exemple d’utilisation du framework dans un modèle Commande / détail / client / produit. |
![]() |
Un forum de discussion est à votre disposition pour poser des questions, proposer des idées, discuter de concepts, suggérer des modifications et corrections … |
![]() |
Pour ceux qui veulent participer, merci de respecter quelques règles et recommandations pour faciliter l’intégration de votre code dans la version de référence. Cette page contient aussi quelques pistes d’évolution est une section du forum vous permet d’en proposer d’autres. |
Statut du framework
Le framework, qui fait presque 20.000 lignes de code, est encore en cours de développement et de debugging. De même, le nom Betula n’est pas définitif.
Le framework est présentement en cours de documentation et est déjà utilisé dans plusieurs projets, permettant de tester ses limites :
- Logiciels divers de gestion (Windows/service Windows/webservice, SQLServer via Accès Natif,active directory, en production)
- Logiciel de gestion d’employés (Windows, SQLServer via ODBC, en production)
- Logiciel de gestion de flux XML (Windows, SQLServer via Accès natif, en développement)
- Logiciel de gestion clientèle (Java/MariaDB/mémo par ftp, en développement)
- Logiciel de gestion de stock (Android/SQLite) utilisant un webservice (service Windows, HyperFile+SQLServer, développé autour de la classe cHTTPServer du framework, en test)
- 7Shares