Bonjour à toutes et tous,
TaackUI est un framework (ou cadriciel) pour créer des applications d’entreprise (c.a.d. beaucoup de formulaires, aspect validation des données, sécurité …).
La particularité de cet outil est de ne pas seulement fournir des API (Application Programming Interface), mais également de surcharger certaines étapes de la compilation réalisées par votre Jdk préféré, ainsi que le comportement de l’éditeur de code, pour supporter certaines extensions faites au langage Groovy.
Ces extensions permettent d’associer aux membres d’un objet les contraintes qui lui sont associées et son nom. On crée donc un nouveau membre à la compilation, nommée avec un underscore à la fin, qui va nous permet de savoir si le texte désigné par ce membre est un mail, son nom, s' il peut être nul ou pas, unique ou pas, taille et ainsi de suite …
Groovy permet de créer simplement des DSL (Domain Specific Language) via l’annotation @DelegatesTo.
Ces 2 techniques ensemble, permettent d'améliorer l’expressivité et la concision du code. Par exemple, pour créer un formulaire utilisateur, on définit une classe "domain", avec des membres, des méthodes, des contraintes, qui seront persistantes, puis le formulaire sera codé via utilisant le DSL pour les formulaires.
Juste pour cette exemple, le formulaire ainsi codé permettra de :
- valider les données et remonter les erreurs avec la locale de l’utilisateur
- sera localisé
- sera réutilisable dans d’autres blocs
- sera statiquement validé par le compilateur et par l’environnement de développement, en lien avec la classe du domaine.
UiFormSpecifier f = new UiFormSpecifier()
f.ui user, {
section "User", {
field user.username_
field user.firstName_
field user.lastName_
ajaxField user.manager_,
this.&selectUserM2O as MC
field user.password_
}
section "Coords", {
field user.businessUnit_
field user.mail_
field user.subsidiary_
}
section "Status", {
field user.enabled_
field user.accountExpired_
field user.accountLocked_
field user.passwordExpired_
}
formAction this.&saveUser as MC,
user.id
}
Le formulaire résultant :
Et comme aucun lien avec javascript ou du HTML n’a été nécessaire, ce formulaire pourrait être utilisé dans autre contexte qu’une page du Web (un terminal VT100, une application native …).
Pour cette version, le site taack.org a été traduit intégralement en Français, et une page Nouveautés est accessible pour détailler les évolutions avec plus de détails. Une chaîne Youtube en anglais, très sommaire est également accessible.
Voilà, j'espère que ce n'est pas trop confus, merci à tous et bonne journée!
# Code
Posté par Paul Marques Mota . Évalué à 3. Dernière modification le 26 août 2024 à 17:02.
Pour les gens intéressés, le code est ici.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.