Member 10277850 Ответов: 4

преобразование VB6 код, чтобы vb.net


как я могу преобразовать код vb6 в vb.net? Есть ли для этого какой-либо инструмент преобразования и насколько он надежен?

Richard C Bishop

Это был бы хороший вопрос для поисковой системы.

Maciej Los

Вполне возможно, чтобы ответить. Видишь мой ;)

[no name]

Если вам нужно только преобразовать "код vb6", то зачем вам нужен конвертер? С другой стороны, если вам нужно преобразовать целую кучу кода, то, возможно, проще переписать его в файл .NET. VB6 больше не поддерживается, и парадигма программирования сильно отличается.

4 Ответов

Рейтинг:
2

dobbied

зависит от того, какова ваша долгосрочная стратегия.
сколько вы хотите потратить против экономии времени и т. д.
кроме того, вы никогда не получите 100% конверсии, если приложение не будет действительно простым. в этом случае возникает вопрос, почему бы просто не переписать его.
взгляните на партнера по миграции (vbmigration dot com). Я немного поиграл с ним и даже получил цитату на одном этапе, но в конце концов мы решили переписать наше приложение в тонкий клиент с использованием java.


Рейтинг:
1

Maciej Los

Это зависит от того, что делает код VB6.... Нет простого способа достичь этого. Пожалуйста, посмотрите это: Преобразование кода .NET - преобразование вашего кода[^]

Больше:
Перенесите свой код VB6 в VB.NET[^]


Sergey Alexandrovich Kryukov

Конечно, 5ед. Я предоставил ссылку на источник различий, пожалуйста, смотрите.
—СА

Maciej Los

Спасибо, Сергей ;)

Рейтинг:
1

mbartmon

Я заканчиваю первый этап большой миграции с vb6 на .NET. На самом деле существует несколько крупных приложений, которые в конечном итоге будут портированы. Чтобы усложнить ситуацию, я конвертирую полученный проект в C# и WPF.

Моя методология состояла в том, чтобы использовать VS2008 VB6 для VB.Net converter для выполнения начального преобразования. Затем я передал вывод этой информации в C-Sharpener, открытый исходный код .ОБЪЕМ ИНТЕГРИРОВАННОЙ СРЕДЫ РАЗРАБОТКИ. Он имеет приличный VB.NET конвертер в C#. Не все оригинальные формы и классы VB6 дошли до конца, но большинство из них это сделали.

Вначале я решил полностью переписать пользовательский интерфейс (WPF имел для меня больше смысла, чем Winforms) и перенести как можно больше внутренней логики, что на самом деле было относительно легко (не просто, но легко). В зависимости от преобразования VB в C # некоторый синтаксис может быть выполнен неправильно, например, массивы могут или не могут быть изменены с () на [], но это тривиально (требует много времени, но тривиально). Кроме того, необходимо было перейти от использования DAO к использованию набора данных System.Data. Это стало проще, чем в противном случае, за счет использования класс-ориентированного представления каждой из таблиц базы данных со всей логикой доступа к данным. Я написал утилиту, которая генерировала эти классы из таблиц доступа, используемых в старом приложении (я был бы рад поделиться этим методом). Это значительно упростило изменения кода, необходимые для изменения операторов DAO.

Я шагал через модули VB6 один за другим, пока каждый не заработал. Пользовательский интерфейс переписать на
WPF был самым трудоемким, но и самым приятным аспектом. Передача внутренней логики была намного быстрее, так как это в основном повлекло за собой изменения синтаксиса и доступа к данным, в то время как основная логика осталась неизменной.

После нескольких месяцев и 500 тысяч строк кода первое приложение в наборе приложений моей системы запущено. Он будет предложен в качестве бета-версии моим клиентам в течение нескольких недель.

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

Теперь перейдем к следующему приложению!


Рейтинг:
0

Sergey Alexandrovich Kryukov

Эта статья CodeProject даст вам довольно хорошую идею: Обновление VB6 до VB.NET[^].

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

—СА


Maciej Los

+5

Sergey Alexandrovich Kryukov

Спасибо, Мацей.
—СА