Skip to content

GabrielMuzolf/ALchemy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ALchemy: Turning AL Code to SOLID Gold

Welcome to the ALchemy: Turning AL Code to SOLID Gold workshop!

This repository contains the case study code examples that all of this workshop's exercises are based upon.

SOLID Principles

SOLID principles are key to developing high-quality software, and they're just as relevant in the AL world as anywhere else. In this workshop, you'll see firsthand how applying these principles to Business Central development leads to more maintainable, flexible, better-structured code that stands the test of time and adapts easily to new requirements.

The workshop will focus on each of the five SOLID principles: it explains what they mean in theory, and shows how to apply it with a lot of practical, easy-to-follow examples in AL. The workshop follows a case study example, designed for a comprehensive hands-on experience, where you'll transform an existing AL solution written in traditional way into one that applies SOLID principles throughout. This isn't just about making minor adjustments; it's about reshaping the code entirely to make it more robust, easier to read and maintain, and efficient to test.

By participating, you'll gain valuable skills in enhancing the quality and testability of your AL code. This workshop is about providing you with the tools and knowledge to write Business Central code that is not only functional but also - well - solid, on every possible level, code that's ready for the cloud and the challenges of tomorrow's business requirements.

Prerequisites

To attend this workshop you need a laptop, with access to a development environment (either an online sandbox, or local Docker) where you can deploy and develop without limitations. Docker is recommended.

Hint: At the moment of publishing of this workshop, BC sandboxes do not support test libraries. If you choose to use a BC sandbox instead of a local Docker instance, simply skip any exercises that involve changing or deploying the Test app.

How does this workshop work

This workshop contains six branches:

  • main: The main branch of this repository, contains the base case study code example and these instructions. You use this branch as your starting point.
  • 01-SRP: Starting point for "Exercise 1: SRP Improvements".
  • 02-OCP: Starting point for "Exercise 2: DIP Improvements". Contains the solution code for exercise 1.
  • 03-LSP: Starting point for "Exercise 3: LSP Improvements". Contains the solution code for exercise 2.
  • 04-ISP: Starting point for "Exercise 4: ISP Improvements". Contains the solution code for exercise 3.
  • 05-DIP: Starting point for "Exercise 5: DIP Improvements". Contains the solution code for exercise 4.

For each exercise, you need to:

  1. Checkout the branch for the exercise.
  2. Follow the instructions in the README.md file. The contents of this file (README.md) will change for each exercise, and will contain the detailed instructions for the exercise.
  3. There are two layers of instructions:
    • Challenge yourself: Gives high level instructions without detailed steps. This is for those who want to try to solve the exercise on their own.
    • Step-by-step instructions: Detailed instructions on how to solve the exercise. Follow these if you get stuck or if you want to compare your solution with the provided one.

About

ALchemy: Turning AL Code to SOLID Gold

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • AL 100.0%