Wicket and Lift son bestias bastante diferentes. Tengo algunos conocimientos sobre ambos frameworks (pero lejos del nivel de experto que suele ver aquí):
Wicket: cada página en el sitio web tiene una página de plantilla HTML y una clase de respaldo Java/Scala. La magia de Wicket es conectar la página de plantilla HTML a la clase correspondiente y asignar cada ID de Wicket en la plantilla al método correcto de la clase para que los datos estén visibles en la página HTML generada enviada al cliente. Eso es. Wicket es puro Web y nada más. Es muy fácil componer tus propios componentes gráficos en Wicket y heredar de ellos.
Ascensor: Lift fue creado por David Pollak como una reacción a los problemas que tuvo con Rails. Lo que necesitaba era rendimiento y seguridad. El ascensor es más rápido y más seguro que los rieles. En realidad es muy seguro y maneja la inyección SQL, CRSF, XXS, reproduce ataques automáticamente.
Levante hace lo mismo que Rails (mapas a DB), pero es muy diferente de Rails. El patrimonio mental de Rails es visible, ya que algunas de las API en Lift usan la sintaxis Ruby (con subrayado y signos de interrogación en los inspectores), algo que podría sorprender al desarrollador de Scala. Lift no es un MVC-framework clásico como Wicket, es Model-ModelView-View. En realidad, Lift está más centrado en el ciclo de solicitud-respuesta. Está destinado a simular la programación GUI impulsada por eventos (como Java Swing o .NET GUIs). Esto significa que los elementos HTML y acciones se escriben en el mismo lugar:
var inputName = ""
SHtml.text(inputName,s => inputName = s)
Este código va a crear una etiqueta HTML de entrada como esta:
<input type="text" value=""/>
y conectar una función a una variable para que el la entrada se almacena. La estructura es la misma incluso si se usa AJAX en lugar de HTTP GET/POST.
La elevación es expresiva y potente, pero no es muy fácil.
Por favor, corríjame si esto no es precisa.
¿Qué va a hacer su aplicación? que características necesita? ¿Qué le gustaría poder hacer que Wicket no admita, o no admita fácilmente? –
La aplicación web podría llegar a ser muy compleja pero, para hacerlo simple, supongamos que la aplicación web tendrá una página que contiene varios campos de búsqueda y una tabla que muestra los resultados de la búsqueda. La mayoría de las otras páginas probablemente también contengan formularios. – Ceki