Book Image

Learning Dynamics NAV Patterns

By : Marije Brummel
Book Image

Learning Dynamics NAV Patterns

By: Marije Brummel

Overview of this book

Microsoft Dynamics NAV is a complete ERP system, which also contains a robust set of development tools to support customization and enhancement. These include an object designer for each of the seven application object types, a business application-oriented programming language with .NET interface capability, a compiler, a debugger, and programming testing language support. Learning Dynamics NAV Patterns will guide you through the NAV way of solving problems. This book will first introduce you to patterns and the software architecture of the NAV and then help you to build an example application. Then, it walks you through the details of architectural patterns, design patterns, and implementation patterns. This book will also talk about anti-patterns and handling legacy code. Finally, it teaches you to build solutions using patterns. Proven patterns and best practices will help you create better solutions that are easy to maintain in larger teams across several locations. It will guide you through combining abstract patterns using easy-to-understand examples and will help you decide which patterns to use in which scenarios.
Table of Contents (9 chapters)
Thank you for buying Learning Dynamics NAV Patterns

Managing DLL

Before Microsoft introduced dot net, we had automation control of the DLL files. These DLL files needed to be registered on each machine. This is what people refer to as DLL Hell.

In the case of Microsoft Dynamics NAV, we refer to DLL Hell in a different way.

The challenge of using DLL in Dynamics NAV, whether it is an automation control DLL or a custom made .NET DLL, is that the compiler checks the references. This screenshot shows the error message in the case of a missing DLL reference:

Since it cannot be expected that every developer has every customer's DLLs installed, it is considered best practice to wrap DLL in a one-to-one Codeunit. Each function in DLL gets a function in the wrapper Codeunit.

Instead of calling DLL directly as a variable, we will use the wrapper Codeunit. This enables developers to change the code without having the DLL installed.

This can potentially also be interpreted as an adaptor or a Façade...