With Microsoft Dynamics NAV 2013 R2, you use Microsoft Dynamics NAV control add-ins to extend the Microsoft Dynamics NAV with custom functionality. A control add-in is a custom control, or visual element, for displaying and modifying data on Microsoft Dynamics NAV pages. The following illustration shows a control add-in example that displays a gauge control on a page.

Control add-in example of a gauge control

Control add-ins can exchange data with the Microsoft Dynamics NAV Server on various data types and can respond to user interaction to raise events in the Microsoft Dynamics NAV Windows client that execute additional C/AL code.

Control add-ins for Microsoft Dynamics NAV are built with the Microsoft .NET Framework-based assemblies that you install on computers that are running the Microsoft Dynamics NAV Windows client.

Important
With Microsoft Dynamics NAV 2013 R2, you can write control add-ins that can be displayed on both the Microsoft Dynamics NAV Web client and the Microsoft Dynamics NAV Windows client. For more information, see Extending Any Microsoft Dynamics NAV Client Using Control Add-ins.

Important
In general, add-ins are built with the technology of the client.

In Microsoft Dynamics NAV Server, you register the control add-in, and you can then use it with Microsoft Dynamics NAV Windows client pages. For more information, see Installing and Configuring Windows Client Control Add-ins on Pages.

You can use Microsoft Visual Studio to create your own control add-ins. For more information, see Developing Windows Client Control Add-ins.

Windows Client Control Add-in Model

The following illustration shows the Microsoft Dynamics NAV Windows client in the Microsoft Dynamics NAV architecture.

RoleTailored client control add-in model

You install control add-in assemblies on the computer that is running the Microsoft Dynamics NAV Windows client, not the computer that is running Microsoft Dynamics NAV Server. Unlike pages that are instantiated by C/AL code, control add-ins are instantiated by using metadata that is in the Microsoft Dynamics NAV database.

If the assembly that contains the add-in also contains other .NET objects that are used in C/AL code on the server, it might be necessary to have the assembly on the server, too. As a best practice, those cases should be extracted into a separate assembly to store the code for the client add-in only on the client computer.

Interfaces Overview

The following table describes the interfaces that you can implement in a control add-in.

Interface Description See

Data Binding interface

Displays data from the Microsoft Dynamics NAV database.

Binding a Windows Client Control Add-in to the Database

Event Interface

Selected public events in a control add-in that convert into C/AL triggers on a page that sends data back to the Microsoft Dynamics NAV Server.

Exposing Events and Calling Respective C/AL Triggers from a Windows Client Control Add-in

Methods and Properties

Selected public methods and properties in a control add-in that can be called from C/AL triggers on a page.

Exposing Methods and Properties in a Windows Client Control Add-in

Site Interface

Provides information about a control add-in and allows the control add-in to call functionality inside the Microsoft Dynamics NAV framework, such as retrieving metadata (visible, caption, and so on). This interface is implemented by the default definition interfaces and base classes of the client extensibility API.

Client Extensibility API Overview

IControlAddInSite

Control Add-ins That Are Not Supported

Control add-ins are not supported in the Microsoft Dynamics NAV Web client. If the page is displayed in the Microsoft Dynamics NAV Web client, the control add-in is ignored.

See Also