Our Blog

04

Jul

Schrödinger's Cake — how to have your cake and eat it with Microsoft Dynamics 365 Business Central

Microsoft Dynamics 365 Business Central has a very long name. It is the latest moniker of a product that has had many, including "Navigator", "IBM-Navigator", "Navision", "Avista", "Navision Financials", "Navision Solutions", "Navision Attain", "Microsoft Business Solutions–Navision Edition", and "Microsoft Dynamics NAV".

So farewell Microsoft Dynamics NAV and hello Microsoft Dynamics 365 Business Central. Or Business Central. In fact, let's just call it BC.

Microsoft Dynamics 365 Business Central cake

I've been working with NAV since I moved to New Zealand in 2002 and I love it. Yes, it has its quirks and annoyances (just like me), but when it comes down to business, NAV simply gets the job done. And if you want it to work differently, you can change it.

The ability to customise NAV is possibly its greatest strength, but there's a downside. The more changes we make, the harder it is to upgrade.

In NAV we customise the application by adding fields to pages, creating new reports, changing business logic, adding validation rules, and so on. If you can think it, we can do it.

When it's time to upgrade to a new version we need to identify the changes and then re-apply them to the new version. Sometimes this is easy and sometimes this is really, really hard. If Microsoft has made significant improvements to a part of the system that we have modified, our changes may need to be completely re-engineered.

I guess this isn't too bad if we only upgrade once every five years or so, but Microsoft release new versions of NAV every year and there are cumulative updates every month. Sometimes it feels like we're always missing out.

What we really want is a system that can be modified to meet our needs but still be easy to upgrade. We want to have our cake and eat it. And now we can.

How has Microsoft achieved this seemingly impossible act? Instead of modifying the system directly by adding fields or changing code, we now simply tell BC which fields we want to add and how code should be changed by creating extensions. We can remove our extension and BC will archive the data, then if we add the extension again, BC simply restores the data. It feels magical.

As well as the amazing upgradability this new architecture introduces, we also get the ability to download and apply apps from Microsoft's AppSource which introduces a whole set of considerations. Even though the apps are applied as extensions, each app creator needs to play nicely to ensure their app does not introduce behaviour that conflicts with the standard application, the customer’s modifications, or other AppSource apps.

BC brings a new paradigm to development that has made me change the way I think about design and programming. It is now important to think about how we can meet our requirements by listening for events that are raised by the standard application and taking the appropriate action. For example, when the system shouts out "Hey, I'm about to post this sales invoice, anyone interested?" we can register our interest and take the appropriate action applying new validation rules or changing values before the standard posting routine continues. As you can imagine we need to be careful to only apply extensions that work well together.

As for the upgrades, Microsoft will ensure that new versions are compatible with a customer's extensions and apps before applying them. If there are issues, they will contact the app provider or partner and get them to resolve the issues.

This all sounds great but as in all things new, the proof of the pudding is in the eating. Thankfully New Zealand is in the second wave of rollout of BC so others have been eating the pudding since April. Wait, pudding? I thought this blog post was about cake?

Posted by: David Roys, Technical Lead | 04 July 2018

Tags: Microsoft Dynamics 365, Business Central


Blog archive

Stay up to date with all insights from the Empired blog