40
Views
5
Comments
Application’s Template
Question

Dear All,

I have A question which is correct?

1.Considering the Architecture Canvas and its layers, in which type of module should the application’s Template be created?

  • Core Services Module.
  • End-User Module.
  • Business Services Module.
  • Foundation Module.


thanks,

Ibrahim

2024-03-23 18-16-49
Bryan Villalobos

Hi @Ibrahim Salameh ,

Templates are modules that will be reusable as a starting point to create new applications. They will not be referenced by modules but instead, will take the contents as a base for new modules. Since templates are highly reusable, they should be placed in the Foundation Module. You can refer to this link that shows this:

As you can see, Themes, Patterns and Templates should all be under the Foundation Module.

I hope this helps.


Regards,

Bryan

2024-06-01 07-14-16
Vaishali Thakur

Hey @Ibrahim Salameh 

End-User Module.

In OutSystems, the application's Template, which includes user interface elements and layouts, should be created in the End-User Module. This module is designed to contain the front-end components of the application, such as screens, UI flows, and user interactions, which are directly visible to and used by the end-users.

I hope this will be helpful for you 

thanks

2024-03-22 09-17-23
Chandra Vikas Sharma

Hi Ibrahim,

OutSystems templates should be placed in the foundation layer because they can be used across multiple applications.

Let me know if more further information required on this.

Thanks

Cv

2024-10-12 12-11-20
Kerollos Adel
Champion

when considering the Architecture Canvas and its layers, templates should be placed in the Core Services layer. Here's why:

  1. Core Services Module: This module is part of the Core Layer, which contains reusable components such as data models, APIs, and foundational logic. Templates are UI components that should be reusable across multiple layers, including End-User and Business Services Modules. By placing the template in the Core Services Module, you ensure that it is accessible throughout the entire application architecture, promoting reusability and consistency.

  2. End-User Module: This module typically handles the presentation layer and the actual implementation of the UI for specific applications. While it makes use of templates, the templates themselves should not be defined here because this would limit their reusability across other modules.

  3. Business Services Module: The Business Services layer focuses on implementing the core business logic, which processes data and orchestrates workflows. Templates are not relevant to this layer because this layer is not concerned with UI or reusable visual components.

  4. Foundation Module: This layer contains low-level technical services such as system integrations, security, and cross-cutting concerns. Templates are not suited for this module either, as it is focused on the underlying technical infrastructure.

Best Practice Insight:

Placing templates in the Core Services Module ensures a clean separation of concerns, which aligns with the layered architecture pattern in OutSystems. By doing this, you enhance the maintainability and scalability of your application, making sure that any updates to the templates are reflected consistently across all modules that use them.

This approach adheres to OutSystems best practices for architecture, ensuring that your application remains modular and easy to extend over time.

I hope this makes things clearer! Let me know if you need further elaboration. 😊

2023-10-31 07-36-11
Marlies Quaadgras
Champion

Hi @Ibrahim Salameh 

As you see in this picture, the Template is placed in the foundation


The main reason is, that the template is not business agnostic, so it should be placed in the foundation layer.

The foundation is not only for system inegrations, but as described above, also the Theme, Patterns will be in the foundation.

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