Directions USA 2010 | Architecture in Transition

I just got out of a really interesting session with Lars Hammer and Thomas Hejlsberg. For those of you who are not familiar with these names: they are the architects of Dynamics NAV.

The cool thing about their job is they and their team get to invent cool stuff that might eventually be in the product one day. And that is what this session was all about.

So the things I write in this post are not features in NAV 7 or 8, they are ideas of things that might possibly end up in the product at some form.

I will highlight the three things that impressed me the most.


Now this product has been demonstrated before at Directions EMEA and I had the privilege of playing around with it.

DevBase is a prototype of a tool that might allow us in the future to save modifications between objects rather than the complete objects.

The way it works is that it computes the Delta between two objects knowing the metadata and syntax of Dynamics NAV.

This delta or modification can then be reapplied to another version of the object and automatically implemented without manually merging the objects.

The possibilities of this concept are amazing. Imagine an ISV like Agiles or Lanham provide you with a package of modifications rather than a fob. You would be able to implement this package into a database that already has been customized or has other ISV solutions in it.

This might be the answer to all the merging headaches we have.

And it gets even better! The idea is to deliver DevBase as an application written in C/AL so you can modify it yourself!

RTC Debugger

Next thing they showed was a prototype of a possible future debugger for the RTC. Now for me, right now I would go for ANY debugger rather then what we currently have: NOTHING.

Now this prototype has some interesting features. First is that they would like to allow us to change the value of variables during debugging. So for example you can change the value of an integer from 1 to 2 during the execution of the code.

The second thing is conditional breakpoints. This allows you to say: only break here if the value of this and that is such and so.

Lastly and most cool was reverse debugging. You can record a transaction and play it backwards or have a customer send you a debugging file to analyze.


Last but not least they showed an idea they are having, also very much prototype, about a new object type called a query. Basically it is structured in the same way as a report with nested dataitems but rather than issuing the SQL statements record by record and dataitem by dataitem it will do a join based on the DataItemLink.

How cool would that be!

But it gets better. You can manipulate the dataset that SQL server returns by C/AL code. You can add columns with variables, delete lines and even YIELD in new lines.


Microsoft allowed me to blog about this session if I promised explicitly that these are PROTOTYPES of ideas that maybe in some form might be in the product in some version, or maybe never be.

But my suggestion would be to reply to this blog entry massively to have them give these cool prototype features a chance of a long lifecycle!


Comment List
  • Hi Marc,

    This DevBase could be the solution to make erp (like NAV) possible in the (public) cloud!

    The only thing you need to keep private is the delta.

    Isn't this one of the goals as well (just guessing)?

    I'm wondering how DevBase stores the delta for lots of extra tables and fields in existing tables (like in an addon).

    By the way, since i've seen your movie last week: all the best! Now you're probably a changing dipers expert too.

    Regards, Stephan.

  • Great!

    Everything should (and could) be in NAV 7!

  • There have been a few 'wish-lists' around. I remember one started by Jorg Stryk in 2006, or 2007. It contains quite a few very good ideas, some of them seems not to be very hard to implement.

    Yet as far as I know nothing from that lists, except Indexed Views (get rid of SIFT tables - yes - it was sooo looong time ago) was implemented. All the power went into (pretty much useless in most areas in my personal opinion) RTC stuff.

    I wouldn't be soo excited about Microsoft listening to their partners..

  • Thanks for sharing it with us. I hope everything gets released at some point, and better sooner than latter!

    I'm waiting for the RTC Debugger prototype. Debugging any posting process is just desperating. Conditional breakpoints and change values while debbuging will be very helpful.

    About the DevBase... I don't know if it is really the answer to merging headaches or it will bring new ones. Two different modifications may be incompatibles because they are using same variables, or the second one may be deleting a line of code that the first one needs... I guess they have already had this into consideration!

  • The one that excites me most would be the query one. It kills me to run client monitor or a SQL trace and watch it do SELECT * for everything when all I need is one field. So much wasted processing.

  • Hi Marq,

    I follow your blog posts regularly and I like your tips and tricks and knowledge sharing about NAV.

    Here in this blog post I love having the idea of conditional breakpoints. So many times in the past I wished that NAV had conditional breakpoints and sometimes they can make life easier in debugging for sure.

    I also like the concept of DevBase. It is a pretty neat stuff to have in NAV which can automatically track the delta between the changes and you can apply those difference in changes conditionally (at least that is what it sounds like).

    Marq, Thanks for sharing these updates.