ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

Vaadin: A Java Web Application Framework

Updated on October 9, 2017
UnnamedHarald profile image

I've worked in IT for over 40 years, developing stand-alone apps and, as the Internet took off, web applications.

Vaadin Logo

Introduction

Perhaps you're tired of battling web frameworks with their mix of languages, rules, configurations, scripts and XML files. Are page-oriented web apps with the attendant complexity of handling state, debugging and testing making life difficult? Does the thought of supporting multiple browsers suck all the air out of the room? Maybe you or your team are Java developers, more familiar with Java application development than web development. For these reasons and more, you should investigate Vaadin, which is Open Source and freely available at http://vaadin.com under the Apache 2.0 license.

Server-Side Development

Vaadin is a Java web application framework for Rich Internet Applications (RIA) which have many characteristics of desktop applications but are web applications running in browsers. The large collection of UI components and the use of layouts is more akin to Swing development for the desktop. Developers implement these widgets in a Java server application which Vaadin dynamically translates (using Google's Web Toolkit (GWT)) into browser client-side components using AJAX technology behind the scenes. The application code runs in the server, handling the client requests via “normal” event listener handlers.

Support, Community and Tools

The free support behind Vaadin is impressive. The Book of Vaadin is an excellent manual. There is a short tutorial and a long tutorial covering many aspects of the Vaadin library. I have used the Vaadin Forum several times and the response from the community has been swift and helpful. Vaadin also provides an impressive Sampler Demo page which shows off all the UI components and the source samples used behind each one. And, of course, the source code for Vaadin is available.

Also available are tools for Eclipse and Netbeans integration, Maven support and testing. I've used the Eclipse plug-in for development and a Glassfish server and debugging is almost like debugging a desktop application-- no more breaks when something magical happens because of XML. I would say the area that could use more attention is explaining database binding. It's discussed in the book, but not really demonstrated. A solid tutorial showing this, now that one of the SQL Add-ons has lately been incorporated into the basic Vaadin library, would be useful.

There is a growing library of Add-ons (nearly 200), some free and some for sale. Example Add-ons include additional UI widgets, data components, themes, tools, etc.

Basic Vaadin, however, may be all you need. The basic Vaadin library is a single JAR file which needs to be included as part of your web application.

The company behind Vaadin is Vaadin Ltd., based in Finland. They also provide support and development help for a fee. The Vaadin framework may not be the holy grail but it's worth a look, if only to compare it to other frameworks.

Vaadin Components

Vaadin's Table and Tree Components
Vaadin's Table and Tree Components

Some other features:

The five supported browsers are:

  • Internet Explorer 6 – 9

  • Firefox 3 – 6

  • Safari 4 – 5

  • Opera 10 – 11

  • Chrome 13

Servers supported:

  • Apache Tomcat 4.1+

  • Oracle Weblogic Server 9.2+

  • IBM WebSphere Application Server 6.1+

  • JBoss Application Server 3.2.8+

  • Glassfish 2+

  • Google App Engine

  • Others

Comprehensive Component Framework

  • Rich, interactive widgets with lazy-loading

  • Drag and Drop support

  • Mobile touch event support

  • Databinding using MVC

Security

  • Server-side state management

  • Application code runs in the server

  • Secure parameter and request validation

  • Built-in input validation

  • SSL support

Extensible Component Architecture

  • Extensible widgets based on GWT

© 2011 David Hunt

Comments

    0 of 8192 characters used
    Post Comment

    • profile image

      Kris 

      3 years ago

      Just wondering if the GWT mail eampxle for source maps code is available for download? It seems that I've got the Code server to generate the source mapping files and I enable the source mapping in my chrome browsers. But when I select the JavaScript file in the source view all I see is JavaScript not Java. Just wondering if there is a some sample code to look to make sure I've got everything set up. BTW do I have to set the link between the JS and the Java file by hand, using the sourceMappingURL ? I currently using GWT 2.5 RC2

    • UnnamedHarald profile imageAUTHOR

      David Hunt 

      6 years ago from Cedar Rapids, Iowa

      Thanks for commenting, Nitin. I just received their latest newsletter and apparently Google is moving GWT toward a more open model and Vaadin has been made part of GWT's steering committee, meaning Vaadin will have even more support for GWT.

    • profile image

      Nitin Pathak 

      6 years ago

      Hey thanks for sharing and I am seriously considering Vaadin over Adobe Flex for the RIA development.

    • UnnamedHarald profile imageAUTHOR

      David Hunt 

      6 years ago from Cedar Rapids, Iowa

      Thanks, Tenkay. The Book of Vaadin is very good and free. They also have a pretty good tutorial. Good luck.

    • TENKAY profile image

      TENKAY 

      6 years ago from Philippines

      Hey this is great. I will look into this and will ask some friends to try the framework. Expect some questions from us, hope you don't mind.

      Thanks for sharing.

    working

    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://hubpages.com/privacy-policy#gdpr

    Show Details
    Necessary
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
    Features
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Marketing
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Statistics
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)