Стратегия преобразования приложения VB6 к.NET

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

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

Существует ли лучшая стратегия?

7
задан MarkJ 28 April 2010 в 08:36
поделиться

5 ответов

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

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

3
ответ дан 7 December 2019 в 03:13
поделиться

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

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

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

1
ответ дан 7 December 2019 в 03:13
поделиться

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

3
ответ дан 7 December 2019 в 03:13
поделиться

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

2
ответ дан 7 December 2019 в 03:13
поделиться

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

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

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

Отказ от ответственности: я работаю в компании Great Migrations.

0
ответ дан 7 December 2019 в 03:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: