In NAV 2017 we can publish our changes as Extensions. Using extensions allows us to create customizations without making changes to the source code shipped by Microsoft. This makes future upgrades less challenging for our customers by eliminating the code merge portion of an upgrade.
If you want to create an Extension, you are not allowed to make code changes to most existing objects shipped by Microsoft. There are only two supported object modification categories, those to tables and those to pages.