Welcome!

Java Authors: Liz McMillan, Walter H. Pinson, III, Maureen O'Gara, Yakov Werde, Tony Bishop

Related Topics: Java

Java: Article

KISS + Swing = RAD

How to rapidly develop enterprise class Swing applications by keeping things simple

It took less than five minutes to generate and since it's just Java Swing, it can easily be customized and extended for use in an application. You can see a detailed demo of XTT on JavaLobby. Tools like these can really kick your development into overdrive.

More Synergies: Combining Swing Frameworks with Object Databases
By combining a Swing framework with an object database, you can cover 80%-90% of your application's plumbing. Now you can focus on developing the user interface and business logic.

Visualizing Code Coverage
Figure 7 depicts using XTT with an object database, in this case InterSystems' Caché. The specific implementation will differ somewhat for other object databases and Swing frameworks. The purpose here is to illustrate what percent of the software stack we can address by using these technologies. Here XTT fully addresses the presentation layer, data binding, and data transport layers of the application. Note that XTT can bind directly to the SQL/relational interface of the database or to POJOs that are then synchronized with objects on the server. In this configuration, developers only have work with objects on both the client and server and data persistence from the client is automatically handled by XTT.

Summary
By using object databases, Swing, and Swing binding/transport frameworks you can reduce the plumbing code you develop by up to 80%-90% for the typical enterprise application. Each database and framework provides its own unique functionality and features and should be evaluated to see which best meets your needs - but most of them can significantly reduce the amount of code you have to develop and maintain. With 80% less code to write, you're well on your way to RAD.

References
Object Databases

-SIDEBAR-

Swing on the Desktop
There's been a lot of noise about Swing making a comeback on the desktop lately. Performance concerns are a thing of the past and new projects like the Java Desktop Integration Components (JDIC), Java Desktop Network Components (JDNC), Data Binding, and SwingX are adding much needed capabilities to Swing that improve the user experience and simplify development by providing much needed functionality in easy to use libraries. This, continuing our theme of simplification, saves you from writing and maintaining your own code.

-SIDEBAR 2-

Development Simplification rules of Thumb

  • Always survey the market before starting a new project to see what new technologies and frameworks can be used to simplify your development effort.
  • Use an object database to eliminate the work and overhead of mapping frameworks.
  • Limit the number of layers and technologies your application uses. It will reduce complexity and simplify maintenance.
  • Use frameworks based on open standards to provide the "plumbing" of your application so you can focus on the custom business logic. The frameworks should:
    - Be based on open standards => Therefore they will be supportable and extendable
    - Replace role-your-own "plumbing" => Reducing the code you write and maintain
    - Provide advanced features/functionality => Features you may not have the time or expertise to develop in-house.

More Stories By Richard Conway

Richard Conway is a software developer and technology consultant with more than 15 years of technology, project management, and information services experience. He has extensive experience developing Java/Struts-based web applications. He started focusing more on Swing based developments at the beginning of 2005 and has just finished a Swing-based client/server asset management project. He lives in Miami with his wife Patricia, is currently working on an EMR application, and plays sand volleyball in his spare time.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.