Стратегия для преобразования приложения VB6 в .NET - PullRequest
7 голосов
/ 27 апреля 2010

Было бы неплохо начать преобразовывать формы в .NET по одной за раз, которую затем вызывать из приложения VB6 через COM-взаимодействие.

Таким образом, к концу процесса вы просто конвертируете «оболочку» приложения VB6 в новое приложение .NET, и все ваши формы готовы к работе в .NET.

Есть ли лучшая стратегия?

Ответы [ 5 ]

3 голосов
/ 27 апреля 2010

У нас есть приложение VB6, которое также портируется на .NET, и мы используем стратегию COM-Interop. Все новые функции могут быть реализованы в .NET, только GUI-материал остается VB; в то же время мы можем разработать новый графический интерфейс самостоятельно.

Если вы этого еще не знаете, вы можете использовать COM Interop без использования реестра (поскольку это вызвало некоторые проблемы для нас) с COM-Free COM-взаимодействием :

3 голосов
/ 27 апреля 2010

Если бы это был я, я бы сразу сорвал пластырь. Я не вижу никакой выгоды в наличии промежуточного состояния [.NET Forms и COM-interop] для вашего приложения, потому что оно просто добавляет ненужную сложность.

2 голосов
/ 28 апреля 2010

Есть много советов по стратегии конверсии.

1 голос
/ 27 апреля 2010

Частичный подход, который вы описываете, создаст дополнительную работу, потому что вы будете пытаться заставить код VB6 и .Net сосуществовать, что чревато проблемами во всем, кроме самых простых приложений. Где-то в будущем вы, скорее всего, споткнетесь о гочу, которая может показывать себя.

Я бы рекомендовал следующий подход (основанный на успешной миграции приложения VB6 с 600 000 строк на .Net):

Убедитесь, что существующая кодовая база VB6 должным образом контролируется версией и имеет маркировку. Напишите регрессионные тесты для вашей кодовой базы VB6, желательно автоматизированные. Возьмите известный базовый уровень метки кода VB6 и перенесите его как единое целое в .Net. Ваши клиенты продолжают использовать версию VB6. Запустите ваши регрессионные тесты для перенесенного кода. Когда все тесты пройдены, примените к коду .Net любые изменения VB6, которые произошли с тех пор, как вы взяли исходный базовый уровень VB6. Доставь в UAT и живи.

0 голосов
/ 02 мая 2010

Будете ли вы выполнять большое сложное преобразование данных по одной таблице за раз, когда ваши системы будут использовать одну, другую или обе модели данных одновременно в течение длительного периода времени? Ясно, что это требует хлопот и сложности. Лучшая практика для больших преобразований данных - это делать их так, чтобы вся модель данных достигла желаемого конечного состояния в кратчайшие возможные сроки. То же самое относится и к крупномасштабным преобразованиям кода. Выполнение их по частям и в течение длительного периода времени вызывает проблемы с точки зрения увеличения трудозатрат и технического риска.

IMO, лучший подход - сформулировать стандарты разработки и архитектуры конечного состояния для вашего кода .NET, а затем инвестировать в процесс, который поможет вам эффективно переписать вашу систему в соответствии с этими стандартами и точно сохранить прежний бизнес правила и функциональное поведение. Длинные переходы и сложные гибридные / промежуточные решения в лучшем случае являются лишь пробелом, в лучшем случае приводят к проблемам бизнеса и, в худшем случае, к провалу проекта - их следует избегать. Лучший подход позволит вам доставить устаревшее программное обеспечение на новую платформу внутренне согласованными, независимыми и правильно сформированными частями. Кроме того, обеспечение миграции меньшим количеством больших кусков будет более эффективным и менее разрушительным, чем множество маленьких кусочков.

Ключом к тому, чтобы сделать этот подход жизнеспособным, является использование инструментов VB6 / COM / ASP to .NET следующего поколения, которые позволяют итеративно калибровать, настраивать и проверять процесс автоматической перезаписи, который сочетает автоматическое преобразование с ручной работой. Инструменты Great Migrations специально разработаны для использования этой методологии. Мы называем это «переписывание с помощью инструмента». Мы использовали этот подход в нескольких крупных проектах по миграции, включая обновление портфеля приложений из 1.2M LOC VB6 / COM до перепроектированного C # / .NET.

Отказ от ответственности: я работаю на Великих Миграций.

...