Nano Hash - криптовалюты, майнинг, программирование

Различия между миграцией с vb6 на vb2005, vb2008, vb2010

У меня есть копия vb2005 professional. Мне нужно перенести проект vb6 на vb.net Есть ли разница в усилиях по переходу на эти выпуски vb.net, спасибо

28.05.2010

Ответы:


1

Я думаю, что немного проще ориентироваться на более поздние версии. Я считаю, что PowerPack 3.0 был добавлен для Visual Studio 2005: он включал дополнительная поддержка эмуляции объектов VB6 Printer и элементов управления фигурами.


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

Ознакомьтесь с рекомендацией Microsoft UK с скринкаст с объяснением 5 основных вариантов миграции .Net. Решите, что лучше. Люди могут посоветовать вам просто переписать с нуля в .Net. Будьте осторожны с этим — вы говорите, что ваша кодовая база велика, что является признаком опасности для переписывания. Microsoft UK говорите

Выполнение полной перезаписи на .NET намного дороже и труднее [чем преобразование] ... мы рекомендуем этот подход только для небольшого числа ситуаций.

01.06.2010
  • Спасибо МаркДж. На самом деле я на самом деле очень воодушевлен прогрессом до сих пор. Я смог удалить 135 Klines, использовал мастер обновления примерно для оставшихся 6K, и он сразу скомпилировался (с некоторыми предупреждениями)! Затем я добавил модуль, который занимается печатью, и мне придется немного переписать его, так как vb2008 не нравится свойство hdc принтера. Я рисую по одному файлу за раз, и это выглядит выполнимым! Я разочарован, хотя эта печать выглядит, во всяком случае, даже больше PITA в vb.net, чем в vb6. Я использую vb2008 Express, так как vb2010 не имеет мастера обновления. 03.06.2010
  • @боско. Вы хотите сказать, что смогли удалить 135 тысяч строк ненужного кода? Ух ты! Оставшаяся задача кажется выполнимой: обновить программу 6 Kline, которая компилируется после мастера обновления. Хорошая работа! 03.06.2010
  • Нет!! :) Все вызовы форм выполняются через функции в модуле Junction. например, Public Sub FormFooCall(byVal Action as string) Action = UCase(Trim(Action) If Action = UCase(Trim((Visible = True)) then ReferenceFormFoo0: frmFoo.Visible = True end if End Sub Итак, закомментировав все экземпляры ReferenceForm в этом модуле все формы в проекте закомментированы, кроме формы StartUp, и проект по-прежнему будет компилироваться в vb6.После того, как формы исчезнут, любой модуль можно удалить, поскольку на них ссылаются только формы, поэтому мне все еще нужно их вставить все обратно! 03.06.2010
  • @bosco А. В этом случае я все же рекомендую вам ознакомиться с советом Microsoft в моем ответе. Существует несколько разных способов миграции, и обновление всего с помощью мастера за один раз (как вы делаете) — это только один из вариантов. Например, вы можете разделить исходный проект VB6 на компоненты и обновлять компоненты по одному. Это позволяет выполнять задачу по частям. 03.06.2010
  • Спасибо MarkJ, решил перейти на vb2008 с помощью встроенного мастера обновления. Я не ожидал от него многого, основываясь на том, что я прочитал, но, по крайней мере, для моего кода я нахожу это довольно приличной помощью. 14.06.2010
  • @bosco: могу я спросить, как вам удалось удалить 135 тыс. строк и осталось только 6 тыс.?! Я не понимаю, как вы могли бы сделать это, не удаляя существенную функциональность. (Мой проект VB6 состоит из 200 тысяч строк, и после того, как я удалил весь код и оставил только дизайн формы, у меня все еще осталось 100 тысяч строк.) 17.12.2011
  • @CraigJ Если вы прочитаете его комментарий выше от 3 июня 2010 г., вы увидите, что bosco только что удалила все случаи использования всех форм (кроме одной), а затем смогла удалить большинство форм и модулей. Другими словами, он просто удалил большую часть проекта, удалив почти всю функциональность. Затем он планировал восстановить функциональность файл за файлом. ИМХО, это все равно, что отправиться в одиночный переход через Сару с маленьким рюкзаком: ничего, я просто проеду по километру за раз 17.12.2011
  • @MarkJ: но какой в ​​этом смысл? Разве вы не получите практически пустой раствор после преобразования? 17.12.2011
  • @ Крейг, точно, я бы сам не рекомендовал. 17.12.2011

  • 2

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

    Из того, что я видел, нет простого способа перейти от одного к другому. На эти миграции уходит много усилий. Лучше всего рассмотреть, хотите ли вы попытаться пройти построчно или изучить код, задокументировать основные функции, оценить, насколько хорошо программное обеспечение работало за время своего существования, а затем разработать новый дизайн.

    Это то, что я в конечном итоге сделал, потому что переписать строку за строкой почти невозможно и это большая боль. Компиляция библиотек и модулей в COM для обеспечения функциональности приложений .Net требует больших усилий и своего рода подхода «МакГайвера». Вот почему я просто хорошо задокументировал все, понял процесс, а затем написал как программное обеспечение .Net.

    В частности, какую функциональность вы пытаетесь сохранить? Вы раньше писали на .Net?

    28.05.2010
  • Да, я надеялся, что потребность в обходных решениях уменьшится в более поздних версиях. Я хочу сохранить все функциональные возможности, и этот проект нуждается в постоянной доработке в будущем. Большая часть мотивации к миграции связана с желанием изучить/использовать новый набор инструментов. OTOH это немного велико (140 kloc) для полного переписывания. Я надеюсь перенести один файл за раз, начиная с файла, который не ссылается ни на какой другой, и получить код, по крайней мере, скомпилированный перед переходом к следующему файлу. Я надеюсь, что инструмент обновления сделает многое. 28.05.2010
  • Это хороший подход для начала, удачи в вашем проекте. Если бы было возможно, я бы начал с небольшого проекта или нескольких демонстраций кода, чтобы изучить .Net, а не с такого большого переписывания. Если программное обеспечение по-прежнему служит своей цели и не нуждается в улучшении, я бы оставил его в покое. Это только мое мнение. Зачем переписывать что-то 140 тысяч строк только для того, чтобы изучить фреймворк? 28.05.2010
  • комментарий jlafay правильный. Microsoft советует сначала начать с нескольких небольших проектов, прежде чем пытаться перенести большой проект. Вы не сможете выполнить хорошую миграцию без предварительного изучения фреймворка. 01.06.2010

  • 3

    По моему опыту, «миграция» на самом деле представляет собой переписывание, поэтому не имеет значения, какую версию Visual Studio вы используете. Я бы использовал последнюю.

    28.05.2010
  • Единственное, однако, что vb2010 не имеет мастера обновления. 03.06.2010
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..