Сравнение инструментов сравнения для визуального базового 6.0

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

Сопоставление обновлений Artinsoft (конвертируется в С# и vb.net)

партнер vbmigration (конвертирует в vb.net)

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

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

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

Ответы

Ответ 1

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

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

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

EDIT. Я связался с Code Architects для цитаты, они ответили очень быстро. В отличие от этого question от Angry Hacker, у которого был худший опыт. Но затем Франческо Балена выскочил на Stack Overflow, чтобы ответить на его вопрос в течение 12 часов, что более обнадеживает.

Ответ 2

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

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

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

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

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

Ответ 3

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

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

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

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

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

Brownfield

Ответ 4

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

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

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

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

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

Все эти шаги, которые выполняются в VB6, и выполните наш обычный процесс Q & A. Затем мы начали преобразование.

Ответ 5

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

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

Ответ 6

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