Microsoft Dynamics NAV covers the following functional areas inside an organization:
- Financial management: Most of the functionalities from "off-the-shelf" accounting software can be found in this module. These functionalities include, but are not limited to, G/L budgeting, financial reporting, cash management, receivables and payables, fixed assets, VAT and tax reporting, intercompany transactions, cost accounting, consolidation, multicurrency, and intrastate.
- Sales and marketing: This module concerns those companies that want to track customer orders and determine when the items can be promised to be delivered to the customer. This area covers customers, order processing, expected delivery, order promises, sales returns, pricing, contacts, marketing campaigns, and so on.
- Purchasing: This module is required when you buy goods and services, and you want to keep track of what you have ordered from your vendors and when the goods should be delivered to your door, so you can make the stuff or ship the stuff to your customers. This area includes vendors, order processing, approvals, planning, and costing.
- Warehousing: Where are your items in your warehouse? This functional area answers this question for you. Under the warehouse area, you will find inventory, shipping and receiving, locations, warehouse bin contents, picking, put-aways, assembly, and so on.
- Manufacturing: The manufacturing area includes product design, bills of materials, routing, capacities, forecast, production planning, production orders, costing, and subcontracting.
- Job: This module is typically used for companies that deal with long and drawn-out projects. Within this job area, you can create projects, phases and tasks, planning, time sheets, work in progress, and similar.
- Resource planning: If your company has internal resources for which you keep track of costs and/or revenues, this module is for you. This area includes resources, capacity, and other tools to keep track of costs and revenues associated with resources.
- Service: This functional area is designed for a company that sells items to their customers that need to be serviced periodically, with or without a warranty. In this service area, you can manage service items, contract management, order processing, planning and dispatching, service tasks, and so on.
- Human resources: This involves basic employee tracking. It allows you to manage employees, absences, and so on.
These areas are covered in more detail in the next section of this chapter.
One of the best-selling points about Microsoft Dynamics NAV is that it can be customized. A brand new functional area can be created from scratch, or new features added to an existing functional area. All development is undertaken using the C/AL (Client-server Application Language) programming language (in versions preceding Microsoft Dynamics NAV 2018); now it's a hybrid development system. You can use C/SIDE (Client/Server Integrated Development Environment) and C/AL, and/or VS Code with an AL extension, to develop in AL.
When someone creates a new functional area, a vertical (a wide range of functions for a specific industry) or a horizontal (a wide range of functions that can be applied across an industry), they usually create it as an add-on. An add-on can be registered with Microsoft, for an appropriate fee of course. If some features are added to an existing area, usually it is a customization that will only be used on the database of the customer who asked for the feature.
Making add-ons (and Apps) available greatly enhances the base Microsoft Dynamics NAV functionalities to fit the needs of every industry and every business. The mode of development has evolved over time.
One thing that is unique about Microsoft Dynamics NAV is that the entire code is located on a single layer. Therefore, if you customize an area, you had to do it by modifying the standard code and adding code to the middle of the standard object definition. This made it a little tough to upgrade in previous versions of Microsoft Dynamics NAV. However, with the release of Microsoft Dynamics NAV 2018, code upgrades can be effected automatically using PowerShell (this feature does not only exist in Microsoft Dynamics NAV 2018; it has been available since Microsoft Dynamics NAV 2013 R2 and was refined in Microsoft Dynamics NAV 2015). We will dive into PowerShell later.
Microsoft Dynamics NAV is built upon a three-tier architecture:
- Microsoft SQL Server and Microsoft Azure SQL are the data tier and are used to store the data in a database.
- The Microsoft Dynamics NAV Server service is the middle or server tier, managing the entire business logic and communication. It also provides an additional layer of security between clients and the database, and an additional layer for user authentication.
- On the client tier, we will find Windows clients and the Web client. Microsoft Dynamics NAV 2018 also supports other kinds of clients, including Web services (both SOAP and OData v4.0), mobile tablets and phones with Universal App, a SharePoint online integration, the Office 365 native integration, and the Microsoft Dynamics NAV Application Server (NAS) service.
You can install Microsoft Dynamics NAV in more complex scenarios, as you can have multiple instances of any of the core components.
In Microsoft Dynamics 365 Business Central SaaS, only the Web client and the native mobile app exist, the infrastructure is cloud-based, the development environment is not different to Microsoft Dynamics NAV 2018 (with Microsoft Dynamics NAV, you have a hybrid development, and you can choose to use C/SIDE or VS Code, or both); however, it is possible to design extensions (applications) with Microsoft Dynamics NAV 2018 using the New Modern Development Environment. This new development environment (composed by Visual Studio Code and the Microsoft AL language extension) is used instead of the C/SIDE and C/AL environment, which could be deprecated in the near future, as it is already with just Microsoft Dynamics 365 Business Central.