What's New in Microsoft Dynamics AX 4.0 for Developers

The following changes have been made to Microsoft Dynamics AX.

Version Control

Microsoft Dynamics AX now has a version control system. Version control functionality is integrated into the Application Object Tree (AOT). You need to check out objects before you can edit them, and you need to add new objects to the version control system.

Microsoft Dynamics AX is integrated with Microsoft Visual Source Safe 2005, but you can extend the version control functionality to use other version control tools.


The Lock command that was available in previous versions of Microsoft Dynamics AX is no longer available. The Lock command was available from the shortcut menu in the AOT, and it allowed application objects to be locked to prevent other users from modifying them.

ID Server

The version control system includes a new ID server, called the Team Server, that hosts the allocation of new object IDs. The Team Server can be shared from multiple Application Object Server (AOS) installations to provide unique assignment of IDs across multiple project development environments.

Object History Functionality

A version control system provides object history. You can explore and compare different versions of an object within a layer.

Code Access Security

Certain APIs that ship with Microsoft Dynamics AX use Code Access Security. This helps make the APIs more secure.

For a list of the APIs that use Code Access Security (CAS), see Secured APIs.

You can also CAS-enable your own APIs. For more information, see How to: Secure an API on the AOS.

CLR Interoperability

The MorphX native language, X++, has been extended. It now provides support for interoperability with managed-code components. Within the AOT, managed-code assemblies can be referenced so they can be used from X++. The support in X++ includes holding references to common language runtime (CLR) types directly and implicit marshaling between default kernel types and CLR types.

IntelliSense includes CLR types that are used as parameters with X++ methods. Supporting functions are wrapped in the system utility class CLRInterop. Callouts to both static and instance methods on CLR types are included in the support with the compile-time checking of arguments. Any exception that can occur in the managed code is wrapped as a kernel exception with support for retrieving the corresponding CLR exception objects in X++.

Business Connector

The Microsoft Dynamics AX Business Connector contains a new COM interface, IAxapta3. IAxapta3 inherits from previous Microsoft Axapta 3.0 (now a part of Microsoft Dynamics) COM interfaces, IAxapta and IAxapta2.


IAxapta and IAxapta2 are not available in Microsoft Dynamics AX 2009.

In addition to COM support, the Business Connector contains .NET classes for Microsoft Dynamics AX functionality. The documentation for .NET classes is located in the Microsoft Dynamics AX .NET Framework section of the Microsoft Dynamics AX Developer Help.

Enterprise Portal

Microsoft Dynamics AX now supports Windows SharePoint Services. Use it to create a Web site that provides access to Microsoft Dynamics AX data and functionality, such as forms, reports, and menus. For more information, see Enterprise Portal for Microsoft Dynamics AX.

Report Builder

Create Microsoft Dynamics AX reports by using Report Builder for Microsoft SQL Server Reporting Services. You add information to the report from a report model.

Organize information for a report model by creating a perspective in the Application Object Tree (AOT). You can also use table, view, and extended data type properties in the AOT to determine the availability and organization of information in a report model.

For more information, see How to: Create a Perspective for a Report Model (MorphX Reporting Tools).

Application Integration Framework

Send and receive XML data between Microsoft Dynamics AX and external software systems by using the Application Integration Framework (AIF). AIF enables business-to-business scenarios, application-to-application scenarios (A2A), and enterprise application integration (EAI) projects.

Table Permissions

The AOSAuthorization table property enables you to specify the type of operation that a user can perform on a table, depending on the user's permissions.

For more information about table permissions, see Table Permissions.

For more information about user permissions, see Restrict Access to Tables and Fields.

Optimistic Concurrency Control

Specify whether the optimistic concurrency control is enabled for a table by setting the OccEnabled property on a table or calling the DictTable.occEnabled method.

When this mode is enabled, data is not locked from future modification when it is fetched from the database. Data is locked only when the actual update is performed.

For more information, see Optimistic Concurrency Control.

Int64 and GUID Data Types

X++ now has the following integers:

  • int – 32-bits wide

  • int64 – 64-bits wide

For more information, see Integers.

A guid data type has also been added. You can generate a GUID by using the newguid function, and convert strings to GUIDs and GUIDs to strings by using the str2Guid Function and guid2Str Function functions.

Identifier Names

In Microsoft Axapta 3.0 and earlier versions, it was possible to use any character in the ASCII extended character set. For example, identifiers like überAlles and ridiculé were valid. You can now use only the standard ASCII character set.

Record IDs

When Microsoft Dynamics AX inserts records into SQL tables, a unique record ID is assigned to each record—regardless of the company each record is associated with. The record ID is now an int64 data type value. The range in which record IDs are allocated is from 5637144576 to 2^63 (9223372036854775808).

You can use the systemSequence class to control the system generation of record IDs.

Unit Testing Framework

Microsoft Dynamics AX now has an integrated Unit Test Framework built into the MorphX development environment. Unit tests are made as individual test cases. Each test can include a number of tests in the form of assertions. Test cases can be contained within test suite classes or as part of a project in MorphX. Testing can be done from the Unit Test toolbar from which individual test cases, test suites, or test projects can be executed. Test results can be viewed from the Unit Test toolbar that indicates the test passed or failed state, per case and test, and can even include code coverage measures for the classes and methods that are tested.

2-tier Deployment No Longer Available

2-tier, 3-tier thick, and Web deployment are no longer available in Microsoft Dynamics AX. The only option is a 3-tier configuration with a thin client.


The Microsoft Dynamics AX code base is now Unicode-compliant.

The TextIO and CommaTextIO classes replace the AsciiIO and CommaIO classes, respectively, to support file I/O for non-ANSI code page characters.

New Development Best Practices Checks

For a description of the new MorphX and X++ best practices checks in Microsoft Dynamics AX, see New Best Practices in Microsoft Dynamics AX 4.0.

SysAutoRun Configuration Framework

The SysAutoRun class enables system administrators to configure Microsoft Dynamics AX by supplying the client with an XML file that contains configuration commands. The framework can also be used for testing purposes and to run custom code when Microsoft Dynamics AX starts. For more information, see SysAutoRun Class.

Kernel Redesign

As a result of some redesign of several kernel areas, kernel performance has been augmented. This redesign has resulted in the improvement of the following areas:

  • Enhanced performance when multiple clients are run against AOS servers

  • Improved report handling

  • More efficient IO caching, reducing the cost of cross-client synchronization

Debugger Enhancements

The debugger in Microsoft Dynamics AX has received a number of enhancements that include the following:

  • A new workbook UI that has an optional multiple-document interface (MDI) mode

  • Ability to sort on columns in docking windows

  • Line numbering in the code editor

  • Tool windows layout persistence between sessions

  • New Breakpoints and Call Stack windows

  • Watch window improvements, such as Clear Current Watch and Clear All Watches

  • Ability to copy tool window contents to the Clipboard

  • New icons that match the best format of the operating system that the debugger is running on

  • Shortcut keys that are aligned with the Microsoft Visual Studio 2003 debugger

  • A new debug command, SetNextStatement, that enables you to set the execution point to a particular line of code

  • Menus standardized for all tool windows

Reverse Engineering Tool

Reverse engineering of MorphX is a feature that enables partners to straightforwardly retrieve detailed information about the structures and relationships of the Microsoft Dynamics AX business logic and data model. This information is retrieved by integrating the data and object model evaluation with Microsoft Office Visio 2003. This enables a developer to utilize a true modeling concept, which can be the foundation for customization and integration.

The Reverse Engineering tool renders the Visual MorphXplorer tool obsolete. It has been removed.

Image Manipulation

The AccuSoft ImageGear graphics library that is used by Microsoft Dynamics AX has been replaced by the Microsoft Windows GDI+ (Graphics Device Interface) library. Functionality is unaffected. Some of the rarely used methods on the Image and Imagelist classes are no longer available.

Cross-References are Name-Based

Cross-references to other Microsoft Dynamics AX objects are now name-based and no longer ID-based. If you rename an object, update all the references to it. For more information, see How to: Rename AOT Objects in the Version Control System.

Changes in XPO Files

XPO files no longer have a time stamp. To see the date of an object, use the version control system.

XPO files no longer contain default values for properties. They are included in the file only if they have been changed from the default value, making files smaller. It also makes it possible to make a global change in a property's default value.


The GLS layer has now been merged into the SYS layer. A new SE layer has been introduced. The IDs for the SYS layer are now 1-14000. The IDs for the SE layer are 14001-16000.

Trailing Zeros

It is now possible to hide trailing zeros when displaying real numbers in a field control. Trailing zeros are hidden only in the user interface. The value stored in the database doesn't change.

To remove trailing zeros, use the MinNoOfDecimals property on the form control. For more information, see Form Control Properties.

The MorphX Recycle Bin Has Been Removed

The recycle bin in MorphX (introduced in Axapta 3.0), which was used to hold deleted AOT objects, has been removed for Microsoft Dynamics AX.

Feature Keys Removed

Feature keys were replaced by security keys and configuration keys in Axapta 3.0.

All code relating to feature keys has been removed from Microsoft Dynamics AX.

Documentation Changes

The following changes have been made to Microsoft Dynamics AX documentation for developers.


The Developer's Guide, Developer's Best Practice Handbook, Debugger Guide, and X++ reference information are now all in one HTML Help file. The file is available from the Help menu in Microsoft Dynamics AX and when you press F1 on an application object in the AOT.

All SDK topics include a feedback mechanism, which you can use to rate the topic or send an e-mail.

Continuous Publishing Model

The SDK will be continually updated to respond to feedback and requests, and to provide additional information.

Updates to topics will be provided on MSDN. Updated topics can be accessed with the link at the end of each topic in the HTML Help file.

Changes will periodically be assembled into a new version of an HTML Help file. The latest version of the SDK is available at Using Microsoft Dynamics AX.

Class and Table Documentation

Documentation has been provided for some of the most frequently used system (kernel) classes.

Basic information has been provided for all X++ tables.

This information is available in the Reference section of the SDK.

Getting Started

This section has information about the Microsoft Dynamics AX development environment for both new and experienced developers.

This section has a walk-through of a customization in Microsoft Dynamics AX and a list of programming references.


Trustworthy Computing has been a focus for the Microsoft Dynamics AX release. The SDK documentation has been updated with information about X++ Security and with security notes in the documentation for classes and tables that could be used in an insecure manner.

Enterprise Portal

The documentation for the Enterprise Portal feature provides instructions for tasks, such as creating Web site pages, customizing the user interface by creating weblets, and modifying the appearance of Web sites by creating themes. For more information, see Enterprise Portal for Microsoft Dynamics AX.

Development Best Practices

The Developer's Best Practice Guide has been updated. It now forms an integral part of the SDK. For more information, see Best Practices for Microsoft Dynamics AX Development.