<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Interfaces on Stefan Maron | Business Central &amp; AL Development</title><link>https://stefanmaron.com/tags/interfaces/</link><description>Recent content in Interfaces on Stefan Maron | Business Central &amp; AL Development</description><generator>Hugo -- gohugo.io</generator><language/><lastBuildDate>Mon, 14 Oct 2024 09:00:00 +0100</lastBuildDate><atom:link href="https://stefanmaron.com/tags/interfaces/index.xml" rel="self" type="application/rss+xml"/><item><title>How to use Interfaces in Business Central</title><link>https://stefanmaron.com/posts/interfaces-in-business-central/</link><pubDate>Mon, 14 Oct 2024 09:00:00 +0100</pubDate><guid>https://stefanmaron.com/posts/interfaces-in-business-central/</guid><description>Interfaces still cause a fair amount of confusion, even among developers who have been writing AL for a while. I wanted to do a proper walkthrough — from the basics to real-world patterns like testing with fake implementations and the enum+interface combination that I use most often in practice.
You can watch the full stream on YouTube if you want to follow along.
The basic idea The classic vehicle example works well here.</description></item><item><title>MSDyn365BC.Ntfy Development Session — Redesigning the BC Push Notification App</title><link>https://stefanmaron.com/posts/msdyn365bc-ntfy-development-session/</link><pubDate>Tue, 16 Jul 2024 09:00:00 +0100</pubDate><guid>https://stefanmaron.com/posts/msdyn365bc-ntfy-development-session/</guid><description>Push notifications from Business Central to your phone — that&amp;rsquo;s the idea behind MSDyn365BC.Ntfy . In this stream session I worked on rethinking the data model for the app, which started as a proof of concept and needed some structural improvements before it was worth building on further.
The full stream is on YouTube if you want to watch it live. Below I&amp;rsquo;m covering the key decisions and code changes from that session.</description></item><item><title>Build a better way to catch errors 2 – without the test framework</title><link>https://stefanmaron.com/posts/build-better-error-catching-without-test-framework/</link><pubDate>Thu, 30 May 2024 09:00:00 +0100</pubDate><guid>https://stefanmaron.com/posts/build-better-error-catching-without-test-framework/</guid><description>In the first stream on this topic I built a way to reliably catch and log errors during Business Central imports using the test framework — running code inside a test codeunit so that any database changes roll back automatically when an error is thrown. The idea worked. But then I tried to run it in production Online, and it blew up immediately: the test framework is not available in production SaaS tenants.</description></item><item><title>Build a better way to catch errors (Part 1) - The BC Coding Stream</title><link>https://stefanmaron.com/posts/build-better-error-catching-part-1/</link><pubDate>Tue, 28 May 2024 09:00:00 +0100</pubDate><guid>https://stefanmaron.com/posts/build-better-error-catching-part-1/</guid><description>This stream started as a debugging session. I&amp;rsquo;d hit a problem in a real project: I needed to catch errors from field validations — including all the hidden commits that Validate can trigger — without leaving any trace in the database. I wanted to show the user what would go wrong before actually doing the thing. Turns out that&amp;rsquo;s harder than it sounds.
You can watch the full stream on YouTube .</description></item><item><title>Building an Automatic Write-Off Tool in AL: Adding Overpayments with an Interface Pattern</title><link>https://stefanmaron.com/posts/al-automatic-write-offs-overpayments-interface-pattern/</link><pubDate>Sat, 25 May 2024 09:00:00 +0100</pubDate><guid>https://stefanmaron.com/posts/al-automatic-write-offs-overpayments-interface-pattern/</guid><description>This stream picked up mid-session on an app I&amp;rsquo;m building for AppSource: an automatic write-off tool that generates general journal lines for small remaining amounts on customer ledger entries. The previous stream had a frozen screen issue — VS Code appeared fine in my preview but wasn&amp;rsquo;t actually updating — so I restarted and recapped quickly before jumping back in. The full stream is on YouTube if you want to follow along.</description></item><item><title>Be careful with dynamic code</title><link>https://stefanmaron.com/posts/be-careful-with-dynamic-code/</link><pubDate>Wed, 11 Aug 2021 07:09:13 +0000</pubDate><guid>https://stefanmaron.com/posts/be-careful-with-dynamic-code/</guid><description>I believe there is a time in every AL developers live where he discovers the power of RecordRef and FieldRef. It is surely Incredible what you can achieve with these tools and how fast you can deliver a pretty good working piece of code.
At least this is the way I remember my first solutions I build when I first learned about RecordRefs. I realized, the more I think about it the more code could be written with a dynamic approach and I started to deliver my finished code quite a bit faster.</description></item></channel></rss>