Hello, folks! I am new to D365FO and hoped to get a grasp of the longevity of X++. Can I get a confirmation that there are no plans to obsolete X++?
Coming from the D365BC space, I assume X++ is to D365FO as AL is to D365BC where all of the source code for the ERP is written in X++ and custom Azure/C# Functions can be called externally when the library cannot accommodate requirements.
I see documentation on code deprecation within X++ (e.g., X++ API obsolescence), which I realize is a concern regardless of the SaaS ERP or language.
I just want to make sure I have my bases covered in response to some second-hand hearsay.
Thank you!
Nothing is certain forever, but there are currently no plans to abandon X++. Rewriting all the code to something else would extremely challenging, therefore I expect X++ becoming deprecated only if F&O as such gets obsolete.
There is tendency, though, to utilize other solutions for extending F&O than writing X++ code, e.g. synchronizing data to Dataverse and building separate applications on Dataverse, or to embed Power Apps inside F&O. Let’s see how far it’ll get in future.
The reason for most of the deprecated methods in the list is that AX used to be a Windows application (a Windows service for the application server and a Win32 app for the client), but the architecture has changed completely: it’s now a web application running on a web server and using a web browser instead of a native client. Many things don’t make sense in the new model; you can see many comments in the documentation saying things like “These methods are specific to the Windows client and are no longer needed for the client”. Some features were dropped completely, such as Enterprise Portal (it provided a web interface, which is now there by default). The upgrade was also an opportunity for Microsoft to refactor a few things.
1 Like
Thank you very much, @MartinDrab, for the quick and excellent feedback!
AL Code for Business Central behaves similarly where certain procedures and objects are scoped specifically for on-premises usage only. Part of this is because one SQL instance houses multiplate tenants.