Legacy software applications must be able to evolve in a modern environment like the .NET framework. Unavoidable new developments must be able to interact with legacy programs and the easier the better.
The .NET framework and Raincode stack enable this. They make it an (almost) trivial matter to call a COBOL program from C#, and vice-versa and to correctly pass typed data between the COBOL and C# worlds. This allows the two worlds to work independently, without knowing that the other exists, and still interact when needed.
If the system uses external components (for instance assembler routines) linked with PL/I or COBOL programs, the components should be replaced with ad hoc .NET routines when rehosting to a .NET environment. The mapping between PL/I or COBOL symbols and their corresponding external .NET symbols is achieved thanks to the Interface Manager.
Mapping definitions are used at the compilation level so that no changes are required to legacy source code to interface with .NET code. Raincode Legacy Compilers support several mapping files so that default mappings can be overridden by increasingly specialized exceptions.