Armanino Blog

D365 Customization: Extensions vs. Overlays and Why It Matters

August 22, 2018

Microsoft is making it easier for Dynamics 365 for Finance and Operations customers to customize and update their implementations, by replacing often-cumbersome "overlays" with "extensions" that are easier to install and maintain.

The old approach

Overlaying code, the now-outdated way to implement customer-specific functionality under Dynamics AX, involved customizing programming within Microsoft's code and recompiling the application.

This invasive approach to customization added complexity and led to problems whenever Microsoft updated its version of the underlying Dynamics code. Any customizations you installed wouldn't be seen automatically by the updated application, meaning you would have to re-merge and recompile your code manually. This made it considerably more challenging to perform upgrades, install hotfixes and maintain the code.

And, this complexity would increase over time, with a steady series of overlaid customizations needing revisions with each Dynamics update.

To eliminate the costs and risks associated with overlays, Microsoft has sealed its code base, beginning with the Spring 2018 Dynamics 365 release. This precludes the use of overlays but offers companies a more effective way to customize their implementations―via extensions.

Increased flexibility, lower cost

In contrast to overlays, extensions allow developers to write code that is compiled into a separate file. This approach offers considerably more flexibility because companies and their software partners are able to write code that sits alongside the Microsoft Dynamics 365 code.

The extensions still depend on the Microsoft code, but aren't inherently blended with it. This results in much faster compilations, as well as isolated code that's easier to read and manage.

For instance, as Microsoft issues hotfixes or updates to Dynamics 365, extension code can generally be applied to newer versions without extensive maintenance or work. Although small changes may be needed after a Microsoft update, installing hotfixes will, overall, require much less effort.

In addition, Microsoft has created a new class of extension objects that help you add custom elements without interfering with Dynamics 365 application code.

This approach has benefits beyond the convenience of applying updates. For instance, the cost of maintaining the code base is much lower when you're applying customizations through extensions on the underlying code. An update usually doesn't produce code or metadata conflicts, which often require time-consuming and costly efforts to find and correct.

Organizations typically customize Dynamics 365 to meet specific needs, such as adding custom fields to tables. You may want, for example, to add classification data to a customer record.

With overlays, this would require manipulating a table object by adding the field and related code, and, potentially manipulating methods in that table. By using extensions, developers can create table elements without manipulating the underlying code directly—a simpler and more effective method.

Another common class of customization is changing the functionality of forms, such as adding new buttons, data sources or custom fields. Developers can add those elements within a form's extension object, instead of actually adding them directly to the object.

You can also integrate external systems, such as your partners' acquisition or invoicing platforms. New data entities in Dynamic 365 are highly extensible and allow you to expose data to an interface for integration scenarios.

Transition period

Microsoft will support overlaid customizations to previous versions (the last release that supports overlays is version 7.3) for three years, which gives you time to work with your software partner to transition those overlays to extensions.

To ease the transition, Microsoft has made a number of changes in the underlying Dynamics 365 application, such as making some commonly customized areas of the system more extensible. For example, they've introduced features in the programming language that allow developers and systems implementers to write new types of code.

A code upgrade process in the Lifecycle Services tool will help you evaluate how easily code will transition to the extension model. Overlaid code will be tested and will likely generate errors that have to be addressed.

If you have a Dynamics AX or Dynamics 365 implementation with a great deal of customized code, start working with your software partner to determine whether you can migrate that code to extensions, or whether it would be more efficient and cost-effective to develop a new design that's better suited to providing the desired functionality through extensions.

In some instances, re-engineering logic from scratch is more straightforward using the extension model than trying to shift overlaid code to an extension.

To learn more about customization or other implementation issues, reach out to our D365 implementation experts.

Stay In Touch

Sign up to stay up-to-date with the latest accounting regulations, best practices, industry news and technology insights to run your business.

Related News & Insights
Ask An Expert Series – Workday Adaptive Planning
Don't Miss! 30 Minute Workday Q&A Sessions with Experts

July 30, 2024 | 10:00 AM - 10:30 AM PT
Ask An Expert Series – Workday Financial Management
Don't Miss! 30 Minute Workday Q&A Sessions with Experts

July 24, 2024 | 10:00 AM - 10:30 AM PT
Ask An Expert Series – Workday financial-management
Don't Miss! 30 Minute Workday Q&A Sessions with Experts

July 23, 2024 | 10:00 AM - 10:30 AM PT