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.
Why is that? Why is our community so conservative?
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.
Or Wait, Will there be “Extensions Version 3.0”?
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.
Hit Reset and Start slow
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.
Observe and Learn
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.
Prepare to be broken
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.
How can I help?
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.
How do you start?
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…
Reblogged this on MS Excel | Power Pivot | DAX | SSIS |SQL.
Good to read, I agree with you that we need more ppl on board bloging about this.. thats why I’ve started my blog navigating365.com 🙂 excited about the future of MSDYN365BC and AL. I started NAV one year ago, and your blogs/videos have been very inspiring and informative.
LikeLiked by 1 person
It is no secret that I too believe that Microsoft is on a path of changes that to begin with was definately not impressive and most of the firstmovers of VSCode simply had no idea of what grounds they were walking on. I still believe in that!
Currently there are so many things that are way more complicated – Onbefore/onAfter is not going to fix everything. A simple test could be to make changes to CU 80/90 – its a nightmare. For onpremise I would hardly at this point start to do extension development because it will change rapidly and to the better for every release, every single area of BC needs to be changed in order to support the need of being able to code as extensions. Just take a look at “Codeunit 1”, now being into severy codeunits. Many more is going to come.
.. And at the end there WILL BE a tool that makes everything easier, better and faster. So there is really no need to way. Spend your energy in learning the syntax and learn to navigate in VScode..