|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre expérimenté
![]() ![]() Dominique LiardFormateur en informatique Inscription : avril 2009 Messages : 72 ![]() |
L'objectif de ce nouveau tutoriel est de vous montrer comment créer des composants web réutilisables via le framework Ellipse. Deux types de composants web peuvent être envisagés : un composant web définit dans une simple classe Java, ou bien un composant web à base d'un modèle XML (TemplatedComponent) afin d'y stocker la mise en page pour le rendu HTML. Bien entendu, nous allons utiliser le plugin Ellipse afin de nous simplifier la construction de ces éléments. Ce tutoriel est accessible à partir de l'adresse suivante :
http://ellipse.developpez.com/tutori...s-web-ellipse/ Si vous avez des commentaires ou des questions, n'hésitez pas à compléter cette discussion. L'équipe Ellipse |
|
|
10
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : mai 2009 Messages : 196 ![]() |
... ça fait rêver votre framework
|
|
|
10
|
|
|
#3 | |
|
Membre éclairé
![]() Inscription : octobre 2007 Messages : 204 ![]() |
Citation:
|
|
|
|
20
|
|
|
#4 |
|
Membre expérimenté
![]() ![]() Dominique LiardFormateur en informatique Inscription : avril 2009 Messages : 72 ![]() |
Bonjour.
En premier lieu, je vous remercie du temps consacré à la lecture du tutoriel et de ce message. Pour en revenir au sujet de la discussion, je suis tout à fait d'accord avec le fait qu'il existe d'autres technologies : je les connais bien (pour certaines) pour les avoir utilisées sur plusieurs développements. Mais du coup, comparons quelques points sur la définition de composants avec la solution proposées. JSF : que pensez-vous de l'obligation de définir les fichiers TLD alors que le modèle JavaBean suffirait à déduire les propriétés à exposer ? Est-ce que, de ce point de vue, la définition XML n'est pas redondante avec la définition de la classe ? JSF toujours : comme JSF est basé sur JSP, pour définir un composant Web, il faut : 1_ définir la classe de tag pour le parsing de la JSP, et 2_ définir la classe de composant (pour le support du cycle de vie du composant). Du coup, les propriétés doivent souvent être dupliquées sur les deux classes. N'est-ce pas un peu anti-productif ? JSF encore : que pensez vous d'être obliger de prendre en charge nous même la sauvegarde et la restitution de l'état du composant web ? Que pensez-vous du besoin d'enregistrement du composant dans le fichier faces-config.xml ? Encore une fois, est-ce très productif ? SPRING MVC : de toute façon basé sur JSP, donc encore du XML en trop (TDL notamment, mais ...). Est-ce vraiment si productif ? WICKET : de tous, mon préféré. Et là, les choses, effectivement, ne sont pas trop mal. Pour en revenir à Ellipse : en fait, les principes fondateurs ne sortent pas de n'importe ou. En fait, je me suis beaucoup basé sur le modèle ASP .NET. J'ai donc tenté d'en faire une transposition pour Java. Et honnêtement, la simplicité de mise en œuvre de composant Web y est pas si mal que cela. Plus généralement, on peu développer une application Web avec un minimum de XML, ce qui n'est pas aussi simple avec JSF notamment (j'en pouvais plus de taper tous ces trucs inutiles). A titre indicatif, j'ai fait un test sur une application développée via JSF pour un client : après réécriture avec Ellipse, nombre de lignes (XML & Java) de code divisé par 3. Dernier points : effectivement, dans la première partie du tuto, je présente le modèle de base. Il y a donc des out.println (c'est vrai). Mais le concept de TemplatedComponent, présenté en seconde partie, n'est-t-il pas un peu plus sympathique ? Merci pour vos retours. Cordialement, L'équipe Ellipse |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Inscription : octobre 2007 Messages : 204 ![]() |
Le XML, ce n'est pas sale. Et on ne peut pas vraiment y échapper lorsque l'on souhaite créer des composants qui générent des documents HTML, non ?
Pour la conception de composant web, je suggererais d'éliminer au maximum la génération de HTML par des "out.println("<script ...")". L'utilisation de fichier template tel que ceux de JSP, JSF, velocity, wicket... sont bien plus adaptés. |
|
|
00
|
|
|
#6 | ||
|
Membre expérimenté
![]() ![]() Dominique LiardFormateur en informatique Inscription : avril 2009 Messages : 72 ![]() |
Citation:
Par contre, il y a t'il quelqu'un qui peut me donner un intérêt (autre que le fait que le modèle JSP/JSF en ont besoin) à la définition d'une TDL ou à l'enregistrement d'un composant JSF dans le faces-config.xml ? Si quelqu'un peut me justifier leur intérêt, je suis preneur. Par contre, s'il n'y a aucun intérêt, alors c'est une perte de temps pour le développeur (et donc baisse la productivité des équipes de développement). En espérant garder les pieds sur terre Citation:
Mais oui, limiter les out.println nous semble aussi être une bonne chose. Cordialement PS : conscient du fait que le tutoriel ne met pas suffisamment l'accent sur la partie Templated Component (je m'incline), je viens de rajouter dans la section V les trois derniers exemples de code. |
||
|
|
00
|
|
|
#7 | ||
|
Membre éclairé
![]() Inscription : octobre 2007 Messages : 204 ![]() |
Citation:
L'écriture d'un TLD est requise uniquement lorsque l'on souhaite produire un livrable rassemblant des composants graphiques, réutilisables. Par exemple, à l'échelle d'une entreprise, un ensemble de composants qui sont repris dans plusieurs appli. Idem pour le faces-config, qui est présent aussi dans toutes les bibliotheques de composants JSF (myfaces, richfaces, icefaces, machin-bidule-faces). L'intérêt de ces fichiers, c'est la documentation embarquée des composants, qui va de pair avec l'auto-completion dans Eclipse. Si ce sont des tags JSP au sein de l'appli web, pas besoin de TLD (Eclipse gère l'auto completion en inspectant la JSP). Lorsqu'on utilise des framework comme GWT, ou autre DSL internes, la doc est dans la javadoc, et l'autocompletion est faite par l'éditeur java ce qui évite à écrire un plugin Eclipse. Pas d'autocompletion = perte de productivité (on peut parler de perte quand le monde entier propose cette fonctionnalité). Spring-MVC ne propose pas de technologie de vue... Citation:
Le template n'est pas parsé à chaque fois qu'on veut l'utiliser !! |
||
|
|
00
|
|
|
#8 |
|
Membre actif
![]() Inscription : août 2005 Messages : 296 ![]() |
Vous pouvez objectivement me dire pourquoi quelqu'un adopterait ce framework? vous semblez très focalisé sur JSF/TLD JSF/JSP pour justifier la raison d'être de votre framework, les choses ont déjà trop évolué de ce côté avec Facelet, Seam, CDI (jee6) , si bien que JSF/TLD JSF/JSP c'est de la préhistoire aujourd'hui.
Et je ne vois pas en quoi l'utilisation des out.println améliorerait une quelconque productivité. Et de façon évidente, c'est la meilleur façon de rendre sa vue non évolutive et non maintenable. |
|
|
00
|
|
|
#9 | ||
|
Membre expérimenté
![]() ![]() Dominique LiardFormateur en informatique Inscription : avril 2009 Messages : 72 ![]() |
Bonjour.
Citation:
Pour l'aspect facelet, c'est vrai c'est mieux, mais je rappelle que c'est ce que Oracle préconise par défaut le support JSF par dessus JSP : Pour utiliser Facelet, il faut rajouter un librairie apache complémentaire. Du coup, il faut assembler plusieurs solutions différentes. Encore une fois est-ce super productif ? Pour mémoire, dans le cas de l'utilisation du couple JSF/Facelet doit-on toujours dupliquer la définition des propriétés exposées par le composants JSF dans le faces-config.xml (alors qu'on a JavaBeans) ? Citation:
Pour finir ce tutoriel ne parle que de la mise en œuvre de composants web via le framework Ellipse. Ce n'est qu'un point parmi beaucoup d'autres. De nombreux autres tutoriels sont proposés sur notre site et devraient passer au format Developpez.com prochainnement. Pour l'heure voici les deux autres tutoriels sur le sujet déjà migrés. Peut être sauront-ils plus vous convaincre. http://ellipse.developpez.com/tutori...pse-framework/ http://ellipse.developpez.com/tutori...-page-ellipse/ Cordialement |
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com