C/AL
-
Statical Prism – a simple, but practical C/AL code analyzer
Yesterday, thanks to @sforkmann and his blog at navision-blog.de , I have learned of the existence of Statical Prism . I’ve given it a try today, and I am pretty happy – that was just the tool I needed. I won’t give a complete overview of it here, I’ll just explain that it’s a tool that reads your…
-
Detect file encoding in C/AL using .NET Interop
When importing files using XMLports, and especially when handling text files, file encoding is important. If the XMLport expects ASCII, and you feed it UTF-8, you may get scrambled data. If you have mismatching unicode input files, it may just fail altogether.
-
A .NET Interoperability Lesson: Mapping indexed properties to C/AL
Indexed properties are commonly used in C# because they allow a lot of syntactical flexibility, and make the code more readable, and easier to follow. Indexed properties are very similar to C/AL array indexing, except for two important differences: In C/AL, indexer is always 1-based. In C#, indexers are 0-based.
-
Trick: Instantiating any control in a Control Add-in
My two last blog posts tackled two aspects of working with control add-ins: making any property or method accessible to C/AL, and making any event accessible to C/AL The first was a simple trick, the second was a bit more complex.
-
Trick: Subscribing to any Control Add-in event through pure C/AL
So, it worked. I found just enough spare time to try out the crazy idea I mentioned in the last post. It’s about control add-ins and events. In the last post I gave a tip about exposing the actual control as a property decorated with ApplicationVisible, which allowed you to directly access all properties and methods of the control.
-
DotNet Quick Tip: Accessing members with invalid names
A friend asked my by e-mail today about a problem he encountered with DotNet interop: how to access a property of an object, if the property name matches a reserved word in NAV. A simplest example is from the Microsoft.Dynamics.Nav.SMTP.SmtpMessage class that comes bundled with NAV 2013.
-
Some tips and hints about temporary tables
Temporary tables in NAV are a great thing, and are frequently used, but there are some misconceptions about them. I see developers do the same mistakes time after time and again. In this post I’ll address some common misconceptions and give some tips and hints that you can use in practice.
-
Generics in .NET Interop for NAV 2013
.NET Framework is full of programming conceptual gems, that are now at the fingertips of us poor C/AL folks. One of those is generics . However, the C/AL support for generics at the first glance seems rather limited, and the help file says that you can’t specify data types, and that all generics will be instantiated with System.Object as their type.
-
Passing strongly-typed data to Web services
Passing strongly-typed data to NAV Web services can be trickier than it seems. If you are lucky, you can make your method accept strongly-typed parameters, and you are good to go. However, if you just can’t avoid sending text data, your text must be encoded in EN-US format, otherwise it will cause problems (see this ).
-
The Beauty and The Beast: NAV and .NET
If there wasn’t one already, someone should have invented Belgium. There are two things in this world that I love, and probably shouldn’t (and an oversized red speaker’s shirt I got from Luc today did a darned god job at concealing the unlucky consequences of overly indulging in both of them): beer and chocolate.