Download presentation
Presentation is loading. Please wait.
Published byJason Horton Modified over 6 years ago
1
Extend Microsoft Dynamics 365 for Finance and Operations
BRK2414 Extend Microsoft Dynamics 365 for Finance and Operations Dave Froslie Principal Software Architect, Microsoft Chris Garty Senior Program Manager, Microsoft © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
2
Agenda Introduction Motivation, roadmap, impact Extension capabilities
7/21/2018 5:20 AM Agenda Introduction Motivation, roadmap, impact Extension capabilities Demo Best Practices Wrap up / Q&A © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
3
Outcomes Understand benefits of extension based customization
7/21/2018 5:20 AM Outcomes Understand benefits of extension based customization Understand extension capabilities of the product Learn about patterns for moving code from overlayering to extensions © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
4
Motivation, Roadmap, Impact
7/21/2018 5:20 AM Motivation, Roadmap, Impact © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
5
At time of implementation…
D365 Tech Conference 2017 7/21/2018 5:20 AM At time of implementation… Creative Commons License:
6
A few months after implementation
7/21/2018 5:20 AM A few months after implementation © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
7
A few years after implementation
7/21/2018 5:20 AM A few years after implementation © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
8
Every customer on latest release; always.
D365 Tech Conference 2017 7/21/2018 5:20 AM Why Extensibility? Eliminate overlayering Support continuous update Improve implementation / update speed and quality Innovate alongside Microsoft & partners Lower total cost of ownership Improve quality Every customer on latest release; always.
9
Terminology – Sealing for Overlayering
7/21/2018 5:20 AM Terminology – Sealing for Overlayering Soft Seal – Compiler warning on overlayer of model Hard Seal – Overlayering not allowed at design time and/or during implementation configuration Extensions are THE way to customize!! © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
10
Release roadmap Dynamics 365 for Finance and Operations – Enterprise Edition
App Suite Soft seal (Fall release 2017) Hard seal (Spring release 2018) Extension based customizations only! AppSuite Core Models (Directory, Dimensions, Case, etc) Soft seal (Spring release 2017) Hard seal (Fall release 2017) App Foundation Model Hard seal (Nov 2016) Hard seal (Nov 2016) App Platform Model Hard seal (Nov 2016) Hard seal (Nov 2016) Kernel / Platform Hard seal Hard seal
11
Every customer on latest release; always.
7/21/2018 5:20 AM Ecosystem Overview Implementations Eliminate overlayering from deployments by avoiding intrusive customizations and leveraging extensibility features. ISVs Eliminate overlayering from solutions through uptake of extensibility features and code refactoring. Make solution extensible. Microsoft Core Engineering Enable non-intrusive extensibility through new platform features and application refactoring Every customer on latest release; always. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
12
Runtime package telemetry insights CY17 Q3 to date -1344 tenants
7/21/2018 5:20 AM Runtime package telemetry insights CY17 Q3 to date tenants About half of production customers have no overlayering A few have a lot of work to do! Overall Count of production customers by number of overlayered elements © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
13
What is being overlayered?
7/21/2018 5:20 AM What is being overlayered? Takeaway – It’s about the code… with a majority of it in Supply Chain. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
14
Extension Capabilities
7/21/2018 5:20 AM Extension Capabilities © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
15
7/21/2018 5:20 AM Extensibility Documentation © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
16
Basic Extensions – Tables, Views, Data Entities
Additive changes Add fields, field groups Add new relations, add new indices, add new mappings Change basic properties like label, text, etc. Framework events Expected –ing and –ed framework events e.g. OnInserting(), OnInserted() Code extension using class augmentation e.g. display methods
17
Basic Extensions – Forms
Additive changes Add controls Add new datasources (or extend query used as datasource) Change basic properties like label, text, etc. Framework events Expected –ing and –ed framework events e.g. OnInitializing(), OnInitialized() Different levels of events: Form, Datasource, Field, Control, etc… Code extension using class augmentation
18
Basic Extensions – Reports
7/21/2018 5:20 AM Basic Extensions – Reports SSRS Reports themselves cannot be extended Extend data provider classes Extend menu items Extend controller classes Duplicate Report itself © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
19
Basic Extensions Extended Data Types Menus, Menu Items
7/21/2018 5:20 AM Basic Extensions Extended Data Types String size Label/text Country/region codes Menus, Menu Items Security Roles, Security Duties – NOT Security Privileges Queries Base Enums – if marked as IsExtensible © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
20
Chain of Command - Motivation
ISV requirements: Change the return value of calcAmount() Insert a history log of the posting inside same transaction
21
Before Chain of Command
ISV requirements: Change the return value of calcAmount() Insert a history log of the posting inside same transaction
22
Chain of Command Overview
7/21/2018 5:20 AM Chain of Command Overview Allows a method to be ‘wrapped’ in an extension class The next key word is used to call other instances Allows access to protected members and methods in the base class Multiple wrapped methods can be chained together © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
23
Chain of Command Overview
7/21/2018 5:20 AM Chain of Command Overview Order of extension methods is indeterminate! © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
24
Chain of Command ISV requirements:
Change the return value of calcAmount() Insert a history log of the posting inside same transaction
25
Chain of Command Benefits:
7/21/2018 5:20 AM Chain of Command Benefits: Limits the refactoring on app side to enable common extensibility scenarios Many partner scenarios are unblocked Partner code is easier to author Supports multiple partners side-by-side © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
26
7/21/2018 5:20 AM Demo © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
27
Customization – LandOfFroz Tax Rules
7/21/2018 5:20 AM Customization – LandOfFroz Tax Rules LandOfFroz Sales Tax LandOfFrozTest LOFTax = LOFTaxRate*SalesTax LandOfFroz Sales Tax Fleet Management © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
28
Demo Recap Summary Method wrapping of a method in a class
Access protected members of a class in an extension Method wrapping of a method in a form Compare event handlers vs. method wrapping Build error if no next statement in a chained method LandOfFroz Sales Tax LOFTax = LOFTaxRate*SalesTax Sales Tax © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
29
7/21/2018 5:20 AM Best Practices © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
30
Strive for these qualities:
7/21/2018 5:20 AM Strive for these qualities: No intrusive customizations. Support for side-by-side deployment with other ISV solutions. Resiliency to changes in Microsoft code. Resiliency to changes in other ISV solutions. Able to be upgraded automatically to future versions. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
31
Intrusive customizations
7/21/2018 5:20 AM Intrusive customizations An “intrusive customization” limits our ability to meet the goal of continuous update. Changing method signatures Changing table constraints, including indexes Principles for non-intrusive customizations: Must not change type definition Must not break encapsulation Must be additive in nature Changing method access modifiers Overlayering in general Unconditional return of results in delegate handlers Replacing behavior without satisfying Liskov substitution principle Overlayering methods to change SQL statements in X++ code Resolutions Refactor your code to be non intrusive using extensions Work with Microsoft on new extensibility feature(s) Accept that your solution / implementation is not viable for Dynamics 365 for Operations © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
32
Enabling the Open / Closed Principle
7/21/2018 5:20 AM Enabling the Open / Closed Principle Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification1 Overlayering violated this fundamental principle; support for extending the product results in better implementations. SOLID 1https://en.wikipedia.org/wiki/Open/closed_principle © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
33
Customization Analysis Report
7/21/2018 5:20 AM Customization Analysis Report The Customization Analysis Report is a tool that analyzes your customization and extension models, and runs a predefined set of best practice rules. The report is one of the requirements of the solution certification process. The report is in the form of a Microsoft Excel workbook. Useful for analyzing, categorizing, and planning the move from overlayering to extensions. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
34
Practice proper naming
Avoid naming collisions: Include a prefix, typically three letters: New elements: LOFElementName New extensions on existing elements: LOFFieldName Extension classes: FMTaxLOF_extension Extension class members and methods: LOFTaxRate © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
35
Build automated tests as you develop
7/21/2018 5:20 AM Build automated tests as you develop Business Cycle Tests H2F, P2P, Q2C Integration Tests testing of multiple components working together, typically within a module. Validates requirements. Component Tests testing of base functionality encapsulated in the form of business logic (scheduling engine) or UI element (form). Validates requirements. Unit Tests testing of class functionality, focused on verifying design, ideally isolated, owned by the engineer who authors the product code. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
36
7/21/2018 5:20 AM Wrap up © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
37
Every customer on latest release; always.
7/21/2018 5:20 AM Outcomes Understand benefits of extension based customization Understand extension capabilities of the product Learn about patterns for moving code from overlayering to extensions Every customer on latest release; always. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
38
Every customer on latest release; always.
7/21/2018 5:20 AM Call to action Implementations Eliminate overlayering from deployments by avoiding intrusive customizations and leveraging extensibility features. ISVs Eliminate overlayering from solutions through uptake of extensibility features and code refactoring. Make solution extensible. Microsoft Core Engineering Enable non-intrusive extensibility through new platform features and application refactoring Every customer on latest release; always. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
39
Please evaluate this session
Tech Ready 15 7/21/2018 Please evaluate this session From your Please expand notes window at bottom of slide and read. Then Delete this text box. PC or tablet: visit MyIgnite Phone: download and use the Microsoft Ignite mobile app Your input is important! © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista 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.
40
7/21/2018 5:20 AM Resources © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
41
7/21/2018 5:20 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.