OpenXava 3.1.3: Productividad y flexibilidad para Java EE
martes, junio 16, 2009 at 10:51PM OpenXava 3.1.3 es un marco de trabajo para desarrollar aplicaciones Java empresariales de una forma diferente: OpenXava evita MVC. Es un motor de aplicación JPA en el que tu provees tus POJOs anotados con JPA y obtienes una aplicación lista para producción.
Productividad Con OpenXava, solo necesita escribir tu modelo, POJOs con anotaciones. No necesitas escribir la vista, y los controladores (para mantenimientos, listados, etc) se reutilizan.
Es decir, si escribes una clase como esta:
@Entity
public class Profesor {
@Id @Column(length=5) @Required
private String id;
@Column(length=40) @Required
private String nombre;
// Getters y setters
}
Obtienes una aplicación (mirala aquí) para matenimiento, listado en PDF, exportación a excel, búsquedas, ordenación, validaciones, etc. Solo has de escribir una simple clase Java, nada de XMLs, JSPs ni generación de código.
OpenXava no es solo para escribir mantenimientos simples para clases simples, con él puedes crear aplicaciones sofisticadas con lógica compleja e interfaces de usuarios avanzadas. OpenXava soporta referencias, colecciones, herencias, pestañas anidadas, marcos anidados, etc.
Flexibilidad Dado que OpenXava se uso desde su mismo principio para desarrollar aplicaciones de gestión de la vida real (y no meros prototipos) tiene un nivel bastante alto de flexibilidad gracias a sus potentes anotaciones para vistas declarativa, los editores personalizados para propiedades, y la opción de crear la vista a mano.
Además, desde esta nueva versión 3.1.3, OpenXava te permite definir la forma en la interfaz de usuario se genera. Esto es posible porque puedes declarar editores personalizados para referencias (@ManyToOne, @OneToOne) y colecciones (@OneToMany, @ManyToMany). Es decir, si tienes esta colección en tu entidad JPA:
@OneToMany(mappedBy="padre", cascade=CascadeType.REMOVE)
private Collection comentarios;
Entonces OpenXava produce una interfaz de usuario genérica para la colección, tal y como la de esta demo. Si esta interfaz de usuario no se acopla a tu caso concreto puedes usar la anotación @Editor:
@OneToMany(mappedBy="parent", cascade=CascadeType.REMOVE)
@Editor("ComentariosBlog")
private Collection comentarios;
Y has de tener el editor definido en editores.xml, así:
Si tienes varias colecciones de ComentarioBlog esparcidas por tu aplicación, puedes definir tu editor así:
De esta forma no necesitas poner @Editor en cada una de las colecciones BlogComment.
Además, puedes definir el editor por defecto para todas las colecciones o referencias, como sigue:
Así, todas las colecciones y referencias de la aplicación serán dibujadas por tu propio editor. Por tanto, estás definiendo la forma en OpenXava genera la interfaz gráfica.
Más información: http://www.openxava.org/
¿Pensáis que usar JSF, FLEX, JavaFX or GWT directamente para generar la interfaz gráfica es de verdad productivo?
¿Creéis que una interfaz de usuario automática desde el modelo puede ser lo suficientemente flexible para aplicaciones de la "vida real"?
j2ee 
Reader Comments