Strandz.org

JProfiler The best Java IDE
Home
Home Forums Glossary Make Contact


Strandz is an application programming framework that has been specifically designed with two principles in mind. The first is that Strandz applications are maintainable. A by-product of this is that there is only a small amount of code required per unit of functionality. Another by-product is that they are quick to get up and running. The second principle is that the dependencies of a Strandz application can be 'plugged-in'. Thus all Strandz applications will be easy to modify and resilient to changes to the user interface (UI) toolkit or database access software they use.

With Strandz the programmer constructs a 'wire outline' of the database application and then programs to it. Programming to a wire outline not only provides portability, which flows through to longevity and hence a lower total cost of ownership, but also significantly reduces the amount of work that a programmer has to do. Although a deployed application will of course usually require UI and database layers, the application logic is independent from those layers and hence simpler than would otherwise be the case. Additionally the logic can use the services provided by the wire outline - the kind of services that are required in almost all projects. With this approach Strandz applications are faster to write and easier to maintain than those written with any other framework.

The developer can 'program to the wire' at either or both design and runtime. Thus despite the framework's usefulness for straightforward CRUD applications, it can also be used as the basis for highly configurable programs.

Strandz is a dependency-injection style domain driven development framework that targets rich-client software applications. From the front-end point of view it takes care of application binding and controller requirements. And from the back-end point of view it talks to POJOs as well as other types of data objects.

Strandz comes with a datastore independent data access layer. Having this access layer means that the same application can be configured to work with data that comes from lists in memory or one of several object-relational mapped data sources.

For any Strandz application screen to function the developer will have specified how its controls bind to the data fields of the domain model. Application screen controls are bound to the underlying data objects in a 'big picture' way: the application's runtime code is able to access a meta-object model that describes the master-detail and lookup relationships that the user's actions will be invoking. This is the 'wire outline' we mentioned earlier.

These special meta-objects are of type Application, Strand, Node, Cell and Attribute. In a typical application they are created and organised in a 'drag and drop' design time tool. It feels as if you have your design documents with you at all times whilst maintaining the project, and it is assured that the meta-information they contain will always be kept up to date. Because these SdzBeans can optionally be worked with (even created) at runtime, the framework can meet the most demanding user-interaction requirements.

Update on the status of this project

Strandz has been designed to be able to carry its applications through changes in technology. In particular the same old Strandz/Swing applications should be resilient to a change in the UI toolkit. With the appearance of JavaFX, these applications should be able to easily become Strandz/JavaFX applications. There is of course 'framework' work that needs to be done first. Under JavaFX we demonstrate a JavaFX program and go through the steps required for Strandz to become JavaFX capable.


Get Strandz at SourceForge.net. Fast, secure and Free Open Source software downloads Java.net member Logo Powered by Debian Logo