NAVTechDays 2014 | How to Write Repeatable Software

Yesterday, on the first day of NAVTechDays the Partner Ready Software Team presented the latest and greatest on how we think you should write repeatable software.

The session was done by Soren Klemmensen, Gary Winter, Vjeko Babic and Marije Brummel (me).

I started of with a short introduction into te concept of Design Patterns and the history of our project.


After that Gary took over and presented part of the methodology. He talked about defining your agents, them as a class and add what they do as methods.

I hear you thinking, Dynamics NAV does not have class objects and methods. Well, we think it does. If you think of a table as a class, and everything you can do with the records in a table as a method, you can transfer some of the object oriented concepts to Dynamics NAV. This helps you get structure in your software making it easier to understand for everyone and maintain in the future.

The second subject would be something I like to refer to as natural language programming. This is a methodology of writing self explaining code. It is possible in NAV although there are some minor drawbacks that we get with the C/AL editor.

Watch my blog, I will explain Natural Language Programming soon.

Lastly Gary talked about implementing Facades. This is a concept where you separate the method implementation from the class. Again a concept we took from object oriented programming.

This can be done in Dynamics NAV as well, and I will hopefully blog about that soon as well.

Surrogate Keys

Then Soren took over and he talked about surrogate keys. To avoid this blog post getting too long, I will refer to the pattern he published about it so you can read about it yourself. It is a very neat concept of creating repeatable components in Dynamics NAV with a low footprint in the application.

Out of the Box

After Soren presented, I wanted to share two concepts that were introduced in NAV2015 but not emphasised by Microsoft in the way I thought they could be used. Also, these two deserve seperate blog post.

Shipping Delta’s

The new delta object that is introduced in NAV2015 is an excelent candidate to ship software instead of using FOB files. There are some drawbacks that I will blog about later.


Conversion inside your FOB

If you ship software to customers in a FOB, sometimes you need data conversion. Traditionally you would do that in a report or codeunit that you ship seperately. Now with the new upgrade codeunits you can also ship that and it will be automatically executed if you import the FOB. That opens a whole new world on how we ship software and makes our lives easier.

Again, a follow up blogpost is needed here.

Design Patterns in .NET

Vjeko showed us how you can use design patterns in .NET in correlation with Dynamics NAV. He explained how to implement the service locator pattern.


Lastly we presented a “roadmap”. This we got into the product and things we would like to get.



We focussed on a vision on how to get TFS integration into the product.

Our suggestion is to implement that into the client via PowerShell.


That’s it

Hopefully the session video will be available soon.

You can download the presentation here.


Leave a Comment

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.