My question arises based on the documentation I have read, but I still don't fully understand the architecture. Do apps now have entities, logic, UI, and APIs? Since libraries allow you to create normal entities, you cannot expose an API.
So, I want an example. I have the Theme, Common, and Patterns libraries, but what else could I put in the library? If I want to create a web app and create its data model within that app, how do I do it later if I want to reuse the data model or logic in a mobile app?
I just need usage examples and to understand the libraries and apps. Thanks to everyone.
Hi Felipe,
In O11, when you create an application you typically split it into different modules: database, business logic, UI, and so on. In ODC you will have all of this together inside the Application.
A Library is where you keep reusable code and components that aren’t tied to a single app, making it easy to share them across multiple applications. Unlike applications, libraries cannot persist data, so you can’t create normal entities there. You can only create static entities.
And to your last point: applications can share data and logic between them. You can reference elements from other applications, including entities and server actions.
I’m not sure how much of the documentation you’ve gone through already, but here are some helpful links:
I think after doing the two trainings I shared you will have the answers to all of your questions and plenty of examples.
Hi, But how to structure it before was canvas architecture, here could I create for example a front end app, and a core app and consume it?That's my question, since I see libraries as more of a business logic.
Thanks you.
Hi @Felipe Guerra ,
If you check the below video tutorial, you will be able to understand how to share the data between different apps.
https://learn.outsystems.com/training/journeys/architecture-patterns-581/sharing-data-patterns/odc/628
regards,
Manish Jawla
@Felipe Guerra : In ODC, a Library is a collection of reusable, domain-independent code that can be shared across applications. Each ODC Application contains its own Screens, Entities, and Business Logic. Unlike OutSystems 11, where the 4-Layer Canvas often requires separate modules for UI, Core, and Services, in ODC the default model is simplified -applications are self-contained, while Libraries are used for cross-app reuse.
Suggest you to go through the articles / videos shared by @Mihai Melencu .
Hi,
In the ODC architecture, the terms Foundation, Core, and End-user applications are no longer used, everything is simply called an Application. Applications can serve different purposes. For example, you might have one application focused on the user interface, containing screens, blocks, and the overall look and feel, and another application dedicated to handling data, with aggregates that manage all information and expose it to the UI application.
Here are two links that explain this in more detail, along with an analogy between O11 and ODC: