NAV 2018 – installation from DVD

The beginning of a beautiful friendship.

Just like many of us, I was eager to get my hands on a fresh copy of NAV 2018, the release that almost never happened. I woke up early on last Friday and there it was already on PartnerSource! A good old installation DVD available for download.

I wanted to get a full on-premise experience on my local machine, because all of the customers I work with in my region are using on-premise instances. NAV on Docker is a tremendous help for development, but I’m also happen to be the lucky one who will be installing NAV on end-user servers as well.

Installation

The installation process itself is almost the same as in previous versions, it went well. Windows and Web client became operational without additional hassle. There is a new option for “Modern Development Environment” and a new port to set on firewalls.

nav2018_installer

Be aware: by selecting Modern Dev. Env. option the AL extension won’t be installed into VS Code as you would expect! It just copies an “ALLanguage.vsix” file to the Program Files!

Meeting VS Code and AL Language

I took a quick look on October Preview, so I already had VS Code and AL plugin installed. Although my naive self expected that all would work as seamlessly as in previews, after having been worked with NAV for almost 10 years, next thought of mine was: “brace yourself, it was never so easy…”.

Below are issues popped up while I was trying to re-create the Hello World extension.

1. Cannot create AL projects outside of \Documents folder.

Just hit AL:Go! and let the rock’n’roll begin, right? Well, don’t be surprised if specifying a custom project location might give you back an error.

vscode_path_error

That one is caused by an underlying issue in VS Code’s base framework, Electron. Not a big deal and will be fixed soon, but be prepared. Alternatively, you can create a project under \Documents and move it to a preferred location afterwards. It will continue to work just fine.

2. AL Language plugin won’t be installed automatically.

Provided you already have a previous plugin version installed like I had, you’ll get interesting error messages in VS Code. A specific AL plugin version must be installed manually that is available on the DVD.
Update: more details have been written about this since my first try.

3. Web Client Base Url (PublicWebBaseUrl) property must be set.

You cannot start debugging in VS Code until “Web Client Base URL” is empty in the corresponding Service Tier configuration. In my case, it was empty by default.
Update: more details have been written about this since my first try.

Let’s write some code

After figuring out above issues, I was finally able to perform some actual coding and play around with this ExtensionV2 thingy. The code-writing part is awesome, AL with VS Code has got a great potential for the future.

There are many features I already like, the most notable for me is that parameter types are also visible on autocomplete. No more guessing so I’ll have to look for another memory game… 🙂

procedure_autocomplete

New debugger

One of the most exciting features of NAV 2018 is the new debugger. What VS Code has got is an actually usable debugger that won’t drive you crazy with modal windows. The days of choosing between checking variable list or examining source code are finally over. 😀

However, hitting F5 for the first time had a rather unpleasant result.

nav2018bsdn

Blue Screen of Sorry. That didn’t work indeed. Event Log reveals a bit more details about the nature of this mystery.

Server instance: DynamicsNAV110
Tenant ID:
User: —
Type: System.InvalidOperationException
Message: Dynamic operations can only be performed in homogenous AppDomain.
StackTrace:
at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args)
at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
at Microsoft.Dynamics.Nav.Service.Dev.Web.Controllers
.DebuggerHub
.OnDebuggeeConnected(Object sender, DebugSessionStartEventArgs eventArgs)
…..

Looks like it was caused by NetFx40_LegacySecurityPolicy setting that is on by default.  Removing it from “Prod.Client.WebCoreApp.exe.config” and Microsoft.Dynamics.Nav.Server.exe.config” files solved the issue.
For some reason, the debugger session needed that to be turned off. This might be happening only on my machine, I’m not sure. I have Windows 10 with many Navision versions installed ranging from 4.0 SP3 to NAV 2018.

Hitting F5 for the second time worked just fine.

Conclusion

This shows how valuable the NAV on Docker project is. My next installation is going to start with “New-NavContainer”, that’s for sure. 😉

It was a worthwhile experience though, not as difficult as it may seem. Took 2-3 hours of my time to solve upcoming issues and get the system up and running. The new development tools and methodology place AL language next to any other modern languages. Now, only developers need to catch up.

 

Leave a Reply