Сравнение инструментов преобразования для Visual Basic 6.0

Кто-нибудь здесь использовал любой из следующих (или любой другой инструмент), чтобы преобразовать ваш код vb6 в язык.net?

Компаньон обновления Artinsoft (конвертируется в C# и vb.net)

vbmigration partner (конвертируется в vb.net)

Насколько они были эффективны и какого размера проект вы конвертировали?

Сколько работы осталось сделать потом? Как вы довольны результатом проекта.net. Какая была поддержка? Есть ли где-нибудь форум поддержки для пользователей таких инструментов, как кажется, ни один из поставщиков не предлагает такой.

Что они взимают, их цены не публикуются, и я слышал дико отличающиеся цены из разных источников для обоих приведенных выше примеров

6 ответов

Решение

Я думаю, что вы уже видели вопрос об инструментах для миграции VB6 на VB.NET.

Оба опубликовали специальные предложения на рынке Великобритании для своих основных продуктов на этой странице Microsoft в Великобритании. Конечно, вам нужно знать ограничения основных продуктов и цены для вашего рынка, чтобы составить реалистичное суждение, поэтому вам, вероятно, нужно связаться с ними:(

  • Artinsoft Upgrade Companion Developer Edition 199 фунтов стерлингов за до 50 000 строк кода. РЕДАКТИРОВАТЬ Теперь предлагает бесплатную версию, которая может делать до 10000 строк кода.
  • Профессиональный выпуск Visual Architect для миграции от Code Architects £ 399. Они сказали мне, что это было до 50000 строк кода.

Встроенный мастер обновления Microsoft жалок - по словам парня, который написал это, - конечно, он из Artinsoft, поэтому он хочет продать вам что-то лучшее. Microsoft UK также заявляет, что инструменты Artinsoft и Code Architects лучше встроенного мастера обновления.

РЕДАКТИРОВАТЬ: Я связался с архитекторами кода для цитаты, они ответили очень быстро. В отличие от этого вопроса переполнения стека от Angry Hacker, у которого был худший опыт. Но затем Франческо Балена появился на Stack Overflow, чтобы ответить на его вопрос в течение 12 часов, что является более обнадеживающим.

Я Эудженио Ла Меса, генеральный менеджер Code Architects. Я прочитал несколько комментариев о нашем VB Migration Partner и инструментах конверсии в целом и подумал, что мог бы добавить несколько, надеюсь, полезных советов.

Во-первых, наше программное обеспечение для преобразования поддерживает все графические свойства и методы VB6, за исключением DrawMode и ClipControls. Мы даже поддерживаем свойство AutoRedraw и определяемые пользователем координаты ScaleMode, поэтому миграция CAD-подобной программы на VB.NET вполне доступна нашему программному обеспечению. Раздел "Образец кода" на сайте www.vbmigration.com содержит множество примеров графических приложений VB6, которые были преобразованы в.NET с минимальными усилиями.

Во-вторых, позвольте мне уточнить нашу структуру цен. Мы продаем две разные версии VB Migration Partner: Professional Edition может конвертировать приложения VB6 с макс. 50000 строк кода, тогда как Enterprise Edition не имеет ограничений по размеру и поддерживает несколько дополнительных расширенных функций, таких как интеграция с программным обеспечением для управления исходным кодом и создание компонентов.NET, двоично совместимых с исходной библиотекой VB6 DLL, что позволяет реализовать поэтапную миграцию N-уровневых COM-приложений.

Цена Professional Edition за 399 фунтов стерлингов - это специальное предложение до 30 июня 2009 года, во время маркетинговой кампании Microsoft в Великобритании, только для Великобритании и для приложений длиной до 50 тыс. Строк кода (LOC). Цена Enterprise Edition может варьироваться, поскольку она зависит от нескольких факторов, включая количество лицензий и количество LOC, подлежащих миграции. Это объясняет, почему вы можете увидеть разные ценовые предложения. Кроме того, недавно мы немного снизили прайс-лист в качестве ответа на экономическую ситуацию. Мы также планируем извлечь некоторые функции из основного продукта и предложить их отдельно, что приведет к более гибкой ценовой структуре.

Честно говоря, для приложений с 25-50K LOC мы обычно рекомендуем переписать вручную. На самом деле, мы сосредоточены на сегменте корпоративного рынка, где вы часто найдете приложения VB6 с несколькими сотнями тысяч LOC, если не миллионами. В таких случаях ручное переписывание редко является приемлемым вариантом: для этого требуется слишком много опытных разработчиков VB6/.NET, это занимает слишком много времени или просто стоит слишком дорого. Недавно мы опубликовали тематическое исследование, касающееся заявки с 650K LOC; В настоящее время один из наших клиентов переносит приложение-монстр с 15 миллионами LOC!

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

Если вы просто хотите, чтобы код работал (и вы уверены, что можете его протестировать), тогда все в порядке.

Лично я бы серьезно подумал о более ручном порте. И у меня есть много унаследованного кода VB6, так что я знаю, какая боль связана.

Каждый раз, когда мы сталкивались с этим, мы просто переписывали его на C# - в качестве подхода, он зарекомендовал себя много раз.

На самом деле - я рекомендую разработку приложений Brownfield (Manning) - это может дать ценную информацию о том, что нужно иметь в виду, прежде чем начать.

Браунфилд

Проблема заключается в том, что инструменты преобразования не поддерживают графические команды VB6 или модель принтера VB6. Кроме того, вы сталкиваетесь с множеством сложных ситуаций, связанных с элементами управления ActiveX. Я знаю, что наши собственные приложения CAD/CAM не будут преобразовываться с помощью каких-либо инструментов преобразования, поскольку в пользовательский интерфейс встроено множество настроек, обеспечивающих плавную работу с VB6 Form Engine.

Это вещи, на которых не работают инструменты преобразования, поскольку WinForm Engine требует собственных настроек. То же самое произошло, когда наше программное обеспечение перешло с DOS на VB3. Иногда нет замены для ручного преобразования.

С учетом вышесказанного, есть кое-что, что вы можете сделать, чтобы значительно облегчить преобразование. Сначала убедитесь, что ваше приложение построено по слоям. Таким образом, вы можете конвертировать один слой за раз, тестировать и продолжать. Он также имеет преимущество в том, что на каждом шагу вы получаете доступное для использования программное обеспечение. Я рекомендую начинать с верхнего слоя (формы) и двигаться вниз.

Убедитесь, что все, что ориентировано на VB6, а не Basic Centric, находится за интерфейсом. Когда.NET впервые появился несколько лет назад, я создал Canvas Interface и реализовал его с помощью графической команды VB6. Я использую тот же интерфейс Canvas в VB.NET за исключением того, что теперь он использует графический объект. То же самое было сделано для принтеров.

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

Все эти шаги были выполнены в VB6 и прошли через наш стандартный процесс вопросов и ответов. Затем мы начали преобразование.

Я не использовал ни один из упомянутых инструментов, но после небольшой подготовки инструменты обновления в Visual Studio более чем адекватны.

Первое, что вам нужно сделать, это получить советник по коду Visual Basic 6 от Microsoft. Это большая помощь в подготовке вашего проекта к миграции.

В прошлом году мне прислали 2500 долларов за профессиональную версию vb миграционного партнера. Я не купил его, поэтому я могу прокомментировать

Другие вопросы по тегам