# Naming standards

### <span class="mw-headline" id="bkmrk-url-related-naming-1">URL related naming</span>

- Allways use lowercase for application naming

### <span class="mw-headline" id="bkmrk-code-naming-standard-1">Code naming standards</span>

#### <span id="bkmrk-"></span><span class="mw-headline" id="bkmrk-package-%2F-naming-pla-1">Package / naming placement</span>

- Package name all lowercase
- General platform entities 
    - Servlets: **com.tsnocode.server.servlet**
    - Filters: **com.tsnocode.server.filter**
    - Core: **com.tsnocode.ui**
    - Fields: **com.tsnocode.ui.field.&lt;group&gt;**
    - Views: **com.tsnocode.ui.views.&lt;type&gt; (item,list,statistics,)**
    - Codeunit: **com.tsnocode.codeunit.common**
- Solution specific code 
    - TS customer app: 
        - **com.tsnocode.solution.app**
        - **com.tsnocode.solution.customer**
        - **com.tsnocode.solution.customer.app**
    - Vendor app: 
        - **com.vendor.tsnocode.app**
        - **com.vendor.solution.app**

#### <span class="mw-headline" id="bkmrk-class-naming-1">Class naming</span>

Naming convention follows Java standard

- Starting with uppercase
- No special characters
- Seperate words with uppercase

In addition the following are recommended

- CodeunitPage post fix name "Page"
- CodeunitService post fix name "Service"
- Shared ressources include "Helper"

### <span class="mw-headline" id="bkmrk-database-naming-stan-1">Database naming standards</span>

#### <span class="mw-headline" id="bkmrk-table-naming-1">Table naming</span>

System tables should follow this syntax

- lowercase
- no special characters

Reserved prefixes include

- data\_
- \_data\_ (deleted tables)

#### <span class="mw-headline" id="bkmrk-table-attribute-nami-1">Table attribute naming</span>

General rules

- Starts uppercase
- Next word in name starts with uppercase (eg ThisIsAnExample)
- Foreign keys ends with ID (eg UserID)

Changelog attributes fixed names

- CreatedAt
- CreatedBy
- ModifiedAt
- ModifiedBy
- FinalizedAt
- FinalizedBy