Directions ASIA has finished on the previous week. For me, it was the second time I was there, but this year I was as a speaker.
To be honest, when I flew at Kuala Lumpur, I didn't expect to learn something new. At the beginning of February, we (MVPs) gathered at Lyngby, where Microsoft Dev Team presented to us Spring release features. In addition to that, the Spring release was available on Docker, and I had a chance to try it already. So, I was "well prepared" :)
But I was wrong. Conference surprised me. I will not describe all the news, because they are already nice overviewed. Like those from Waldo. I just could not make it better, cos when you are at the conference with 5-6 sessions in parallel, you just can't catch everything... unlike when you do household chores :)
The last session, just before the closing keynote was the most important... from my point of view, with a non-distinguished name Aligning our development roadmaps and go do's and update on Spring/Fall release hosted by Dmitry Chadayev and Claus Busk Andersen
Claus started with the picture of how partners and customers do modifications of BC today.
then slowly moved to the concept of decoupling base app into the smaller components
That was not new, cos we saw that picture on NavTech Days 18.
But what happened next was a game changer.
We were not updated about the status of that take-30-year-old-legacy-code-and-turn-into-different-modern-apps project status (MS you should create a cool name for that :), before that session.
I do not want to be too pretentious here, I just want to express my feelings when I saw that.
So, what they did. They
(...sorry for the resolution)
And they replaced them not only in the W1 codebase but also
Imagine how huge is that work...
What they have in the end?
A Blob Management App (the name is technical here), with own tests and with external functions, which now MS call - System APIs.
System APIs will (should) be in dependable from the base app.
Their goal is to extract everything, that is not business logic related from the base app, into separate extensions.
Then, when all system logic will be extracted into smaller apps and base code will be also refactored to support that, MS will extract foundation layer, business logic and localizations into smaller pieces.
(this is a concept picture, not final architecture)
So, when I asked Freddy Kristiansen about, how much time do they need to finish that, he joked "Within 20 years... it might be earlier" (c) ... Well, we say that - there is a joke in every joke :)
Dmitry Chadayev mentioned that Business Central October 19 release, will already come with some system extracted apps. Let's see.
That's my vision - investments, continuous investments. Like MS refactor their code, partners will have to refactor theirs.
But also a simplification, which means lower investments in building new apps. If we will use ready APIs to execute business logic, then we will spend less time on development, less time on testing, we will get more stable apps, then all that will make sense.
I have mixed feelings. I believe that direction is right, I believe that it will take much time - and it's ok (better focus on the quality, rather than release speed and quantity).
The only question that bothers me, it that phrase
which means that the Base app will have all the dependencies to all system apps (right?).
The beauty of extensions is the ability to uninstall them and install your own. Like in any mobile platform - you have a standard Calculator app, you uninstall it and install other - more advanced.
If the mobile operating system was dependent on a standard calculator app, then this was not achievable. And we (developers, partners) want exactly that - to have the ability not only extend, but replace.
Then we will have a true LEGO, and we will forget about what does it mean to modify source code - in C/AL and AL.
And (my thoughts!) after that MS will remove this strange line from their slide
P.S> If you are planning to modify AL source code, read that post before and rethink your approach. As for me I will never (I know not to say "never", but here I'll ignore that) modify the al source code.