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.

NAV Techdays 2016 Recap

This past week was the NAV Techdays event in Antwerpen. If you don’t know what this is, head out to their website and read the ‘About’ section. This year’s edition was I think the 7th time, and it was the first time that there were more than 1,000 attendees! In my opinion, this event is BY FAR the best technical event for NAV, head and shoulders above any other event, not in the least because there are two days of pre-conference workshops.

Last year was the first time I had gone to NAV Techdays, and after the truly exhausting three days, I was utterly satisfied and I promised myself that I would do everything in my power to come back every year going forward.

My highlights:

  • Pre-conference workshops. I had signed up for Black Belt Powershell by Eric ‘Waldo’ Wauters, and for Deep Dive into Events/Extensions by Arend-Jan Kauffmann. Both days were very intense, there was a TON of new information for me, and I was utterly done at the end of both days. The knowledge that I have gotten out of these two workshops will help me stay relevant as a technical person in the NAV world. These two workshops alone were worth traveling to Europe for.
  • Extensions related sessions – I made it a point to attend as many sessions about extensions as possible, since I believe it is the most important technological development in our industry this year. Especially Gunnar’s session about migrating to Events and Waldo’s session about Extensions Best Practices were eye openers
  • PowerBI and NAV by Steven Renders was absolutely INCREDIBLE. The sheer amount of information that this guy put into his session was just unbelievable. I bet he could fill two days of proper training about all the things that he showed us. Well done Steven!

I would have liked to see the sessions about Office 365 and the design patterns session, but I can’t be in two places at the same time. Lucky for me (and everyone else) Luc records all of the sessions and puts them on YouTube. He even puts the videos in individual playlists per year, for instance you can see all videos for 2016 here.

NAV Techdays is my favorite event. The sessions, the pre-conference workshops, the super-comfortable venue, the amenities, the production, the expo area, meeting my kind of peeps in person. It feels like this is “my” event, and I hope to be able to go each and every year from here on out.

Update 11/20/2016: Slide decks available here

Update 11/23/2016: Added links to YouTube videos

The Skinny on Extensions

Earlier this month I wanted to write about what’s new in NAV 2017, and my fellow MVP and good friend Eric ‘Waldo’ Wauters beat me to it. So, my next plan was to write something comprehensive about extensions. I am signed up for a deep dive workshop next month, and I want to be well prepared. Again, as I am collecting information, this guy publishes a large post about extensions, and judging from the title it looks like it was the first of three posts. So…. instead of doing the work myself, I waited for him to post number three, and give you the links in here: Part 1, Part 2, and Part 3.

I could try and say something intelligent about these posts, but I’d make myself look foolish. After the workshop I’ll have plenty to share anyway. Enjoy 🙂

Extensions! Extensions! Extensions!

Just a quick post today about something that is probably the most important thing to learn as a NAV developer, which is Extensions.

I remember going to an event where Steve Ballmer did the keynote. It was a technical conference, and he started his talk by almost screaming “DEVELOPERS! DEVELOPERS! DEVELOPERS!”. It was meant to make the people in the audience, who were almost all developers, like the most important people on the face of the earth. He kept hammering on the point that developers were THE MOST IMPORTANT to Microsoft, and showed us all kinds of evidence that this was the case.

This past year or so has seen a big push toward this new thing in NAV development called ‘Extensions’. Rather than modifying the base code of the product, which is what most of the NAV partner channel is doing for their customers, extensions allows you to create custom functionality without actually touching the base code itself. Coming back from Directions this year, it has become clear that Microsoft is ALL IN on moving NAV development toward extensions. My fellow MVP and good friend Eric ‘Waldo’ Wauters wrote about extensions as well this week, so I won’t bother repeating that part.

What I want you to know about extensions is that as a technical NAV professional it is essential for you to learn about extensions. Your ability to keep your relevance in this industry will depend on whether you are able to effectively use extensions to develop a custom solution for NAV. Apps for Dynamics 365 are only possible with extensions, but it might even become necessary to use extensions for on prem implementations.

I’m signed up for a full day pre-conference workshop at NAV Techdays this year, which will hopefully give me the necessary skills to get that started for me. What are you planning?