Developer Dagboek #7 – AI-tools deel 1

Developer dagboek #7 - AI-tools deel I

Auteur: Danny Holstein

Sinds medio maart 2025 maken de developers van BEE-2B gebruik van AI-tools via abacus.ai. Het voordeel van abacus.ai is dat meerdere AI-tools beschikbaar zijn, zoals: Claude Sonnet 3.7, Claude Opus 4, ChatGPT, DeepSeek, Gemini, etc. Via website abacus.ai is er ook de CodeLLM te downloaden met daarin een chat (voor het stellen van vragen aan de verschillende AI-tools) en een agent (voor het genereren van code). In dit nieuwe blogbericht worden een aantal gebruikerszaken met AI-tools behandeld.

Angular applicaties

Met Claude Sonnet 3.7 zijn een aantal onderdelen voor Angular applicaties gegenereerd. Vooral in het genereren van FormArrays blinkt Claude Sonnet 3.7 uit, zeker wanneer er wordt opgegeven waar de voorbeelddata is te vinden. Wat verder opvalt is dat niet de meest recente code voor Angular wordt gegenereerd. In de gegenereerde Angular 17 code staan de nu deprecated structurele directives (zoals *ngIf, *ngFor, etc.). Dit is te verhelpen door een schematic uit te voeren met het commando in de terminal: ng g @angular:core/control-flow

Voor de rest is Claude Sonnet 3.7 een goede hulpbron wanneer er issues zijn in een Angular applicatie. Bijvoorbeeld problemen met de Angular Material DatePicker worden door Claude Sonnet 3.7 snel en effectief opgelost. Een ander voorbeeld is een probleem dat zich voordeed met het openen van de Angular Material Dialog, waardoor een ander HTML-element naar boven versprong. In de Chrome developer-tools heb ik opgespoord welk element dit betrof. Het zoeken via Google en Stackoverflow leverde geen bruikbare resultaten op. Dus is de vraag voorgelegd aan Claude Sonnet 3.7 – en deze kwam met een goede oplossing. Zie de code hieronder:

Angular code door AI

Bij regulier gebruik van de Angular Material Dialog wordt alleen de property data gebruikt. Na het kopiëren en plakken van de code was het probleem verholpen. Bovendien kon de door Claude Sonnet 3.7 gegenereerde code op meerdere plaatsen in de applicatie worden gebruikt.

Omdat Angular 20 enkele weken geleden is uitgekomen, ben ik bezig om applicaties te upgraden naar deze meest recente versie. Een probleem dat zich voordeed, dat waren gebroken SCSS stylesheets met de foutberichten ‘undefined mixin’ en ‘undefined variable’. Eerst heb ik zelf van alles geprobeerd om dit probleem de wereld uit te helpen, echter zonder resultaat. De eerste vraag aan Claude Sonnet 3.7 was om een ‘checklist’ te generen, want misschien had ik zelf iets gemist. Dat laatste bleek het geval te zijn, want het feit dat @import nu deprecated is ten gunste van @use en @forward, dat was in mijn geheugen weggezakt. Opnieuw bleek Claude Sonnet 3.7 dus een bijzonder goede hulpbron.

C#/.NET – genereren van XLSX bestanden

Voor het oplossen van issues en het genereren van code in C#/.NET blinkt Claude Sonnet 3.7 echt uit. Een aantal kleine voorbeelden daarvan zijn om C# classes om te zetten in Flutter/Dart classes, het maken van Repositories met de daarbij behorende Services, Mappers en Controllers, fouten oplossen met DateTime en nog vele andere zaken. Het genereren van code door middel van AI is een echte tijdbesparing en komt de productiviteit ten goede.

Een gebruikerszaak die nog openstond dat was om Excel-bestanden (met de .xlsx extensie) te genereren. Omdat dit voor mij een nieuw gebied was, is er eerst onderzocht welke libraries hiervoor beschikbaar zijn binnen C#. Er zijn hiervoor een aantal opties, namelijk de libraries: Open XML SDK (Microsoft’s officiële library), EPPlus (betaald en licentie voor nodig), ExcelLibrary en ClosedXML. Aanvankelijk ben ik met de eerste begonnen om te experimenteren - Open XML SDK – maar deze library bleek ontzettend complex te zijn.

Tijdens het experimenteren ben ik er nog wel achter gekomen dat XLSX-bestanden op een vrij eenvoudige manier uit elkaar zijn te halen. De eerste stap is om de .xlsx extensie te veranderen in .zip en vervolgens dit bestand uit te pakken. Het resultaat is een map met allerlei bestanden van niet alleen de data, maar ook de stijlen, werkbladen, etc. Het plan was om het styles bestand te hergebruiken binnen Open XML SDK, maar het resultaat was teleurstellend ondanks dat ik er een aantal uren mee bezig ben geweest.

Omdat er toch alternatieven waren, ben ik vervolgens gaan experimenteren met de library: ClosedXML. Dit bleek al een stuk eenvoudiger te zijn en aanzienlijk minder complex. ClosedXML is overigens een wrapper rond Open XML SDK, wat erop neer komt dat het dezelfde functionaliteit heeft, maar het is makkelijker om deze functionaliteit te gebruiken door andere methoden die aangeroepen kunnen worden. Een probleem dat zich voordeed dat was de voortgang van het experiment. Mijn verwachting was dat pas over 3 weken of langer de functionaliteit om Excel-bestanden te genereren gereed zou zijn voor gebruik.

Om dit stuk functionaliteit eerder gereed te krijgen is er gebruik gemaakt van Claude Opus 4 – dat een nieuwe en zeer krachtige AI-tool is. In de agent (om code te generen) is een lijst gemaakt met specificaties voor het te genereren Excel-bestand, zoals: hoe de headers eruit zien, welke data-modellen er te verwachten zijn, dat er gescheiden werkladen moeten komen voor zowel de data als de totalen. Het belangrijkste was dat de stijl overgenomen moest worden uit een bestaand Excel-bestand. De code was heel snel gegenereerd met Claude Opus 4 en er waren een paar kleine issues (het gebruik van een expliciet datatype uit ClosedXML in plaats van het keyword var en een aantal null controles).

Voor deze functionaliteit is er 2x gebruik gemaakt van Claude Opus 4 en voor een aantal kleinere zaken van Claude Sonnet 3.7. Het resultaat is dat deze functionaliteit gereed is voor gebruik en dit is in een aantal dagen gedaan in plaats van meerdere weken. Een nadeel is wel dat de credits snel opraken wanneer Claude Opus 4 wordt gebruikt in de agent om code te genereren. Het alternatief is om bijvoorbeeld op abacus.ai extra credits erbij te kopen of een periode te wachten totdat de credits weer ververst zijn. Om ervoor te zorgen dat de credits niet te snel op raken, kan er beter gebruik gemaakt worden van de chat in plaats van de agent. Over het algemeen ben ik zeer positief over de gegenereerde code door zowel Claude Opus 4 als Claude Sonnet 3.7.

Afbeeldingen genereren

Het voordeel van abacus.ai is dat ook meerdere AI-tools beschikbaar zijn om afbeeldingen te genereren, zoals Gemini 2.5 Pro 0605, Gemini 2.5 PRO 0506, Gemini 2.5 Flash, etc. Een ander voordeel is wanneer er door AI gegenereerde afbeeldingen worden gebruikt, dat er geen zorgen zijn over auteursrechten van een afbeelding. Ik heb wel gemerkt dat heel specifiek opgegeven moet worden wat voor een afbeelding er gegenereerd moet worden. De afbeelding kan in latere chats verder worden aangepast totdat de afbeelding naar wens is. Met onder andere Gemini is het ook makkelijk om veel afbeeldingen te generen wanneer dat nodig is. De resultaten zijn vaak zeer verrassend. Zo heb ik in de chat aan Gemini gevraag om een weg door het bos te genereren, met hieronder het resultaat:

De AI-tool: Fotor is geen onderdeel van de AI-tools die abacus.ai heeft te bieden. Fotor staat hier los van maar biedt wel meerdere effecten om een afbeelding verder op te leuken. Er is een gratis versie die het toestaat om 1 effect per dag te gebruiken of voor € 33,99 per jaar is Fotor te gebruiken zolang de credits dat toelaten. Bovenstaande afbeelding is bijvoorbeeld opgeleukt met het Matisse effect (Henri Matisse was een Franse schilder die ingedeeld wordt bij het Fauvisme te herkennen aan gewaagde en felle kleuren).

Het is leuk en verrassend om het resultaat te zien van een bepaald effect op Fotor. Maar wanneer bepaalde effecten redelijk nieuw zijn, dan wil het genereren van de afbeeldingen wel eens haperen en kan het genereren van een afbeelding mislukken. Over het algemeen slaagt het toepassen van een bepaald effect en is de gegenereerde afbeelding klaar voor gebruik.

Tot slot

In dit blogbericht zijn enkele AI-tools besproken, maar er zijn er nog veel meer. In een toekomstig blogbericht zal ik naar alle waarschijnlijkheid andere AI-tools bespreken.

Er zijn voordelen zoals tijdbesparing en het leveren van snelle en goede oplossingen voor bepaalde gebruikerszaken. Een nadeel is dat de AI-tools niet perfect zijn en gegeneerde code kan fouten bevatten, waardoor dit niet direct is te gebruiken. Voor developers is van belang om te controleren welke versie van een bepaalde programmeertaal en of framework (zoals Angular) wordt gebruikt en wat de mogelijkheden hiervan zijn.

Ook is het van belang om alle AI-tools niet als ‘enige bron van waarheid’ te gebruiken, maar ook nog zaken op te zoeken via Google, Stackoverflow en andere blogs. Over het algemeen ben ik positief over de AI-tools waarmee ik tot nog toe heb gewerkt.

Leave a Reply

*