Dynamics NAV provides with its native “in the box” tools there are times when reaching outside of the C/AL box is not only warranted but can actually save time on development, testing and deployment. Additionally, being willing to expand your technical horizons and learn some new technological tools can be very rewarding and payoff dividends in the future.
So what exactly what is meant by Extending NAV? In the Classic Client NAV days (i.e. NAV 2009 and older), extending NAV involved using COM based objects to link to the outside world. Unfortunately, using COM forced a lot of complexity around managing its deployment and thus was seldom used. Starting with the NAV 2009 SP1 RTC client, that all changed with the ability to start using .NET Control Add-ins; subsequent releases have since added .NET interoperability. So in summary, today in Dynamics NAV 2015 we have the following extensibility tools in our toolkit:
COM Technologies Provides the ability to extend the functionality of NAV by implementing automation and custom controls. The Dynamics NAV Windows client supports automation servers by acting as an automation controller and using OCXs (custom controls) *** While still supported for backwards compatibility, given the limitations of COM, new development should be performed with native .NET assemblies.
.NET Framework Interoperability Provides the ability to extend the RoleTailored clients and Microsoft Dynamics NAV Server with functionality that is available in Microsoft .NET Framework assemblies. You can take advantage of .NET Framework interoperability so that Microsoft Dynamics NAV objects can interact with the .NET Framework objects. ***.NET Interop can be coded to run on either the Client machine or the NST server depending on which is most appropriate. Additionally, you can create your own .NET assemblies for consumption or virtually any of the thousands of .NET framework objects that are already installed on your servers and client machines.
.NET Control Add-ins .NET control add-ins are custom controls, or visual elements, for displaying and modifying data on pages in the Microsoft Dynamics NAV Windows client. Control add-ins are delivered as Microsoft .NET Framework–based assemblies. Microsoft Dynamics NAV includes the client extensibility API for creating your own control add-ins. ***
.NET Control Add-ins give the you the ability to take control of the RTC user interface in ways that are not possible with page designer. You can create something as simple as a button that when clicked performs a lookup from an external database, to a completely custom page with 100% ,NET controls using either WinForms or WPF. Descriptions provided by MSDN
So what kind of things can you do with .NET Interop and Control Add-ins? Take a look at the video below for a few examples of using Dynamics NAV Extensibility: