mfp's two cents

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

    It has landed!


    Just now I've held my first sample of the Inside Dynamics AX 4.0 book in my own hands. Before the proud owner walked away with it again, I had a chance to photo the beauty!

    If you want a copy for yourself, it is now available on Amazon.

    If you already own a copy, make sure to review it on Amazon. I'm eager to hear what you think!




  • mfp's two cents

    An amazing journey!


    This week I'm visiting IDC - Microsoft's India Development Center located in Hyderabad - to conduct training on Dynamics AX development. Sitting on the back seat of a cab zig-zagging through the busy traffic in downtown Hyderabad I can't help thinking back on my very first Axapta (That was the product name back then) presentation. I did this presenation at DTB in London 1999, and it attracted 3 curious people wanting to learn about the intricacies of MorphX and X++. Now, a few years and thousands of miles later, I'm covering more-or-less the same material for a room packed with eager developers in India.

    Traveling so far, and meeting with so many talented people, helped me understand something the many success-story memos and status reports couldn't. I'm left humble and deeply touched. Dynamics AX is on an amazing journey. And it is just getting started... 

  • mfp's two cents

    Writing Secure X++ Code


    Last week a document on security considerations for Dynamics AX development was published.This 40 page document is a must-read for every X++ developer.

    Topics covered:

    • How to use dangerous APIs in a safe manner
    • Code Access Security in X++
    • Data Authorization
    • Credentials and Cryptography
    • Server-side batch processing
    • New best practice rules
      (Those prefixed with "TwC" - you might already have seen them)

    The document is available here:

  • mfp's two cents

    Setting up Visual Source Safe and Dynamics AX 4.0


    Yurii Rasskazov has written a great blog on his experience setting up VSS with Dynamics AX. Here it is:

    For more information on the version control system in Dynamics AX see the topics in the Microsoft Dynamics AX SDK under Microsoft Dynamics AX Programming Environment / MorphX Development Tools / Version Control System.

  • mfp's two cents

    I want developer documentation!


    The solution is here!

    The developer documentation for Dynamics AX has moved to a continuing publishing model. This means more and more documentation topics will be available as they are written, and not as previously only when a new version is released.

    However, despite good intentions, the developer documentation released with Dynamics AX currently primarily contains the boiler-plate: "At the time of publication, no information was available for this topic." This even happens for topics that were documented in previous versions.

    The documentation teams at Microsoft have work hard on verifying, proof reading and moving topics into the Html help. Only topics they have signed off are available in the Dynamics AX 4.0 RTM.

    If you, like me, prefer less-accurate information to no-information, the solution is here.

    Attached is an xpo-file, that when imported, will tweak the help system's behavior: If a help topic actually is available in the Html Help it will be displayed, just like the normal behavior. However, if a topic in Html Help just contains the boiler-plate message, then the legacy help system will take over, and display the topic from the legacy system.

    This provides three benefits:

    • Even when no help is in the legacy help system, auto-generated help will be displayed, including quick access to Application Hierarchy Tree and Cross-reference information.
    • This unlocks a lot of new help topics, that was written by developers, but hasn't yet been moved into Html Help.
    • When new topics are published through the continuing publishing model, they take precedence over legacy topics.

    The downsides are:

    • The help topics you see in the legacy help system have not been scrubbed, and thus the quality may vary.
    • The help system is slowed down a little bit, as the Html Help topic must be examined before displaying any help.
    • When the two help systems will live side-by-side, the user experience leaves some to desire. For example, the COM class's documentation shows up in Html Help, whereas the new method on the COM class is displayed in the legacy help system.
    • Links from Html Help to the legacy help is not supported. (The other direction is).

    [Update: The attached solution now also supports the 4.0 SP1 help]
    [Update2: The attached solution now also supports incorrectly mapped topics ]

    This post is provided "AS-IS" with no warranties, and confers no rights.

  • mfp's two cents

    Cryptography API in X++


    In version 3.0 the class TextBuffer had two methods: Encrypt and Decrypt. For version 4.0 the Encrypt method has been removed, and the Decrypt method renamed to DecryptOld.

    The change happened for security reasons.

    If you require to encrypt and decrypt strings in Dynamics AX 4.0, you can use the functionality provided in the .Net System.Security.Cryptography namespace.

    By doing so, you should be aware of the dangers, including:

    • A key is required to do encryption and decryption. Your encrypted data is never more secure than the key - so avoid storing the key (including hard coding it in X++) instead prompt the user for the key.
    • Use the Encryption algorithm as it is intended. Do not double-encrypt, it may make it easier to break the code.

    To help you get going, I've created an X++ Cryptography class. It uses the implementation of the encryption algorithm Rijndael from .Net. The class is attached to this thread.

    Here is an example on how to use it:

    static void main(Args _args)
        Dialog dialog = new Dialog("Cryptography Demo");
        DialogField dfText = dialog.addField(typeid(description), "Text to encrypt");
        DialogField dfKey  = dialog.addField(typeid(description), "Key to encrypt with");
        str encryptedString;
        str decryptedString;    
        if (
            encryptedString = Cryptography::Encrypt(dfText.value(), dfKey.value());
            decryptedString = Cryptography::Decrypt(encryptedString, dfKey.value());        
            info(strfmt("Encrypted string: %1", encryptedString));
            info(strfmt("Decrypted string: %1", decryptedString));

    A big thank you to Ivan Medvedev for providing the C# implementation that I rewrote to X++. You can find the original article here - including more security considerations: 

    This posting is provided "AS IS" with no warranties, and confers no rights.

  • mfp's two cents

    Interview on upcoming Dynamics AX book


    Yesterday I was interviewed by Harish Mohanbabu on the upcoming development book on Dynamics AX.

    Today the interview was published at:



  • mfp's two cents

    Dynamics AX RTM


    Today we reached the RTM milestone for Dynamics AX 4.0. This has been a highly anticipated milestone both for partners and customers and Microsoft team members working on the product. Making this happen is truly a great achievement!

    For me, it has been a long and challenging journey, which just makes reaching the destination so much nicer. I'm proud to say, that I worked with the best people in the industry!

    I hope everyone using this product will appreciate all the hard work put into this product by talented people all over the globe.


  • mfp's two cents

    The most dangerous on the net is..... Yourself!


    Today, I did a 90 minutes presentation on internet safety in a public school in Hillerød, Denmark, as part of the Net Sikker Nu 2006 - campaign. There were approx 100 attendants from 5th and 6th grade.

    The main message sent was, that the most dangerous on the net is..... Yourself! The following topics were covered:

    • Chatting
    • SMS
    • Web etiquette
    • Happy slapping
    • Passwords
    • Privacy
    • Copyrights
    • Blogging

    The kids loved the whole séance - especially the video where Klaus is visited by his internet friends. If you haven't seen it, it is about time. Here it is:

    Here is the link to the campaign site: (It is in Danish)


  • mfp's two cents

    PDC 2005 at a glance


    I’ve been asked loads of questions about what was happening on PDC 2005 – so I decided to write this post – hoping to catch the excitement and atmosphere from Los Angeles.

    Billg keynote

    Bill talks about Vista and Office 12. He made fun of the power supply outage experienced Monday on PDC. MS was supposed to be as reliable as the power supply (not the other way around).
    See the video

    Windows Vista

    Connected, Clarity, and Confidence. Chris Capossela demonstrates a stunning UI that literally makes you want to lick your keyboard. It will be released end-of-year 2006. See the video
    WARNING: Credit cards are not accepted – you have to wait!

    Office 12

    Lots of work put into making common tasks simple and intuitive to find. Release with Vista. See the video

    Jim Allchin - "The Next Step for the Windows Platform"

    He adds memory to Windows using an USB memory stick… Quite impressive!

    WinFX (aka. Avalon and Windows Presentation Foundation)

    A new thing to me, is that WinFX is backported and works on XP! Tons of work has been put into making this stunning framework simple to use for both developers and designers. A strong point is the designers can now directly work with the design through XAML documents. Currently they have to work with the developers to get the design as the want. Also a suite of tools named: Expression is available for designers. This is a new market for MS.

    Codename MAX

    Take WinFX for a spin on XP today with this sample image sharing application. It does require a powerful graphics card.


    LINQ stands for Language INtegrated Query and in a nutshell, it makes query and set operations, like SQL statements first class citizens in .NET languages like C# and VB. If Anders Hejlsberg ever earned his immortality – this is it. Currently available for .Net 2.0 – but ships with 3.0 in Orcas timeframe. Learn more

    Windows Workflow Foundation (aka. Indigo)

    Don Box did a few stand-up demos with great applauses – not just because he is fun, but mostly for the content. He showed WWF in Visual Studio and was able to set a breakpoint in the workflow diagram. Run the workflow, and stop at the breakpoint, and continue down in the code. All he used was a code monkey named "Dharma" J. Also, Mike Ehrenberg demoed WWF and Axapta 4.0 using WebServices, about 120 attended. The demo was created by Josh Honeyman. Quite cool – and it earned us a table at "Ask the experts". Here we answered all (both) the questions in about ½ hour.


    Windows Relational File System. This has been postponed in order to get it absolutely right. The demo showed a SQL on top of NTFS with WinFS running as a service. Using explorer to navigate to \\myComputer would go through WinFS, whereas c:\ would go through NTFS (as today). It opens up for tons of great functionality, including transactional file operations. It will not ship with Vista. Very powerful when combined with Linq.

    IE 7.0
    Tab browsing, RSS feed support. More secure and able to detect spyware/adware through a online community feedback system – like we know it from MS Spyware Removal tool.

    WinForms 2.0

    For me this was fun – they have finally seen the light. I bet one of them has installed Axapta. You can now see a tree view of the controls on the forms (Document outline – is what they call it). And they added autolayout based on localization of UI controls. Our IntelliMorph is still way superior – but they are getting there.

    Visual Studio 2005 (aka. Whidbey)

    There weren’t any sessions without VS – and I guess most of you already have taken it for a spin. If not you should consider it.

    For more details go to

Page 19 of 19 (190 items) «1516171819

mfp's two cents

...on Dynamics AX Development!