Have you searched for an application development tool that is open source, java, and based on web 2.0 standards? Has all the technology features and requirements of integrating multiple products into a cohesive development tool suite made the technological decision more difficult then it needs to be?
I recently decided to start my own business after years of working for companies like IBM & Dell. As an independent consultant, I needed a software development tool that could maximize my productivity and utilize my experience.
This article outlines my technical requirements and decision-making process.
Requirements for a Web 2.0 Development Tool
Some of the features of a web 2.0 development tool might be: easy and rich interactions with external services via web services, rich and easy to use UI widgets, a web-based development solution that runs in the major browsers (zero install footprint), seamless integration between the client and server, usage of standard debugging tools (ie FireBug and Eclipse), based on standard Java technologies such as Spring, JaxWS, Acegi and Hibernate.
In order to be productive as a single java developer team I would like to be sheltered from all the low level setup and integration of the various technologies. I would like to have an application development environment that combines the best of breed web 2.0 development technologies into one development environment tool that helps me be productive while delivering cutting edge solutions.
A few features I personally require:
- Web 2.0 UI: The developers tool is written with the tool
- Rich UI Widgets: UI widgets like Dojo for a Rich Internet Application (RIA)
- Web Browser Runtime: zero install footprint with no proprietary plugin
- Security System based on Spring Acegi: proven and robust security solution
- Seamless database integration: easy to build web forms for CRUD operation of the database schema
- Java support: full support of Java programming on the server: – I don’t want to have to learn YAL (Yet Another Language)
- Ease of deployment: support open source severs like Tomcat and JBoss
- Open Source: active community with source code readily available – a solution whose design is based on established standards
Selecting an Easy to Use Web 2.0 Development Tool
Since I want to write a web-based application that may be inter or intranet website or both, I would like the developer application to be built with the same technology that I will use. This is why I want the development tool to be web-based. For the UI, the very UI tools that are used in the final deployable web-based application should be the same components used in the developers tool. If the final end product I develop utilizes Dojo widgets then my developer tool should use those same Dojo widgets. I think some call that “eating your own dog food”!
If you’ve ever setup Spring Security with Acegi you know how difficult it can be. I think that Spring Acegi rocks and would like to have a development tool that supports it seamlessly. By that I mean having Acegi integrated into the developer tool and requiring from the developer a few definitions such as which table has the user id and password to enable security.
Database access can be the hardest part. The integration of the database schema should be evident when building UI components – the components should understand the keys (both primary and foreign), the data types, how to present to the UI and how to scroll and such. I should be able to create a functional sophisticated CRUD (Create Read Update Delete) pattern UI in minutes with no coding!
The deployment of the application should be a single mouse click – the requested war or ear should be generated and placed in a specific directory for easy retrieval. There should be no maintenance of ANT or Maven build scripts. My web-based deployable artifact should be generated quickly and be deployed it to any of the popular web servers: Tomcat, JBoss, GlassFish, WebLogic and WebSphere.