Skip to content

Overview of URSYS Architecture

dsriseah edited this page Nov 25, 2024 · 5 revisions

Note

This is a work-in-progress draft

Architectural Goals

We want to separate UI code (e.g. React) from the ViewModel/Controller code to achieve GUI framework agnostic user interfaces in our application model.

The gist of this architecture is to consolidate APIs for data and UI transformations in smaller modules so they are easier to understand. There are some protections in place to force developers to not reuse property names and think-through their operational groups, actions, and shareable state.

Separation of Concerns

A challenge for programmers is having a common set of concepts and principles with which to think systematically about application operations, user interface events, and how to separate them cleanly in modular code. Related to this are the multiple types of data, derived data, view models, and user interface handling are separate and distinct entities without creating undue duplication of effort.

Main Article: Overview of URSYS Separation of Concerns.

Module Hierarchy

To make this all work seamlessly, there's a particular way that each type of module is declared as a dependency.

Main Article: Guide: Sri New Architecture (SNA) under SNA Module Patterns

Module Calling Conventions

Main Article: Guide: Sri New Architecture (SNA) under SNA Invocation Patterns