mfp's two cents

...on Dynamics AX Development!
  • mfp's two cents

    Customization and Upgrading of ERP Systems - An Empirical Perspective


    Yvonne Dittrich and Sebastien Vaucouleur have just published a report on their research into Customization and Upgrading of ERP systems. More specifically they have studied Dynamics AX and Dynamics NAV; and their report reveals some interesting insights into the how problematic it can be to "build a house on the back of an elephant". 


    An increasing number of software systems are developed by customizing a standard product that provides the major part of the functionality. The customizations of Enterprise  Resource Planning systems are examples of such a practice. Nonetheless, little empirical research on the specific characteristic of this kind of software development is available. Do the recommendations for “normal” software development also apply in this case? We present an empirical study on ERP customization practices based on video recordings, interviews and a survey. The observed and reported practices challenge some of the principles of software engineering acknowledged as good practices. Based on the analysis, we discuss essential challenges and identify directions to take when addressing specific difficulties. Besides bearing the potential to influence the development of future generations of enterprise systems, the presented research provides insights in software development practices changing and amending a software product “from within” rather than developing the central functionality from scratch or re-using components “from without”.

    For more information please see:

  • mfp's two cents

    New Layers in Dynamics AX 2009


    4 layers have been renamed in Dynamics AX 2009 . DIS / DIP / LOS / LOP have become HFX / SL1 / SL2 / SL3 respectively. HFX is reserved for releasing hot fixes, and the 3 new solution layers (SL1/SL2/SL3) will be used to release Microsoft Dynamics Industry Solutions.

    The purpose of having 3 solution layers is to enable side-by-side install of Industry Solutions. At deployment time any SL1 layer can be renamed to SL2, SL3, BUS or BUP through a regular file rename. The AOS will recognize the layer, and honor its position in the layer stack. This will enable installing up to 3 Industry Solutions on the same system (or up to 5 Industry Solutions if the BUS and BUP layers are vacant.)

    Another aspect of side-by-side installation is conflicting names and IDs in the model. The AX platform requires unique names and IDs of all model elements, we will ensure uniqueness across Industry Solutions through our engineering processes. Naturally there will be logically overlayering conflicts for certain elements; but as the Industry Solutions by nature are verticals we anticipate very few of these. These conflicts will need to be resolved; one way is to reclaim one of the SLx layers as an adaptation layer. More information on this will be available as the Industry Solutions become available.

    Why not just support an unlimited numbers of layers?

    Frequent feedback we get is to add more layers; and open them up for consumption by the partners. And heck, why we are at it why not have an unlimited number of layers?

    Currently; there is an upper limit on the number of layers the kernel can support. This number is 16. The technical explanation has to do with referencing of the elements in the model. Each model element is stored in a record in the AOD file. The RecId for model elements is a 32 bit integer. 4 of these bits denote the layer; the remaining 28 bits are used to calculate the offset into the AOD file where the record is located. In version 3.0 (and previously) the block size was 1 byte. This basically mean the maximum size of an AOD file is about 256MB (2^28). In version 4.0 we moved this limit by denoting one of the 28 bits to control the block size. When the bit is not set, the 27 bits is the direct offset in to the file. When the bit is set, a block size of 48 bytes is used to calculate the offset in the file. This enables AOD files with sizes up to about 6.5 GB (2^27 * 48), while enabling binary backwards compatibility with 3.0 AOD files (with sizes less than 128MB (2^27)).

    If we decide to use one bit more to denote the layer (giving us 32 layers); it means we are only backwards compatible with AOD files with sizes less than 64MB (2^26). As that is not acceptable; tools to align the contents in AOD files would be needed. For 6.0 we are investigating options to tear down these limitations once and for all.

  • mfp's two cents

    New blog from the X++ compiler team


    Make sure to check it out:

    They already got a cool post on how to implement the observer pattern in X++.

  • mfp's two cents

    Articles on X++ development


    While digging in my archives to service a request from a co-worker I stumbled across a few articles I wrote for Damgaard Technet. Those that are still valid, I've polished a bit and made available here.

    Behavioral information messages

    How to use a form tree control

    Delaying method calls

    The user friendly Infolog

    Showing operation progress

    Global variables

    I hope you find them useful.


  • mfp's two cents

    Dynamics AX 4.0 Meta Model


    If you are a new developer and is trying to ramp up on AX, this might be a post for you. In MorphX (the IDE for AX) you do model-driven development. This basically means you create new elements of certain concepts, decorate them with properties, and wire them all together. Naturally there will be requirements to your features that cannot be expressed in the model, in these cases you have to resort to writing X++ code.

    Let's return to modeling. In the AOT (Application Object Tree) you will find a lot of modeling concepts, such as Forms, Tables, Extended Data Types etc. The AOT is quite good as a dictionary of concepts, but how do they relate?   For Inside Dynamics AX 4.0 we created the below overview diagrams to answer this question. After the book has been through editing the diagrams were chopped up. This gives a better details view, but the overview was lost. But not anymore. :-)

    Read each arrow as "using". For example. A Menu uses Menu Items. A Menu Item uses a Form. A Form uses a Table. A Table uses Extended Data Types. And so on.

    I've attach a Microsoft Office Visio version of the diagrams to this post as well for your convenience.

    The win client version:

    The web client version:

  • mfp's two cents

    migrax(tm): A new way to do code upgrade.


    More Dynamics; one of the Gold Sponsors on Convergence 2009; has just released what I find to be a very interesting product: migrax™. migrax™ can assist in migrating AX solutions from version 3 and version 4 to AX2009.

    The approach taken is quite different from the code upgrade tools available in AX. The existing AX code upgrade tools live inside MorphX; and can harvest the benefits of MorphX, such as access to the AOT, Compare tools, BP tools, etc. However; living inside MorphX also induces certain limitations; for example all editing has to go through the AOT modeling API.

    migrax™ does it differently. It is an external application. You start by loading your solution as an XPO file. It will be converted to XML and persisted in a database inside migrax™. Using XML techniques migrax™ is able to automatically resolve most code conflicts and produce an XPO file upgraded to Dynamics AX 2009.

    migrax™ is capable of solving logical conflicts caused when the standard application (typically in the SYS layer) changes, and the changed element has been customized. migrax™ is by-nature not capable of resolving conceptual conflicts, like conflicting or redundant functionality. Here a set of human eyes is still needed.

    One might argue that migrax™ is competing with the standard tool set in MorphX in upgrading code. I have a different perspective. The goal for me is to enable customers and partners to upgrade to Dynamics AX 2009 as seamless as possible. Having a larger tool box is a benefit to everyone.

    Make sure to check-out the migrax™ site, and visit More Dynamics at Convergence 2009 in New Orleans.

  • mfp's two cents

    Innovating to improve the planet


    At Microsoft, we are committed to software and technology innovation that helps people and organizations around the world improve the environment. Our goals are to reduce the impact of our operations and products and to be a leader in environmental responsibility.

    For more information see:

    Also see the Microsoft Dynamics AX Environmental Sustainability Dashboard:

  • mfp's two cents

    Its today!


    My flight was full of familiar faces. Homeland Security in Seatac learned that Microsoft is hosting a Dynamics AX Conference. So did the receptionists at my hotel. Almost everyone at the breakfast buffet was wearing a Dynamics AX logo. The weather is warm. You can smell the pine wood surrounding the area and you can feel the anticipation building up. Today is  the day! In just 3 hours the registration for the Dynamics AX 2011 Technical Conference 2011 will open. Welcome to Redmond and Microsoft Campus - my home away from home.


  • mfp's two cents

    Session list for Technical Conference 2011 is available


    The first major AX event this year is not even a week away. I encourage you to plan your conference - there is so much too see, and so much you don't want to miss.

    The session list has recently been published here:


  • mfp's two cents

    Microsoft Dynamics AX 2009 Programming: Getting Started


    A new book on Microsoft Dynamics AX 2009 development has recently been published by Packt Publishing. The book is aimed at developers new to Dynamics AX, and offers what I believe is both a detailed and pragmatic approach by focusing on the most important aspect and providing tons of in-depth step-by-step examples. Naturally, you can debate what areas are the most important, which in this case was decided by the book's author Erlend Dalen. By looking at the book's table of content, I believe he did an excellent job. Once I receive my copy of the book I'll post a more detailed review.

    From the publisher's description:

    What you will learn from this book

    • Get to grips with the AX Development environment
    • Understand the basics of the  X++ language
    • Reduce the time spent on coding by storing and relating data
    • Create Reporting Services reports in Visual Studio using the new Reporting Service extensions
    • Optimize data retrieval to ensure each transfer contains only the data necessary for the further operations
    • Manipulate data in X++
    • Effectively handle transaction scope by using different operators
    • Develop a .Net class in Visual Studio and then use it in AX
    • Build rich web portals with Enterprise Portal and ASP.NET
    • Optimize application performance and extensibility
    • Create services and expose them to external applications
    • Build a new module in AX

    If you want a free sample of one of the book's chapters, you can download the chapter "Searching for Data".

Page 16 of 19 (187 items) «1415161718»

mfp's two cents

...on Dynamics AX Development!