====== Java Frameworks ====== Voir aussi: * [[/informatique/java/librairies|Librairies Java]] * [[/informatique/java/documentation|Documentation Java]] ===== Frameworks ===== ==== Metawidget ==== [[http://metawidget.org/]] Metawidget is a smart User Interface widget that populates itself, at runtime, with UI components to match the properties of your business objects. Metawidget does this without introducing new technologies. It inspects your existing back-end architecture (such as JavaBeans, existing annotations, existing XML configuration files) and creates widgets native to your existing front-end framework (such as Swing, Java Server Faces, Struts, Android). Metawidget does not replace or hide your existing UI framework and guarantees that your investment in its technology and knowledge is as valid as always. The LGPL Open Source license allows the use of Metawidget in open source and commercial projects. ===== Web frameworks ===== * [[https://www.quora.com/What-is-the-current-webstack-LinkedIn-uses/answer/Yevgeniy-Brikman|What is the current webstack LinkedIn uses?]] on 2013 * [[http://www.quora.com/Which-Java-web-framework-should-I-use-Play-Wicket-Struts-JSF-Tapestry-or-Stripes|Which Java web framework should I use: Play, Wicket, Struts, JSF, Tapestry or Stripes?]] on 2011-01 * [[http://stackoverflow.com/questions/657352/difference-between-apache-tapestry-and-apache-wicket|Difference between Apache Tapestry and Apache Wicket]] on2010-06 * [[http://blog.xebia.fr/2009/07/03/tapestry-5-vs-wicket/|Tapestry 5 vs. Wicket]], une excellente synthèse //et en français//. * [[http://ptrthomas.wordpress.com/2009/09/14/perfbench-update-tapestry-5-and-grails/|“Perfbench” Tapestry 5, Wicket 1.4.1, Grails 1.1.1, Seam 2.2.0]] ==== Rapidoid ==== http://www.rapidoid.org ==== Wicket ==== http://wicket.apache.org/ 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 ==== http://tapestry.apache.org/ 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. * [[http://stackoverflow.com/questions/3831807/java-server-faces-2-0-or-tapestry-5-2|Java Server Faces 2.0 or Tapestry 5.2 ?]] * [[http://stackoverflow.com/questions/1303438/why-did-you-stop-using-tapestry|Why did you stop using Tapestry ?]] * [[http://blog.tapestry5.de/wp-content/uploads/2010/06/JSF-2.0-vs-Tapestry-5.pdf|JSF 2.0 vs. Tapestry 5: A head-to-head comparison]] at Jazoon 2010. ==== Play framework ==== The Play framework makes it easier to build Web applications with Java. Finally a Java framework made by Web developers. Discover a clean alternative to bloated enterprise Java stacks. Play focuses on developer productivity and targets RESTful architectures. C'est Symfony pour Java ! Ce framework n'est pas basé sur J2EE, il embarque directement son serveur ([[http://www.jboss.org/netty|Netty]]). [[http://www.playframework.org/]] Plus de détails: [[/informatique/java/frameworks/play_framework|/informatique/java/frameworks/Play framework]] ==== Stripes ==== http://www.stripesframework.org/display/stripes/Home * [[http://www.stripesframework.org/display/stripes/Stripes+vs.+Struts|Stripes vs. Struts]] ==== WebWork 2 ==== ==== Spring Framework ==== http://spring.io [[/informatique/java/frameworks/Spring Framework]] ==== Struts 2 ==== ==== Stripes ==== ==== Click ==== http://click.apache.org/ ==== HybridJava ==== ==== Echo ==== http://echo.nextapp.com/ 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; } }