Обновление большого приложения VB6 до.NET. Отзывы о VB Migration Partner
У меня действительно большая база кода VB6 с кучей сторонних элементов управления. Хотите переместить его в.NET. Переписать это не подлежит сомнению - клиент не видит смысла в том, чтобы тратить деньги на то же самое. Переход на.NET с помощью встроенного мастера обновления, по сути, не является началом.
Кто-нибудь пробовал VB Migration Partner с http://www.vbmigration.com/ Если да, то каков был опыт?
3 ответа
Я являюсь ведущим автором инструмента VB Migration Partner (размещен на сайте www.vbmigration.com). В целом мы очень быстро отвечаем на все запросы, поступающие от существующих или потенциальных клиентов. Прошу прощения, если было трудно связаться с нами. Пожалуйста, попробуйте еще раз на http://www.vbmigration.com/contactus.aspx
Мы верим, что наш инструмент способен работать с очень большими приложениями VB6. На самом деле, большинство наших клиентов используют его для переноса приложений в диапазоне от 200 до 500 тыс. Строк кода. В настоящее время мы работаем над "приложением-монстром" из более чем 13 миллионов LOC, разделенных на 1200+ проектов.
Как предлагает RSConley, любой инструмент преобразования работает лучше всего, если ваше приложение можно перенести и протестировать по частям. Мы поддерживаем группы проектов VB6 (которые преобразуются в одну операцию), пакетные преобразования и поддерживаем интеграцию с инструментами контроля исходного кода. (Например, мы сохраняем руководства по решениям / проектам предыдущего поколения, чтобы ваш инструмент SC знал, как обращаться с вновь сгенерированным кодом.)
Наконец, мы собираемся выпустить версию 1.11, которая может генерировать.NET DLL, которые двоично совместимы с исходными COM DLL, так что вы можете мигрировать один компонент за раз, начиная с самых основных, которые используются всеми другими частями ваше приложение, без необходимости их повторной компиляции. (Насколько нам известно, VB Migration Partner - единственный инструмент с этой функцией.)
Франческо Балена - команда VB Migration Partner
Короткий ответ: VB6 и VB.NET (и, следовательно, C#) - это отдельные, но родственные языки. Существует много тонких (Integer, являющихся Int32 вместо Int16) и грубых различий (графика, форма и механизмы печати) между двумя платформами. Вы должны относиться к этому, как будто вы переходите на совершенно другую платформу.
Я обнаружил, что различные инструменты миграции не стоят усилий, за исключением некоторых конкретных обстоятельств. Например, интерфейс базы данных, использующий отчеты Crystal.
Что касается стоимости миграции. Только вы и ваша компания могут принимать такие решения. Поддерживайте приложение достаточно долго на ПК, в конце концов, вы должны серьезно рассмотреть его. Главным образом, чтобы воспользоваться преимуществами совершенно новой технологии (например, перейти с DOS на Windows). Мои приложения были запущены в 1985 году, и за их 20-летнюю историю произошли три основных преобразования (рабочая станция в DOS, DOS в Windows 3.X, Windows 3.X в 32-битную Windows и объектно-ориентированная среда).
И мы рассматриваем.NET по нескольким причинам. VB.NET - родственный язык, Generics и Inheritance позволяют сжать большую часть нашего стандартного кода в несколько строк. Более богатый графический API и так далее. Конечно, есть общая головная боль преобразования, взвешивающего все. Однако когда мы переключились на объектно-ориентированную среду, наше приложение превратилось в небольшой EXE-файл, связанный через COM с несколькими DLL. Мы можем позволить себе роскошь конвертировать и тестировать по частям из-за структуры нашего приложения.
Я настоятельно рекомендую, если вы намереваетесь преобразовать свое приложение в VB6 в структуру, которую можно преобразовать и протестировать по частям. Вы сможете использовать Active DLL для этого. Если вы попытаетесь сделать это за один раз, то вы обнаружите, что 80% проекта пойдут быстро, а последние 20% станут настоящим адом. Преобразовав поштучно, вы останетесь с рабочим программным обеспечением на каждом шагу.
Проблемы более подробно рассматриваются здесь
Я никогда не работал с ребятами из VB-миграции, однако я настоятельно рекомендовал бы не переносить кодовую базу в.NET. Это действительно не добавляет ценности.
То, что я добился большого успеха, это добавление новой функциональности в.NET и получение ее через COM-взаимодействие из приложения VB6. Это довольно легко и является хорошим способом использования.NET в устаревших приложениях.
... мои 2 цента