A non-developer’s take on Microsoft Dynamics NAV 2016’s Extensions (not events)

The other topic of conversation in the Microsoft Dynamics NAV developer’s community since the 2016 launch is Extensions (previous called NAV Apps). These are on Microsoft’s roadmap for creating easily installable customisations that sit on top of a core Dynamics NAV system and provide the extra functionality and flexibility that companies need. They promise to preserve the historic strength of NAV while eliminating the ‘technical debt’ that customisations create – which ultimately has to be repaid when upgrade time comes round.

The other topic of conversation in the Microsoft Dynamics NAV developer’s community since the 2016 launch is Extensions (previous called NAV Apps). These are on Microsoft's roadmap for creating easily installable customisations that sit on top of a core Dynamics NAV system and provide the extra functionality and flexibility that companies need. They promise to preserve the historic strength of NAV while eliminating  the ‘technical debt’ that customisations create – which ultimately has to be repaid when upgrade time comes round.

Don’t confuse them with events, Extensions use events but you can use events without creating an enhancement.

What really is an enhancement? It’s an installable package for your 2016 system that its layered on top of the core system (so can be enabled per tenant) that can either just change what’s there or include a number of new objects and processes as well.

When you add a set of custom objects onto a Dynamics NAV system you usually have to modify some standard objects to connect with those customisations. That might be adding an action to a toolbar, adding fields to a standard table or adding a whole new set of options via a menusuite. You have to have some way to get to the new functions right? 

Packaging your customisations as an enhancement allows these changes to appear without the core standard objects being changed. The changes are overlaid if you line up the systems used although in reality it happens before that for performance purposes. The key point is the standard objects remain standard, that means when a new set arrive in the next cumulative update you can just copy them on with no re-merging of customisations, really, really cool stuff.

I expect that in five years’ time, every significant add-on or vertical will be supplied as an enhancement, roll on that day.

Why five years and not today? Well in some ways similar to events, this is version one of Extensions and while its good and shows lots of vision and promise, its not close to finished yet. Microsoft are still working hard on it, expect a very significant improvement over, what my guess would be, the next couple of versions. Then two or three years for the ISV’s to rewrite their add-ons to use events and be packaged as Extensions and NAV’s nirvana will be here.

What’s missing today? Well you cannot have reports, XMLports or queries in enhancement’s currently and certainly reports are a serious gap. One other major issue is that the development environment is not aware of the enhancement, because its enabled at runtime and may be in one tenant and not another, so you cannot see the fields you’ve added to tables as part of that enhancement for instance. How do you then add those fields to a report if you cannot see them?

So your developers need to be aware of Extensions and might on occasion be able to use them but expect that probably that will be the exception rather than the norm, for now.

You should be asking your ISV’s what their roadmap for migration to Extensions is, don’t expect a ‘within a year’ answer but they need to be thinking about it and planning for it. Getting to commit to going that route when it technically viable will mean you save you significant time and cost when they deliver it.

That’s why I think it’s great that Microsoft have released it even with its current limitations, its gives us all a chance to get our heads around it and means adaption should be that much faster going forward. Events you can start to use now; Extensions are much less likely but both are going to change our world very significantly in the medium future.