Миграция приложения VB6 - PullRequest
4 голосов
/ 11 мая 2010

Миграция приложения VB6 на платформу .NET почти как переписывание, независимо от того, является ли это VB.NET или C #. Считаете ли вы, что для этого потребуется больше усилий на платформе Java по сравнению с платформой .NET, поскольку в любом случае это переписано? Пожалуйста, поделитесь своими мыслями!

Ответы [ 8 ]

8 голосов
/ 12 мая 2010

Без обид, но вы не правы. Портирование на .Net обычно далеко проще, чем переписать.

Вот официальный совет от Microsoft UK :

Выполнение полной перезаписи на .NET намного более затратно и трудно сделать хорошо [чем преобразование] ... мы бы рекомендовали этот подход только для небольшого числа ситуаций.

Из сообщения в блоге от парня из Microsoft, который консультировался по поводу переписывания:

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

Я рекомендую следующие два шага в этом порядке.

  1. Запишите причины миграции или перезаписи. Какие преимущества это принесет? Преимущества могут заключаться в том, чтобы просто поддерживать команду разработчиков - это может быть даже достаточно веской причиной, я не знаю. Убедитесь, что вы знаете, и ваши менеджеры / пользователи согласны.
  2. Ознакомьтесь с рекомендациями Microsoft UK с screencast , объясняющим 5 основных вариантов миграции .Net. Решите, что лучше. Это может быть переписывание, но зайдите в это с открытыми глазами.

В ответ на ваш актуальный вопрос: будет ли проще переписать текст в .Net или Java? Это в основном зависит от , который ваша команда знает лучше всего. Это также зависит от того, взаимодействует ли приложение с COM, как говорит SLaks.

2 голосов
/ 11 мая 2010

Попытка переписать приложение VB6 - это больше, чем просто вопрос, на каком языке вы ориентируетесь. Приложения VB часто полагаются на COM-объекты и определенные специфичные для VB библиотечные методы, которые могут не иметь эквивалентов в Java - но может иметь некоторую переносимость в .NET.

Если вы не хотите отказаться от всех зависимостей проекта, вы можете найти .NET более легкой целью переписать для , особенно если вам нужно сохранить некоторые свойства существующего приложение, которое происходит от библиотек или других зависимостей.

Еще одним соображением будет вопрос о том, с какой платформой ваша команда лучше всего знакома - если у вас большой опыт работы с Java, но мало или совсем нет опыта .NET, то, возможно, Java - хороший выбор для вас.

1 голос
/ 13 мая 2010

Важно сократить не только общие усилия во время миграции, но и стоимость обслуживания после миграции. Многие факторы влияют на совокупную стоимость владения, но при прочих равных условиях я думаю, что инструменты .NET, сообщество, инфраструктура и язык C # соответствуют или превосходят Java с точки зрения производительности труда, управляемости и производительности - при условии, что вы нацелены на Windows OS.

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

  • Большинство популярных библиотек COM и элементы управления, которые были использованы с VB6 имеют не развивался в течение многих лет; многие из мелкие продавцы исчезли или если они все еще поддерживают их изделия, они теперь также предлагают новые и улучшенные версии .NET.

  • Жизнь со старым COM после миграции значит жить с дополнительным сложность с точки зрения отладки, сборки и развертывания. Также будьте осторожны, что COM компоненты не очень "говорят" .NET (т.е. они не используют типы .NET и соглашения), поэтому их использование с .NET обычно приводит к дополнительной сложности в кодирование и дизайн.

  • Есть еще несколько Выдержки и исключения из этого правила и замена .NET не является всегда лучший выбор, но в целом, миграционные команды смогут найти по крайней мере один вариант замены .NET почти для каждого COM-компонента, который они используют. Не торопясь оценить, выбрать и обновить до одного из этих вариантов окупятся после миграция.

  • Вы не захотите вмешиваться это VB6 вы планируете мигрировать. Интерпопирование вашего собственного кода приведет к увеличению сложный переход и, как правило, требует отслеживания и Переработка / повторное тестирование уже перенесено коды. Очевидно, это не самый эффективное и понятное обновление дорожка.

Еще один момент о необходимости «много ручной работы над выходом». Продукт Great Migrations - это новый, программируемый инструмент миграции. Он предназначен для того, чтобы помочь командам миграции постепенно улучшать качество сгенерированного кода и, таким образом, сокращать ручную работу, необходимую для завершения проекта миграции. Это включает в себя повышение точности переводов, работу со сложными миграциями нескольких VBP, а также автоматизацию реструктуризации кода VB6 / COM для использования компонентов .NET. Эти функции особенно полезны, если кодовая база VB6 очень велика, часто меняется, и ее существенно переделывают и очищают во время миграции. Это методология гибкой миграции, которую мы называем переписыванием с помощью инструмента.

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

1 голос
/ 11 мая 2010

Доступны инструменты, которые будут мигрировать с VB6 на VB .Net, включая встроенный в Visual Studio. Этот инструмент переносит VB6 в C #. Какой бы инструмент вы ни использовали, вам все равно придется проделать большую ручную работу над кодом, который выводит инструмент, однако это, вероятно, будет меньше работы, чем полное переписывание Java.

В зависимости от архитектуры вашего существующего приложения и от того, насколько хорошо структурирован код, вы можете решить, что в любом случае лучше полностью перепроектировать и переписать его, и в этом случае может не быть большого выбора между .Net и java.

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

Вы можете перенести приложение VB 6, используя встроенную миграцию VS в VB.Net. Попробуй посмотреть, поможет ли это тебе. Если вы хотите перенести VB 6 на C #, я бы также порекомендовал то, что порекомендовал пользователь ScaleOvenStove.

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

используйте инструмент миграции, например ArtInSoft, чтобы просто перенести его в .NET.

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

Вы также можете использовать Jabaco, это компилятор байт-кода Java, и он имеет собственную IDE и синтаксис, очень похожий на VB6 (почти такой же). Вы можете найти более подробную информацию по адресу:
http://www.jabaco.org/
http://www.jabaco.org/board/

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

Если приложение использует COM, его будет гораздо проще переписать в .Net, чем в Java. В противном случае, вероятно, будет немного проще портировать на .Net.

Для более конкретного ответа, пожалуйста, предоставьте более подробную информацию о вашем заявлении.

...