Buscar
Social
Ofertas laborales ES
« Temas Avanzados de JSF 1.2 por Carmelo Navarro | Main | Con cookies o sin cookies; no importa: en el siglo XXI la privacidad en la web ha muerto »
miércoles
nov242010

OpenXava 4.0: Desarrollo Rápido Web con Java

OpenXava es un marco de trabajo para desarrollo rápido de aplicaciones de gestión con Java. Es fácil de aprender y rápido para desarrollar. Al mismo tiempo es extensible y personalizable, además el código de la aplicación se estructura desde un punto de vista orientado a objetos puro. Por lo tanto, puedes enfrentarte a aplicaciones complejas con él.


La aproximación de OpenXava al desarrollo rápido no es por medio de usar entornos visuales (como Visual Basic o Delphi), o scripting, como PHP. Más bien, el enfoque de OpenXava es dirigido por el modelo (model-driven), donde el corazón de tu aplicación son clases Java que describen tu problema. De esta forma conseguimos productividad sin utilizar código espagueti.

La nueva versión of OpenXava, OpenXava 4.0, mejora significativamente la experiencia del usuario, produciendo una interfaz de usuario RIA. Adicionalmente, se han hecho algunas mejoras interesantes para los desarrolladores, como Groovy, JPA 2.0 o Inyección de Dependencias.

La mejor forma de saborear las nuevas características de OpenXava 4.0 es descargándolo y siguiendo la guía de inicio rápido.
Abajo tienes algunas de las principales novedades de OpenXava 4.0.
Mejor experiencia de usuarioEl siguiente pantallazo de un módulo de OpenXava 4.0 muestra algunas de las nuevas caraterísticas:

Otra nueva y útil característica de OpenXava es el uso de diálogos. OpenXava los usa para crear y editar elementos de las colecciones y referencias, aunque el desarrollador puede mostrar sus propios diálogos en sus propias acciones. Además, el usuario tiene la posibilidad de ocultar y mostrar cualquier marco en la vista. Por tanto, pude ocultar cualquier referencia, grupo o colección para adaptar la interfaz de usuario a sus necesidades y preferencias. El siguiente pantallazo muestra estas características:

Éstas son sólo algunas de las nuevas caracteristica sobre la interfaz de usuario. OpenXava 4.0 tiene alrededor de 40 mejoras de la interfaz de usuario.
Más opciones para los desarrolladoresOpenXava 4.0 permite usar Groovy para codificar todas las partes de tu aplicación, ahora usa JPA 2.0, puedes usar inyección de dependencias en tus acciones y la forma de hacer tareas típicas ha sido simplificada.
Por ejemplo, puedes usar Groovy para definir tu entidad, como sigue:
@Entity
@Table(name="TOrder")
@View(members="""
    year, number, date;
    customer;
    details;
    amount;
    remarks
    """
)
class Order extends Identifiable {
    
    @Column(length=4)
    @DefaultValueCalculator(CurrentYearCalculator.class)
    int year
       
    @Column(length=6)    
    int number
   
    @Required
    @DefaultValueCalculator(CurrentDateCalculator.class)
    Date date    
   
    @ManyToOne(fetch=FetchType.LAZY, optional=false)
    @ReferenceView("Simplest")
    Customer customer   
    
    @OneToMany(mappedBy="parent", cascade=CascadeType.ALL)    
    @ListProperties("product.number, product.description, quantity, product.unitPrice, amount")
    Collection details = new ArrayList()  
    
    @Stereotype("MEMO")
    String remarks
       
    @Stereotype("MONEY")
    BigDecimal getAmount() {
        BigDecimal result = 0
        details.each { OrderDetail detail ->
            result += detail.amount
        }
        return result
    }
        
    @PrePersist
    void calculateNumber() throws Exception {         
        Query query = XPersistence.getManager()
            .createQuery("select max(o.number) from Order o " +
                    "where o.year = :year")
        query.setParameter("year", year)        
        Integer lastNumber = (Integer) query.getSingleResult()
        this.number = lastNumber == null?1:lastNumber + 1
    }
        
}
También tienes a tu disposición el estándar de Java para inyección de dependencias, JSR-330:
public class ChangeActiveYearAction extends ViewBaseAction {
 
    @Inject  // Standard annotation from JSR-330
    private int activeYear; // Getter and setter are not needed
 
    public void execute() throws Exception {
        assert activeYear == 2010; // The value from session object
        activeYear = 2012; // It changes the value of session object
    }
 
}
Así el objeto de sesión activeYear se inyecta en la propiedad activeYear antes de llamar a execute(); y después de ejecutar execute() el valor del campo activeYear se vuelve a asignar al objeto de sesión activeYear. Por tanto, se puede cambiar el estado de los objetos de sesión, incluso con tipos inmutables o primitivos.
Hay algunas mejoras en las acciones que no añaden nueva funcionalidad, pero permiten simplificar la codificación de algunos casos típicos. Por ejemplo, ahora es fácil añadir y quitar acciones en vivo desde una acción gracias a los nuevo métodos addActions(), removeActions(), clearActions(), setControllers(), returnToPreviousControllers() y setDefaultControllers()  presentes en BaseAction. Otros métodos nuevos en BaseAction tal como getRequest(), getContext() y getManager() añaden bastantes posibilidades con poco esfuerzo.

Éstas son sólo algunas de las nuevas características para los desarrolladores. OpenXava 4.0 tiene sobre 90 mejoras para los desarrolladores.

Descarga OpenXava 4.0 y pruébalo

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.
Comentarios deshabilitados
Comentarios deshabilitados en esta noticia.