1 Attachment(s)
My (first) experience with Spring Roo on a commercial project
My latest development project, a Spring Roo based web application for a local government organisation, is going live within the next few days. This was my first experience of working with Spring Roo (and Spring MVC actually) and I thought it might be interesting to the Spring Roo community to document my experience.
In way of a summary before I go into detail about my experience I thought I would answer myself some of the common Spring Roo questions that get raised by people interested in the technology.
• Is Spring Roo hard to get started with?
Yes and no (not a great answer!). If you are familiar with Spring MVC then I think Spring Roo is a great tool. I came to Spring Roo with a very strong back ground in JEE web application and MVC development but did take time to see how the generated Spring Roo scaffolds could be tailored and modified efficiently.
Without some form of background in JEE MVC frameworks Spring Roo could seem quite daunting. But on the other hand at least you get to work with a well organised code base, something that is quite valuable.
The Dojo JavaScript library was also a source of ‘issues’ when picking up Spring Roo. If you don’t have experience of Dojo and need to customise your Spring Roo forms heavily then maybe Spring Roo isn’t for you at present. I got around my inexperience with Dojo by creating a jQuery only template where I could use my existing experience with that framework. Eventually I got up to speed with Dojo and found it very good – I can see why dropping Dojo for jQuery would be a knee jerk reaction by the team. jQuery as an alternative please…?
• Would you use Spring Roo on a commercial web application project?
My experience of using Spring Roo was on a single developer project where the time lines were not particularly aggressive. This helped and allowed me to get up to speed with Spring Roo and Spring MVC. So for a high profile or tight deadline I would only use Spring Roo if you are familiar with the tool or are experienced with Spring MVC.
I also think Spring Roo is currently better suited to ‘Intranet’ applications rather than an application that requires a top quality user-interface. Not that I am building crappy applications but the user interface polish acceptable in say an internal project is often lower than that needed on a public facing site. Spring Roo produces a quite acceptable interface for this type of application and so I feel currently gives the most benefit in this area.
Looking forward I think using Spring Roo to produce a rock solid (and organised) RESTful back end and then creating a JavaScript client may be the way to go for public facing applications.
• Having used Spring Roo for a project would you use it again?
Absolutely!
I use Spring Roo often to prototype applications, particularly to build quick back-ends for various mobile proposals that I am working on.
I would use Spring Roo on any web application that does not require a highly customised and ‘beautiful’ web interface – for me this means any project with a limited internal audience within an organisation.
I would hesitate before using Spring Roo within a large project team.
So in short I would recommend investigating Spring Roo and, even if it does not suit your current project, checking in again at regular intervals. I started using version 1.1.2 and found by 1.1.5 things had improved markedly. Having looked at 1.2.0 things seem better again and I certainly feel Spring Roo has a future.
I will also highlight my NUMBER ONE TOP TIP here too – use a great Distributed Revision Control System (DVCS) such as Mercurial (or Git) with Spring Roo from the very beginning. And commit all the time, especially before executing a number of Spring Roo commands. If like me you aren’t completely sure what Spring Roo will do (we are all learning this new technology) then having a back stop like Mercurial is essential for your sanity.
If you wish to read some more about my experience with Spring Roo check out the TXT attachement (sorry, size limit on PDFs so had to make it plain text).
And finally thanks to the Spring Roo team and community that have helped me get this project finished successfully.
Chris