Как стать автором
Обновить

Комментарии 22

«В процессе эксплуатации, иногда, всплывают ошибки, связанные с конвертацией, но это неизбежно, увы. » — самое интересное упустили.
Я правильно понимаю, что основную часть проектов удалось перенести автоматически? Не возникало проблем с отсутствием полноценного наследования в Visual Basic?
Удаление конструкций Imports, ссылающихся на классы
— это вы про что?
@ Epsil0neR, как, возможно, вам известно — можно делать не только imports namespace, но и imports class.
Так вот при конвертации программа, в частности SharpDevelop тупо перегоняет в using namespace. Что в итоге?! Наши методы весят без класса, но зато у нас есть новый namespace. И вы думаете это будет работать?
Если вы изначально знаете, что инструмент кривой — то зачем вообще такой инструмент использовать?

Но вообще хотел у pec-orange спросить про «Не возникало проблем с отсутствием полноценного наследования в Visual Basic?» — откуда такие сведения?
Насколько я знаю, в VB есть какие-то ограничения на наследование. В частности, не реализовано множественное наследование классов, из-за чего приходиться искать обходные пути через наследование интерфейсов. Если я не прав — поправьте, с VB я знаком не очень хорошо.
В C# тоже нет множественного наследования.
Ну тогда вопрос снимается (хотя на него уже и ответили).
@ pec-orange, да, вы правы. Нет, проблем с отсутствием полноценного наследования в Visual Basic не встретили.
А не судьба была найти профессионального VB-программиста? Он бы с лёгкостью перевёл бы вам весь код, без ошибок. Или для вас Visual Basic — это нечто для лохов?
Сразу заметно минимум 3 грубейшие ошибки:
  1. Удаление конструкций Exit Try
  2. Замена ненужных директив ByRef на ByVal у параметров методов
  3. Удаление конструкций Imports, ссылающихся на классы

Далее разбирать даже не хочется. Честное слово: надоели постоянные нападки на VB со стороны кодеров, которые зачастую C# еле-еле знают, а спроси их: в чём реальное отличие VB от C# — толком ничего сказать не могут.
Пункты 6 и 10 — тоже удачи вам…
Прямого аналога в C# для Exit Try нет.
Может вам и покажется, что действия неоднозначные и ошибочные, но если бы программы умели правильно все переводить и было бы у всего свой эквивалент, то все было бы тихо, мирно и без пыли.
На счет профессионального VB-программиста — как я писал — времени было мало, да и найдите быстро человека, который перегонит, как вы сказали — с легкостью" миллион строк. может это вы и мы все не так сделали.?!
И еще — могу точно вам ответить, что в процессе эксплуатации, именно из-за 10 пункта было 3 ошибки из-за неправильного сравнения.
Напоследок — никто не чмырил vb.Мы решили — мы перешли.
Прямых аналогов много для чего нет в C#, для этого и нужен программист, а не только инструмент (Exit Try => goto+label). Проекты такого размера переводятся за несколько дней (умеючи). Поэтому ваше нежелание потратить немного времени на поиски хорошего программиста непонятно. При том, какие грубые ошибки вы сделали (и 10 пункт уже всплыл, остальных ждём в самые «приятные» моменты) — времени на исправление того — сами не знаете чего, в вызовах туда — не будете знать куда, вам прийдется потратить в десятки раз больше. Но если вы решили — вы сделали, то дело ваше. Поделитесь хоть названием продукта, чтобы знать, откуда проблем ждать.
Насчёт не чмырил — это обычно по началу. Не вы первый, не вы последний, кто кривой подход на язык сваливать будут.
Разве использование одного языка вместо двух в одном проекте — не прекрасно?
Exit Try => goto+label

Использовать goto в шарпе? Вы это серьёзно?:)
А с каких пор Visual Basic и VB.NET стали одним и тем-же?
Как я понял, у автора статьи все таки обычный VB, иначе бы другой софт понадобился.
А если у них был VB.NET, то они явно упустили самый простой способ перевода в C#)))
Судя по приведенным ссылкам на сайты инструментов, они работают с VB.NET, не с VB.
Instant C# умеет VB6. По крайней мере та версия, которую я ковырял последней лет пять назад)
Может быть. У них на сайте в одном месте написано
Converting VB (.NET)

и
Converts VB6-style On Error GoTo statements from VB to C#

В другом:
«VB» refers to the .NET implementation of Visual Basic, previously known as «VB.NET» (not VB6).

Хотя, это относится к Free версии.
Скажите а какая версия #Develop использовалась?
vba, 4.4
Ну вот, только я налил кофе и зашел прочитать кровавые подробности перевода с VB6 на C#, а тут всего-то миграция с VB.NET… :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории