Ceci est une ancienne révision du document !
Table des matières
Java Frameworks
Web frameworks
- Tapestry 5 vs. Wicket, une excellente synthèse et en français.
Wicket
Wicket est un framework orienté composants.
- Pages et composant statefull
- Programmation à la Swing ?
- Séparation stricte entre code et template
Wicket est un framework Statefull, les pages et composants sont stockés dans la session et réutilisés entre les requêtes. C'est bien plus gourmand en mémoire qu'un framework Stateless. Wicket est plutôt à utiliser pour des applications complexes dans lesquelles toute les états des IHM sont gérés et stockés par le framework.
Wicket n'a pas de langage de template, tout se fait en pure HTML via les ID des éléments.
La communauté de Wicket est importante et active.
Tapestry 5
Optimiser l’utilisation CPU et mémoire.
Un framework super bien fait, très sympa et performant. De plus il permet de travailler avec du HTML éditable avec des outils standards comme Dreamweaver, Golive et consors.
- JSF 2.0 vs. Tapestry 5: A head-to-head comparison at Jazoon 2010.
Play framework
- Introduction aux webservices REST avec Play! : requêtes REST, sélection du fomat html,xml et json par configuration.
C'est Symfony pour Java !
Ce framework n'est pas basé sur J2EE, il part de zéro à partir du serveur embarqué dans le framework (Netty).
Maturité ?
- I don't know for other sites but the playframework website was built with play and serve about 100.000 request by day.
Tips:
- Un moteur de template pour remplacer celui de Play!: cambridge: Comparing Cambridge Template Engine with Jsp, Velocity, Freemarker and Play Framework Templates, Template Authors Guide, Using With Play Framework
Tips
Pour voir toutes les requêtes SQL :
# conf/application.conf hibernate.show_sql=true
Stripes
WebWork 2
Spring-MVC
Struts 2
Stripes
Click
HybridJava
Echo
Ce framework semble très copieux, il y a 2 types d'applications, les Client-Side et les Server-Side.
Les IHM d'Echo se construisent à la Swing en assemblant des composants.
public class HelloWorldApp extends ApplicationInstance { public Window init() { Window window = new Window(); ContentPane contentPane = new ContentPane(); window.setContent(contentPane); Label label = new Label("Hello, world!"); contentPane.add(label); return window; } }