We've structured our project folder as follows:
We have an Src folder and under that we have a subfolder for every functionality and then for object type.
The name of each AL file is created using Microsoft's naming guidelines:
- Each file name must start with the corresponding type and ID, followed by a dot for full objects or a dash for extensions:
- Full objects: <Type><Id>.<ObjectName>.al, such as Tab.50100.MyTable.al
- Extensions: <Type><BaseId>-Ext<ObjectId>.<ObjectName>.al : page 50100 MyPage extends Customer Card such as Pag21-Ext50100.MyPage.al
- It is required to use a prefix or suffix for the name property of the fields in your extension. You would then use the Caption/CaptionML values for what to display to the user. This avoids the collision of fields between extensions...