Menu

 

Framework Makumba

Le framework Makumba est une implémentation du pattern MVC, avec néanmoins quelques subtilités. En effet, la partie contrôleur est ici totalement invisible ; le programmeur n'ayant pas à y toucher. Le modèle quant à lui, est totalement différent de ce qui se fait habituellement. Alors qu'un modèle classique se présente sous forme de bean ou de POJO ; celui-ci est representé par une table dans une base de données via le langage OQL, transformé si besoin est en SQL ou même HQL. Makumba s'affranchie donc ici de tout modèle de persistance auquel on pourrai rattacher un framework MVC.

Ce framework développé par BEST; une organisation réunissant plusieurs étudiants européens ; se veut simple d'accès et rapide au niveau de la prise en main. Il n'y que 2 concepts à connaitre:

Makumba DATA Definitions (MDD)

Ce fichier; comme son nom l'indique; permet de définir la forme des données qui seront contenues dans le modèle sous forme de table SQL. Bien que Makumba utilise le modèle OQL il génère automatiquement le code SQL à partir du fichier MDD.

Rq: Makumba permet aussi de générer du code HQL

Exemple : Personne.mdd

name=not null char[40] ;Nom de la personne
mot_de_passe= encrypted char[5..10] ;Mot de passe de l'utilisateur ville=char[40] ;Ville
pays= ptr general.Pays ;Pointeur sur un objet 'pays'
email=char[40] ;E-Mail
age=int ;Age de la personne sexe=int{ "homme"=0, "femme"=1 } ;Sexe de la personne (type enum) commentaire=text ;Autre commentaire

Comme vous le voyez, il est possible d'affecter différents types de données allant du simple entier, en passant par les pointeurs sur d'autres objets de type déjà défini ou encore de fichiers (images, texte, etc...).

Balises JSP Makumba

Makumba propose les possibilités classiques d'affichage dans la JSP à travers les balises de type <mak:commande>.

Exemple: partnersList.jsp

<%@ taglib uri="http://www.makumba.org/presentation" prefix="mak" %>
<h2>Partners:</h2>
<mak:list from="organisation.Partner p">
<dt><a href="partner.jsp?partner=<mak:value expr="p"/>"> <mak:value expr="p.name"/> </a>, <i><mak:value expr="p.city"/></i> </dt>
<dd>
<mak:list from="p.personalContacts c" separator="<br>"> <mak:value expr="c.name"/>
</mak:list>
</dd>
</mak:list>

Ici la balise list permet de faire une requête sur la base SQl contenant la table partner définie précédemment dans un fichier MDD tandis que la commande value permet l'affichage d'un champ en particulier.

Conclusion

Points forts:

Points faibles:

 

Biblographie

http://www.makumba.org/

http://en.wikipedia.org/wiki/Makumba_(framework)