The A12 architecture puts a strong emphasis on simplifying client-side application development. It features a pre-configured build setup, engines for working with models and widgets for reusable UI components.

Standards where possible – Individual solutions where necessary

All parts of A12 – BAP Client, Engines, Widgets, and Plasma– are designed for extensibility and customizability. A12 aims at providing stable solutions for recurring problems while allowing for individual application-specific additions where necessary:

  • Application-specific UI parts can use Plasma directly
  • Application-specific components can coexist and interact with Widgets and Engines on the same screen

Plasma, Widgets and Engines provide structures and conventions, which can be used and applied to project-specific components and code.

The BAP client features a well-designed layered architecture. All code is written in Typescript (popular type-safe variant of JavaScript) and fully embraces React, Redux and useful extensions like Redux Sagas for handling asynchronous work and communication. A12 client services like localization, validation and logging is built on this foundation. The A12 Plasma widgets are pure React UI components and are the building blocks for the A12 engines, which compose the widgets according to a form model.

The BAP core and extensions (blue boxes in Fig 1) provide all means to develop applications. The core is central for a working application and extends Redux with some useful abstractions:

  • The application model specifies UI interactions, menus, routing and UI component resolution. It can be defined in a UI tool editor.
  • Activities as an abstraction for units of work in the client. Activities can depend on each other but also run in parallel. This abstraction provides the foundation for master/detail, multitasking etc.
  • Application frame and a flexible UI architecture around layouts, regions and views. Regions can be nested and use a layout to show its sub-regions and views. Engines, widgets and any UI containers are rendered in the views. The UI can is driven by the application model based on which activities are currently running. Activities drive views.
  • The Data Hub is responsible for loading data for the activities, like a data document to edit in a form, or the list of search results in a list view. It is completely decoupled from the UI and runs in the background. Actual data loading/saving is delegated to registered data loader components.

The BAP core supports modularization (bottom-up construction of an app made of modules).

The BAP client extensions is a collection of features that extend the core functionality, including dirty handling, showing static pages (like FAQ, help), deep linking, notifications, the connector for the A12 services, fully automated presentation of lists, forms, and relationships between data documents including loading, validation and saving.

„React in a Big Way“
Baschir Jaghoori and Martin Backschat are sharing their experiences of developing a React-based framework.
Read more

Wenn Sie auf der Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu.
If you continue to visit the site, you agree to the use of cookies.
Privacy Policy / Cookie Policy

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.