Presentation is loading. Please wait.

Presentation is loading. Please wait.

Customizations Using Extensions in Dynamics AX

Similar presentations


Presentation on theme: "Customizations Using Extensions in Dynamics AX"— Presentation transcript:

1 Customizations Using Extensions in Dynamics AX
Microsoft 2016 9/21/2018 4:58 AM BRK4027 Customizations Using Extensions in Dynamics AX Joel Leichty (SAGlobal), Peter Villadsen, Robert Badawy (Microsoft) Discover a partner’s view about strategy and customization by extensions for Dynamics AX © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

2 AX 7 New Concepts

3 Definitions A Dynamics AX 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.) A Dynamics AX package is a deployment and compilation unit of one or more models. It includes model metadata, binary files, reports, label assemblies, and other associated resources needed at runtime. One or more AX packages can be packaged into a deployable package, which is the vehicle used for deployment on sandbox and production environments.

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

5 Application Explorer in Visual Studio
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.

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

7 Customization Concepts in Dynamics AX
MBS 9/21/2018 4:58 AM Customization Concepts in Dynamics AX 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.

8 Extensions: Concept and value proposition
MBS Extensions: Concept and value proposition 9/21/2018 4:58 AM AOS Runtime Dynamics.AX.ApplicationSuite.dll Dynamics.AX.AppSuiteExtension.dll 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.

9 Extension value proposition
Compile Isolation & performance. Deployment servicing and ALM. Minimal code upgrade cost.

10 Extension value proposition
The original artifact is unmodified. The actual representation is a combination of the contributions from the original and the extension, that are seamlessly applied. Example: Fields added through a table extension are added to the original SQL table. Methods added as extension methods are usable as if the methods were defined on the extended class.

11 Supported extensions as of today
MBS 9/21/2018 4:58 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.

12 Partner view - What Is the Point of all this?

13 Applying Technical Features
Upgrades A typical customer will have many contributors to the code Microsoft ISVs Partner Customer You need a good strategy for keeping code maintained over time. Dividing up Packages More flexibility for large development projects Impact of customization technology on Design Experience Upgrading from AX 2012 Strategy for taking advantage of new development concepts

14 Upgrades

15 AX 2012 vs AX 7 Code Organization
Customer Model ISV Model Application Model All AX 2012 Code Customer Model (Extensions, New objects) Customer Package ISV Model (Extensions, New objects) Customer Overlayer Model ISV Package Application Suite Model ISV Overlayer Model Application Suite, Other Functional Packages Application Model No Overlayering Allowed Application Platform, Foundation Packages

16 AX 2012 vs AX 7 Upgrades AX 2012 Models generally had dependencies and had to be upgraded and tested simultaneously Upgrades were infrequent, if ever Upgrades were optional AX 7 Each package can be upgraded somewhat independently Customers should plan for ongoing maintenance Some upgrades may be required for a cloud based product

17 Upgrading From the Bottom Up
Customers will upgrade packages in reverse order of dependency (Platform, Foundation) Application Suite, Functional Packages ISV Package Customer Modifications – No upgrades, just refactoring Even if an upgrade could technically be done for all of AX at once, from a functional testing perspective customer may want to take updates slower Exceptions to the rule AX 7 Customer Model (Extensions, New objects) Customer Package ISV Model (Extensions, New objects) Customer Overlayer Model ISV Package Application Suite Model ISV Overlayer Model Application Suite, Other Functional Packages Application Model No Overlayering Allowed Application Platform, Foundation Packages

18 Dividing Up Packages

19 Package Scenarios Customer modifications
Packages can be split to facilitate upgrade and development scenarios for a solution. Customer modifications Generally all code in one package Frequency of update / Business risk Code may receive fast or slow updates depending on the risk to the ongoing business processes. Fast: AX user interface and browser compatibility Medium: Business intelligence, Reporting, Workspaces Slow: Business Process Necessity of update Required: Regulatory Updates Optional: Localization Features Split development effort Code can be divvied up if the development work is split between multiple teams. Feature A: Dev Team 1 Feature B: Dev Team 2

20 Feature with Dependencies
Package Split Example Example of packages upgraded from AX 2012 for partner product Started with one package, then split into more during the development and upgrade process Packages example Low risk customizations Workspaces Dependent on third party DLL Dependent on document handling features Feature with Dependencies Possibility for post go-live recommended updates Separate development team BI Medium business risk Core Features

21 Impact on Design

22 Design Considerations
Designing customizations Extension and package concepts should influence the design Functional and technical users need to understand what’s possible Overlayering should be an exception Developers generally will want to start work in a new Package They may run into technical issues that, based on the functional design, would require extensions. At this point it’s important to regroup and make a conscious decision to either change the design or accept the overlayering.

23 ISV and Partner Considerations
Relationship with customers To make a solution more extendible, you have to develop an ongoing relationship with partners and customers Gather feedback when customers want to Overlayer your solution Use the feedback in future designs if possible When customers overlayer It makes it harder to upgrade that Package They won’t upgrade as frequently Therefore when they need support, your team has to deal with older software

24 Code Upgrades

25 AX 2012 Upgrade Experience By default code will go into a Standard AX Package It’s a manual process to refactor and split the code into your package It’s worth the effort to get the refactoring completed before customers go live

26 Refactoring Code Process
In the Application Suite (or Standard AX) Package, modify code to use delegates and extensions. Compile. In the file browser, cut any extension or custom objects from the existing Package directory and paste in a temporary folder. Compile and fix issues. In the file browser, paste any extension or custom objects into the new Package directory. Compile and check-in. Test. Tip: For larger solutions, refactor one feature at a time.

27 The End

28 Free IT Pro resources To advance your career in cloud technology
Microsoft Ignite 2016 9/21/2018 4:58 AM Free IT Pro resources To advance your career in cloud technology Plan your career path 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 Microsoft IT Pro Career Center 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.

29 Please evaluate this session
9/21/2018 4:58 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.

30


Download ppt "Customizations Using Extensions in Dynamics AX"

Similar presentations


Ads by Google