Five Things AX Developers Should Prepare for in Dynamics 365 for Operations
I was recently asked what the biggest changes are for AX developers when moving from previous versions of AX to Dynamics 365 for Operations (aka AX7). This is a great question. I spent some time thinking about what I have put the most effort into studying. Below are the top five areas I recommend digging into:
1. Visual Studio
MorphX is gone, Visual Studio (VS) is the new IDE. All of Microsoft Dynamics 365 is web-based, there is no longer a fat AX client and there is no MorphX development environment to get into. You will do all of your work in VS. Many of us have worked in VS and for us this is welcome news. If you have never worked in VS, there's a lot to learn. Fortunately, VS is a tool used all over the world. It is well-documented, stable, and feature rich. It will take a while to get used to but you are going to love it.
2. Deployment Packages
The next big change is the introduction of deployment packages and the marginalization of the traditional AX concept of layers. Deployment packages are conceptually a replacement for modelstores. Deployment packages are comprised of all of the artifacts (like assemblies and configurations files) required to make the code function. When moving code between environments, deployment packages will be used. As part of this change, when you create a model in Visual Studio (VS) you indicate which deployment package the model is a part of and what kind of dependencies it has. Similar to how in VS when you add a reference to a project, you create a dependency between your project and the one you added a reference to. Additionally, when you create your model, you specify which layer the model is going to live in. The layer is the traditional AX concept of a layer but in the VS world, the layer's importance is very minimal. You are not required to provide a key for your model to live in that layer.
Dynamics 365 for Operations includes the introduction of extensions. In all previous versions of AX when modifying or adding to sys or ISV code, you overrode or added something to an object which created a potential conflict at upgrade time. In Dynamics 365 this is still possible it is known as a customization but now it is not the only way to modify existing code. Microsoft has added an extensions model. With extensions you can extend an object without touching the base object. This means you can add new fields, methods or controls to tables, classes and forms and those additions are contained in your own extension object. You have not affected the base object. Also the base objects have many, many events added to them. In previous versions of AX, you overrode methods so your code would be called when events happened - like a button being clicked. Now the button will raise an event and you can subscribe to that event. By subscribing to the event your code will be called without you having to override or modify the button.
4. Form Patterns
The required adherence to form patterns are my next big change. Form patterns are guidelines Microsoft has for how forms should be designed. Microsoft wants all forms in AX to look-and-feel similar regardless of who makes them so the end user has a consistent experience. Form patterns are not a new concept; they exist in AX 2012. However, most AX developers were not aware of them in AX 2012 because they were a guideline and not a requirement. In Dynamics 365 when you create a form, the first thing you do in the design of that form is specify the form pattern it is going to follow. If you don't specify the form pattern, you will get compile errors. As you continue to build the form's design, the pattern for the form is enforced meaning you must fill out the requirements of the pattern and if you do not you will get compile errors. This definitely takes some time to get used to.
5. Introduction of Data Entities
The last very large change in Dynamics 365 is the introduction of data entities. Data entities serve as the new framework for integrating with AX. They are a replacement two concepts in AX 2012, document services and the classes that comprised the Data Import Export Framework (DIXF). With data entities, all data coming into and going out of AX follow the same path so you do not have to build two different things if you are calling an API or using DIXF to manipulate data. The data entities are very easy to create. There is a wizard that walks you through the creation process similar to the wizard in AX 2012 used to generate document services. Another notable change within integrations is that the services exposing data entities are restful state APIs using JSON formatted data. In AX2012 all services were WCF services. This change means the way you call services is significantly different so if you are planning to do integrations on Dynamics 365 you will want to study up on how to call the APIs.
Dynamics 365 for Operations (AX7) Developer Training
If you're interested in learning more about these top five changes and more in Dynamics 365 for Operations development, check out the online training class for developers.
[button title="Development Workshop" link="/services/dynamics-training/ax7-development-workshop-registration/" new_tab="no"]