Presentation is loading. Please wait.

Presentation is loading. Please wait.

Develop and customize Dynamics AX safely and effectively

Similar presentations


Presentation on theme: "Develop and customize Dynamics AX safely and effectively"— Presentation transcript:

1 Develop and customize Dynamics AX safely and effectively
BRK4026 Develop and customize Dynamics AX safely and effectively Peter Villadsen Principal Program Manager

2 Developer Experience 5/16/2018 11:30 AM
© 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

3 Characteristics of Dynamics AX development
Ax Applications are typically mission critical. Development is complex. Understanding the problem space is prerequisite for developing. Requires modern best practices in software development: SCC, encapsulation, patterns, test etc.

4 Metadata + Code == Application
5/16/ :30 AM Metadata + Code == Application © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

5 The Developer Experience
Application development for AX7: Takes place in the X++ language, with some C# when needed. Takes place entirely within Visual Studio. Is based on a solid metadata foundation. Is supported by a strong lifecycle management support infrastructure.

6 The X++ language X++ is a type-safe Object Oriented Programming language, in the style of C# and Java. It features several innovations that allow it to better support the development of ERP systems. X++ is backed by a full stack of compiler, debugger, profiling tools, cross reference tools etc. X++ generates MSIL code.

7 The X++ language X++ provides abstractions for:
Classes, tables, views, queries, extended data types, enumerations, … X++ provides all the common OO features: Inheritance, polymorphism, static/instance methods, encapsulation, late binding, … X++ has first-class data access support: Select, insert_recordset, update, delete_from etc. Has a few bleeding edge features: Extension classes, Class augmentation, Type Providers.

8 Microsoft 2016 5/16/ :30 AM Visual Studio Visual Studio is the environment for developing AX7 applications. Strong integration is provided: Supports the concepts of models and packages. Full support for editing both code and metadata through designers. X++ editor featuring intellisense, colorization etc. Backed by cross reference database for navigation. Full support for the Visual Studio debugger. Seamless error message handling. © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

9 Visual Studio Extensibility
Microsoft 2016 5/16/ :30 AM Visual Studio Extensibility It is quite possible to add keyboard code snippets for boilerplate code etc. It is also possible to add your own AX extensions. Global Add-ins Add-ins per artifact type © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

10 AX7 Visual Studio Extensibility options
Microsoft 2016 5/16/ :30 AM AX7 Visual Studio Extensibility options Peter Villadsen © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

11 Visual Studio: X++ compiler stack
Microsoft 2016 5/16/ :30 AM Visual Studio: X++ compiler stack A new, high-performance compiler has been provided. It powers the compilation, but also other scenarios Best practices Analysis of breaking changes. Ad-hoc tools. Metadata and some intellsense is powered by a background process, the xppcAgent. © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

12 Demo The Dynamics ‘AX 7’ Visual Studio Development Tools 5/16/2018
© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

13 The development environment
AX 7 Development Environment Visual Studio Debug/Run (F5) Local runtime ‘AX 7’ Extensions: Project system X++ code editor Designers Application Explorer Design time meta-model Best practice integration …others Batch manager service Deploy to cloud environment AOS hosted by IIS Deployment Package (metadata and binaries) Build Metadata API Business Database Model binaries (File system) Runtime Metadata (model store)

14 Concepts: Model A Dynamics ‘AX 7’ model is a group of elements (metadata and source files) that typically constitute a distributable software solution (including customizations of an existing solution). A model is a design-time concept. For example: A warehouse management model, a project accounting model, …etc.)

15 Concepts: Package A Dynamics ‘AX 7’ package is a deployment and compilation unit of one or more models. It includes model metadata, binaries, cubes and other associated resources. One or more ‘AX 7’ packages can be package into a deployment package, which is the vehicle used for deployment on UAT and production environments.

16 Packages, Models and VS Projects
Projects, models and packages 'AX 7' Project 1 'AX 7' Project 4 'AX 7' Model 1 (Example: Application Suite) 'AX 7' Model 2 (Example: Expense) 'AX 7' Project 2 'AX 7' Project 5 'AX 7' Project 3 Package 1 (Assembly and associated runtime files) Depends on 'AX 7' Project 6 'AX 7' Model 3 (Example: Unit tests) Package 2 (Assembly and associated runtime files) 'AX 7' Project 7

17 Microsoft Confidential
Application Explorer In model view, Application Explorer is organized by models. Each model is a child node of the AOT root node. The package that a model belongs to is shown in parenthesis next to the model name.

18 Microsoft Confidential
Packages on disk Packages are folders located in the model store folder of the Dynamics ‘AX 7’ application. The default model store folder is typically “c:\packages\”. Here you can see the folders of the ApplicationSuite package and the ApplicationFoundation package among others.

19 Models on disk Model folders are contained in their package folder.
Microsoft Confidential Models on disk Model folders are contained in their package folder. A model folder contains type-specific folders. For example all tables in a model belong to the folder AxTable. The image on the right shows the FleetManagement model folder. The FleetManagement model folder belongs to the FleetManagement package folder.

20 Microsoft Confidential
Model Descriptors A package folder contains a descriptor folder that lists all models that belong to the package. A model descriptor file contains metadata about a model’s properties. The image on the right shows 2 descriptor files of 2 models that belong to the FleetManagement package.

21 Microsoft Confidential
Full build dialog Access the full build dialog from Dynamics ‘AX 7’ > Build models… All packages are listed, one package = one compiled assembly. Models within a package are shown in brackets.

22 Supported extensions as of today
MBS 5/16/ :30 AM Supported extensions as of today Metadata Create new elements (All AX types) Extend tables: Add new field, add field to field group, add new field group, add new index, add new relation Extend forms: Add a control, Add a form part, add a data source, change the label, caption, help text, visible, and enabled properties of an existing control. Extend menus: Add submenu, add menu item, add tile, hide menu item. Extend enums, security duties/roles. Extend EDTs Change label, fornhelp, and string size properties. Extend data entities, queries, views Add field mappings to maps. Source Code Create new X++ classes Application events Create event handlers (For app delegates) Framework events Create data event handlers (tables) Create form event handlers Create form data source and data field event handlers Create event handler for form control events Create plugins Create static extension methods to classes and tables. Create static and instance methods and add state through class augmentation. © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

23 Package dependencies graph
Microsoft Confidential Package dependencies graph Right-click on the AOT and select View package dependencies to generate a graph depicting dependencies between packages of your application.

24 Demo The X++ Metadata 5/16/2018
© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

25 5/16/ :30 AM Customization © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

26 Customization Concepts in Dynamics ‘AX 7’
MBS 5/16/2018 Customization Concepts in Dynamics ‘AX 7’ Overlayering model (Granular metadata and code customizations) Extension model (Metadata and code extensions) Example-2: Extension based customizations in separate packages Assembly ISV2.Extensions.dll Assembly (Microsoft. Dynamics.Application.dll) ISV-1 Extensions on MS Assembly (VAR.Extensions.dll) VAR Extensions on ISV-1 and ISV-2 MS Application Suite Model ISV-2 Extensions on MS Example-3: Hybrid scenario with both extension and over-layering Assembly ISV1.Extensions.dll Assembly (Microsoft. Dynamics.Application.dll) ISV-1 Extensions on MS Assembly (VAR.Extensions.dll) VAR Extensions on ISV-1 and ISV-2 MS Application Suite Model Assembly ISV2.Extensions.dll) ISV-2 Extensions on MS VAR Overlay of ISV-2 ISV-1 Overlay of MS Example-1: Overlayering customizations in base package Assembly (Microsoft. Dynamics.Application.dll) ISV-1 Overlay of MS ISV-2 Overlay of MS VAR Overlay of ISV-1 and ISV-2 MS Application Suite Model © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

27 Overlayering Pros: Cons
Any piece of metadata or code can be modified in a granular (but intrusive) way: You are essentially making it your own so you can do what you want with it. Cons You are now responsible for the code that you are overriding. When changes are made to that (original) code, you may have a hard time reconciling it with your changes: You sometimes have to start from scratch. Huge costs are incurred. Over-layering does not work in the cloud. The changes made by a partner are compiled into the assembly that is deployed. There is no separation of the IP. ISVs essentially have no guarantees that the application still runs correctly. You cannot use overlayering in the platform and foundation models.

28 Extensions: Concept and value proposition
MBS Extensions: Concept and value proposition 5/16/2018 AOS Runtime Dynamics.AX.ApplicationSuite.dll Dynamics.AX.AppSuiteExtension.dll Compile Isolation & performance Deployment, servicing and ALM Minimal code upgrade cost Compile Compile Application Suite Package Application Suite Extension Package AxTableExtension AxForm AxTable AxForm Events & Plugins AxClass Code Extensions AxTable AxFormExtension References © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

29 Extensions Pros Lightweight compilation: You are only compiling changes. With ALM, you’ll only manage your extension artifacts. This simplifies and improves the performance of deployments and test automation. Servicing is reduced to copying DLLs with no impact to partner customizations. There is a loose coupling between the original code and partner code. There is a very good chance that you will not have to react to changes made: No costly reimplementation. It is very easy to get rid of the changes made by extension: Just remove the assembly and restart.

30 Extensions Cons You cannot easily achieve everything; You cannot change the implementation of a particular method, for instance. Not all metadata is extensible yet (but we are close). Private / protected / public ? Does not expose virtual behavior.

31 Demo Customizations 5/16/2018
© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

32 Advice Always extend rather than overlayer.
Prepare your code to be extended. Heed the best practice warnings! Test early, test often, test automatically Do code reviews. Always. Really.

33 Free IT Pro resources To advance your career in cloud technology
Microsoft Ignite 2016 5/16/ :30 AM Free IT Pro resources To advance your career in cloud technology Plan your career path Microsoft IT Pro Career Center Cloud role mapping Expert advice on skills needed Self-paced curriculum by cloud role $300 Azure credits and extended trials Pluralsight 3 month subscription (10 courses) Phone support incident Weekly short videos and insights from Microsoft’s leaders and engineers Connect with community of peers and Microsoft experts Get started with Azure Microsoft IT Pro Cloud Essentials Demos and how-to videos Microsoft Mechanics Connect with peers and experts Microsoft Tech Community © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

34 Please evaluate this session
5/16/ :30 AM Please evaluate this session Your feedback is important to us! From your PC or Tablet visit MyIgnite at From your phone download and use the Ignite Mobile App by scanning the QR code above or visiting © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

35 5/16/ :30 AM © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Download ppt "Develop and customize Dynamics AX safely and effectively"

Similar presentations


Ads by Google