Опубликован: 31.08.2006 | Уровень: специалист | Доступ: свободно
Дополнительный материал 1:

Приложение А. Перенос программ Visual Basic 6 в Visual Basic .NET 2003

< Лекция 23 || Дополнительный материал 1: 12 || Дополнительный материал 2 >

Запуск Visual Basic Upgrade Wizard (Мастер переноса Visual Basic)

Visual Studio .NET включает специальную программу, которая называется Visual Basic Upgrade Wizard (Мастер переноса Visual Basic), которая поможет вам при переносе ваших приложений Visual Basic 6 в Visual Basic .NET. Visual Basic Upgrade Wizard (Мастер переноса Visual Basic) не является универсальным решением проблемы переноса приложений Visual Basic 6 - этот инструмент может обработать только наиболее часто повторяющиеся изменения кода и заменить в форме элементы управления Visual Basic 6 на элементы управления Visual Basic .NET. Во всех приложениях, кроме самых простых, по окончании работы мастера вам все-таки придется некоторое количество кода править вручную.

Visual Basic Upgrade Wizard (Мастер переноса Visual Basic) запускается автоматически, когда вы пытаетесь загрузить в Visual Studio .NET приложение Visual Basic 6. Он создает новый проект Visual Basic .NET для оригинального приложения, а затем переносит столько кода, сколько возможно. Когда мастер не может перенести какую-либо функцию, он добавляет в код программы комментарий, указывающий на то, что в дальнейшем вы должны самостоятельно рассмотреть этот код. Также мастер создает отчет переноса, содержащий перечень всех затруднений и проблем, которые он не смог разрешить. В следующем упражнении демонстрируется, как работает Visual Basic Upgrade Wizard (Мастер переноса Visual Basic). В этом примере я открываю и обновляю проект Visual Basic 6 с именем Alarm.vbp, который используется для создания персонального "напоминателя" о назначенных событиях. Для этого используется элемент управления Timer, элементы управления TextBox и элементы управления Button. Так как эта программа не использует функций, которые не поддерживаются в Visual Basic .NET, перенос достаточно прост. В Visual Basic 6 проект Alarm выглядит следующим образом.

Примечание. Так как проект Alarm для Visual Basic 6 не использует никаких неподдерживаемых функций, нет необходимости устанавливать Visual Basic 6 для выполнения этих действия по обновлению.

Перенос программы Alarm

  1. Запустите Visual Studio .NET 2003 и откройте проект Alarm.vbp, находящийся в папке c:\vbnet03sbs\appa\alarmvb6. Visual Studio распознает Alarm.vbp как проект Visual Basic 6 и запустит Visual Basic Upgrade Wizard (Мастер переноса Visual Basic) для переноса этого проекта в Visual Basic .NET. Откроется такое диалоговое окно.


    Примечание. Если ваша редакция Visual Studio .NET не содержит Visual Basic Upgrade Wizard (Мастер переноса Visual Basic), будет выведено окно сообщения, указывающее, что миграция с Visual Basic 6 не поддерживается.

    Как сказано в этом диалоговом окне, Visual Basic Upgrade Wizard (Мастер переноса Visual Basic) помогает процессу переноса, создавая новый проект Visual Basic .NET для приложения Visual Basic 6, копируя в новый проект файлы форм и классов и преобразуя их в новый формат, и создавая отчет обновления, который указывает на то, какая работа была выполнена, и какую работу необходимо выполнить вручную. Отчет о переносе добавляется в проект Visual Basic .NET, так что его легко найти и прочитать.

  2. Щелкните на Next (Далее), чтобы запустить преобразование. Мастер задаст несколько вопросов относительно формата вашего проекта и содержимого его компонент. Ваш экран будет выглядеть аналогично показанному на следующей иллюстрации.


    В этом примере для приложения Alarm был выбран формат по умолчанию EXE, так как это приложение инструмента, а не DLL (динамической библиотеки).

  3. Чтобы продолжить процесс переноса, щелкните на Next (Далее). Мастер запросит у вас расположение нового проекта Visual Basic .NET. Папкой по умолчанию является подпапка в папке вашего оригинального проекта, как показано в этом диалоговом окне.


  4. Щелкните на кнопке Next (Далее), а затем, если вам предложат создать новую папку, щелкните на Yes (Да).
  5. Измените путь нового проекта на c:\vbnet03sbs\appa\my alarmvb.net. Это приведет к тому, что обновленный проект Visual Basic .NET будет помещен в новую папку с именем My AlarmVB.NET, расположенную в папке appa.
  6. Чтобы начать собственно процесс переноса, щелкните на Next (Далее). Visual Basic Upgrade Wizard (Мастер переноса Visual Basic) вызовет механизм обновления и пройдется по форме и коду проекта Alarm, чтобы преобразовать элементы управления в элементы управления .NET, обновить код программы, сделать его совместимым со спецификациями Visual Basic .NET и создать отчет обновления. Отчет обновления сохраняется в формате HTML и называется _UpgradeReport.htm. Через несколько минут мастер закроется, и в среде разработки Visual Studio появится новый проект Visual Basic .NET. Содержимое этого нового проекта перечислено в Solution Explorer (Обозревателе решений).

  7. Если форма проекта не отображается, щелкните в Solution Explorer (Обозревателе решений) на Alarm.vbp, а затем щелкните на кнопке View Designer (Просмотреть конструктор). Ваш экран будет выглядеть примерно так.

    Если вы сравните этот рисунок с первым рисунком этого приложения (проект Alarm, загруженный в Visual Basic 6), то поймете некоторые характеристики Visual Basic Upgrade Wizard (Мастер переноса Visual Basic). Во-первых, хотя мастер аккуратно задал размеры формы и ее объектов, шрифты, использованные в них, не соответствуют требованиям и для корректного отображения интерфейса пользователя должны быть настроены в Visual Studio .NET. Во-вторых, элементы управления Visual Basic 6 были обновлены на элементы управления .NET. Элементы управления Label и TextBox были обновлены на их эквиваленты для .NET. Элементы управления CommandButton стали элементами управления Button, хотя они по прежнему содержат в имени слово Command. Элемент управления Image, показывающий часы, был изменен на элемент управления .NET PictureBox. Visual Studio .NET не содержит элемента управления Image, и теперь графические файлы отображаются с помощью элемента управления PictureBox. Элемент управления Timer был обновлен до своей версии .NET и теперь отображается в области компонент. Наконец, мастер добавил в область компонент, расположенную под формой, элемент управления ToolTip. В Visual Basic 6 многие элементы управления имеют свойство ToolTipText, предназначенное для отображения подсказок для этих элементов управления. Visual Studio .NET содержит другой механизм отображения подсказок и использует для управления всеми подсказками для всех элементов управления формы единственный элемент управления ToolTip. Так как многие элементы управления Visual Basic 6 имеют свойство ToolTipText, даже если оно было пустым, Visual Basic Upgrade Wizard (Мастер переноса Visual Basic) по умолчанию добавляет этот элемент управления при переносе проектов Visual Basic 6.

  8. Сделайте двойной щелчок мышью в Solution Explorer (Обозревателе решений) на файле _UpgradeReport.htm. Visual Studio отобразит отформатированный отчет обновления, давая вам возможность просмотреть вопросы, которые остались нерешенными в процессе миграции приложения.
  9. Если необходимо, закройте Toolbox (Область элементов), чтобы освободить место на экране, а затем откройте разделы Global Issues (Общие вопросы) и Alarm.vb, сделав щелчок на знаках "плюс" (+) рядом с ними, и прочтите подробный отчет. Ваш экран будет выглядеть примерно так, как показано на рисунке вверху следующей страницы.

    Отчет об обновлении описывает многие вопросы переноса. Например, не было перенесено свойство PaletteMode формы, и оказалось невозможно разрешить свойство по умолчанию объекта Timer1. Если вы щелкните на гиперссылках Description (Описание), то будет выведена дополнительная документация по данной теме.

  10. Чтобы отобразить в Code Editor (Редакторе кода) код Alarm, щелкните в Solution Explorer (Обозревателе решений) на Alarm.vb, а затем на кнопке View Code (Просмотреть код). В верхней части Code Editor (Редактора кода) вы увидите свернутый раздел Upgrade Support (Поддержка переноса). Этот раздел включает код, предназначенный для обеспечения совместимости с Visual Basic 6. При просмотре кода программы вы увидите комментарии, которые указывают на потенциальные проблемы, как показано здесь.

    Эти комментарии к обновлению описывают проблемы и обычно содержат гиперссылку на дополнительную документацию, которую можно просмотреть, если прокрутить Редактор кода вправо. Например:

    'UPGRADE_WARNING: Couldn't resolve default property of object
    	CurrentTime. Click for more:
    	'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1037"'

    Признавая, что некоторые проблемы переноса могут поставить в тупик, Microsoft разработала Visual Basic Upgrade Wizard (Мастер переноса Visual Basic) так, что он вставляет гиперссылки, указывающие на дополнительную информацию.

Запуск обновленной программы Alarm

  1. Щелкните на кнопке Start (Начать) стандартной панели инструментов. Появится диалоговое окно Save File As (Сохранить файл как), спрашивающее местоположение и имя файла решения Alarm.
  2. Чтобы принять имя по умолчанию Alarm.sln и расположение в папке AlarmVB.NET, щелкните на Save (Сохранить). Появится форма Персональный будильник! Хотя обновление привело к появлению предупреждений, оно не привело к появлению ошибок, которые требуют модификации кода.
  3. Введите в текстовое поле Время время, которое находится на пару минут больше текущего. Укажите время в 24-часовом формате, где 8:00 a.m. указывается как 08:00, а 1:00 p.m. указывается как 13:00.
  4. Введите в текстовое поле Сообщение короткое сообщение, такое, как Обновлено для Visual Basic .NET!, а затем щелкните на кнопке Установить. Подождите, пока наступит указанное вами время, и вы увидите, как появится ваше сообщение. Оно будет выглядеть примерно так.


  5. Щелкните на OK, а затем на Выход, чтобы закрыть программу.

В этом простом случае проект Visual Basic 6 был обновлен и не потребовал для своего запуска модификаций. Однако большинство переносов потребует для безошибочных компиляции и запуска некоторого изменения кода. Вам также обычно будет требоваться произвести небольшие изменения интерфейса пользователя и выполнить тщательное тестирование, чтобы убедиться, что программа работает точно так же, как она работала в Visual Basic 6. С моей точки зрения, преимущества от переноса большинства проектов с помощью Visual Basic Upgrade Wizard (Мастер переноса Visual Basic) перевешивают потенциальные недостатки, но вы должны самостоятельно оценить эти преимущества и недостатки для каждого из ваших проектов. Удачи!

< Лекция 23 || Дополнительный материал 1: 12 || Дополнительный материал 2 >
Сайдахмад Зарипов
Сайдахмад Зарипов
Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?