Dynamo: Web Application Accelerator Framework, version 4.0.0-RC2.
Developed, maintained and sponsored by:
Introduction
The Dynamo Web Application Accelerator Framework is a software development framework developed by Open Circle Solutions that aims to increase productivity by using design principles such as convention over configuration, model-driven development and DRY (don’t repeat yourself).
At the core of Dynamo is the concept of the Entity Model. The Entity Model describes the attributes and behaviour of an entity (or domain object) in your application. This Entity Model can then be used as the basis for creating forms, tables, search screens etc.
The Entity Model of an entity is automatically constructed based on the properties of the attributes of the entity (using sensible defaults as described by the convention over configuration principle) and can further be modified by using annotations and message bundle entries. The main goal is to reduce the amount of (boilerplate) code required to perform common actions like creating search screens and edit forms.
Complementing the Entity Model is a set of user interface components (widgets) that can be used to quickly construct screens for common use cases, and several base classes for the Data Access and Service layers.
The Dynamo framework is built around a number of proven and highly productive technologies:
-
JPA3.1 for ORM
-
QueryDSL for type-safe query generation
-
Spring Boot as the application framework
-
Angular (v16) as the front-end framework of choice
-
PrimeNG for a rich suite of components
The Dynamo Framework is distributed under the terms of the Apache License, a permissive open-source license for free and open-source software (FOSS).
The sources of Dynamo can be found at GitHub.
Dynamo versions and innovation
Please note that there currently two different Dynamo versions:
-
Version 4.x and beyond that implements the generated UI with Angular and PrimeNG
-
The older version 3.x that implements the generated UI with Vaadin
The master branch will focus on innovation for Dynamo v4 and beyond. Dynamo V3.x will be maintained with updates of dependencies when needed, but new functions of Dynamo V4 will only be backported when demand and business requirements are sufficient.
Features and benefits of the different Dynamo versions
Dynamo has many features and functionality, which are not covered fully in this summary. But this overview is intended to summarize the most notable features and benefits.
Features in both Dynamo versions
UI features
-
Runtime generation of complete UI in several different layouts to support various use cases
-
Choice of layouts:
-
A simple search layout consisting of a search form based on the Dynamo Entity Model and a results table
-
An edit form that can be used to create new entities or modify existing ones
-
A split layout that can be used to display a results table and an input form next to each other. The results table can optionally be filtered with a simple quick search or a search popup dialog
-
A search dialog to filter and select one or more entities from a potential large result set
-
The FlexibleSearchLayout is a search layout that allows the user to create complex search query’s by adding/removing search criteria
-
The EntityPopupDialog is a popup dialog that allows the user to create or modify a single entity.
-
-
Automatic form filler using AI (LLM), copy your unstructured data to the form filler dialog and the AI will interpret the data and automatically translate, transform, convert and fill in the form fields
-
Automatic generation of applicable components for fields based on datatype and/or declaration:
-
Nested detail table (children)
-
Dropdown (n-1 relationship to other entity)
-
Multi-select (n-m relationship to other entity)
-
Auto-complete (n-1 relationship to other entity)
-
Lookup field (n-1 relationship to other entity)
-
Option to edit element collections (children)
-
Radio buttons
-
Check boxes
-
Date picker
-
-
The functionality to dynamically replace the standard Dynamo input components by custom components
-
Functionality to search, filter, add, update and remove entities
-
File upload component
-
Fields can be grouped together in panels or tabs
-
Field ordering can be declared
-
Integrated bean validation with fields in UI
-
Custom validation support in UI
-
Paging and Lazy loading of large result sets
-
Default transformation of Enum values to select component
-
Automatic link generation to navigate from a child relationship to the applicable detail form
-
The option to post-process the edit form after the components have been created (e.g. to add dependencies between fields)
-
The option to export data from a table to CSV or Excel
-
Nested entities and entity collections are supported
-
Can be styled by using themes or custom
Backend features
-
Default services API for business logic (extensible)
-
Default data access layer (extensible)
-
No need to write query or persistence logic (extensible)
-
Simple but powerful fluent filter logic
-
Paging and Lazy loading of large result sets
-
Entity query optimization by the use of declarative (fetch)joins which promotes the JPA advise of lazy loading of relationships
-
Search results can furthermore be limited to prevent large results and timeouts
-
Services are transactional by default
Additional (optional) features
-
The MultiDomainEditLayout is a layout that can be used to easily edit multiple types of simple domain (code table) entities
-
The MultiDomainEditLayout provides a default backend implementation with JPA entities and entity model
-
The Hibernate envers module adds supports history on entities
-
The parameters module adds form to manage parameter lists
Differences between the Dynamo versions
Feature | Dynamo V3.x | Dynamo V4.x |
---|---|---|
UI Framework |
Vaadin |
Angular |
UI Widgets |
Vaadin |
PrimeNG |
Out of the box WCAG compliance |
||
Default REST API for entity CRUDS |
No |
Yes |
Default REST API for entity model |
No |
Yes |
Declarative security for pages |
Yes |
Yes |
Declarative security for REST |
No |
Yes |
Declarative security for Menus |
Yes |
No |
Replacing generated UI components |
Subclass layout component |
Declarative |
Custom actions as buttons with dialog |
Subclass layout component, but not intuitive |
Easy and concise with code and declaration |
Documentation and further reading
Documentation
Documentation of Dynamo can be found here as html (or here as pdf). Training documentation can be found here as html (or here as pdf).
Maven generated site
The Maven generated site with reports can be found here.
Contributing
Interested in contributing? Check our wiki!
Copyright © 2014 - 2024 Open Circle Solutions.
Nothing from this document may be copied and/or made public by use of print, photocopy, microfilm or by any other means, without prior permission of Open Circle Solutions.