Best practices
-
AL Object ID Ninja
If it does what the documentation says it does, I can only say: “Build this man a statue!” Awesome job. — Waldemar Brakowski (@wbrakowski365) September 11,…
-
Code annotations in AL – Please, don’t!
One of good practices of writing C/AL Code for Microsoft Dynamics NAV since the dawn of civilization was annotating (commenting) code changes. If you are not…
-
C# Injection: Don’t trust FOB
FOBs, those pesky little files that we all take for granted, import into our databases, and live happily ever after. After you read this post, you’ll handle…
-
Module Binder Pattern proposal
Whoa! This has been quite an event, the Directions EMEA 2016 in Prague. There has never been this many people (1.700+) and it was quite a pleasure connecting…
-
Gentlemen’s agreement pattern, or handling the “Handled” pattern
I’ve delved deep into design patterns story with my last two blog posts, but I am far from over. The patterns I discussed are the ones we could use up until…
-
TempBlob Façade: a pattern proposition
Achieving some kind of polymorphism in C/AL has always been a problem. The fact that true polymorphism with pure C/AL is outright impossible has not stopped…
-
Decoupling dependencies in C/AL
Directions US 2016 (yes, 2016, sorry y’all who got the 2017 link in your mailbox) was quite an event. As Directions always is, a lot of people, enthusiastic…
-
OnAfter table event subscriber patterns and antipatterns
The purpose of events is to simplify business logic customization while not impeding upgradeability and general extensibility. However, there is one particular…
-
A few thoughts around assembly naming and versioning for NAV
Are you developing .NET assemblies intended to be used from C/AL? If so, then you must have realized that keeping proper track of them and managing them on the…
-
Activity Log or Activity Lock pattern?
Today at NAV TechDays 2015 in Antwerp, I attended a presentation by Nikola Kukrika, Ciprian Iordache, and Gary Winter, at which Ciprian presented a new design…