NAV/BC Version Numbers

Many others have posted this information before. I’m just putting this on my own blog because I have noticed a decrease in the number of ‘old’ blogs out there and this is getting harder to find. I’m just securing the information so that I know I’ll have it for as long as I keep my blog up.

When I started as a Navision developer in March of 2000, version 2.5 had just come out. Most of the clients that I worked for were on 2.01. The version that is current today (v21 for the 2022 Wave 2 release, and v22 is just a couple of months away) directly derives from that version back in early 2000. There are earlier versions than that, and you can search for the history yourself, but I have never encountered anything older than 2.01. I just wanted to have a handy list as a quick reference.

Here They Are

  • Navision in various incarnations (Financials, Attain, Microsoft Business Solutions) 1, 1.1, 1.2, 1.3, 2, 2.01, 2.5, 2.6 (also versions with manufacturing and another with Advanced Distribution, as well as specialty versions for the first NAS 2.65 a, b, c, d, and e), 3.00, 3.01, 3.10, 3.60, 3.70, 4.0, 4.0 SP1-SP2-SP3, 5.0
  • Dynamics NAV 2009 is version 6 – also had SP1 and then R2
  • Dynamics NAV 2013 is number 7 – also had R2
  • Then there were NAV 2015 (8), 2016 (9), 2017 (10), and 2018 (11)
  • Version 12 was the first BC version, AKA Business Central 2018. For a while there (at least through BC14) was a bit of a split personality with the splash screen saying “Microsoft Dynamics NAV Connected to Dynamics 365 Business Central”, a very catchy and easy-to-remember 24-syllable name
  • From then on there is a release every 6 months:
    • 13 – October 2018
    • 14 – April 2019 (this was the last version with C/SIDE)
    • 15 – BC 2019 wave 2
    • 16 – BC 2020 wave 1
    • 17 – BC 2020 wave 2
    • 18 – BC 2021 wave 1
    • 19 – BC 2021 wave 2
    • 20 – BC 2022 wave 1
    • 21 – BC 2022 wave 2
    • and so on and so forth

update 2023-02-14: added some missing versions

Translations for Business Central Apps

My struggle to get the new translation files right has been real and too long to recount on this blog. When I finally got it right, it felt like it was more of a coincidence than actual skill to finally get it done.

It started with the app submission checklist, where one of the requirements is to “include all translations of countries your extension is supporting”. The app that I was working on was targeted for the US market, so all I needed was a translation file for ‘en-US’. The page on docs that explains translations explained what I needed to do. Or did it?

Turning on the translation feature in the app.json file and replacing all ML captions and such was easy enough. The trouble begins when you run into the details.

As soon as you rebuild the app, VSCode generated the default translation file in a new folder called ‘Translations’, and the translation file will be called “<YourAppname>.g.xlf”. Because the development language is ‘en-US’, this generated translation file is also specified for the ‘en-US’ language.

The translation page on Docs specifies that you need to copy the generated file “to avoid that the file is overwritten next time the extension is built”. Each time that you build the app it will re-create the generated xlf file. What that means is that you need to make a copy of the translation file and use the copy to do your actual translation work.

So I did make that copy, and because I was working on a US only app, I felt I was done with my translation. I had the generated file in my workspace, I had a copy of it for the ‘en-US’ language, I thought I was good to go. Alas, the app submission failed because they could not find any translation file in my app. Something was missing from my translation file.

The generated file only has nodes for “source”, which comes from all of your text strings like labels and captions and comments and such. The translation itself is in a node that is NOT included in the generated xlf file, you have to create that. The name of this node is “target”, and this is where the actual translation goes for each source element.

So, I copied and pasted all of the source nodes, made target nodes out of them, and by this time I had a direct line to the validation person at Microsoft, who was willing to hop on a Skype call and look at my workspace. He was also surprised to see that my workspace DID have the translation file, while the app file that I sent to him did not. As it turns out, the target node needs to have an attribute called “state” with a value “translated”.

In order to get the translation file in its proper state, you should use the proper tool, and I found that the Microsoft Multilingual app toolkit editor is the easiest one to work with. It puts the right elements into the xlf file, and when I used that tool, my app file was finally accepted.

Install from .vsix

This is a quick blog about installing the AL language for Visual Studio Code from a .vsix file.

When you create a developer preview Azure VM for AL development, you get a landing page to access this VM. The script that creates this VM will put all the components on the VM that you need to do your development, including the correct version of the AL Language extension for VS Code.

If you want to do your development locally, you will need to put the right version of the AL Language extension on your local installation of VS Code. Lucky for you, there is a link on the landing page for your VM that will download the installation package into your downloads folder. The file has the extension .vsix, which is what VS Code needs.

All you need to do is press Ctrl+Shift+P and type ‘vsix’ in the command palette, and VS Code will suggest ‘Extensions: Install from vsix…’. When you select this, you need to browse to the file, and hit the ‘Install’ button. If you already have another version of the AL Language installed, you’ll need to disable that, so that there is no confusion about which one VSCode uses.

Announcing NAV 2018

Real quick one today – James Phillips announced General Availability of Microsoft Dynamics NAV 2018.

Marko announced it on TwItter:

Which was retweeted by just about everyone I know. Promise made at the closing keynote at Directions in Orlando is hereby delivered!

Can’t wait to see when they announce “Tenerife”.

NAV Techdays 2017 Recap

My favorite week of the year has just ended. I’m in the high speed train from Antwerpen back to Amsterdam, which is over just like that so I don’t have much time to make this anything elaborate.

As per usual, the organization was superb. The venue is fantastic, with a great expo area, lots of good food and drink choices, and the seats in the great rooms are just about the most comfortable seats you can imagine. The Kinepolis is a movie theater that you can also rent for events. I think I speak for everyone when I say this is one of the most important features, and I hope we will never have to move to a different location.

My week started with a full day pre-conference workshop about automated testing in NAV. This workshop was hosted by none other than Luc van Vugt, who, as per usual, delivered a solid day of learning. I had misread the workshop description and the correspondence that we had prior to the workshop, so I did not get everything out of it that I could have, but Luc was so kind to offer assistance to me so that I could do the exercises at home. Any time you have an opportunity to train under Luc, you should take it.

My company was a sponsor, so we had a booth to staff. It was a pleasure to be there and talk to anyone who had any questions about what we can offer.

As per usual, the two conference days were stuffed with 90 minute deep-dive sessions on any topic you can think of. My favorite ones were Waldo’s “Rock ‘n Roll with VS Code”Anders and Nikola’s “Creating great APIs”, and the Docker session by Freddy, Tobias and Jakub. Fortunately for you, you can watch all of the sessions on YouTube, Luc had all of them uploaded within a week of the conference.

I can’t say enough about this conference. For any technical resource in the NAV channel (and I include Dynamics 365 for Finance and Operations in that category), NAV Techdays is a must to attend, every single year. This is the second time that I’ve gone, and I am still kicking myself for not going the first few years. If I can help it, I will not make that mistake again.

See you next year in Antwerpen!

Directions 2017 EMEA Recap

After a supremely busy week, with lots of last minute session and workshop work, I’m getting ready to go sightseeing in Madrid with my wife and some dear friends. This week has been frustrating, as well as satisfying, as well as educational, although not as educational as I would have wanted because I was too busy doing sessions and workshops to have any time to attend any myself.

One of the key takeaways is that Microsoft is going to release NAV 2018 in December this year, so 4-5 months ahead of the spring release of “Tenerife”. The whole white label thing seems to be gone altogether, so partners can continue to use the Microsoft name in their marketing for their Dynamice 365 products. Still, there is some need for clarity about licensing, and about the long term future.

What everybody needs to acknowledge is that we now live in a world that is being disrupted continuously. Today, Microsoft is heavily investing in their current roadmap, one that they feel very strongly will succeed in the long run. You must understand that this world is moving at the speed of light, and if something happens to our ecosystem, Microsoft WILL react. When they do, they will focus on what they feel is their best chance to survive in this changed world, so it is up to US to make that happen.

This slide was shown at one of the presentations, and it shows where Dynamics 365 “Tenerife” fits into our world. As you can see, it is just one of many boxes. If the surrounding boxes change, there may be a completely different role for “Tenerife”. It might very well happen that the market shifts in such a way that there won’t be a need for it at all. Given everything that I’ve seen this week, I think the “Tenerife” story is awesome, and we are going to absolutely crush it in terms of features and capabilities. What I don’t know is whether we can grow this cloud business enough to remain strong over the long term. The key though, is to fully embrace the entire picture, not just the ‘NAV’ part of it. The days of just ‘NAV’ are over, and they’re not coming back.

If anything, what I get out of this week is that we all must play a crucial part in the success of our entire market. WE the partner channel WITH Microsoft, NOT Microsoft alone, will determine the success of this market. If you want to be a part of this ecosystem, you better adapt and embrace what is here to stay. Fighting it is a losing cause, and you will be left behind.

I say we take a deep breath, a chill pill, we take a good look at what we have to do, and we roll up our sleeves and make it happen.

Directions NA 2017 Recap

It’s been quite a week at Directions in Orlando. I’ve written about the confusion in the halls of the JW Marriott Grande Lakes resort, and I wanted to follow up about the closing keynote, and share an article by Microsoft’s General Manager for Business Apps & Strategy.

First the closing keynote, which was a very impressive thing to behold. This week has given me even more respect for Marko Perisic than I already had, because of the way that he owned what he said during the opening keynote, the way he listened to the event attendees during a few Q&A sessions, and how he has taken responsibility to do something with the feedback that he’s received this week. I already knew how much he cares and how much his team cares. Over the past decade I’ve gotten to know many of them quite closely, and they are really a great group of people that have their hearts in the right place. We are in good hands with them.

So, there are 4 items on the todo list:

  1. The ‘white label thing’ is not going to work. We are Microsoft partners, and we need the Microsoft brand.
    • I think the white label thing got taken out of context a little bit. I know someone said “once you change 1 line of code you own the product” but of course it’s more complex than that.
    • The point is that this is a Microsoft product, and we create things to extend it. We add to it, but it is still a Microsoft ecosystem, and we need to be able to leverage that
  2. Delaying the release until spring is creating confusion, and the delay in decision is going to cost many partners a LOT of money. Marko has committed to see if he can fix that
  3. Non-NAV Partners have nothing to sell at the moment. Microsoft needs to be more clear about how non-NAV partners can move into Dynamics 365
  4. Microsoft needs to be crystal clear toward the user group, and there is a firm commitment to be more involved with the user groups

Now toward the end, Marko shared a picture of a word cloud. This was the result of an internal survey, where everyone in the NAV team expressed their feelings toward the product and the greater community. I don’t know about you, but this gets me going every time. If I may speak for myself: the feeling is mutual.

One other thing that was posted a couple of days after Directions was this:

I think that the whole “NAV is dead” thing was totally misunderstood. Maybe someone was talking about the name NAV, but I really don’t think it actually is dead, or even that there are plans to kill it. I do think Microsoft at the corporate level doesn’t always have a clue (which is a polite way of saying that it seems like sometimes they have no clue whatsoever), and I also think that one way or another there is going to be just one “ERP” in Dynamics 365.

Personally I think that the NAV flavor has a really good chance of being that one flavor. For sure we are NOT dead, and there is a LOT of really good and exciting stuff ahead of us.

What’s Going On Out There?

In case you missed it, there were some unexpected announcement this week at Directions North America in Orlando, and as a result there’s some growing trepidation among my people of the NAV partner channel.

Over the past few years, Directions North America has become the time when Microsoft announces the new version of Dynamics NAV. All year long, the partner channel goes out and tries to time sales around this time, and they make promises like “just wait for Directions, the new version will come out, and we can get your project started right away”. Usually, partners go to the conference, attend all the sessions they can catch, and on their way back home, they put in their license orders.

This year, however, the announcement was that there would be NO new version right at Directions. Microsoft is working on the next greatest cloud product, and they have not yet decided what to call it, how licensing will work. We are told that the code is ready to go, but they’re not yet ready to pull the trigger, mostly because of marketing reasons. Since Microsoft wants to go big bang with this new product (identical “full NAV” on premise as well as in the cloud).

This announcement was made by Marko Perisic during the opening keynote, and that afternoon there was a Q&A session that got quite heated. I was not present at the first one, but because it was so “popular” they decided to do a repeat, and of course I did go to the repeat.

At the same time, some event was taking place with some big shots from Microsoft and some inner circle partners, where someone said that someone else high up in Microsoft said that “NAV is dead”. When I heard this, I was immediately skeptical about the accuracy of the quote, and even if it was accurate, that it was probably (likely) taken out of context.

I listened to Marko do some damage control, and to a number of people put forward their points of view, which were made with varying degrees of validity. My takeaways of this session were these:

  • In My Humble Opinion – Marko made a big mistake by using the product codename in the official announcement. Granted, it was in quotation marks, but still, that was not a good thing. Now we have ‘NAV’, and we have “Tenerife” and we also have this unknown product name. Lots of lobbying by the way for ‘Dynamics 365 Navision’ which I actually like, but is probably too retro.
  • No new NAV version is a BAD BAD BAD thing. Postponing the release until spring 2018 is an even worse thing. Many people have been postponing sales for the new version, and not having this new product will defer revenue until spring of next year, and that is going to cost a LOT of people a LOT of money.
  • What I thought was an excellent suggestion was for Microsoft to release the product as it is today (after all, they DID say the code was ready to go), only for on premise, and use current licensing. That way we can start implementing the new product, and we can just call it NAV 2018 as everyone was expecting anyway
  • This rumor that “NAV is dead” must be dispelled at once. Nuff said.

This Q&A session was brutal, there was a LOT of anger in the room. But one thing that I also took away from that session is that we are SUPER lucky to have someone like Marko at the helm of this great team at Microsoft. I observed this guy talk to everybody at Directions, and he always had a smile while he was being chewed out. He’s a very direct person (which I actually appreciate a lot) and that can sometimes be misunderstood. I’m in a fortunate position to be one of the MVP’s, and we had a private meeting with Marko this evening. Because of NDA I can’t share what we discussed, but I can assure you that this guy cares deeply for this community of ours. I for one have gained a TON of respect for how he stood up and listened to everyone that wanted to talk to him. He has heard everyone, and has taken everything to heart.

It’s still the middle of the conference. I have lots of session/workshop stuff to work on, so I gotta get going. Can’t wait for the closing keynote.

Extensions V1 vs V2

You might have heard people talk about “Extensions v2”, and maybe that doesn’t make a whole lot of sense. Let me take a few minutes and try to explain the concept to you.

Back in 2015, Microsoft announced the concept of extensions to us, in this blog post. I remember reading this article, and being thoroughly confused. At the time I was not in a technical role, and I had let my technical knowledge slip for just a minute it seems.

Extensions v1

For extensions v1, development is done in good old C/SIDE. There are severe limitations as to what you are allowed to do. For instance, you cannot add values to option strings in table fields, and you cannot add code to actions on pages. I won’t get into the details of those limitations, but you must be aware of what you can and cannot do for extensions, because in C/SIDE you can do a LOT more than what you are allowed to do.

The extension itself is compiled in a so-called .NAVX file, also know as a NAV App file. To get to this package file, you must use PowerShell Cmdlets to export the original and modified objects, calculate the delta files, and then build the .NAVX file. To deploy this .NAVX file, you then must use another set of PowerShell Cmdlets.

Especially the development part can be cumbersome. There are many things you are not allowed to do, and as you build the .NAVX file, the system will yell at you when you did something wrong. There are many moving parts, and it takes a lot of discipline to get it right

Extensions v2

For extensions v2, development is done in Visual Studio Code (also known as VSCode), using the AL Language extension. Since you are no longer working in C/SIDE, only the allowable things are allowed. You simply cannot do anything that the tool is not capable of doing. You no longer have to export original objects and compare them to modified objects. Essentially, you are programming the delta files directly in VSCode.

Deploying the solution works simply by building the project from VSCode. You hit F5 and VSCode will build the package and deploys it to the service tier that you specify in the launch file. Deploying the app to a test system still happens with PowerShell Cmdlets.

Hopefully this clears it up a little bit. Once you understand the differences, it’s not so intimidating any longer.

Registered for NAV Techdays 2017

It’s that time of the year. The official announcement came in on Twitter that registration is open for NAV Techdays 2017, which is again held in Antwerp of course. The official two day conference is 16 and 17 November, but I consider the pre-conference workshops to be part of the event, so a full 4 days of deep technical knowledge sharing.

The session schedule has not been published, but we do know the pre-conference content, go take a look at the Sessions page to check out what is available to you. The familiar sessions will cover PowerShell by Waldo, JavaScript by Vjeko, automated testing by Luc van Vugt, SQL Server performance by Jörg, and of course the 2 day design patterns class by Mark. The new topics include how to SaaSify your software architecture, how to use Visual Studio Code (it is very important to learn about this one) and how to develop extensions with it by Arend-Jan. Another exciting one is the SCM workshop by Sören, he will show you how to make it work directly in VSCode.

Only a few regular sessions have been announced (some fantastic content by our friends at Microsoft), but I have a feeling that we will see a super deep dive into all things related to Dynamics 365. I cannot wait to go to Antwerp, and I hope to see you there.