"We zijn daar zeker een jaar mee bezig geweest." Zo beschrijft Jonas Vermeulen, senior .NET developer en technisch projectleider, het containeriseren van 20 legacy .NET applicaties bij ArcelorMittal Belgium. Legacy .NET applicaties containeriseren lijkt complex, maar 89% van organisaties gebruikt ondertussen containers in productie (Datadog, 2024). Zonder containerisatie blijf je vastzitten aan dure Windows servers en mis je de schaalbaarheid die concurrenten wel hebben.
Jonas leidde als projectleider met 12+ jaar .NET ervaring de volledige containerisatie van ArcelorMittal Belgium's supply chain software. Hij toont waarom de containerisatie van bestaande .NET applicaties realistischer is dan je denkt: van Windows servers naar Linux containers, zonder alles opnieuw te bouwen.
Waarom platform keuze bij .NET containerisatie alles bepaalt
De grootste valkuil bij .NET containerisatie? Denken dat je je bestaande .NET Framework applicatie gewoon in een container kunt stoppen. Dat kan wel, maar dan zit je vast aan dure Windows containers.
Bij ArcelorMittal Belgium werd dit snel duidelijk. Om echt de voordelen te benutten, moesten ze overgaan naar .NET Core om containers op Linux machines te kunnen draaien. "Een Linux-server is veel goedkoper dan een Windows-server, alleen al de licentiekost," verklaart Jonas.
De cijfers spreken voor zich: Windows Server licenties kosten €3.000 tot €6.000 per server, terwijl Linux gratis is. Voor 20 componenten betekende dit een aanzienlijke besparing. Maar er zijn meer dan alleen kosten. .NET 8 containers starten 18% sneller dan .NET 6 (Microsoft, 2023), en Linux containers bieden gemiddeld 40% kostenbesparing vergeleken met Windows equivalenten (Red Hat, 2024).
Je krijgt ook veel meer flexibiliteit: Linux containers draaien op elke cloud provider zonder vendor lock-in. Dit werd een van de triggers voor ArcelorMittal Belgium om eindelijk naar .NET Core te migreren. Wat begon als een containerisatie project, evolueerde naar een complete platform modernisering.
Het belangrijkste inzicht? Plan een dubbele migratie. ArcelorMittal Belgium deed .NET Framework naar Core én containerisatie tegelijk. Dit vergroot de complexiteit, maar combineert twee noodzakelijke moderniseringen in één project.

De NuGet dependency nachtmerrie die je containerisatie kan blokkeren
Je applicatie draait perfect op .NET Framework, dus waarom zou containerisatie een probleem zijn? Het antwoord ligt in je NuGet packages. Deze externe dependencies kunnen je hele project vertragen of zelfs blokkeren als je ze niet goed voorbereidt.
ArcelorMittal Belgium ondervond dit tijdens hun migratie. Hun applicaties gebruikten populaire packages zoals Automapper, Castle Windsor en Autofac. Het probleem werd snel duidelijk: veel van deze packages waren niet direct compatibel met .NET Core.
De uitdaging wordt groter wanneer je ontdekt dat sommige packages helemaal geen .NET Core versie hebben. Dan moet je alternatieven zoeken, wat tijd en risico toevoegt aan je project. Dit kan je planning flink door elkaar schudden.
Gelukkig biedt Microsoft tools om deze problemen vooraf te identificeren. De .NET Upgrade Assistant scant je code en geeft een duidelijk overzicht van welke packages problematisch zijn en welke alternatieven beschikbaar zijn. Dit voorkomt onaangename verrassingen halverwege je containerisatie project.
De .NET community is meestal je redding. Voor elk incompatibel package bestaat meestal een alternatief of een community-gedreven port. Soms ontdek je zelfs dat Microsoft de functionaliteit standaard heeft toegevoegd aan .NET Core, waardoor je het package helemaal niet meer nodig hebt.
Het belangrijkste advies? Scan je dependencies vóór je begint. Een grondige compatibility check voorkomt dat je halverwege ontdekt dat een kritieke dependency je hele timeline kan verstoren.
De realiteit van Enterprise tool licenties die je budget kan opblazen
Je hebt je .NET applicatie klaar voor containerisatie, maar dan komt de volgende verrassing: de tools die je lokaal gebruikt voor ontwikkeling, mag je plots niet meer gebruiken in een enterprise omgeving.
Dit overkwam ArcelorMittal Belgium letterlijk. Docker Desktop, dat ze gebruikten voor lokale ontwikkeling, bleek een commerciële licentie te vereisen voor enterprise gebruik. Het bedrijf moest snel schakelen naar alternatieven om compliance problemen te vermijden.
De oplossing kwam via Kubernetes gecombineerd met Rancher. Kubernetes vormde de onderliggende orchestratie laag, terwijl Rancher een gebruiksvriendelijke interface bood. Jonas legt uit hoe dit werkt: Kubernetes kun je wel bedienen via command line, maar Rancher geeft je knoppen en een dashboard. Voor teams die niet dagelijks met containers werken, maakt dit het verschil tussen adoptie en weerstand.
Dit illustreert een groter probleem in enterprise omgevingen. Veel populaire development tools hebben verborgen licentiekosten die pas naar boven komen wanneer je ze op grote schaal wilt gebruiken. Een tool die gratis lijkt voor individuele developers, kan duizenden euro's per jaar kosten voor een enterprise team.
De overgang van IIS naar container orchestratie vereist ook een andere denkwijze. Waar je vroeger applicaties direct op een server deployde, werk je nu met container registries, orchestratie platforms en monitoring dashboards. Je IT-team moet nieuwe workflows leren en nieuwe tools beheersen.
Het belangrijkste advies? Onderzoek de enterprise licentiekosten van alle tools in je containerisatie toolchain voordat je begint. Een gratis development tool kan een dure verrassing worden wanneer je het in productie wilt gebruiken.
.jpg)
Wanneer onvoldoende testing je .NET containerisatie vernietigt
Je hebt je platform gekozen, dependencies opgelost en tools geselecteerd. Alles lijkt klaar voor productie. Maar dan gebeurt wat ArcelorMittal Belgium overkwam: memory issues die pas in productie naar boven kwamen, waardoor ze hun containerisatie moesten terugdraaien.
Het probleem was dat hun bestaande testcoverage onvoldoende was voor de nieuwe container omgeving. Functionele tests die perfect werkten op IIS, dekken niet de specifieke performance karakteristieken van containers. Deze ervaring benadrukt hoe cruciaal uitgebreide load-testen zijn voordat je containers in productie zet.
Dit illustreert een cruciaal verschil tussen traditionele .NET deployment en containers. Een applicatie die vlot draait op een dedicated IIS server, kan zich heel anders gedragen in een container met beperkte resources. Memory management, CPU allocatie en I/O patterns kunnen significant verschillen.
De oplossing ligt in een nieuwe testing strategie. Unit testing blijft belangrijk, maar je hebt ook container-specifieke performance tests nodig. Dit betekent load testing binnen de werkelijke resource constraints van je containers, niet op een overgedimensioneerde development machine.
ArcelorMittal Belgium's ervaring toont ook het belang van een rollback strategie. Omdat ze parallel deployment hadden ingericht, konden ze binnen vijf minuten terugschakelen naar hun oude systeem. Zonder deze voorbereiding had een production failure desastreuze gevolgen kunnen hebben.
Het belangrijkste leermoment? Test je applicatie onder realistische container conditions. Een applicatie die perfect werkt op je development machine, kan compleet anders presteren wanneer het resource-constrained draait in een productie container.
Hoe microservices architectuur je .NET containerisatie versnelt
ArcelorMittal Belgium had een enorm voordeel bij hun containerisatie project: hun applicatie was al opgesplitst in microservices. Dit maakte het proces aanzienlijk eenvoudiger dan wanneer ze met een monolithische applicatie hadden moeten werken.
De reden is simpel. Elke microservice kon apart gecontaineriseerd worden, met zijn eigen resource requirements. Een component dat veel CPU nodig heeft, krijgt een krachtige container. Een ander component dat voornamelijk data opslaat, krijgt meer memory. Deze granulaire controle is onmogelijk met een monolith.
Maar wat als je een monolithische .NET applicatie hebt? Je kunt die ook in een container plaatsen, maar dan verlies je veel van de flexibiliteit. Alle onderdelen delen dezelfde resources, dus je moet dimensioneren voor je zwaarste component. Dit betekent vaak overcapaciteit en hogere kosten.
De vraag wordt dan: is het splitsen van een monolith de extra kost waard? Het antwoord hangt af van je schaalbaarheidsbehoeften. Als je applicatie heel veel load heeft en afhankelijk van die load ook moet kunnen extra servers bijzetten, dan is het waarschijnlijk wel de investering waard. Voor een monolith betekent schalen immers het volledig dupliceren van het blok met dezelfde minimale hardware vereisten.
De werkelijke kracht van microservices bij containerisatie ligt in resource optimalisatie. Je kunt precies specificeren hoeveel CPU en memory elke container nodig heeft. Dit zorgt niet alleen voor betere performance, maar ook voor aanzienlijke kostenbesparing in cloud omgevingen waar je per resource betaalt.
Het belangrijkste inzicht? Evalueer je architectuur voordat je begint met containerisatie. Microservices versnellen het proces dramatisch, maar een monolith containeriseren geeft je alsnog voordelen op gebied van deployment flexibiliteit en platform onafhankelijkheid.
.jpg)
.NET Container readiness checklist
- Architectuur evaluatie: Bepaal of microservices voordelen bieden of monolith containerisatie de kost waard is
- Platform ROI analyse: Bereken Linux vs Windows container kosten voor je .NET applicaties
- NuGet dependency scan: Gebruik Microsoft tools om .NET Core compatibility te controleren
- Enterprise tool licensing: Onderzoek licentiekosten van alle tools in je containerisatie toolchain
- Container-specifieke testing: Plan load testing onder realistische resource constraints
- Rollback strategie: Richt parallel deployment in voor veilige productie overgangen
Conclusie
De ervaring van Jonas bij ArcelorMittal Belgium toont dat .NET containerisatie zonder volledige herbouw niet alleen mogelijk is, maar ook praktisch haalbaar. Hun project van 20 legacy componenten, uitgevoerd door 20 ontwikkelaars over een jaar, leverde concrete voordelen op: lagere infrastructuurkosten, betere schaalbaarheid en platform onafhankelijkheid.
De belangrijkste lessen? Platformkeuze bepaalt je kosten, dependencies kunnen je project vertragen, enterprise tooling heeft verborgen licentiekosten, testing moet evolueren naar container-specifieke scenarios en een goede architectuur versnelt alles dramatisch.
Begin met een grondige evaluatie van je huidige .NET architectuur en voer een NuGet compatibility scan uit. Zo ontdek je snel of containerisatie een realistische volgende stap is voor jouw organisatie.





.jpg)





