Sunday, April 24, 2011

Roo is not just for CRUD operations

In recent times I met couple of developers who are always skeptical about using a Rapid Application Development tool, like Spring Roo. The main limitation cited after going through a tool like Spring Roo is that it is best fit to scaffold a CRUD user interface. I agree with the developers to some extent because Spring Roo scaffolds user interface which performs CRUD operations on JPA entities. BUT, this perspective is from developers who perceive that user interface is the only important part of an enterprise application. There is lot more to Spring roo, which some developers fail to see. For instance, using Spring roo you can easily develop a sophisticated JPA entity model, consisting of relationships and finder methods.
If you go a little deeper into the Spring roo architecture, and understand the importance of using AspectJ to contain roo-managed code, you'll find that Spring roo is doing lot of heavy lifting behind the scenes to generate the boilerplate code, so that you can only focus on writing the business logic.

A good understanding of what Spring roo does in response to executing a command from roo shell can greatly reduce the amount of boilerplate code you have to write to create an enterprise application. When creating a Spring Web MVC/GWT/Flex application or incorporating Solr, messaging, emailing,Spring security features in your application or developing applications for GAE, lot of configuration information needs to be provided in web.xml or module descriptor or flex configuration file or Spring's application context or web application context file. If you are using Spring roo, most of this configuration is automatically created for you in respective configuration files. 
Roo also manages your pom.xml and configures plugins (like GWT plugin, GAE plugin, Tomcat plugin, Eclipse plugin, IntelliJ IDEA plugin, and so on) and adds project dependencies which greatly boost developer productivity. If you have an understanding of scaffolded Spring Web MVC or GWT or Flex application, then you can also quickly modify it to meet your enterprise application requirement.
Roo is a fast-growing tool and with every new release you see lot more features that can further improve developer productivity. For instance, JSF add-on is planned in the near future, which will simplify developing JSF applications.

No comments:

Post a Comment