Bonjour plus je rentre dans le concept de JSF moins je vois une utilitée aux EJB3.0 couplés a cette technos. POuvez vous m'eclairer sur pourquoi utiliser les ejb3.0 avec jsf? les deux sont ils complementaireS?
Bonjour plus je rentre dans le concept de JSF moins je vois une utilitée aux EJB3.0 couplés a cette technos. POuvez vous m'eclairer sur pourquoi utiliser les ejb3.0 avec jsf? les deux sont ils complementaireS?
Attention attention !
on est dans le règne des frameworks quand on parle de JSF, EJB 3.0, Hibernate, (struts, spring) etc etc...
Le problème des frameworks c'est qu'ils veulent se méler de tout (couche présentation, données, métier, persistance + couche de communication, monitoring etc etc...). Ca c'est vraiment mal. Pourquoi par faire des GUI avec une GBDD ?
donc JSF se charge de la couche présentation, et les objets pris en charge par JSF, les managed beans, sont ceux de la couche présentation. En tout cas mieux vaut s'y forcer, meme si on a tendance à taper directement dans la couche données. De cette façon on est bien découplé. Faut toujours penser que l'application doit pouvoir se passer de l'IHM et fonctionner en ligne de commande ou etre appelée par d'autres logiciel sous interopérabillité.
EJB c'est autre chose. En faite ca devient un horreur avec son souhait de s'occuper de la persistance.
A la base l'EJB est un tuyaux RMI pris en charge par un container qui rend bien des services.
L'EJB sert à se mettre en relation avec des couches (données-persistances) et métier (gros calculateur).
La connerie c'est souvent de coder directement la logique et/ou la persistance dans les EJB au lieu d'utiliser l'EJB uniquement comme ce qu'il doit etre: un moyen de communication. Par exemple pour appeler la couche persistance qui utilise Hibernate, ou des calculateurs en C++.
Je m'y connais pas assé mais je crois pas qu'on puisse faire à la fois du SOAP et de l'EJB sur la meme classe qui implemente la logique métier.
De plus comment on fait quand on veut l'applie en stande alone ??
Donc oui JSF et EJB s'utilise ensemble dans une application distribuée, et pour des couches différentes.
Partager