Как преобразовать проект VB5 в проект c # - PullRequest
3 голосов
/ 12 января 2009

У меня есть проект VB5 (не .net), который я хотел бы обновить до проекта c #. У кого-нибудь есть какие-либо предложения относительно методов или бесплатных инструментов, которые могут помочь мне с этим.

Спасибо

Бред

Ответы [ 10 ]

21 голосов
/ 12 января 2009

Вам лучше переписать прямо.

2 голосов
/ 12 января 2009

Если вам удалось перенести его на VB6, вы можете использовать code Advisor , чтобы увидеть, как вы можете исправить свой проект, чтобы он был совместим с vb.net, затем вы можете перейти на vb.net в случае успеха вы можете использовать этот инструмент для преобразования его в c # или Reflector .

Я даю шанс 1x10 ^ (- 100)% работать. Удачи.

2 голосов
/ 12 января 2009

Что я хотел бы предложить, так это сначала преобразовать проект в VB6. Оттуда будет намного легче идти вперед. Есть ряд инструментов, которые помогут вам сделать это. Существует VBMigration Partner и vbto . Я тоже не пробовал, так что YMMV.

Если затраты являются ограничением, вы можете попробовать это: в Visual Studio есть мастер, который попытается обновить VB6 до VB.NET. Это не на 100% точно, и вам придется писать код для вещей, которые VB.NET не поддерживает, таких как управляющие массивы и т. Д. Когда код находится в VB.NET, вы можете использовать такой инструмент, как SharpDevelop для преобразования VB.NET для C #. Это будет немного утомительно, но я полагаю, что все дороги, независимо от того, насколько извилистыми, ведут в Рим.

1 голос
/ 12 января 2009

Редко хорошая идея сделать строгое преобразование с одного языка на другой, особенно когда они отличаются от VB5 и C #.

Теоретически, вы можете конвертировать VB5 в VB6, а затем VB6 в VB.NET, а затем VB.NET в C #, но для меня это просто безумие, когда я его печатаю.

C # настолько мощнее, чем VB5, что вы не захотите все равно скрывать код. В конце концов, он, вероятно, имеет плохой дизайн из-за слабых возможностей OB.

Вместо этого я бы порекомендовал повторно реализовать необходимые вам функции в C # (или на любом другом языке, который вы хотите использовать).

1 голос
/ 12 января 2009

Если вы собираетесь конвертировать VB5 в .NET (будь то C # или даже VB.NET), самый быстрый способ - это перезапустить с 0 вашу реализацию, чтобы вы могли в полной мере воспользоваться классами .NET Framework. Я не знаю, есть ли инструменты для автоматического преобразования.

0 голосов
/ 12 января 2009

Сделав это сам, я говорю о проблемах здесь.

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

0 голосов
/ 12 января 2009

Я делал это в прошлом, но не рекомендую. Заставить проект работать правильно после «автоматической миграции» не стоило усилий. В итоге я переписал программу, и из-за этого мне стало лучше.

0 голосов
/ 12 января 2009

Я перенес небольшое одноуровневое приложение VB6 на C # и больше никогда не буду это делать.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1004

// Magnus

0 голосов
/ 12 января 2009

Миграция VB5 на C # только для того, чтобы иметь .NET, никогда не является веской причиной. Я бы предпочел хорошенько взглянуть на предположения и конструктивные решения, которые я принял в версии VB5, переосмыслить их все, добавить новые идеи, набросать интерфейс и улучшить его, чтобы он выглядел ближе к современному.

Тогда это новый проект, я бы даже не назвал его переписанным, потому что многое изменилось бы.

0 голосов
/ 12 января 2009

Я знаю, что существуют инструменты для конвертации, хотя я не уверен, что они есть для vb5.

Однако я бы порекомендовал выполнить редизайн проекта, используя возможности .net, недоступные в vb5. Специально было бы неплохо изменить дизайн для оригинального языка.

...