Thursday, April 13, 2017
The release of Extensions for Dynamics NAV has left many pondering – why should I transform Add-ons to Extensions?
The fact is there are many benefits underlying Add-ons transformation. While building an Add-on solution as an Extension requires an upfront investment in resources and effort, in the end it is more attractive to customers with the ease of implementation and minimal maintenance moving forward.
However, there are also factors to consider when redesigning Add-ons to Extensions, such as: (1) what is your potential market size for these Extensions; and (2) what is the nature of modifications in the standard NAV code currently. I’ll expand on this later!
This article runs the gamut on what you need to know about Extensions for NAV 2017, including what is an Extension and lifecycle of an Extension, as well as covering why you should transform Add-ons to Extensions, where you should start with your transformation and how this transformation could be made easier.
What is an Extension in NAV 2017?
Extensions enable NAV Developers to modify live NAV environments without touching or customizing the core NAV system. A major benefit to Extensions is that they can be installed and uninstalled from your NAV implementation with minimal risk of breaking anything in the main application (code base). In other words, Extensions can be treated as apps for Microsoft Dynamics NAV permitting customizations without manipulating the original application objects.
Figure 1: NAV application with Add-ons Figure 2: NAV application with Extensions
To deploy, you can publish Extensions in selected server instances and Extensions can be installed for selected tenants (see visual below).
The Lifecycle of an Extension for Dynamics NAV
The lifecycle of an Extension for NAV 2017 is simple:
- Publishing places an Extension package into a NAV server instance, but users can’t use it yet as it’s not enabled.
- Install. Upon publishing an Extension becomes available for installing in tenants of a NAV server. Installing deploys Extension modifications to specified tenant of a NAV server instance.
- Upgrading is simplified. Uninstall the old and install the new version of the Extension. All data transformations are handled in special Codeunits.
- Uninstall removes an Extension so that the end user can no longer see or use it as it is disabled, but it is still on the NAV server. Admins can still reinstall the Extension. All Extension related data is archived and available to be restored when an Extension is reinstalled.
- Unpublish physically removes the Extension from the system/NAV server.
Why Transform Add-ons to Extensions?
There are many benefits to transforming Add-ons to Extensions:
- Easy to distribute. Extensions are self-contained and managed, eliminating many of the import and merge conflicts of the past.
- Simple maintenance. With no modifications in Microsoft Dynamics NAV standard code, it is easier to apply Cumulative Updates as well as upgrade to major NAV version releases in customer implementations.
- Granularity. Multiple Extensions can be added and removed from a NAV implementation without affecting behavior of other Extensions, if these Extensions don’t modify the same place.
- Re-usable development work. Most Add-on development for an Extension for Dynamics NAV efforts can be re-used for building an app for Microsoft Dynamics 365 for Finance SMB, which would enable you (the partner, partner services and partner solutions) to appear on Microsoft's business application marketplace (also known as AppSource).
- AppSource. When having Add-on in Extension one is very close to having an App for Dynamics 365 for Operations, therefore, adding new sales and marketing channel that enables lead generation, making your solution more visible to the Partners and customers worldwide.
Keep in mind there are a few development limitations to consider before transforming Add-ons to Extensions:
- No code modifications are allowed in functions and triggers of standard NAV objects. All modifications in standard NAV objects should be re-implemented using NAV Events to be able to build them into Extensions.
- No modifications of standard NAV object properties are allowed in Extensions. Partners should keep this limitation in mind when considering transforming to an Extension for solutions that have many modifications in standard NAV user interface or table fields.
For more details on the Extensions functionality capabilities, please visit this resource website.
Where do you start with your Extension transformation?
- Build a business case. Transforming / upgrading your Add-on to an Extension can be a considerable investment. Therefore, your first task to undertake is to make a business plan. The key questions to answer in this business plan are: (1) what is the cost of making my Extension; (2) how many Extensions should I make; and (3) at what price should I sell these Extensions to make a profit in order to move my business forward?
- Evaluate. Evaluating the transformation technological options, constraints, phases, timing, and investment of moving to an Extension.
- Redesign. Scoping and executing the work of the redesign transformation from Add-on to Extension.
How can you make the Extension transformation easier?
Collaborating with experts can make for the most efficient Extension transformation through:
- Consult Extension Transformation Specialists: Request a project scoping and planning workshop. 1ClickFactory delivers Add-on to Extension transformation project scoping and planning workshops that helps you to understand the direct limitations of the Extensions technology (knowledge transfer from 1ClickFactory to Partner) and provides suggestions on what architectural solutions could be used to resolve these. You leave the workshop with a plan on how to transform to Extension technologically with a clear understanding on the required efforts (e.g. time, competency, investment), which can be input to your business plan.
- Work with experienced Extension developers: Start a Microsoft Dynamics NAV Extension development project. 1ClickFactory works with you, the ISV, to split the required work/effort between your resources and our development teams to transform your Add-on to an Extension most efficiently. All the IP of the development work done solely belongs to you, the ISV.
Visit our website to learn more about our 1ClickFactory Add-on Upgrade to Extension for NAV Service we offer exclusively to Microsoft Dynamics Partners.