What’s New in NAV 2016: Control Add-ins

  • Reading time:4 mins read

Well, control add-ins are not new in NAV 2016, they have been around for a long time now. But, they have been improved and this blog post is about these improvements.

Of course, the improvements are exclusively in the Web client framework, not the Windows client, and I am educated-guessing here that we won’t really see many improvements in the control add-in framework for Windows in the future. Why would we? All control add-ins should target all clients and use the Web framework, anyway so the case for Windows client is getting weaker and weaker.

Continue ReadingWhat’s New in NAV 2016: Control Add-ins

Capturing unhandled errors in JavaScript Control Add-ins

  • Reading time:3 mins read

Not that I am saying it’s a good thing, but trial and error is a fairly common approach to debugging in the NAV world. We’ve all done it. Heck, even with the comprehensive testability framework built in, we all still do it more often than we’re happy to admit while sober.

But the overlord of trial and error in NAV is development of control add-ins in JavaScript. JavaScript itself is making it difficult in the first place, and then integration with NAV makes it even harder.

There is one situation in particular that’s adding a cherry on top of all of problems, and it’s the creepy “A script error has occurred” error message. It’s the equivalent of the BSoD.

Continue ReadingCapturing unhandled errors in JavaScript Control Add-ins

Client Extensibility Demos

  • Reading time:2 mins read

On Monday, June 15th I have delivered another session in Microsoft’s Road to Repeatability series of online demos about technical NAV features, this time covering Client Extensibility. The session went through both the .NET and JavaScript aspects of client extensibility, and again – I promised to post all of the demos and content from the session on my blog.

So, here it is, given as-is, with no guarantees or strings attached, just the plain content for you to see if you can make any sense out of it.

Now my to-do list has grown quite big with the stuff that I want to blog, and it includes presenting and explaining most of the concepts I showed in my presentation. So, keep your fingers crossed that I find just enough time to blog about all those small things that have found their way into my presentation, but never into real blog posts that take them inside out and explain in-depth what they are and how really they work.

Of course, you are still free to use any of this in any real, or unreal life scenarios.

Continue ReadingClient Extensibility Demos

Control Add-ins and Version Compatibility–Update

  • Reading time:2 mins read

Yesterday I posted a quick tip, which quickly got some comments about it being wrong. Since I know people who commented were unlikely to say something incorrect, I went to check on, because I myself experienced difficulties that made me write that post.

So, I analyzed to see who’s right and who’s wrong, or better yet – to see why different people might get different results.

Here’s the results.

Continue ReadingControl Add-ins and Version Compatibility–Update

Control Add-ins and Version Compatibility

  • Reading time:1 min read

(Update, 20.4.2015: As it turns out – this post is not entirely accurate, as pointed out by Johannes Sebastian. Please read the next post to learn more about which parts are, and which aren’t correct.)

Control Add-ins written in C# are not cross-version compatible. You cannot use an assembly compiled for 2013 R2 with 2015 (or the opposite way around, or any other version combination for that matter) without recompiling it with correct extensibility framework assembly reference.

Control Add-ins written in JavaScript don’t have to be recompiled, are mostly interchangeable, and are (so far) guaranteed to be forward compatible. You can always use a version built for 2013 R2 in 2015. You can use a version built for 2015 in 2013 R2, but the opposite way around is only true if you don’t use any of the new JavaScript extensibility features not supported in earlier versions.

Continue ReadingControl Add-ins and Version Compatibility

Passing strongly typed data to a JavaScript control add-in

  • Reading time:3 mins read

Many cool things often go undocumented. I’ve just stumbled upon one of those, and it comes in handy to close this year of blogging.

Imagine this situation: you have a server-side .NET object, that you want to pass on to the client. With the .NET System.Windows.Forms-based objects, you have to make the object serializable, deploy the object to the client-side Add-in folder, and then set the RunOnClient property on the C/AL variable to Yes.

However, if the client is not .NET-based, if it is a cross-client JavaScript-based one. You may think that it’s not possible to pass the custom object on to JavaScript code. And you may be wrong.

Continue ReadingPassing strongly typed data to a JavaScript control add-in

Goodies from the Control Add-ins session at NAV TechDays 2014

  • Reading time:4 mins read

First of all, thank you all who attended my session today. It was a lot of people in the room, and with the competition from Microsoft talking about a very hot topic in the other, bigger room, I really wouldn’t expect to see all of you there. I hope you found the things you saw useful, and that you’ll take advantage of all the free stuff that I am posting today here on Vjeko.com.

Continue ReadingGoodies from the Control Add-ins session at NAV TechDays 2014

Adding a ControlAddInReady event to custom controls

  • Reading time:4 mins read

When interacting with custom controls on your pages from C/AL, you must be absolutely sure that the control has been instantiated. If it is not, you’ll get an error such as this:

image

The reason why this happens is that C/AL code gets to execute before the page has been rendered, and thus also before the custom controls have been instantiated.

Continue ReadingAdding a ControlAddInReady event to custom controls
Read more about the article Directions EMEA 2014 content
Poznan

Directions EMEA 2014 content

  • Reading time:2 mins read

One more great Directions EMEA event is over, and it was a great experience again. I am a bit sorry, though, that my main focus was delivering presentations, so I enjoyed myself less mingling around, meeting new folks and consuming content. But it was still a great event.

What I liked a lot is the audience participation and the interest – all sessions, at least those that I attended or delivered, were packed full. It was a real pleasure presenting and demoing tips and tricks in my “Spicing up your user interface” session, and ranting about barriers and gaps between consultants and developers in my “Breaking the barriers” session. Thank you all who attended and I hope it was worth your time.

Continue ReadingDirections EMEA 2014 content