Procedurális vs. objektumorientált
A COBOL procedurális, lapos adatosztályokkal, bekezdés szintű vezérlési folyamattal és implicit állapottal. A C# objektumorientált, osztályokkal, namespace-ekkel és hatókörrel rendelkező változókkal. A naiv konverzió egyetlen osztályt eredményez, amely statikus metódusokkal és mezőkkel van tele, és nehezebben karbantartható, mint az eredeti COBOL.
Adatelérési réteg újratervezése
A COBOL programok EXEC SQL-t használnak DB2-höz, VSAM-ot indexelt fájlokhoz és fix szélességű lapos fájl I/O-t. A C#-nak ADO.NET, Entity Framework vagy Dapper szükséges. Az adatelérési réteg gyakran a COBOL-ról C#-ra migráció legösszetettebb része.
A COBOL konstrukciók szemantikai leképezést igényelnek
A PERFORM tartományok, EVALUATE/WHEN, MOVE CORRESPONDING, 88-as szintű feltételek és INSPECT minták nem rendelkeznek közvetlen C# megfelelővel. A helyes konverzió megköveteli a COBOL szemantika megértését és megfelelő C# minták generálását, nem soronkénti szövegcserét.