Monday, May 5, 2014

WaveMaker: Rapid Web App Generator


Now-a-days web applications are demanded like customers buying goods from the retailers' shops. In fact companies like Google, Apple, Microsoft and others have already introduced concepts like application market or store on mobile and other areas as well. Software applications are no more expected to follow a baby-birth process these days which demands for a high speed rapid application development or generation. During the last few years MDA and other paradigms have attracted us toward meta-programming and different code generators. But they were not matured enough to generate a full-fledged web application so far. 
Looking at the future demand and technology trend, I was in search of such a web application generator which can generate simple web applications for database CRUD (Create, Read, Update, Delete) operations. I was excited with Naked Objects (NO) framework 
(
http://www.nakedobjects.org/) and anticipating a vital outcome on this direction. Eventually Apache Isis (http://isis.apache.org/index.html) attracted me since this is a Java based implementation of NO. It uses But the project is in incubator and has no definite road map for release and the product has some areas still grey. There is another implementation of NO on .NET known as NuGET. Hope readers will pardon my Java inclination here. 
Apache Isis is a framework for rapidly developing domain-driven apps in Java. Write your business logic in entities, domain services and repositories, and the framework dynamically (at runtime) generates a representation of that domain model as a webapp or as a RESTful API. Use for prototyping or production. Apache Isis follows the hexagonal architecture pattern (also known as the onion architecture or ports-and-adapters architecture). It places the domain model in the middle, with presentation, persistence and other services dependent upon the domain model. Though Apache Isis uses a very promising architecture with latest Open Source frameworks like Wicket, JPA, Hibernate and RESTFul communication but the amount of change to be made to enable it for professional usage is little de-motivating.
On continuation of my search someone referred WaveMaker ( http://www.wavemaker.com/) to me. While exploring WaveMaker (WM), ultimately I felt like I found something which falls in line with my hunt. WM is easy to deploy and learn. They have nice videos and tutorials to jump start development. The nice and browser based integrated development environment (IDE) for development and deployment. Most of the well known databases can be integrated with the IDE with export and import features. The IDE offers options to develop entity objects that can be engineered forward onto database tables. Also when the existing tables can be imported to WM, it generates entity objects automatically. WM uses DOJO for frontend code generation and hibernate for object relational mapping (ORM). 
It can also link with LDAP or database for user authentication and authorization. It uses a panel with DOJO and HTML elements to be use on the GUI by simple drag-drop feature. Each element has its own property panel that reminds me of IDEs like JBuilder, Visual Age, Power Builder and Visual Studio. It uses Tomcat as an embedded server to run the IDE and test run applications. WM provided limited numbers of GUI templates with pre-generated style-sheets which can be further modified in the IDE.