My favorite part of building software is web development. I have been involved in building Web Services for EBI, Dashboard development for EEI and EBI, and I’m continuing to work on the web-based administration console for EBI 3x. A new project has cropped up where I get to do more web development. I’ve researched new frameworks that are available, and I’ve discovered that web development just got a lot more fun!
This new project has quite a bit in common with our current dashboard, which consists of multiple portlets for each EXTOL product. At the time the dashboard was being developed, portlets were a hot topic in the Java world, and JBoss Portal was a great application server for hosting portlets, so our dashboard became a bunch of portlets users can customize on one or more portal pages. A few years later, we’ve identified some problems with JBoss Portal:
- Starting the server takes too long and takes up too much memory for a Dashboard application.
- There is no upgrade path.
- Some of their APIs in the version of JBoss Portal that we use did not work.
Eclipse RAP is a framework that exposes Eclipse plugins through a web browser. Eclipse plugin development requires using SWT for the UI. Eclipse RAP replaces the original SWT API with web specific calls. What this means is by swapping out libraries, I shouldn’t have to change any code to take an existing framework I’ve written to expose it as a Rich Internet Application. There are some problems with RAP:
- Eclipse RAP is a bit slow when it loads for the first time.
- The default interface design is rather bland, but it is possible to change the theme.
- Once in awhile I struggle with their API to execute certain tasks correctly. I have to keep switching between non-UI threads and UI threads.
- It is required to learn Eclipse RCP first before looking at RAP, which takes some time.
I’m currently using Vaadin for this new project. Vaadin is similar to Eclipse RAP in that you code your web application like a Java GUI. Vaadin’s data table supports resizing, sorting, and column reordering, which is a must have for this project. Vaadin has a slick theme, is really fast, and easy to learn because they have great documentation. They have a demo site available here.