Why C/Side will last another decade… at least…

The move by Microsoft from C/Side to Visual Studio Code is a bit like Brexit. At first everybody thinks it is a great idea, until they realise the consequences. And then there is no way back.

Why? Please let me explain…

With C/Side we have issues, everybody knows that and these issues have to be solved. Issues like integration with source code management and other issues like… well… hmmmm.

Visual Studio Code is the new kid on the block and it’s cool, it’s the most popular source code editor of this moment. However when you combine it with AL code it’s not always an improvement.

Microsoft claims partners have been demanding a more modern coding experience but let’s compare it to PowerBI. Does PowerBI have source code management? PowerBI has a native designer just like C/Side and PowerBI is very popular.

The reason C/Side is going away has nothing to do with partners demanding anything. It has become very hard to maintain C/Side and it’s preventing Microsoft from moving to the cloud.

It’s impossible to compete with the Microsoft Marketing machine. No matter how much feedback the product team is getting they make their own decisions.

I spend my time 50% in C/Side and 50% in Visual Studio Code. I know all the VSCode shortcuts, snippets etc. but going back to C/Side just makes me happy every time I switch.

Programming anything in Business Central involves mostly defining Meta Data. As programmers we write surprisingly little code. Visual Studio Code is horrible at defining Meta Data. Most other programming languages use templates for this.

Have you actually tried to create a report in Visual Studio Code? OMG… please don’t.

It seems like the Business Central teams are not yet at a point where we can easily juggle with Meta Data. We cannot yet create a listpage & cardpage for a table which would be an easy example of this.


In our community Visual Studio Code is synonym for Extensions. This is just wrong.

With relatively little effort Microsoft could have made Extensions work in C/Side. It would have meant adding Table Extensions and Page Extensions as object type. Not much more than that.

Many partners, actually the vast majority, have issues moving to Extensions. Not because the concept is wrong, but because the base code is not designed to be extended. The Business Central code base is from the late 1980’s and is not object oriented in any way. Not even close.

The solution that Microsoft is now proposing is that we can make raw source code modifications in Visual Studio Code.

This is horrible!

Visual Studio Code is not optimised for this. Not even closely. C/Side is.

It looks like we are getting into a worst of all options kind of scenario where nobody wins.

At NAVTechDays Microsoft announced that they would rewrite the Business Central code and break it up into extensions. I have not seen any progress on this, not any session at Directions ASIA, no blogs, nothing. Complete silence.

Get comfortable on the Spring release

It looks like the Spring release of Business Central will be the golden release to get comfortable on. Just like NAV 2009R2 was.

We can use the best of both worlds. C/Side for the majority of the work and Visual Studio Code where possible and where it adds value like using JavaScript Add-In’s or making UI changes to the core UI.

As a community we need to make Microsoft understand that this release must be maintained for at least five years, or possibly ten until Business Central is completely rewritten and object oriented.

Until then, for most partners it’s simply not worth the effort. They will burn money and resources getting only disappointing results.

14 thoughts on “Why C/Side will last another decade… at least…

  1. Frédéric Vercaemst

    As a community we need to make Microsoft understand that this release must be maintained for at least five years … > If you’re willing to post an ‘Experience Idea’ you’ll get my vote 😉


  2. davmac1

    I just installed the spring release – still need to look at it. Also going to Directions NA next month. It will be interesting to hear the comments.
    Since Microsoft has to maintain their own code in AL in VS Code, I am hoping they will blow us away with a great solution for managing and maintaining it.
    One posted slide from EMEA about being a good citizen in the cloud was very striking. A customer has the equivalent of an apartment in a complex of 100,000 apartments. How do they handle the bad citizens that kill performance?
    How do other cloud solutions handle this?


    1. Slawek Guzek

      Not everyone wants to live in apartments. Quite a few people prefer homes… And they are prepare to pay more for the privilege. MS apparently does not want this business.

      Also – being a ‘good citizenship’ in a complex of 100,000 apartments of 100.000 apartments is one thing, but another is to make sure that the sewer pipe NEVER breaks or get clogged, as the consequences, especially for those living at the ground level, would be dire…

      Liked by 1 person

  3. Jens Glathe

    Who has the money to wait out until Microsoft gets it right? And does Microsoft itself have the patience to see numbers not growing fast enough until they get it right?


  4. Kamil Sacek

    Mark, problem is, that thee is no versions in Business Central. It means that you will get CUs only for the last release. No CU for Autumn2018 version, no CU for Spring2019 after Autumn2019… it means, in half a year, you will not have CUs for the C/Side Business Central and RTC client…. 😉

    But still, my colleagues which are developing in BC more, are struggling when going back to C/Side. Yes, something could be problematic, but if you get used to it, it is much better. Do not tell me, that you do not have any problems in C/Side. You have them, but you get used to solve them or ignore them in some way.

    You can generate List page etc. for the table. Just use the correct Extension. And it is just question of time where other things will be solved through the extensions… 😉

    Yes, timing is not good, but in this fast moving times I think we can see it everywhere…
    I know that many things are not so good as we wish, but this is live…


    1. Mark Brummel Post author

      I don’t think we should accept this as a community. It’s not right.

      And I am not saying this for job protection, I am more than ready. I am just an echo from what I hear others are suffering from.

      Microsoft made an epic mess and they need to take responsibility.


    2. Daniel Göhler

      Hi Kamil, maybe you are right, but I’m not sure if that is the case, that we don’t receive any cumulative updates for the Spring ’19 Update after Fall ’19 Update released. Currently Mainstream Support for “Dynamics 365 Business Central on-premises Spring 2019 Update” ends on 2023-10-10. So, in the Dynamics NAV days this means cumulative updates will be released until this date. Dynamics NAV 2015 ends next on 2020-01-14.

      If you are right, I suggest to everyone to test as much as you can and to create a Microsoft Support Case on Bugs, so they get fixed until October 2019. And raise you voice about issue and problems with new development process.


  5. ajkauffmann

    Please allow me to add some information you may have missed in the big pile of social media messages over the last couple of days: there was a session at Directions ASIA around breaking up the base code into extensions. Here are two messages with pictures about this topic. Not very readable, and I couldn’t get my hands on the slides right now. Anyway, it’s not true they are not working on it, actually they are really planning and executing on it:

    Personally, I spend 99% of my time in VS Code and AL and have problems going back to C/SIDE in the rare case it is needed. Funny to see others have different experiences, or quite the opposite.

    By the way, did you see the information about RAD? It allows to partially compile objects in VS Code, instead of doing a full compile. Just like C/SIDE, only compile the changed objects. What about that? With that in mind, there may still be features in C/SIDE that are not available in VS Code. However, there are so many features in VS Code that are not available in C/SIDE, I can live with the few that I don’t have (yet).


    1. Mark Brummel Post author

      Thanks for the info. Dmitry K. already updated me and it does not change my opinion or my message.

      For me personally I don’t really care. I’m good. But Microsoft should support C/Side until they have finished the rewrite or at least explain which bits go where. Do you have any idea how big the pile of spaghetti is?


      1. ajkauffmann

        Yes, I certainly have an idea how big that pile of spaghetti is. Over the last two years, I’ve talked to a lot of partners about how to move to extensions, what it means for them, for their solution and for their team.

        Anyway, it appears you changed your mind at least on one thing. Back in november, in the post ‘Blogging & The Gap’ (https://markbrummel.blog/2018/11/25/blogging-the-gap/) you wrote this quote: “Just like adding Table Extensions and Page Extensions would have been too expensive.”.

        And now in this post you wrote: “With relatively little effort Microsoft could have made Extensions work in C/Side. It would have meant adding Table Extensions and Page Extensions as object type. Not much more than that.”

        I believe that is a different statement. What made you change your mind?


  6. Fiddi

    Mark i fully agree to your post.
    If i would be an controlling responsible at a BC- developer, i would calculate the cost for the time we spend for developing workarounds for existing and required functions (f.e. printing) on one side, and the money we can earn for our apps. And i probably would see a large gab aginst us.

    If i would be a controller in a company using BC, i probably would see that the TCO of BC is not as cheap as Microsoft told me. If i calculate all costs for BC, additional addons (printing), extensions, better/stable intenet connection,…).

    As a developer i think about the unsolved problems, like concurrent evensubscribers which require an exeution order, or the performance issues due to table-extensions in separate tables, unable to create keys overall.
    We are currently not developing solutions for our customers, we are developing workarounds for our daily business.
    If i see the code that is developed in the last years, which blowed up the system without any effort. Why aren’t these features like CRM or Graph implemented as extensions for the companies who need it?
    And why do we see the reduction of functionality every release? Maybe that this is only a problem of marginal groups which cant regarded on, as Kamil stated on Yamer, but maybe sometime in the future the BC- users are also a marginal group, which no one regards on, because the features of the system have no difference towards other cheap Online- ERPs.

    Liked by 1 person


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.