If you look at NAV 2009 from the point of view of a developer, you may see it as a set of customizable off-the-shelf program objects (the building blocks) plus the IDE which allows you to modify those objects and create new ones (the C/SIDE development tools).
The NAV 2009 system is an object-based system, consisting of several thousand application objects, the building blocks, made up of the eight different object types available in NAV. NAV does not have all of the features of an object-oriented system. A full-featured object-oriented system would allow the definition and creation of new object types, while NAV only allows for the creation and modification of the predefined object types.
Let’s start with some basic definitions of the object types that are part of NAV:
NAV includes a full set of software development tools. All NAV development tools are accessed through the C/SIDE Integrated Development Environment. This environment and its full complement of tools are generally just referred to as C/SIDE. C/SIDE includes the C/AL compiler. All NAV programming uses C/AL. No NAV development can be done without using C/SIDE.
The C/SIDE Integrated Development Environment is referred to as the Object Designer within NAV. It is accessed through the Tools Object Designer menu |option as shown in the following screenshot:
The language in which NAV is coded is C/AL. A sample of some C/AL code is shown as follows. C/AL syntax has considerable similarity to Pascal. As with any programming language, readability is enhanced by careful programmer attention to structure, logical variable naming, process flow consistent with that of the code in the base product and good documentation both inside and outside of the code.
Insert code1
A large portion of the NAV system is defined by tabular entries, properties, and references. This doesn’t reduce the requirement for the developer to understand the code, but it does allow some very significant applications development work to be done on a more of a point-and-choose or fill-in-the-blank approach than the traditional “grind it out” approach to coding. NAV gives developers the ability to focus on design rather than code. Much of the time, the effort required to create a new NAV application or modification will be heavily weighted on the side of design time, rather than technical development time. This long term goal for systems development tools has always been true for NAV. As the tools mature, NAV development continues to be more and more heavily weighted to design time rather than coding time.
The following screenshot shows a list of Object Designer tool icons. These Object Designer icons are shown isolated in the screenshot and then described briefly in the following table. Some of these icons apply to actions that are only for objects which run in the Classic Client, some are for objects for both clients. Additional information is available in the C/SIDE Help files and the Microsoft NAV documentation.
The following table lists the specific development tools used for each object type. Also, as shown in this table, some objects are limited to being used in the Classic Client, some are limited to being used in the RTC environment, some are used in both, and some are interpreted differently depending on the environment in which they are invoked.
Object Type | Design Tool | User Interface | Comments |
Table | Table Designer | Classic and RTC |
|
Form | Form Designer | Classic |
|
Page | Page Designer | RTC |
|
Report | Report Designer | Classic (and RTC) | If a report is run from the RTC but doesn’t have an RTC compatible layout, NAV will run it under a temporary instance of the Classic Client |
| Report Designer (data definition) + Visual Studio (user interface) | RTC |
|
Dataport | Dataport Designer | Classic |
|
XMLPort | XMLport Designer | Classic and RTC | For the RTC, Dataport functionality is handled through appropriately defined XMLports |
Codeunit | IDE code editor for the C/AL language | Classic and RTC |
|
MenuSuite | Navigation Pane Designer | Classic and RTC | Much of the navigation in the RTC is done via Role Center pages rather than menus |
Let’s take a look at the following:
Object Number range
| Usage
|
1 – 9,999
| Base-application objects
|
10,000 – 49,999
| Country-specific objects
|
50,000 – 99,999
| Customer-specific objects
|
100,000 – 98,999,999
| Partner-created objects
|
Above 98,999,999 | Microsoft territory |
I remember deciding to pursue my first IT certification, the CompTIA A+. I had signed…
Key takeaways The transformer architecture has proved to be revolutionary in outperforming the classical RNN…
Once we learn how to deploy an Ubuntu server, how to manage users, and how…
Key-takeaways: Clean code isn’t just a nice thing to have or a luxury in software projects; it's a necessity. If we…
While developing a web application, or setting dynamic pages and meta tags we need to deal with…
Software architecture is one of the most discussed topics in the software industry today, and…