TicTacToe challenge winner announcement

  • Reading time:2 mins read

In my last post I announced a challenge: the first pull request on my TicTacToe for AL GitHub repository that contains a properly written event handler with “AI” that either beats the human player or ends in a draw gets a special reward. Honestly, I didn’t expect to see any submissions there, because NAV community is not too GitHub savvy. I rarely get any hands up in the air when in my sessions or workshops I ask who uses GitHub. But, three forks arrived soon and one submission quickly followed. It provides a clean and working solution that properly applies the handler pattern and never loses a game.

And, the winner is: Bartel de Leeuw!

Continue ReadingTicTacToe challenge winner announcement

A couple of AL controladdin demos – Google Maps and Tic Tac Toe

  • Reading time:4 mins read

As a part of preparation for my last event of this year that concludes the conference season 2017 for me, I played around with the latest addition to the AL language stack for VS Code: control add-ins.

If you haven’t already tried it out, or heard about it, then you should get yourself a copy of NAV developer preview, and then visit the Control Add-In Object documentation for AL on MSDN to learn a little bit about how it works. The demo provided over there is, well, basic, to say the least, so I prepared two demos.

Continue ReadingA couple of AL controladdin demos – Google Maps and Tic Tac Toe

Trust me – it works! NAV TechDays 2017 Wrap-up

  • Reading time:5 mins read

Another NAV TechDays are behind us, and as always, this one was a blast, too. So many people, so much enthusiasm, such great energy and positive vibe, no wonder Luc fills up the conference to the last seat every year.

Last year it took me nearly a month and a half to find time to sort my materials and publish them on my blog, and I won’t let that happen again. So, while waiting for my flight back to Zagreb, I decided to be productive, rather than just get lost in something on my Kindle, so here it is.

I won’t be publishing the slide-deck directly, as Luc will soon publish both the slide deck, and the session recordings on Mibuso and YouTube, so you’ll be able to get your hands on that part. What I am publishing, though, should be quite enough for you to get your hands on my Azure Functions demos:

  • https://github.com/vjekob/TechDays2017 – repository containing the .NET bits for image manipulation demo I presented, together with the source code for the Azure Function that consumes it.
  • https://github.com/vjekob/TechDays2017AL – repository containing the AL app source code that “trust me, it works” on the latest Docker-based build of NAV 2018 “Tenerife”. This repo contains the FOB file of all the C/AL changes that were a part of my presentation.
Continue ReadingTrust me – it works! NAV TechDays 2017 Wrap-up

Invoking Azure Functions from AL recording available

  • Reading time:1 min read

The “Invoking Azure Functions from AL using Visual Studio Code” webinar is over, and it was a pleasure delivering it for you, folks. There were 350+ people registered for it, and over 200+ people attended it. With those kinds of stats, who wouldn’t want to deliver more of these?

So, I can promise to prepare a couple of more Azure Functions from AL seminars, covering different kinds of topics, including handling binary data, XML, advanced JSON, and similar. Stay tuned.

In the meanwhile, if you didn’t have a chance to watch the session today in prime time, you can access it on YouTube: https://www.youtube.com/watch?v=Wp13-nfVoEg&feature=youtu.be

Thanks to Mark and folks at NAV-Skills and Liberty Grove for making this possible.

Continue ReadingInvoking Azure Functions from AL recording available

Webinar: Invoking Azure Functions from AL in Visual Studio Code

  • Reading time:1 min read

Long time, no see, eh? Life and work sometimes kick in and that’s exactly what they did to me recently. I am not complaining, but I would have been happier, too, if I had been more active here.

Now that I am, in fact, here, let me announce the Invoking Azure Functions from AL in Visual Studio Code webinar that I will deliver next Tuesday, August 29, at 16:00, Central European Time.

This webinar, which is organized in cooperation with NAV-Skills, will cover the theory I scratched in my last blog post here, but will cover some more stuff. On top of a little more substance and structure than covered in my blog, it will also give you an opportunity to ask questions and make fun of me in front of an audience. Last opportunity for this before Directions US Smile

So, grab your seat by registering here. It’s free, but even if it wasn’t, you should still be there. Don’t let me find you absent, you are not excused! Smile

See you in the cloud!

Continue ReadingWebinar: Invoking Azure Functions from AL in Visual Studio Code

Invoking Azure Functions from AL

  • Reading time:5 mins read

One elegant way of replacing your .NET interoperability code with something else is by using Azure Functions. Sounds good in theory, but what does it take in practice? And what are Azure Functions, anyway?

Let me not take too much latitude, and let me just say that Azure Functions are a way of running simple pieces of code as a service that you can invoke like any other RESTful web services. And of course, they run in Azure. To learn more about them, follow this link: https://docs.microsoft.com/en-us/azure/azure-functions/functions-overview

Creating them is as simple, as invoking them, so let’s get started with an extremely simple demo that will illustrate how amazingly powerful they are, and why they are a perfect solution for replacing your .NET code with something better.

Continue ReadingInvoking Azure Functions from AL

State of .NET Affairs

  • Reading time:17 mins read

I said a word or two about progress last week. Apparently, VS Code is not the only place where we take a small step back to be able to make a huge leap forward; .NET might seem like another one.

You know it, right? You know that if you want to run your .NET code in D365 for Financials, you are out of luck, and you do know that this applies to as much to Microsoft .NET Framework out-of-the-box types as it does to your own, custom-built .NET assemblies. If you don’t know that yet, then let me bring you up to date: In your D365 apps built on Extensions “v2” technology, you won’t be able to use anything .NET; you simply won’t be able to compile AL code that includes a DotNet variable declaration.

This is neither fake news, nor is it news per se. It has been known at least since October last year when Microsoft first presented AL Language extension for VS Code during Directions US in Phoenix. Soon after the VS Code session there was a round table (in all honesty, I have never seen a table, let alone a round one, at any of round table sessions at any conference) on the topic of .NET future, and the mood was grim. At first everyone thought it was a bad joke, then all held hopes high that Microsoft is simply “feeling the pulse” to see how the channel would react to such a disturbing change. But soon it became obvious that .NET interoperability is on its way to be gently ushered out of the (relevant) technology stack of NAV and that we should start getting ready for the day when it’s not there anymore.

So, what is the current state of .NET in NAV, what is the future of it, and what can you do about it?

Let’s take them one by one.

Continue ReadingState of .NET Affairs

Is Visual Studio Code really an improvement

  • Reading time:8 mins read

Progress often doesn’t look like progress at all when it first arrives.

When on July 3, 1886, Daimler Benz presented his first car, it had a 0.75 horse-power engine that could reach a top speed of 16 km/h. It was able to cover 45 km on a single fuel tank, and it could only take two passengers. Compared to best horse-driven carriages of the day, especially taking the availability of stuff you could use as fuel, this was hardly a progress. Horse-driven carriages bested this car on all fronts, and by large margins.

Imagine what the world would look like today should Daimler Benz heeded the naysayers and mockers of his day, and they were not in short supply.

Continue ReadingIs Visual Studio Code really an improvement

More about ISEMPTY

  • Reading time:6 mins read

I had much second thought about whether I should even blog this one. You know, it so profoundly belongs in the Duh! category that I have actually created the Duh! category specifically for this post.

Now, fasten your seatbelt. I apologize for what you are about to see,  but apparently people do write code as the example below. And I sh*t you not, you can’t really make this crap up, but this is what people do:

IF NOT Cust.ISEMPTY THEN
  REPEAT
    DoSomethingStupid(Cust);
  UNTIL Cust.NEXT = 0;

Wat?

Continue ReadingMore about ISEMPTY

When you just must COUNT, no matter what

  • Reading time:5 mins read

I started with blogging about COUNT = 0 situation. Then I followed it with COUNT = 1. So, let’s do a COUNT = 2 today. No, no, I am just kidding, don’t worry 🙂 But I still have to do one more COUNT post, one that will cover all other COUNT situations.

Believe it or not, sometimes you really, honestly, do need to perform an actual COUNT. You just need to know exactly how many of rows there are. It may be 0, 1 or 75 or whatever, but you need to know exactly how many. These situations are few and far between, but every once in a long while this is what you need.

So, let’s give the COUNT function one last kick from another angle.

Continue ReadingWhen you just must COUNT, no matter what