Wicket e Play sono due tipi di framework molto diversi.
Il gioco è un framework MVC che probabilmente sentirai familiare con l'arrivo di Django. Come Django, offre molto di più dei bit Web e fornisce un framework ORM basato su JPA, strumenti di scaffolding e probabilmente molto altro (non ho esperienza pratica con esso). Hanno un ottimo tutorial sul loro sito e probabilmente vedrai le somiglianze di Django lì.
Wicket è una struttura orientata ai componenti (come JSF e Tapestry) e si concentra fortemente sulla progettazione orientata agli oggetti. È anche MVC, di per sé, ma le pagine di solito sono costruite componendo componenti autosufficienti e riutilizzabili (View e Controller, Modelli collegabili). Questi componenti possono essere estesi con l'ereditarietà e composizione standard e il markup è molto ben separato dal codice e facilmente modificabile.
Wicket è in grado di gestire automaticamente callback e stato degli eventi, in modo da non avere per pensare a url, indipendentemente dalla complessità della pagina. Un esempio veloce per un pulsante cliccabile che va un via quando viene cliccato (molto utile):
// In a page constructor
add(new Link("link") {
public void onClick() {
setVisible(false);
}
});
voglio sottolineare che non c'è bisogno di utilizzare lo stato lato server, e che è del tutto possibile utilizzare Wicket come un "normale" framework MVC se lo si desidera (e sì, è facile ottenere bei URL).
Il progetto Wicket si concentra solo sul core framework web e non ci sono "sottigliezze" extra come supporto speciale o ponteggio ORM.Personalmente sono d'accordo con la filosofia del progetto Wicket qui, ma per i nuovi sviluppatori che arrivano al framework, fare cose "semplici" come una tabella ordinabile e pagabile può essere un po 'scoraggiante in quanto i componenti precostruiti sono un po' scarsi. La curva di apprendimento e produttività di Wicket può essere un po 'ripida, ma il lato positivo è che una volta che hai creato componenti (e "comportamenti" - una storia più lunga) che si adattano alle tue esigenze, sono estremamente riutilizzabili.
Sebbene io personalmente ami Wicket, ho la sensazione che probabilmente starai meglio con Play. La tua domanda indica che vuoi un "Django" con accesso alle librerie Java, e in tal caso penso che Play (o qualche altro Java MVC) sia la scelta sicura. D'altra parte, forse hai usato Django perché non sapevi quanto sia incredibilmente potente Wicket. ;) Se fornisci ulteriori informazioni sul tuo progetto, saremo in grado di fornire una risposta più qualificata.
Come nodo laterale: poiché Play non è molto mainstream (almeno per ora), prenderei anche in considerazione lo Grails che ha un forte sostegno commerciale e ancora più moduli predefiniti.
Quali sono i requisiti? – Mot