Architecture: Refactoring Bulk Enduser Module
Question
Application Type
Reactive
Service Studio Version
11.10.16 (Build 40209)
Platform Version
11.11.2 (Build 28544)

We are having following scenario. Need to come up with good architecture.

The application is heavily used as frontend. The nature of application is data entry.

The number of screens would be less than 10 but each screens functionality rich, which would contains 100s of inputs & screen business logic (validations)

Now the application development is in halfway, however the frontend module becomes heavier. Opening a module and working in design time becomes slower.

Hence idea has been proposed to split the end user module into pieces to improve the manageability. Also provide help to developer to work in different screens independently (to avoid work on same module at same time)

Option 1: 

Create different end user module for different screen of functionality. Orchestrate application with one end user module by referencing screens from different end user module.

Note that screens are weak references in OS11, so we will not violate architecture rule of side reference in UI layer.

However, we will have to handle authentication, client variable and other common things separately for different modules when user travels across the screens (modules)

Option 2:

Create screens as blocks in core widget module (XXX_CW) for each screen and refer it in end user module.

The downside of option 1 will not be here as we use one frontend module to serve the users. 

In your opinion which option is better? Is there any other option we have?

Hi, You can optimize code by separating the part of screen to block and add them to screen. Regards, Komal
mvp_badge
MVP

Hi Arun,

I think you should go through the below documentation:

 https://success.outsystems.com/Documentation/Best_Practices/Architecture/From_architecture_to_development 

 https://success.outsystems.com/Documentation/Best_Practices/Architecture/From_architecture_to_development/Developing_from_the_architecture_blueprint 

My Suggestions:

1. Try to move your rich functionality and logic into the core modules independent of UI blocks, so that in the future if you have to change the look and feel it can easily be achieved by just plug and play your core functionality.

2. Have small UI web blocks for each functionality, so that you can group them easily wherever you want.

Hope this helps.

Regards,

Manish Jawla


Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.