Тщательно обдумайте свои цели. Вы просто заинтересованы в замене фондов COM? Вы также собираетесь изменить реализации баз данных (например, с индексированных на SQL?) Экраны (с GUI на Web?) ...?
Если это очень маленькое приложение, возможно, можно будет полностью переписать его вручную. Если это скромный размер, вы можете изменить существующее приложение (предположительно, чтобы заменить средства COM другой эквивалентной схемой). Если это средний или большой размер, вы практически не сможете его переписать или надежно изменить в течение разумного периода времени.
Для таких масштабных изменений вы можете рассмотреть возможность автоматизации изменений. Инструмент для реализации таких изменений можно найти здесь: DMS Software Reengineering Toolkit . Использование DMS для клиента с 800K SLOC кода C ++,
мы реализовали большую часть транслятора с C ++ на C #, который заменил интерфейсы COM эквивалентными средствами C # (управление птичьей клеткой, тасовавшее примерно 3/4 пути через проект, потеряло интерес к транслятору, несмотря на его почти полноту).
Одна вещь, на которую следует обратить внимание, пока вы делаете это: сосредоточьтесь на модернизации приложения без изменения функциональности. Часто руководство не может противостоять ползучести области («ну, пока мы там, давайте изменим приложение, чтобы сделать ...»), что является дорогой к катастрофе. Помните, что для внесения всех изменений, которые привели к текущему, потребовались годы.