Приложение А. Перенос программ Visual Basic 6 в Visual Basic .NET 2003
В этом приложении вы узнаете, как:
- оценивать совместимость программ, написанных на Microsoft Visual Basiс 6 с Visual Basic .NET;
- находить ресурсы интернета, посвященные переносу приложений;
- запускать Visual Basic Upgrade Wizard (Мастер переноса Visual Basic) для переноса программ Visual Basic 6 на Visual Basic .NET 2003.
Эта книга обучает методикам программирования на Visual Basic .NET с нуля и не предполагает наличия какого-либо предшествующего опыта программирования. Однако многие пользователи переходят к использованию Visual Basic .NET, имея значительный опыт программирования на предыдущих версиях Visual Basic, включая Visual Basic 6. Таким образом, какие шаги вы должны выполнить, если у вас есть старые программы на Visual Basic, которые вы хотите перевести на Visual Basic .NET? Есть ли инструменты или ресурсы, которые могут помочь в этом процессе переноса или миграции?
В этом приложение описываются некоторые ресурсы, посвященные анализу программ, написанных на Visual Basic 6 и их переносу на Visual Basic .NET. Вы узнаете о некоторых важных функциях Visual Basic 6, которые больше не поддерживаются в Visual Basic .NET, стратегиях, рекомендуемых Microsoft для переноса приложений Visual Basic 6, и о интернет-ресурсах, которые подробно документируют процесс обновления. Вы также узнаете, как использовать Visual Basic Upgrade Wizard (Мастер переноса Visual Basic), который может автоматически преобразовать часть или все приложение Visual Basic 6 для использования его в Visual Basic .NET 2003.
Оценка совместимости ваших программ на Visual Basic 6
Visual Basic .NET является значительно переработанной версией языка программирования Visual Basic и, вообще, представляет собой обновленный подход к программированию для Microsoft Windows. Это изменение дает множество преимуществ: пересмотренный синтаксис Visual Basic, который подчеркивает ясность и легкость сопровождения кода; новые библиотеки классов .NET Framework, которые добавляют новую функциональность и устраняют сложность вызова API Windows; истинно объектно-ориентированные функции, включая наследование; новую модель программирования баз данных ADO.NET, которая предоставляет доступ к истинно распределенным источникам данных; новые элементы управления в окне Области элементов, включая элементы управления Web Forms для интернет-программирования. Однако эти новые функции не даются даром - в Visual Basic .NET поддерживается не весь код Visual Basic 6, и во многих случаях вам потребуется значительно пересмотреть существующие программы Visual Basic 6, чтобы сделать их совместимыми с Visual Basic .NET.
Вы должны принять решение - можно обновить существующий код на Visual Basic 6, а можно продолжить сопровождать часть его на Visual Basic 6, который по-прежнему будет поддерживаться и продаваться Microsoft. Для каждого приложения на Visual Basic 6 у вас есть три варианта действий.
- Оставить ваши программы в формате Visual Basic 6. Microsoft продолжает поддерживать Visual Basic 6, и будет делать это в обозримом будущем.
- Обновить часть вашей программы на Visual Basic 6 (например, одну или несколько компонент) и заставить их взаимодействовать с компонентами COM, созданными в Visual Basic 6.
- Обновить всю программу Visual Basic 6 на Visual Basic .NET 2003.
Ваше решение будет зависеть от целей вашего проекта. Если ваше приложение Visual Basic 6 в целом закончено, если вы находитесь на стадии сопровождения, или если ваша программа основана на некоторых более старых компонентах, которые не представляется возможным быстро обновить, вы можете оставить программу в формате Visual Basic 6. Если ваше приложение все еще разрабатывается, если оно активно использует XML или веб-страницы, или если оно будет использовать распределенные источники данных, перенос программы на Visual Basic .NET 2003 будет оправданным.
Проблемные вопросы
Microsoft предоставила список неподдерживаемых или проблемных функций Visual Basic 6, которые при переносе приложения в Visual Basic .NET потребуют специального внимания. Этот список включает следующие функции.
- Элемент управления OLE Container. Этот элемент управления ActiveX не поддерживается Visual Basic .NET и для него нет замены.
- Динамический обмен данными. Методы Dynamic Data Exchange (DDE) больше не поддерживаются. Приложения, которые зависят от DDE, должны быть пересмотрены и должны использовать другой метод межпрограммного взаимодействия, такой, как API SendMessage.
- Привязка данных DAO или RDO. Привязка данных к источнику данных DAO или RDO в Visual Basic .NET не поддерживается. Элементы управления Data и RemoteData в Visual Basic .NET больше не доступны. Приложения, которые основаны на привязке данных DAO или RDO, должны быть обновлены и использовать ADO в Visual Basic 6 или должны использовать ADO.NET после обновления в Visual Basic .NET.
- Проекты Visual Basic 5. Проекты Visual Basic 5 перед переносом в Visual Basic .NET должны быть перенесены в Visual Basic 6. Чтобы перейти в Visual Basic 6, откройте проект в Visual Basic 6 и выберите обновление элементов управления. Затем перед переносом в Visual Basic .NET сохраните проект в Visual Basic 6.
- Приложения со страницами ActiveX DHTML. Это клиентские технологии Веб, которые не могут быть автоматически перенесены в Visual Basic .NET. Они должны быть оставлены в Visual Basic 6. Эти приложения хорошо взаимодействуют с технологиями Visual Basic .NET; вы можете переходить со страницы приложения ActiveX DHTML на страницу веб-формы и обратно.
- Документы ActiveX. Как и в случае со страницами приложений ActiveX DHTML, документы ActiveX не могут быть автоматически перенесены в Visual Basic .NET. И аналогично страницам приложений ActiveX DHTML и страницам Web Forms, вы можете переходить с документа ActiveX на веб-страницу Microsoft ASP.NET и обратно, так что можно оставить эти приложения в Visual Basic 6.
- Страницы свойств. Они не поддерживаются в Visual Basic .NET потому, что браузер свойств Windows Forms достаточно гибкий и, в отличие от браузера свойств Visual Basic 6, может отображать и редактировать все классы. Вы должны заново реализовать свойства со страниц свойств как стандартные свойства элемента управления.
- Пользовательские элементы управления. Пользовательские элементы управления, созданные в Visual Basic 6, могу использоваться в Visual Basic .NET. В настоящий момент изменения в эти элементы управления должны вноситься в Visual Basic 6.
- WebClasses. WebClasses из Visual Basic 6 не могут быть перенесены в веб-формы Visual Basic .NET. Однако WebClasses могут взаимодействовать с веб-технологиями Visual Basic .NET - вы можете переходить из Visual Basic 6 WebClass на приложение ASP.NET или из приложения ASP.NET в Visual Basic 6 WebClass.
- Дополнения к Visual Basic. Так как Visual Basic .NET использует Microsoft Visual Studio IDE, объектная модель была значительно переработана с целью повышения ее гибкости и сильно отличается от Visual Basic 6. Дополнения должны быть переписаны на Visual Basic .NET. Преимущество здесь в том, что эти дополнения будут доступны для всех языков.
- Графика. Графические методы форм Visual Basic 6, такие, как Line и Circle, не могут быть автоматически перенесены с помощью Visual Basic Upgrade Wizard (Мастер переноса Visual Basic).
- Перетаскивание с помощью мыши. Функция перетаскивания с помощью мыши не может быть автоматически перенесена с помощью Visual Basic Upgrade Wizard (Мастер переноса Visual Basic).
- Тип данных Variant. Visual Basic .NET больше не поддерживает тип данных Variant из Visual Basic 6. Когда приложение переносится с помощью Visual Basic Upgrade Wizard (Мастер переноса Visual Basic), тип данных Variant преобразуется в Object.
- Различные API Windows. По-прежнему законным является прямой вызов Windows API из приложения на Visual Basic .NET, но многие существующие вызовы API больше не требуются из-за функциональности библиотек классов .NET Framework. Существующие вызовы Windows API в приложениях Visual Basic 6 могут потребовать пересмотра, хотя прямые вызовы все еще разрешены.
Ресурсы интернета, посвященные переносу приложений
Microsoft понимает, что перенос существующего кода очень важен, так что она собрала в сети многочисленные ресурсы, облегчающие этот процесс - или, по крайней мере, делающие его более понятным. Следующий веб-сайт содержит полезную информацию для оценки существующих приложений Visual Basic 6 и конвертирования их в Visual Basic .NET:
http://msdn.microsoft.com/vbasic/techinfo/articles/upgrade/default.asp
На этом сайте вы найдете документы о различных аспектах переноса приложений Visual Basic 6, технические сессии (мультимедийные презентации), описывающие важные инструменты миграции и решение проблем, и описание планирования процесса переноса. Этот сайт периодически меняется, так что если вы переносите в Visual Basic .NET одно или несколько приложений, то регулярно следите за ним.
Действия при переносе
Если вы решили, что наилучшим выбором для вас является перенос существующих приложений Visual Basic 6 в Visual Basic .NET, то вот общие действия, рекомендуемые Microsoft.
- Установите на один и тот же компьютер Visual Basic 6 и Visual Basic .NET 2003. Установка Visual Basic 6 не обязательна, но если переносимый проект использует элементы управления или компоненты, которые не имеют переносимых эквивалентов в Visual Basic .NET, вы при переносе можете столкнуться с дополнительными ошибками и проблемами.
- Скомпилируйте и запустите ваше приложение в Visual Basic 6, чтобы убедиться, что оно работает корректно.
- Для переноса запустите Visual Basic Upgrade Wizard (Мастер переноса Visual Basic).
- Просмотрите отчет о переносе и комментарии в нем, и сделайте необходимые изменения.