X++ Coding Standards

Applies To: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack, Microsoft Dynamics AX 2012

This topic provides general coding principles for Microsoft Dynamics AX.

  • Declare variables as locally as possible.

  • Check the error conditions in the beginning; return/abort as early as possible.

  • Have only one successful return point in the code (typically, the last statement), with the exception of switch cases, or when checking for start conditions.

  • Keep the building blocks (methods) small and clear. A method should do a single, well-defined job. It should therefore be easy to name a method.

  • Put braces around every block of statements, even if there is only one statement in the block.

  • Put comments in your code, telling others what the code is supposed to do, and what the parameters are used for.

  • Do not assign values to, or manipulate, actual parameters that are "supplied" by value. You should always be able to trust that the value of such a parameter is the one initially supplied. Treat such parameters as constants.

  • Clean up your code; delete unused variables, methods and classes.

  • Never let the user experience a runtime error. Take appropriate actions to either manage the situation programmatically or throw an error informing the user in the Infolog about the problem and what actions can be taken to fix the problem.

  • Never make assignments to the "this" variable.

  • Avoid dead code. (See Dead Code Examples.)

  • Reuse code. Avoid using the same lines of code in numerous places. Consider moving them to a method instead.

  • Never use infolog.add directly. Use the indirection methods: error, warning, info and checkFailed.

  • Design your application to avoid deadlocks.

This section contains the following topics:

X++ Layout

X++ Standards: Comments

X++ Standards: Extra Semicolon is No Longer Recommended

X++ Standards: Constants

X++ Standards: Arrays

X++ Standards: Dates

X++ Standards: try/catch Statements

X++ Standards: throw Statements

X++ Standards: ttsBegin and ttsCommit

X++ Standards: if ... else and switch Statements

X++ Standards: select Statements

Intrinsic Functions

Clear Code Examples

Dead Code Examples

Best Practices: XML Documentation

Best Practices: Avoiding Potential Security Issues

Announcements: New book: "Inside Microsoft Dynamics AX 2012 R3" now available. Get your copy at the MS Press Store.