With Microsoft’s Business Application Summit 2019 wrapping up in Atlanta, I thought I would share my thoughts on the biggest takeaways from the conference in my opinion.
New OneVersion Release Schedule
Instead of doing 12 separate monthly updates, Microsoft is changing the F&O release schedule to include only 8 with the other months not having an update during those months. You can now pause up to 3 releases instead of 2 which means that you can theoretically get by with only updating twice a year if your update schedule requires that. Obviously Microsoft would like to keep you on the latest and greatest but not all industries allow for that. One thing to note though here is that if at any point you need to put a support ticket in and you need Microsoft to fix something, you will have to move to the latest version to accept those updates.
X++ Programming Guidelines
A tool to do code analysis over your custom code to ensure it meets Microsoft’s standards. Because of the hosted nature of D365FO, Microsoft can no longer any and all code to be executed against their environments, there were just too many support requests coming in from sub-standard code. So to combat that, Microsoft is releasing AppChecker which is a tool to ensure coding standards are met, currently it is an opt-in feature, but eventually it will be mandatory to run against your code and if it does not pass… it does not build.
The rules used to determine if code is up to coding standards will be open sourced and will be community driven for updates as well, the Microsoft core rules will not be able to be modified and there will be no exceptions made if you do not meet the rules, if you do not meet the coding standards your solution will not build.
As of now, AppChecker will go live in the October update but you can get a jump on ensuring your projects are up to the standard by enabling it for your current builds by going into Visual Studio:
Dynamics 365 -> Build Models -> Options tab -> Run App Checks
Allows you to get insights into what processes a particular application is performing, including stack traces and low level memory management data. It will complement Activity Tracking and will hopefully have its own dashboard in LCS where all of this data is overlaid for easy consumption.
A program to allow you to search over your X++ code base with surprising flexibility, this is actually the tool Microsoft is using check your packages to make sure they meet their coding standards in AppChecker. It uses a BaseX database on the back end (which allows for quick XML searches) and then you can write queries on top of it. The application presented here (the SocrateX Explorer) is not available to end users… yet. No firm release for this was announced.
Very little documentation is surrounding this feature but it allows you to dynamically create SQL queries to be executed against your D365FO database, in fact this is the only documentation I can publicly find for it
I’ve played around with this a little bit and it is very intuitive and easily manipulated once you get a hang of the syntax. There are a couple features missing (for example paging of results but you could do it manually) but for the most part it is a very robust and performant tool if you have to write complex SQL queries dynamically in code.
New Application Lifecycle Management (ALM) Tools
One of the biggest headaches if you’ve done X++ development is that you need a special environment to do so… well not anymore! By the end of this year, X++ programming will no longer require a development environment with the entire AOS/AOT deployed. Now anywhere Visual Studio is installed will be able to be turned into an X++ development environment!
Developer tools as installable components
There were so many more things announced that I didn’t have time to write about them all including improvements to the RSAT tool, the Acceptance Test Library (ATL), and dual write being enabled for between CDS (and therefore anything that uses CDS like D365S or PowerApps) and D365FO, along with others!
All I can say is bring it on!!!