Code Compilation in Project Hub
  • 28 Feb 2024
  • 1 Minute to read
  • Dark
    Light

Code Compilation in Project Hub

  • Dark
    Light

Article Summary

Overview

Decisions is a 'low-code' application that does not require coding and does not deploy generated code except for custom data structures. Changes made to data structures in the platform are communicated to the database through .cs files. These .cs files are compiled into .dll files, called Code Buckets, by the Code Compiler within the Decisions installation folder. Code Buckets are sequentially generated files named "GeneratedCodeBuckets.dll" as the newest and incremented integers for older files. This process is called Code Compilation and is triggered upon data structure changes or can be manually initiated via Designer Folders for recompiling data structures or Code Buckets. Recompiles also occur during project imports through the Import/Export option.

What's Changing

In v8 and earlier, changes made to any dynamic or user-defined type result in recompiling that entire environment. For instance, creating or modifying a data type triggers the regeneration and compilation of that type and all types within that environment, even those not directly altered. This recompilation happens every time any change occurs, affecting the entire environment's dynamic assembly.

In v9, the new Project System addresses the limitations of this recompilation practice. Unlike v8's server-wide .dll generation, v9 implements project-specific .dlls. Each project will have its own pre-compiled assembly, eliminating the need for other environments to rebuild assemblies upon deployment. This enhancement aims to mitigate potential issues related to type mismatches or confusion, especially in environments with numerous types and projects where dynamic code compilation might become slow or problematic.


Code Compilation Dashboard

Found under Project > Settings > Health > Data Structures | Results, the dashboard will display a timeline of each compile. Compiles with errors will appear on the Error Details Report on the lower half of the screen.


FAQ

QuestionAnswer
How does this system handle dependencies between projects?
For instance, if Project B relies on Project A, and there's a modification to a data structure within Project A that Project B also uses, triggering a project-level code compilation in Project A, will Project B undergo a similar compilation process due to its dependency on A?
Yes, when changes occur in the shared data structure within Project A, both Project A and its dependent Project B will compile to ensure compatibility and synchronization between the projects.
What conditions or actions prompt a system-wide compilation across all projects?
There's no specific system-wide trigger for compilation. Compilations are localized to individual projects based on their respective changes or dependencies.

Was this article helpful?