We are happy to deliver Xsemble 3.5. Xsemble supported only web application platforms so far. With this release, support for standalone applications in two different flavors — desktop and command line applications — has been added. This capability may be generalized to embrace mobile apps in future.

Desktop Applications, Command Line Applications

Xsemble now support standalone applications — in terms of Desktop applications and Command line applications. For now, they are all based on Java technology.

Shown in the figure below is a simple hello application implemented as a Java desktop application (using JFC Swing technology).

Java Desktop App

And here the same application running on console:

Hello application running in console

The equivalent web application is:

Hello web application

Naturally, the UI is different among all of them.

As we understand, two applications are equivalent in functionality when the backend operations are the same while their UI is different. With Xsemble, the UI changes are isolated to the UI components only (which we call Page components). The components encapsulating operations (called the Method components) can be the same. They are not copy/paste of one another — they are exactly the same.

Note that this being exactly the same is not achieved by isolating common functionality into a separate web service. They are all in-process calls.

It takes component reuse further — across applications in different platforms. This can be important in situations such as:

  • you are migrating an application to another platform, or
  • developing applications for more than two platforms

In both these, the “Method” components would stay the same and “Page” components would be different. Differentiation between the two groups is made in black and white, and it could be available for every stakeholder — even the non-programmers. Imagine how much clarity this can add about the scope of the change, and how streamlined the work can be.

As another point, we show below the Pages that are newly added. One of them is edited to show that it has multiple implementations (shown by arrows). These implementations correspond to a different technology each, and map to be used in different platforms. This mechanism ensures that the Page implementations on different platforms follow the same contract, although they look and behave quite differently from one another. Therefore, any change in the contract gets applied to all the implementations uniformly, thus making their long term maintenance easy.

Multiple implementations of a single standalone component

Other Changes

There are numerous small changes that were added. Some of the noteworthy are:

  • Documentation improvements: The documentation that comes bundled with Xsemble is always the best source to use with Xsemble. It has the procedure of how to run each of the six technology platforms supported by Xsemble today.
  • On the Java side unit testing, Xsemble now generates test case templates in JUnit 5 instead of JUnit 4.
  • The burn dialog stays on while the burn happens in the background.
  • The generated code template for test cases now takes the name of the main implementation artifact, if one is present. This is done for all supported technologies.