web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Small and medium business | Business Central, N...
Suggested answer

What are Best Practices for Organizing and Managing Customizations in Business Central (AL)

(0) ShareShare
ReportReport
Posted on by 12

Hi all,

I'm looking for guidance on how to manage and organize customizations in Business Central, especially when working on a mix of large and small changes for a client

For example, I’ve built a customization to automate Purchase Order creation directly from the Sales Order page for drop shipment scenarios. This involved creating table extensions, a codeunit, and a page extension specific to that functionality.

Later, I needed to make additional changes related to the Sales Line table and subform, which were not strictly tied to drop shipment functionality, but I added them to the same extension objects because they were initially related.

Now, the solution is growing and includes:

  • More Major customizations like automated drop shipment handling.
  • Minor tweaks and changes to standard behavior.
  • Some features that are dependent on each other, and some that are not.
  • Code is becoming lengthier

I'm concerned about the long-term maintainability and readability of the code. My questions are:

  1. What are the best practices for organizing customizations like these?
  2. Should I be splitting functionalities into separate apps/extensions or keeping them together with clear comments?
  3. How do you decide when to create a new table extension or codeunit versus reusing an existing one?
  4. Any tips for handling dependencies between related features?
  5. Is it a good practice to keep all table extensions in one .app file and have the rest of the logic (like pages and codeunits) in another .app file that takes a dependency on the first? Or is it better to keep related logic grouped together in a single app?

Would love to hear how others manage this, especially in larger or long-term projects.

Thanks in advance!

I have the same question (0)
  • Suggested answer
    RockwithNav Profile Picture
    8,018 Super User 2025 Season 2 on at
    What are Best Practices for Organizing and Managing Customizations in Business Central (AL)
    Have a look for MS recommendation 
     
     
    If it's a custom code for a client then you can bifurcate it to make it more handy and manageable in terms of consistent modification, normally for a product development we use to keep one keeping in mind that we have to deploy it over Appsource.
    Create proper folders with table and table extension separate. Keep on doing code review to make it short and simple and cleaning unnecessary codes.
  • Suggested answer
    Sohail Ahmed Profile Picture
    11,001 Super User 2025 Season 2 on at
    What are Best Practices for Organizing and Managing Customizations in Business Central (AL)

    Great question — this is something many teams face as their Business Central projects grow.

     

    Here’s a concise breakdown of best practices for organizing and managing customizations in AL for long-term maintainability:

     
     

    🔹 1. Modularize Your Extensions

     

    •  

      Split functionality into separate extensions (apps) by domain (e.g., Drop Shipment Logic, Sales Customizations, Finance Enhancements).


    •  

      This helps isolate changes, manage deployments, and control dependencies more cleanly.



    •  
     
     

    🔹 2. Use Reusable Codeunits & Helper Libraries

     

    •  

      Create utility codeunits (e.g., DropShipmentHelper, SalesLogicManager) to separate business logic from page/table logic.


    •  

      Avoid mixing unrelated logic in one codeunit — this improves testability and reuse.



    •  
     
     

    🔹 3. One Object = One Responsibility

     

    •  

      Don’t overload one tableextension or pageextension with multiple features.


    •  

      Create separate extensions or at least logically group fields & code with clear region blocks and comments.



    •  
     
     

    🔹 4. Handle Dependencies Carefully

     

    •  

      If Feature A depends on Feature B, either:

       

      •  

        Use dependencies in app.json, or


      •  

        Move shared logic into a base utility app both features can depend on.



      •  


    •  
     
     

    🔹 5. App Structuring Strategy

     

    •  

      You can:

       

      •  

        Create a Base App for core table extensions


      •  

        Create Feature Apps (Drop Shipment, Pricing, etc.) that depend on the base



      •  

    •  

      This is scalable and preferred for ISVs or large customer solutions.



    •  
     
     

    🔹 6. Naming & Folder Structure

     

    •  

      Organize code files into folders by object type and feature:

       
      /DropShipment
        ├── TableExtensions/
        ├── PageExtensions/
        └── Codeunits/
      /SalesTweaks/
      /Shared/
      

    •  

      Use clear object naming: DropShipmentMgmt, SalesOrderExt_DropShip, etc.



    •  
     
     

    🔹 7. Documentation & Region Tags

     

    •  

      Use #region tags in AL and comments to explain why something exists.


    •  

      Maintain a simple README for each app or feature folder.



    •  
     
     

    🔹 Final Tip:

     

    For large or long-term solutions, use DevOps (with branching and automated builds), and manage apps through separate Git repositories if needed.

     
     

    Mark below checkbox to make this answer Verified if it helps you. Let me know if you want a sample structure for multi-app solutions.

  • Suggested answer
    Sagar Dangar, MCP Profile Picture
    777 Super User 2025 Season 2 on at
    What are Best Practices for Organizing and Managing Customizations in Business Central (AL)
    Hi,
     
    If you are not using Azure devops then just add comment in every objects/field/code/pageactions of project with Description of task.
     
    If you are using Azure DEVOPS then it can be managed easily for large extension without adding any manual comment.
  • Suggested answer
    YUN ZHU Profile Picture
    90,466 Super User 2025 Season 2 on at
    What are Best Practices for Organizing and Managing Customizations in Business Central (AL)
    Hi, You can refer to Erik's advice first.
    Sometimes, two apps are better than one in AL and Business Central
     
    Before BC23, I recommend that large projects be in one app, because when the same table is expanded in multiple apps, multiple actual tables will be created, which will affect performance.
    More details:
    Business Central 2023 wave 2 (BC23): New Data model for table extensions (Better performance when working with multiple extensions)
     
    Now it’s mainly about management, there is no mandatory use of only one app or separation.
    For example, Microsoft has split some functions into separate apps, but some functions have begun to be integrated into the base app.
     
    Hope this can give you some hints.
    Thanks.
    ZHU

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Andrés Arias – Community Spotlight

We are honored to recognize Andrés Arias as our Community Spotlight honoree for…

Leaderboard > Small and medium business | Business Central, NAV, RMS

#1
Sumit Singh Profile Picture

Sumit Singh 2,707

#2
Sohail Ahmed Profile Picture

Sohail Ahmed 2,675 Super User 2025 Season 2

#3
YUN ZHU Profile Picture

YUN ZHU 2,228 Super User 2025 Season 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans