Er zijn verschillende aanpakken bekend om Delphi code te migreren5. (vrij naar John Brant et al.):
De meestvoorkomende aanpak is het handmatig herschrijven. Vaak wordt dan een compleet herontwerp gedaan. Deze aanpak heeft de volgende problemen
Een gevolg is dat veel van deze projecten simpelweg falen.
Er zijn voor Delphi tools in de handel die en simpele transformatie van de syntax en de meest voorkomende types naar C# kunnen doen. De initiële conversie wordt daarmee gedaan en vervolgens wordt er handmatig voor gezorgd dat de code werkt.
Ook dit leidt tot een stop in ontwikkeling tot het systeem weer werkt. Over het algemeen is deze aanpak sneller dan een volledig handmatige. Het grote probleem met deze aanpak is het gebrek aan feedback. Als er een probleem is met de conversie moet of de transformatie nog een keer gebeuren, waarbij de handmatige wijzigingen verloren gaan, of moeten de wijzigingen handmatig worden doorgevoerd. Hoe later in het proces, hoe moeilijker het wordt om de wijziging te automatiseren.
Bij een regel-gebaseerde transformatie wordt een set aan vertaal regels opgebouwd dat de code converteert. Door alleen de vertaalregels te bewerken, en iedere keer de transformatie opnieuw uit te voeren, wordt geleidelijk aan een steeds betere vertaling gemaakt. John Brant et al. hebben met deze methode succesvol een systeem van zo'n 1.5 millioen regels Delphi code gemigreerd naar C#.
Het bouwen van een regel is niet zo snel als het direct programmeren van code, maar het heeft diverse voordelen: