Arquitectura adecuada- Proyecto Modelo

Buenas.

Actualmente estoy aprendiendo vaadin.
La filosofía de vaadin desarrollo de aplicaciones web como si fueran aplicaciones de escritorio en SWING o java FX, me parece muy buena.
No obstante mi antigua experiencia en desarrollo de aplicaciones con SWING, me hizo darme cuenta la importancia de seguir una arquictectura o patrones tipo MVC, Observer, etc… para tener un código más mantenible y que te evite más trabajo y quebraderos de cabeza.

He visto que en la sección add-ons ya hay algunos para integrar VAADIN con SPRING y otros para marcar la arquitectura.

Por esto mi pregunta es:
Existe algún ADD-ON o proyecto de ejemplo que me puedan recomendar donde se implementen las mejores prácticas en este sentido. Algo que me ayude mantener un patrón en cuanto a navegación, modelo, vista, controlador, etc…

Vengo del mundo de las aplicaciones web desarrolladas con frameworks como spring mvc, JPA, spring security etc… Por lo que si os orientado hacia alguna de estas tecnologías mejor que mejor.

Indicar que le he estado echando un vistado a JDAL, y tengo que decir que parece un gran trabajo aunque en los ejemplos que he visto, está ya todo demasiado estandarizado y encapsulado. No me entiendan mal, eso es lo ideal para mí, pero claro si necesitas hacer algo menos estandar necesitas saber como están estructuradas sus clases internas y como se comunican, pero eso ya no me queda tan claro si me serviría para cualquier propósito.

En general, lo que necesitaría es disponer de un proyecto de ejemplo que implemente buenas prácticas y que tenga bastante casuistica: navegación, utilización de diferentes componentes, seguridad, etc…y que utilice Spring y JPA. Para no estar dando palos de ciego reinventando la rueda. ¿ Conocen algún proyecto de código libre hecho en vaadin que me sirva de ejemplo?

Disculpad la parrafada… Gracias de antemano.

Hola

Tal vez te interesen éstos addons:


http://vaadin.com/addon/site-kit


http://vaadin.com/addon/javaee-application-addon-for-vaadin


http://vaadin.com/addon/vasap

Hola David.

Agradezco sinceramente sus comentarios sobre JDAL.

En principio el modelo que usa jdal-vaadin se aleja significativamente de una aplicación Vaadin clásica ya que gran parte del código de la librería ha estado enfocado en integrar el trabajo anterior que realicé sobre jdal-core y jdal-swing.

Así que bien porque algunas de las características del framework Vaadin ya estaban implementadas en jdal o bien porque no existían cuando empecé de escribir el módulo (y ahora si), la librería utiliza implementaciones propias en algunos aspectos claves de una aplicación.

Concretamente:

  • No usa el modelo de datos de Vaadin (Item, Property, Container…). El acceso a java beans mediante properties se delega internamente en el BeanWrapper de Spring. El acceso a datos se realiza a partir de las interfaces provistas por jdal-core (HibernateDao, JpaDao).
  • JDAL usa un sistema de binding de datos propio, heredado del módulo Swing, incluyendo el sistema de binding automático (No usa FieldGroups) y el sistema de validación, que también se delega en Spring (Spring Validators y LocalValidatorFactoryBean para anotaciones JSR-303)

Aunque la librería incluye componentes Vaadin propios, como la tabla paginable, la barra de navegación o el formulario de login, sigue siendo principalmente una librería de integración (vaadin scope, xml namespace, spring formatters, message source, locales, serializable proxies, etc…).

Reconozco que actualmente es difícil usar jdal (o sacarle partido) sin un conocimiento previo de Spring y que la documentación es escasa (y ahora anticuada desde la versión 2.0). No obstante creo que no debería de imponer restricciones o causar demasiados problemas si se cuenta con experiencia previa en Spring MVC.

Aún queda mucho trabajo por hacer, como integrar Spring Security o simplificar la configuración mediante anotaciones de código…

El proyecto acepta contribuciones :slight_smile:

Slds,

– José Luis.