We can create different modules that belongs to different layers.  When we publish a module OutSystems platform compiles and as a result some compiled file is created.


My doubts are:

  • What is the result of a module compilation? A dll?
  • Does it matter if we are talking about Foundation, Core Service Modules or End User Modules? (My guess is that if the first answer is a dll then probably a End User Module will not be compiled into a dll but I must ask)
  • If an End User Module produces a compiled file with different characteristics then what is this file?

Hi Daniel,

Yes a module represents a C# class and generates a dll.

But also HTML, CSS and Javascript files are generated (for the reactive, traditional and mobile screens and client side code). Maybe some other files for resources are generated too.

But while developing OutSystems applications, you don't have to worry about how code is generated and what binaries are created. It is also not relevant in regards to the 4LC.

The platform takes care of all generation, validation of code and deployment of your applications.

Regards,

Daniel


Daniel Castro wrote:

We can create different modules that belongs to different layers.  When we publish a module OutSystems platform compiles and as a result some compiled file is created.


My doubts are:

  • What is the result of a module compilation? A dll?
  • Does it matter if we are talking about Foundation, Core Service Modules or End User Modules? (My guess is that if the first answer is a dll then probably a End User Module will not be compiled into a dll but I must ask)
  • If an End User Module produces a compiled file with different characteristics then what is this file?

Hi Daniel,

As you have guessed Outsystems platform server compiles the code and deploys the generated dlls in the actual application server. I think all modules are finally converted to dlls irrespective of type of module.

Just curious, why are you asking this question ? Are you planning to meddle with the generated code ? 

Thanks

Ravi


Hi Ravi, thanks for the reply. :)


No, I am just curious about this subject.  However an End User module or Orchestration made me ask that because we have screens and screens and dlls seems to be non related topics from my point of view.

Daniël Kuhlmann wrote:

Hi Daniel,

Yes a module represents a C# class and generates a dll.

But also HTML, CSS and Javascript files are generated (for the reactive, traditional and mobile screens and client side code). Maybe some other files for resources are generated too.

But while developing OutSystems applications, you don't have to worry about how code is generated and what binaries are created. It is also not relevant in regards to the 4LC.

The platform takes care of all generation, validation of code and deployment of your applications.

Regards,

Daniel


I know, but this doubt came from a client and I am trying to get the answer for him.


It doees make sense to gerente a dll for the Foundation and Core modules.  But the same happens with the other modules?  And also, what happens when I create a mobile application (non reactive)?  What is produced after compilation?


When you create a mobile application several objects are generated by OutSystems

  • .apk file for with the mobile application for Android or .ipa for iOS
  • html, css & javascripts files for the screens and client side code.
  • dll's for the server side code
  • tables etc. in the database server

This list is most likely not complete.

Either way, I wouldn't bother to much on how OutSystems generates new applications, the technology stack could even be changed by OutSystems. For me, the most important is that my investment in learning & developing an application is not lost when OutSystems changes the underlying implementation of how to generate an application, and that OutSystems takes care of the repetitive tasks of validating, generating and deploying my applications.