BAM Projects
BAM projects help you to organize the files necessary for generating Genero applications.
You have different types of BAM projects: first choose between a Desktop or Mobile application, then choose between a structured or simple project.
A simple project is created without an expansive setup of nodes and files; you must define your own structure and organization.
A structured project is created with a default structure of nodes and files, which guides the organization of your project. You can modify the structure after it is created.
Best practices
- Start with a structured project.
- Use Genero (no link) as the Language property (this is the default in the structured project).
- Put all modules (.4gl sources) of an application under the same application node. Within the node, you can use virtual folders to further organize the modules.
- Organize your files as in Table 1.
File | Project (logical structure) | Disk (physical structure) |
---|---|---|
Business Application diagram (.4ba ) | Applicationflow |
$(ProjectDir)/appflow |
Implemented program file (.4prg) | Main_prg | $(ProjectDir)/src |
Form file (.4fd*) | Entities | $(ProjectDir)/src |
Report data file (.4rd) | Entities | $(ProjectDir)/src |
Web service server file (.4ws*) | Entities | $(ProjectDir)/src |
Configuration file, such as:
|
Config | $(ProjectDir)/config |
Database meta-schema file (.4dbx) | Database | $(ProjectDir)/database |
Resource file, such as:
|
Resources |
$(ProjectDir)/resources |
Image (.jpg, .png, etc.) | N/A | $(ProjectDir)/images |
Web component (.wcsettings, etc.) | N/A | $(ProjectDir)/webcomponents |
Test scenario (.4gl). | Test |
$(ProjectDir)/tests |
If you organize your files in the recommended manner, you minimize your configuration tasks. For example, if you save your report data files to the Entities node, it will work as-is; however, if you save your report data files to the Applicationflow node, you need to set two dependencies: the first between Entities and Applicationflow, and the second between Applicationflow and Database.
This organization also facilitates the packaging process. The structured projects provide defaults that mirror the recommended directories; for example, the Images node of the package has its Source directory property set by default to $(ProjectDir)/images. For further information, see Package and directory nodes (GAS) and Package and directory nodes (mobile).
For examples of BAM projects that follow these best practices, see the Quick Start guides for generating a desktop application and generating a mobile app.