Thursday, May 15, 2008

Wavemaker Training Day 1

LewisC's An Expert's Guide To Oracle Technology


I mentioned the other day that I was playing with a new GUI builder from an EnterpriseDB partner, Wavemaker. Wavemaker, in addition to providing the software, provides some training that is downloadable from the web site.


This training is a two day basics course in powerpoint format. I would guess that this is what they use for instructor led training and they just made this available to the public. Anyway, I decided to see how good the training was which in turn kind of tells me how easy wavemaker is to learn.


Day 1 includes 8 powerpoint presentations:



  • Introduction

  • Wavemaker Architecture

  • Wavemaker Installation

  • Wavemaker Studio Overview

  • Page Designer Basics

  • Wavemaker Data Model

  • Service Components

  • Data Widgets


Seeing as how I was already making some simple pages with the tool, I blew through the intro, the architecture and installation. It's interesting stuff, though.


I snagged a screenshot of the wavemaker runtime from the powerpoint presentation. You can get all the details if you download the training zip file.


wavemakerarch


You can see the explicit separation of UI from logic from data. JSON is the middle tier communication and hibernate accesses your data. You don't have to write any of this logic. Wavemaker Studio generates all of this for you.


Interesting in this architecture is that everything that can provide data is treated as a service. More on that below.


I was able to finish the Wavemaker Studio Overview and Page Designer Basics presentations with just a little effort. I hit some difficult parts and the powerpoint doesn't have a tremendous amount of text but the tool is easy enough to use that I was to struggle through and get it completed. The training builds an application and each section builds on the last section.


When I go to the Datamodel stuff I was completely lost. The training said to use the sample database but it didn't have any description for how to get it or if it was already loaded. It had no information about how to connect or anything.


I did a search on the Wavemaker page and realized I had a duh moment. Directly below the powerpoint zip that I downloaded are several other files, including:



Duh. The supporting MySQL script creates the sample database. The training exercise book has all of the text that I noticed was missing from the powerpoint. Every step in the exercises is detailed and explained. I felt like Patrick on Spongebob. ;-)


BUT, even though I didn't have the text, I was able to use the studio and create some basic screens in the first exercises. That either means I'm smart or the tool is easy to use. I'll leave it for you to decide which it is.


Using my newly found instructions, I loaded up my sample database. I already had MySQL installed so it was just a matter of running the script. That went flawlessly and I finished that lesson easily.


The next lesson was Service Components. Here is something that I didn't think was all that big of a deal at first but it turns out to be a very nice architectural decision. When I created my data model, it automatically turned that into a series of services. I didn't really see the need for the extra step. However, a web service is a service. A java class is a service. A javascript can be a service. Etc.


What that means is that the data interface is completely separate from the logic to use that data. That means data can be decoupled and changed at any time. You can start with a direct connection to a database and in the future change the service to a web service. No need to change the app. Or what if you have a need for extreme performance? You can build some classes for say, look up tables, and use those as service for certain components. You can always change to a web service or database.


That's also nice for disconnected development. You can build your UI without ever seeing your database. As long as you know the model, you can temporarily implement it as a web service or java classes. It's an interesting concept and I plan to find time to play with it.


The last step was adding some data widgets (like lists and grids). That is also as easy as drag and drop. You go into your properties and attach widgets to services and that's how you map your data.


At the end of the first day's worth of training, I ended up with a somewhat complete application (albeit a very simple one). The training really doesn't take a full day. I think I finished this in a couple of hours and that's with a lot of playing around with the tool.


first_proj


I didn't follow all of the instructions as far as making it pretty. This is pretty much just where I dragged and dropped the widgets. It still looks pretty good, though. With some experience, this screen could probably be created in 10 or 15 minutes.


I want to finish day 2 and then I want to convert the sample database from MySQL to EnterpriseDB. I can use the EnterpriseDB Migration Studio to migrate the data and it should be a minimal change for my app. Just choose the new connect string and hibernate dialect and regen the mapping. I'll keep you posted.


LewisC

Software Blogs - Blog Catalog Blog Directory Software blogs Top Blog Sites Blog Flux Directory Lewis Cunningham