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