Search code examples
mdalowcode

ObjectReef different file extensions


I feel a bit lost in understanding what the different types of files created by ObjectReef are. We have files with a .reef extension for source code.

There is a .refs file, which appears to be a project configuration file.

I have encountered .refi, .refr and .refd yet.

I ask because I am wondering which of these files are relevant to the application. Where is the application code stored, where is the data, etc.?


Solution

    • .reef is for source code. All files with this extension are scanned and compiled through build process
    • .reex is for excluding source files from the compilation. Changing the last letter from f to x will cause exclusion from the build, but still it will have syntax highlighting on IDE
    • .refs It's project (solution) configuration file (XML), like package.json for node.js apps.
    • .refi This is an internal xml file used by engine to navigate to solution root folder.
    • .refr. We call it repository. This file contains whole compiled binary machine code. In other words, it's compiler output file. This file contain all your classes and operations compiled and optimized by ObjectReef. This file may be different for different operating systems and processor architecture due to different calling conventions. For example .refr built on MacOS with Apple Silicon processor will be slightly different than .refr file built on Windows on Intel's x86-64 architecture.
    • .refd it's the application instance data. In multitenant case each tenant has different .refd. Each .refd file has a dependency to the application code (.refr file). So in this file all data (objects aka instances of your classes) of an app are stored. But it's not true when database is used. In database mode all data are stored in MySQL. The .refd is rather cache file with most used object saved. In such case the content of .refd file can be replaced according to the data usage.

    It's a very brief description. Feel free to ask for more details you need.