Continuando con el framework galileo, vamos a dar un paso más y mostrar la posibilidad de representar gráficos como parte de tu aplicación, para cuadros de mando, etc.

Mostraré un ejemplo sencillo para que quepa en un vídeo de unos 3 minutos.

La librería utilizada internamente es Flot, para jQuery. En su web pueden verse algunos ejemplos.

 
Dejo también un trozo del tipo de código que genera, que puede verse que es bastante intuitivo.
Continue reading

Hace tiempo que no escribo en el blog, pero creo que los avances merecerán la pena: hoy quiero presentaros el framework galileo.

Una vez me dijo un cliente, que “cómo costaba tanto desarrollar una pantalla de búsqueda, si era sólo escribir una query…” Y la verdad es que llevaba razón…

Sí… sé que este ejemplo es demasiado sencillo. Pero es sólo un aperitivo. Pronto más y mejor…

Haced zoom para verlo mejor…

Si trabajas habitualmente como desarrollador de aplicaciones con Eclipse este artículo te puede interesar.

Por un momento piensa si, a ti o a alguna persona de tu equipo, os ocurre con frecuencia alguna de estas situaciones:

  • Eclipse tarda más de un minuto en arrancar.
  • Cuando te mueves por tu proyecto Java, cada movimiento tarda segundos.
  • A veces la pantalla no responde durante más de diez segundos.
  • Otro tipo de funciones más avanzadas en Eclipse ya ni digamos.
  • Te preguntas porqué Eclipse no podría ser más parecido a un editor de texto y porqué es tan pesado y tedioso el desarrollo con Java…

Y lo peor es que uno llega a acostumbrarse a vivir con ello. Y no se trata sólo del tiempo adicional que tardamos porque el entorno va más lento, sino del tiempo que perdemos porque nos desconcentramos e incluso nos desmotivamos con frecuencia.

Si te has sentido identificado en cierta medida sigue leyendo. A continuación se indican algunas recomendaciones para un mejor rendimiento en el trabajo con Eclipse. Seguro que conoces algunas de ellas pero puedes descubrir alguna que otra.

Continue reading

Cuando hablábamos del framework pragmático, me decidía por Spring MVC pincipalmente por los siguientes motivos:

  • Permite implementar fácilmente una arquitectura sencilla y sin estado, basada en patrón Modelo-Vista-Controlador.
  • Siguiendo el modelo REST con controladores orientados a acciones y mapeo sencillo de URL a controlador. De esta forma los conceptos son más fáciles de aprender y de usar para el desarrollador.
  • Permite un manejo sencillo de validaciones y conversión de datos en las peticiones web.

A continuación vamos a ver algunas características de esta tecnología y algunas recomendaciones para un desarrollo productivo.

Continue reading

Continuando con el desarrollo del framework pragmático que nos hemos planteado, y una vez que se ha generado el esqueleto de la aplicación con Spring Roo, vamos a dar algunos detalles adicionales sobre la capa de presentación y vamos a preparar la aplicación de ejemplo para ello.

Algunos de los objetivos que nos planteábamos para la capa de presentación eran:

  • Arquitectura REST con controladores orientados a acciones y mapeo sencillo de URL a controlador. De esta forma los conceptos son más fáciles de aprender y de usar para el desarrollador.
  • Manejo sencillo de validaciones y conversión de datos en las peticiones web.
  • Que permita desarrollar la interfaz de usuario directamente en HTML/CSS y un lenguaje de plantillas, impidiendo el exceso de programación mediante scriptlets complejos en la propia plantilla, y minimizando el uso de componentes complejos a definir mediante xml. Así las plantillas podrán ser diseñadas por un especialista web (HTML/CSS), sin requerir conocimientos avanzados de programación y más fáciles de desarrollar y de mantener.

Pues bien, para ello la selección tecnológica era:

  • Capa de presentación basada en Spring MVC.
  • Motor de plantillas Velocity.
  • Framework jQuery.
  • Twitter Bootstrap para implementar las hojas de estilo.

¿Y cómo integrar estas tecnologías en nuestra aplicación?

A continuación se muestran los pasos a seguir para incorporar estas tecnologías en la aplicación de ejemplo del artículo anterior.

Continue reading

Cuando hablábamos del framework de desarrollo web en Java, algunas de las características que buscábamos eran estas:

  • Facilidad para comenzar una aplicación nueva de forma rápida y sencilla.
  • Utilización de generadores de código para el esqueleto inicial de la aplicación.
  • Tener un número mínimo de librerías y artefactos de terceros, y que tengan una madurez suficiente, de forma que sea menos propenso a errores.
  • Conseguir una estructura de ficheros del proyecto software que sea sencilla y estándar, basada en convención sobre la configuración.

Pues bien, la opción propuesta para ello es Spring Roo, y en este artículo vamos a intentar resumir los pasos que se pueden seguir para crear una nueva aplicación desde cero mediante generación de código.

Los resultados que esperamos son:

  • Generar una estructura de carpetas para nuestro proyecto web en Java, compatible con maven, muy bien pensada y organizada.
  • Disponer de una primera versión de todos los ficheros de configuración del proyecto: de maven (pom.xml), de la aplicación web (web.xml), de los contextos de spring (applicationContext.xml), de la persistencia (persistence.xml, database.properties), de la seguridad (applicationContext-security.xml), de las caches (ehcache.xml), del log (log4j.properties), de la configuración para el envío de correos (email.properties), etc.
  • Generar una primera versión del modelo de dominio (entidades de negocio), que se van a mapear con el modelo relacional de tu esquema de datos.
  • Generar también una primera versión de los objetos de acceso a datos.
  • E incluso podríamos generar una primera versión de los controladores y de las vistas de nuestra aplicación, aunque esta opción no la vamos a utilizar en nuestro framework, principalmente porque prefiero usar otro lenguaje de plantillas y también porque prefiero desarrollar personalmente las plantillas y los controladores, pues el código que genera Spring en este caso no me parece fácil de mantener.

¿Preparados? Pues manos a la obra.

Continue reading

Si trabajas en el desarrollo de software, te habrás visto en esta situación múltiples veces: a la hora de comenzar una aplicación o un nuevo proyecto te preguntas ¿que tecnologías utilizo? ¿qué frameworks de desarrollo?

La decisión que al final vas a tomar podrá tener que ver con diferentes factores:

  1. Las directrices o recomendaciones de tu cliente.
  2. Las preferencias de tu empresa o departamento.
  3. Tú propia formación o experiencia y la de tu equipo de trabajo.
  4. Las necesidades del proyecto, en función de las características que ofrecen dichas tecnologías o frameworks: facilidad de aprendizaje, madurez, productividad del desarrollo, flexibilidad, cumplimiento de estándares, herramientas disponibles, rendimiento, escalabilidad, seguridad, facilidad de mantenimiento futuro, propensión a errores, independencia de la infraestructura (hardware y software base), usabilidad de la interfaz de usuario, soporte y calidad de las librerías que utilizas, y un largo etcétera.

Por tanto, la decisión tendrá un fuerte componente subjetivo y estará muy influenciada por tu contexto concreto en ese momento: por tu cliente, tu empresa/departamento, tus propias preferencias y las de tu equipo, y las necesidades particulares del proyecto o aplicación.

En estas páginas voy a exponer mis propias preferencias, aunque tengo que avisar previamente que no se trata de la mejor decisión para cualquier contexto. Simplemente son unas preferencias, por un conjunto de motivos que presentaré, que son válidas para determinadas situaciones.

Continue reading