¿Qué es Uberfire?

UberFire es un framework Web inspirado por Eclipse Rich Client Platform (no sé si esto de por sí es una ventaja o un inconveniente :D)

Uberfire es un proyecto estratégico para el equipo de Drools y jBPM, y va a ser la tecnología base para la nueva generación de herramientas Web de Drools y jBPM (en las últimas versiones se basaba en GWT).

 

El proyecto maneja los conceptos de:

Perspectivas: como mecanismo para interacción con tareas

Layout flexible: de modo que usuarios puedan personalizarse su entorno.

El proyecto parece que tiene futuro!, aunque actualmente se encuentra en versión Alpha y aún necesita mejora, sobre todo en la parte de Look&Feel.

En este vídeo podéis ver como la nueva consola de jBPM está construida sobre Uberfire:

http://www.youtube.com/watch?v=WMUQKncH1S0&feature=player_embedded

Emitrom Platform ahora es opensource

 

Emitrom acaba de anunciar que libera como productos opensource (licencia Apache 2.0) sus plataforma Emitrom Platform que incluía:

La plataforma permite programar en Java (con un API Java para cada producto para finalmente generar código para diferentes plataformas), e incluye:

· Touch4j : genera aplicaciones Phone Gap

· Titanium4j : basada en GWT y Appcelerator genera Javascript (usando compilador GWT)

· Flex4j: genera Flex. Vaya, hace tiempo se me ocurrió hacer justo esto, aunque la falta de tiempo me hizo abandonar la idea, me alegra saber que era viable!!! Muy interesante para todos esos programadores Java que han tenido o tienen que pegarse con Flex

· Air4j : genera AIR

Plugins JQuery: Editores ricos de texto

Si necesitamos un editor rico de textos seguro que uno de los plugins de JQuery tiene la respuesta :D

A ver si adivináis con cuál me quedo! (no os fiéis del orden, la respuesta al final)

Query RTE:

· Tan sencillo que su código cabe aquí (claro no esperéis mucho más :))

jWysiwyg

· Ofrece doble licencia (MIT y GPL)

· Ofrece un manual más que suficiente y bastantes ejemplos

Aloha Editor

· Probablemente el más avanzado y configurable de todos, podéis ver las demos.

· Con mucha documentación

· Con una barra contextual estilo Windows

· Desde mi punto de vista poco intuitivo en muchos casos

CLEditor

· Open source

· Sencillo, potente y extensible

· Poca documentación

· Con varios plugins (iconos, tablas,…)

NicEdit

· Documentación, ejemplos

· Configurable

CKEditor

· Sucesor de FCKEditor

· Tiene todo lo necesario y más!

· Usado por los grandes

· Extensible

· Licencia: El único de pago (aunque 850$ por compañía o 350$ por web creo que no es un problema, no?)

· Barra configurable, Skins, añadir Flash, subir imágenes

TinyMCE

· Open source

· MCImagenManager:

· Muy completo

jHtmlArea

· Funcional, poca documentación, funcional!

·

Markitup

· No es exactamente un editor rico de texto, si no un editor HTML/Wiki/…

· Documentación escueta pero suficiente y ejemplos

· Soporta atajos de teclado

· Skins

· Menús configurables

· Preview

· Licencia MIT/GPL (si queréis colaborar basta con que colaboréis en pagarle una cerveza al autor :))

Sí, CKEditor…siempre y cada vez más pienso que en muchas ocasiones perdemos el norte (además del tiempo y el dinero) intentando usar un producto gratuito (que no open-source) cuando hay otra opción de pago que nos habría ahorrado horas o días de trabajo!

Un poco de GWT

Google Web Toolkit (GWT) es la propuesta de Google para el desarrollo de Aplicaciones RIA con AJAX.

Se creó conforme al manifiesto: “La misión de GWT es mejorar radicalmente la experiencia de los usuarios con la web permitiendo a los desarrolladores utilizar las herramientas Java existentes para construir aplicaciones Ajax independientes del navegador”. Su licencia es Apache 2.0.

GWT permite crear aplicaciones AJAX en el lenguaje de programación Java que son compiladas posteriormente por GWT en código JavaScript ejecutable optimizado que funciona automáticamente en los principales navegadores.

  • El ciclo de vida es el siguiente:
    • Programas en Java: Durante el desarrollo de una aplicación, permite aprovechar la ventaja de poder depurar y recorrer una a una todas las líneas de código Java, antes de generar el código Javascript.
    • Depuras en Java
    • Pruebas en Java
    • GWT compila de Java a JavaScript: GWT genera código JavaScript que se carga y ejecuta con mayor rapidez que el código JavaScript equivalente creado de forma manual. Por ejemplo, el compilador de GWT suprime de forma segura todo el código no utilizable.
    • Despliegas en JavaScript
  • GWT es compatible con los principales navegadores: Internet Explorer, Chrome, Firefox, Safari y Opera. El código se escribe una vez y GWT lo convierte al JavaScript más adecuado para el navegador de cada usuario.
  • Comunicación con el servidor: GWT puede comunicarse con cualquier tecnología de servidor, realizando llamadas AJAX desde el cliente y transportando la información utilizando JSON o XML.

  • GWT proporciona por defecto el mecanismo GWT RPC el cual nos permite realizar llamadas remotas a Servlets, GWT se encarga de la serializacion entre Java <-> JSON para realizar las llamada. Es un mecanismo similar a RMI en Java.

Librerías de componentes: permite crear componentes reutilizables mediante la composición de otros componentes, además existen multitud de librerías disponibles: GWTGWT IncubatorSmart GWTGWT-ExtIT Mill ToolkitGWT mosaic

  • Integración con las principales herramientas de desarrollo Java: Eclipse, IntelliJ, JProfiler y JUnit
  • Integración con JUnit: permite efectuar las pruebas unitarias en un depurador como en un navegador, e incluso probar de forma unitaria las llamadas a procedimientos remotos (RPC) asíncronas.
  • Integración con las APIS de Google: Google App Engine, Google Maps,..

  • GWT tiene cuatro componentes principales

o Java-to-JavaScript Compiler: la función del componente es traducir el código desarrollado en Java al lenguaje JavaScript compatible con los navegadores mas utilizados.

o Hosted Web Browser: este componente ejecuta la aplicación Java sin traducirla a JavaScript, en modo host usando la máquina virtual de Java. Utiliza Jetty como servidor embebido.

o JRE Emulation Library: contiene las bibliotecas más importantes de las clases de Java. GWT emula parte de la API de Java.

o GWT Web UI Class Library: contiene un conjunto de elementos de interfaz de usuario que permite la creación de objetos tales como textos, cajas de texto, imágenes , botones y otros widgets.

· El flujo de trabajo: El flujo de trabajo de desarrollo, varía con respecto al desarrollo habitual de aplicaciones JavaScript, ya que permite trabajar y depurar todo en Java hasta el momento del paso a los diferentes entornos, a continuación se detallan las diferentes pasos a seguir en el flujo permitido por GWT:

  • Permite editar código Java y visualizar los cambios inmediatamente sin tener que volver a compilar.
    • Durante el desarrollo de una aplicación, se pueden ver inmediatamente los cambios realizado en el código mediante el navegador propio de GWT. No es necesario que volver a compilar el código en JavaScript ni desplegarlo en un servidor.
  • Permite recorrer todo el código AJAX con el depurador de Java
    • En la fase de producción, el código se compila como JavaScript sin formato; sin embargo, mientras se está desarrollando la aplicación, se ejecutará en el máquina virtual como bytecode. Eso significa que, cuando el código realice una acción como gestionar un evento de ratón, se podrá depurar en Java como cualquier otra aplicación. Todo lo que pueda hacer el depurador de Java se podrá realizar también sobre el código GWT.
  • Compila e implementa código JavaScript optimizado para varios navegadores
    • Cuando la implementación esté lista, GWT compilará el código Java en archivos JavaScript independientes sin formato que estarán disponibles a través de cualquier servidor web.

· UIBinder: Permite definir la interfaz mediante xml al estilo del MXML de Flex, lo que hace mas sencillo definir la estructura de la interfaz de usuario.

o Facilita la colabroación con los desarrolladores UI que pueden trabajar con XML, HTML y CSS en lugar de con código Java.

o Separa la parte estética de su comportamiento

o Soporte internacionalización

· Vaadin: Vaadin es un framework web construido sobre GWT y que a diferencia de este opta por una arquitectura server-driven.

o Sobre GWT ofrece algunas características interesantes:

o Plugin para Entorno de Desarrollo: este tiene tanto para NetBeans como para Eclipse y como destacado ofrece un editor visual y funcionalidades para crear Componentes, Wizards, ayuda integrada.

o Despliegue: el despliegue sólo implica un JAR, de hecho su WAR de ejemplo sólo implica este JAR

o Integración con Spring

o Componentes: por un lado que ofrezca un gran conjunto de components out-of-the-box que te permitan desarrollar el 95% de tu aplicación y por otro que se puedan crear.

o lo que veo

o Soporte de la comunidad: ofrece foros, FAQs,…

o Soporte comercial:

o Ofrece un gran número de componentes:

· GWT Designer: Es un entorno de desarrollo comercial basado en la plataforma Eclipse para desarrollar aplicaciones GWT, ofrece:
  1. Diseñador WYSIWYG
  2. Wizards
  3. Completado de Tags
  4. Depuración
  5. Errores de compilación

Esta herramienta está orientada a desarrolladores GWT

  • Permite crear componentes con wizards.
  • Ofrece wizards el desarrollo orientado a datos:
Publicado en Google, GWT, Java, Web. 6 Comments »

Proyectos Google que usan GWT

Por si alguno dudáis del futuro de GWT aquí va una lista de proyectos de Google que usan GWT:

AdWords http://google.com/adwords

AdSense http://google.com/adsense

Flights http://flights.google.com

Hotel Finder http://www.google.com/hotelfinder

Offers https://www.google.com/offers

Wallet http://wallet.google.com

The New Blogger http://www.blogger.com/

Chrome Webstore https://chrome.google.com/webstore

Product Search http://www.google.com/prdhp?hl=en&tab=mf

Public Data http://www.google.com/publicdata/home

New Google Groups http://groups.google.com

Orkut http://www.orkut.com

Google Health (discontinued)

Google Wave (discontinued)

PlayN (basis of Angry Birds)

Publicado en Google, GWT, Web. Leave a Comment »

Ejemplo para integrar Flex o JavaFX con JSF 2.0

Ejemplo para integrar Flex o JavaFX con JSF 2.0 (http://www.oracle.com/technetwork/java/lai-flex-javafx-jsf-301278.html?msgid=3-3822972114), mediante algunas opciones como:
- Paso de parámetros a Flex mediante flashVars
- Comunicacion entre el cliente (e.g. Flex) y la sesion JSF mediante AJAX con JSF 2.0

RichFaces 4 release

A finales de marzo, salió la versión 4 de RichFaces (http://www.jboss.org/richfaces), la cual se basa al 100% en JSF 2.

Algunas nuevas características:

Client Side Validation based on JSR-303 Bean Validation specification:

Object Validation for easy cross-field validation implementation:

Push feature based on the Atmosphere framework:

IndraDesktop: otro Escritorio Web (este lo he probado)

(Gracias Edu)

es un Escritorio Web multiplataforma que permite la integración de otras aplicaciones Web en un entorno Web.

La funcionalidad que ofrece es muy similar a la de EyeOS, a diferencia de este internamente está desarrollo sobre Tecnología J2EE (el escritorio es un WAR).

Viendo las imágenes os podéis hacer una idea de lo que ofrece:

Yo lo he usado y os puedo asegurar que merece la pena probarlo.

Algunas de sus funcionalidades:

Este desarrollo de Indra está disponible desde hace tiempo en SourceForge, podéis descargarlo desde aquí:

(link)

CubicTest: Grabación de Test funcionales para la Capa Web desde Eclipse

Seguro que muchos ya conocéis Selenium e incluso lo habéis usado para generar test de integración en la capa Web….pues para todos vosotros una herramienta a tener en cuenta (de hecho no entiendo porque no es más conocida):

Hace ya dos años que descubrí y ahora que vuelvo a usarlo vuelve a sorprenderme :)

CubicTest es un plugin de Eclipse que integra las capacidades de Selenium y Watir (y alguna más) en Eclipse.

Podéis instalarlo en Eclipse desde su update site: http://boss.bekk.no/cubictest/update/) o bien descargarlo como una versión standalone aquí.

Y como una imagen vale más que mil palabras ahí va una imagen con la grabación realizada sobre el ejemplo vote de Spring Roo:

Entre otras funcionalidades de CubicTest:

· Grabación de test: las acciones ejecutadas en Firefox (u Opera que también lo soporta) generan la ejecución que se veía arriba.

· Crear manualmente test: para el caso de que creemos el test antes que la aplicación

· Correr test

· Generación de HTMLs a partir de un test: estos HTMLs contienen los campos incluidos en el test.

· Exportación de Test a Selenium y Watir

· Al crear proyecto CubicTest se crea un proyecto Maven2 que incluye un plugin Maven2 para lanzar los test en la compilación (mvn test)

La última versión de CubicTest es la 2.0.3, de marzo de 2010, respecto a la que conocía se ha mejorado el interfaz, esta versión no requiere ninguna configuración. Creas el proyecto y a grabar.

Nuevas características GWT 2.1 RC1

GWT 2.1 RC1incluye algunas características previstas en GWT 2.2. Son estas:

contains features specified by the roadmap, such as new table and tree widgets, but also features that were initially planned for GWT 2.2, such as logging. Another important feature is an MVP framework.

· Cell Widgets: pensados para visualizar grandes conjuntos de datos (se crean inyectando HTML en el árbol DOM)

· Safe HTML: una librería para evitar la vulnerabilidades XSS (Cross-Site-Scripting)

· MVP Framework: GWT 2.1 añade un framework MVP (Model-View-Presenter). En esta version aparecen los concpetos de Activities y Places.

· Server-side Speed Tracer: al desplegar en GAE o SpringSource TC Server se puede usar Speed Tracer para analizar el rendimiento

· Logging: incluyendo remote logging desde cliente a servidor.

Publicado en Google, GWT, Java. 1 Comment »
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 408 seguidores

%d personas les gusta esto: