Застрял с Delphi.NET и Delphi 2007

У моей компании серьезная проблема. Мы разработали приложение, состоящее из более 1.000.000 строк кода в Delphi.NET. Из-за этого мы застряли с Delphi 2007 и .NET 2.0.

По мере продвижения технологий и приложений мы должны перейти на другую платформу разработки. До сих пор мы пробовали несколько инструментов, которые обещали преобразовать Delphi.NET в код С# - каждый из этих инструментов имел несколько проблем, таких как неправильная индексация строк (Delphi 1 С# 0) или когда типы были использованы для объявления границ массива.

После этого подхода мы попытались декомпилировать сборку Delphi.NET - код, который возвращается из этого файла, вряд ли читабельен и содержит сотни вспомогательных функций, которые вызывают в Borland конкретные сборки. Я уже рассмотрел возможность написать транспилер сам, но двусмысленный синтаксис Delphi слишком сложно реализовать в прямой грамматике.

Итак, теперь большой вопрос, есть ли возможность оставить, что не включает перевод всего кода вручную? Или, может быть, путь миграции, который позволяет перемещаться частично и поэтапно?

Ответ 1

Посмотрите инструменты вроде: http://www.9rays.net/TourStep.aspx?TourStepID=21

В то время как это может быть не так просто, как запустить все приложение Delphi через него и получить источник С# взамен, эти IL-трансляторы/декомпиляторы довольно точны. Мой совет заключался в том, чтобы запустить несколько сборок через и регрессионный тест, чтобы проверить точность проверки. Шансы очень высоки, что вам придется сделать некоторые исправления в сгенерированном коде, но это лучше, чем переписывать все приложение.

Также: проверьте http://blogs.msdn.com/b/danielfe/archive/2004/06/15/156087.aspx