Prozedural vs. Objektorientiert
COBOL ist prozedural mit flachen Datendivisionen, Absatz-basiertem Kontrollfluss und implizitem Zustand. C# ist objektorientiert mit Klassen, Namespaces und Variablen mit definiertem Gültigkeitsbereich. Naive Konvertierung erzeugt eine einzelne Klasse voller statischer Methoden und Felder, die schwerer zu warten ist als das ursprüngliche COBOL.
Neugestaltung der Datenzugriffsschicht
COBOL-Programme verwenden EXEC SQL für DB2, VSAM für indizierte Dateien und Festbreiten-Flat-File-I/O. C# benötigt ADO.NET, Entity Framework oder Dapper. Die Datenzugriffsschicht ist oft der komplexeste Teil einer COBOL zu C# Migration.
COBOL-Konstrukte erfordern semantische Zuordnung
PERFORM-Bereiche, EVALUATE/WHEN, MOVE CORRESPONDING, 88-Level-Bedingungen und INSPECT-Muster haben keine direkte C#-Entsprechung. Korrekte Konvertierung erfordert das Verständnis der COBOL-Semantik und die Erzeugung geeigneter C#-Muster, nicht zeilenweise Textersetzung.