Customizations Using Extensions in Dynamics AX

Slides:



Advertisements
Similar presentations
Be agile, deliver incremental features every sprint (2 weeks) or cycle (1 month). Take advantage of Dynamics AX build and test automation tools.
Advertisements

Review DirectQuery in SSAS 2016, best practices and use cases
C# and VB code-focused development with Visual Studio
2/20/2018 7:04 PM BRK1038 Meet Azure Information Protection customers and learn about their success stories Jeffrey Kalfut Strategy & Architecture Manager,
Microsoft Ignite /30/2018 9:28 PM BRK3174
Convergence /20/2018 © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Deliver business insights with Microsoft Dynamics AX and Power BI
Accelerate your DevOps with OpenShift by Red Hat
Develop and customize Dynamics AX safely and effectively
Examine information management in Cortana Intelligence
From IT Pros to IT Heroes - with Azure DevTest Labs
5/22/2018 1:39 AM BRK2156 Power BI Report Server: Self-service BI and enterprise reporting on-premises Christopher Finlan Senior Program Manager © Microsoft.
Develop, debug and deploy containerized applications with Docker
Microsoft /2/2018 3:42 PM BRK3129 Query Big Data using the Expanded T-SQL footprint with PolyBase in SQL Server 2016 Casey Karst Program Manager.
BRK3288-Discover data-driven apps that learn and adapt
Microsoft /4/2018 8:21 AM BRK3082 Build solutions and apps with Microsoft OneDrive API and Microsoft Graph API Ryan Gregg Principal Program Manger,
Conduct a successful pilot deployment of Microsoft Intune
Review the Nutanix Cloud Platform System Standard solution
Microsoft Ignite /11/2018 1:18 AM BRK4017
Automate for Sales in Microsoft Dynamics CRM
TFS Database Import Service for Visual Studio Team Services
Microsoft /23/2018 1:11 AM BRK3180 Migrate CRM OnPremise organizations to CRM Online cloud using Dynamics Lifecycle Services (LCS) Aditya Varma Ganapathy.
Web development productivity with Visual Studio
Deep Dive into the Azure Container Service
Get Typed with TypeScript!
Innovate with Microsoft BI in the enterprise
7/2/2018 2:39 AM BRK2413 Customer lifecycle with LCS: Dynamics 365 for Finance and Operations, Enterprise edition Manali Dongre Senior Program Manager.
Optimizing Microsoft OneDrive for the enterprise
Microsoft Ignite /17/ :54 PM BRK2092
Microsoft Ignite /22/2018 3:27 PM BRK2121
Secure Remote Access to on-premises Web Apps using Azure AD
BRK2264 Move 13,000+ global Dynamics CRM users from on-premises to Online at Caterpillar Inc. Todd Byrne & John Finney 1 Business Unit Name Here.
Microsoft Ignite /31/ :08 AM
Master Modern PaaS for the Enterprise with Azure App Service
Get Started with Common Data Model (CDM) and PowerApps
Microsoft Ignite /8/2018 3:50 PM BRK2112
Design Seamless Upgrades to SQL Server 2016 with Query Store
SQL Server Data Tools for Visual Studio Part I: Core SQL Server Tools
Microsoft /8/2018 4:45 PM BRK3062 BRK3062- Build smarter and scalable applications using Microsoft Azure Database Services Moshe Gutman CEO, GeoSafe.
Find, try and get line-of-business apps on Microsoft AppSource
Review Microsoft Dynamics Lifecycle services
Integrate Power BI with Microsoft Dynamics
Automate all things! Microsoft Azure continuous deployment
Using AAD B2C for WordPress & Secure Deployment Scenario
Microsoft Ignite /16/2018 2:39 PM BRK3307
Add intelligence to Dynamics AX with Cortana Intelligence suite
Use server-based personal desktops in Windows Server 2016
Azure SQL Data Warehouse Scaling: Configuration and Guidance
Accelerate Your Transition from Traditional IT to the Cloud
Dive deep into ASP.NET Core 1.0
Explore web development with Microsoft ASP.NET Core 1.0
Microsoft Ignite /14/ :21 AM BRK2101
Migrate to CRM Online - Tips and Tricks
Determine your role in a managed service
Dive into Predictive Maintenance using Cortana Intelligence Suite
Microsoft Ignite /22/2018 3:58 PM BRK2254
Automating Windows 10 and software deployments from the Cloud
Bring existing desktop apps to UWP with the Desktop Bridge
Run Bash scripts from Windows 10
Mobile Center and VSTS:​ Better together for your Mobile DevOps
Task recorder in Dynamics AX
Learn how to use and customize the Dynamics AX interactive help system
Visual Studio 2010 SharePoint Development Tools Overview
Overview: Dynamics 365 for Project Service Automation
Surviving identity management in a hybrid world
Delivering great hardware solutions for Windows
One Marketing Template
Passwordless Service Accounts
Diagnostics and troubleshooting in Azure App Service Support Center
Microsoft Virtual Academy
Presentation transcript:

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.

AX 7 New Concepts

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.

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

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.

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

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.

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.

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

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.

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.

Partner view - What Is the Point of all this?

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

Upgrades

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

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

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

Dividing Up Packages

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

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

Impact on Design

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.

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

Code Upgrades

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

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.

The End

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 www.microsoft.com/itprocareercenter Get started with Azure Microsoft IT Pro Cloud Essentials www.microsoft.com/itprocloudessentials Demos and how-to videos Microsoft Mechanics www.microsoft.com/mechanics   Connect with peers and experts Microsoft Tech Community https://techcommunity.microsoft.com © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

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 http://myignite.microsoft.com From your phone download and use the Ignite Mobile App by scanning the QR code above or visiting https://aka.ms/ignite.mobileapp © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.