A little over a week ago I attended the Dutch Dynamics Community again, for the first time in a while. It was good to catch up and exchange news with peers in my network.
“You’ve been quiet Mark!” is what I’ve been told a few times and that’s true. For some time I try to be quiet and focus on things that are more personal like being a dad of five now and trying to manage the project of fixing up my Land Rover Defender.
It’s not a secret that for quite a while I was in big disagreement with the roadmap Microsoft was following and my resignation as Microsoft MVP was a direct result of that.
“You have enemies? Good. That means you’ve stood up for something, sometime in your life.” ― Winston Churchill
Last week I’ve joined over 1.400 of my fellow Navision enthousiasts into NAVTechDays. In the eight years of the event I’ve done eight presentations. Each year I say it’s the last time and each year someone manages to convince me to do it again. This year Peik asked me to be his wingman and share real life experiences about working with Extensions.
The main session room was full. Only a few empty seats here and there and when I walked out of the room I asked Gunnar if he knew how many were in the overflow room. Many attendees later told me that the overflow room was a standing room. If I remember correctly 700 can fit in the large room and 400 in the overflow room. You can do the math.
The vast majority of the attendees wanted to see real life experiences working with and upgrading to extensions.
This came as a big surprise to me even though my colleague Michael Nielsen keeps telling me almost nobody is using extensions yet except to play with on AppSource with small experiments.
I’ve asked this to many of the attendees and the most popular opinion seems to be that Microsoft is moving to fast with first Extensions 1.0 and soon after that version 2.0. Many seem to wait and see if there will be a version 3 before it’s time to start.
Well, I have news for you. There will not be a version 3. Extensions as we know today is what we will have to get used to and soon, because Microsoft is determined to discontinue C/Side soon. Very soon.
It’s easy to look back and see how things could have been done differently.
There was huge pressure on the Dynamics SMB teams to release Project Madeira and compete in North America with QuickBooks. Project Madeira failed and The NAV community paid the price for that bet big time being almost killed completely last year right before the start of Directions North America.
Without that pressure the team might have had more time to add Table Extensions and Page Extensions to C/Side as I suggested at the end of my session last week.
Extensions Version 1 with it’s clumsy way of packaging using PowerShell broke the reputation of extensions before it even had a small chance of success in a community that still remembers the pain of the introduction of SQL Server and the Three Tier concept.
Microsoft seems to now have a better understanding of the complexity of it’s own application. The biggest news for me at NAVTechDays was that finally Microsoft announced the refactoring of the core application. Thanks Bugsy!
This decision is crucial for the long term survival of our product in a modern, object oriented world where everything is connected in the cloud now that internet is becoming as reliable as the power grid.
To be able to break the application into Micro Services Microsoft has to introduce new concepts and for this they need Visual Studio Code. It’s something that they cannot do in C/Side, or at too high a cost. Just like adding Table Extensions and Page Extensions would have been too expensive.
Step one will be to move all objects to a Monolith “Extension” where we have to find a new word for “Extension” since it will essentially be the new “Core” we as programmers will start building upon.
Step two is to introduce a new programming concept that will allow Microsoft to decouple into smaller modules with an extendible contract. This concept allows to both extend and replace these modules.
In the last two years I’ve seen Microsoft ISV’s burn money and resources trying to make extensions work with the current C/Side monolith and it seems like the majority has been a learning experience most cannot afford.
My advise to the vast majority of my peers would be to give Microsoft time to create this new modular ERP application and use that time to wrap your head around Visual Studio Code.
Extensions are here to stay and Visual Studio Code is our development environment.
One of the biggest fights I did with Microsoft was the ridiculous promise that they would not break extensions and that extensions would be easy to upgrade.
Now with Business Central we all know different. Removing Codeunit1 broke 99.5% of all extensions and Microsoft continues to break extensions and send partners messages about having to change their solutions.
What I will do in the next few months is start publishing the extensions I’ve created in the past year that can be reused in our ecosystem like the phone book app I showed at NAVTechDays or the app that uses the API to synchronize between Business Central databases.
I encourage everyone to do the same. Start sharing code and start blogging. We desperately need blogs with real content rather than announcing a cumulative update or promote something that Microsoft has asked to promote.
In the next few months I will also start to replace some of my DotNET code into Azure functions which is something I’ve been told is holding a lot of ISV’s back.
Soon there will be an easier way to convert your C/Side solutions to extensions as was announced at NAVTechDays. As soon as this is available I will publish it on my blog. The more feedback we get from the community the more we can improve this tool.
Some of you have said to Luc at NAVTechDays that I was a bit over enthusiastic during my session about the origin of this tool so listen very carefully as I will say this only once.
The tool is made my Michael Nielsen, the father of C/AL, and shipped free of charge by ForNAV.
To be continued… Soon…
See you in 2019 at BCTechDays…