2011-02-11 14 views
5

¿Qué hay mejor? Vamos a comenzar un nuevo proyecto web y es una pregunta qué tecnología elegir. El proyecto incluye Spring MVC + WebFlow. ¿Alguna buena/mala experiencia en soporte, ampliación y rendimiento?Velocity vs Apache Tiles

Gracias.

Respuesta

6

¿Cómo quieres comparar Tiles with Velocity? - Tiles es una forma de componer fragmentos de página, mientras que Veleocity es un motor de plantillas más completo, mejor comparable con JSP que Tiles.

De todos modos: utilicé Spring MVC con Tiles y JSP: Funcionó mucho, ahorró mucho tiempo (hacia el uso de JSP o JSP con Sitemash), y no noté ningún problema de rendimiento. (Pero la aplicación web nunca se utilizó con mucha carga).

+0

Gracias por su respuesta. Deberíamos elegir cómo representar las vistas, que es lo principal. También utilicé Spring MVC + Tiles y funcionó bien. Se acerca un nuevo proyecto y el cliente evaluó Velocity. Todo lo que necesito es algunos argumentos sobre por qué un enfoque es mejor que otro. ¿Qué sucede si el cliente desea una especie de CMS para editar las vistas del sitio después de que se lanza la aplicación sin molestar a los desarrolladores? – StanislavL

+1

@StanislavL El conocimiento de una tecnología es uno de los argumentos más sólidos para ello. Esto es cierto para devloper, pero es mucho más significativo para el cliente/mantenedor. - Si el cliente conoce muy bien una tecnología, y el proyecto se puede hacer con esta tecnología, entonces es mejor usar la favorita del cliente, porque es mucho más fácil para el desarrollador del software también que para el cliente. - De todos modos: Velocity y JSP no son tan difíciles de aprender. – Ralph

1

Use ambos. Tiles y Velocity se integran muy bien y resuelven diferentes problemas. Puede hacer algunas cosas Tiles-ish con las directivas #include y #parse de Velocity, pero Tiles hace mejor esa composición.

2

Hay un plugin Velocity para Tiles 2.2 para que pueda usar ambos - con la velocidad accederá al contexto y construirá sus ladrillos dinámicamente como con JSP y los mosaicos combinarán los ladrillos de su sitio web. Sin embargo, Tiles no permite hacer muchos cambios (al menos no los he descubierto aún) y su documentación es muy vieja y mala en comparación con, por ejemplo, Spring o JSF. Entonces, puede considerar usar diferentes tecnologías en su lugar.

Tengo referencias de Tiles en mi proyecto actual porque Roo lo hizo por mí, pero ahora estoy moviendo todo a JSF.

+0

Para beneficio de los recién llegados a estas herramientas que puedan estar leyendo esta pregunta, tal vez valga la pena mencionar que JSF es un framework MVC basado en componentes que proporciona su propio motor de plantillas * y * mark-up de transclusión en forma de "Facelets" . Por el contrario, los Templating Engines autónomos son más parecidos a los frameworks MVC basados ​​en solicitudes que carecen de las características propias de View o son independientes de la tecnología View. Tanto Tiles como Velocity compiten en el mismo espacio que Facelets, porque Facelets proporciona ambos requisitos. – 8bitjunkie

7

Velocity y Tiles son dos bestias diferentes: Tiles es un motor de diseño y Velocity es un motor de plantillas. No se cruzan en ningún lado en términos de funcionalidad.

De su pregunta puedo adivinar que probablemente no utilizará JSP. Es un movimiento inteligente. Velocity es uno de los motores de plantilla que hay y hace un trabajo absolutamente espléndido.

Y si elige seguir la ruta del motor de plantilla para su vista, entonces echa un vistazo a commentit. Es un motor de diseño pequeño, simple y rápido que creé. Puede servir a tu propósito perfectamente.

5

Uso Azulejos si usted tiene algunas HTML archivos separados que desea reunir en una plantilla (es decir, que tiene una página separada para un encabezado, pie de página, la barra lateral y quiere reunirlos y mostrarlos en una tipo de formato tipo periódico).

Uso velocidad si desea llevar el contenido dinámico frente a un backend Java e inyectar esos valores en una página completa HTML (es decir, tiene una tabla HTML para mostrar una selección de los coches, y todos sus coches se almacenan en una base de datos. Utilizando JPA, puede obtener esos datos del auto de la base de datos, y en un List<Car> mantenido en un EJB Bean, Spring @Component o similar. Luego, usando Velocity, puede almacenar esa información como el elemento dentro de un Map y utilice el marcado VTL para referirse a los elementos de valor de clave en el Map para que se puedan representar como parte del respo de HTML nse.

Para lograr lo anterior, Velocity se posiciona a sí mismo como un Servlet de controlador frontal absoluto, o está envuelto por otro marco MVC (es decirSpring MVC proporciona un View Resolver que envuelve la funcionalidad provista por un servlet de velocidad).

HTML Las solicitudes se dirigen al Servlet de velocidad o Servlet alternativo de MVC Framework a través de la configuración web.xml. Como parte de la respuesta al servlet, su vista HTML precocida, completa con el marcado Velocity VTL, está enriquecida con datos de Map.

Efectivamente, ya modo de resumen:

velocidad compite en el mismo espacio que JSP.

Las baldosas se asemejan más a la transclusión de página. En el espacio de PHP, Smarty es un primo popular.

Usted no elige entre ellos, pero muy bien podría usar ambos.

+0

+1 para señalar sus casos de uso específicos con más detalle – rmoestl

+0

@ 7SpecialGems +1 para una explicación muy buena, lo cual es raro. – phoenix