Главная страница Visual 2000 · Раздел для разработчиков ПО

Что нового ожидается в VB 7.0

Андрей Колесов

© 2000, Андрей Колесов
Авторский вариант. Статья была опубликована c незначительной литературной правкой в журнале "КомпьютерПресс" N 9/2000, компакт-диск.


Появившаяся еще в начале года информация...

Появившаяся еще в начале года информация о том, что в версии VB 7 ожидается появление множества сюрпризов, вызвала повышенный (по сравнению с предыдущими выпусками) интерес пользователей этого популярного инструментария. На эту тему появился ряд англоязычных статей, а также отзывов специалистов, которые успели ознакомиться с новой версией. В данной статье попытаемся мы обобщить имеющуюся информацию, но предварительно — несколько замечаний.

Окончательная дата выпуска VB 7 (и всего Visual Studio 7) пока не определена, скорее всего, он появится не ранее начала следующего года. Более того, сегодня продукт существует только в альфа-версии (внутреннее тестирование), бета-версию обещают выдать лишь в начале осени. VB 7 демонстрировался на специализированных конференциях разработчиков (VBITS, Microsoft DevCon), но это были закрытые показы. Официальные заявления Microsoft о нововведениях VB 7.0 носят общий характер, при этом представители корпорации подчеркивают, что в настоящий момент (начало августа) предоставить конкретную информацию не могут, так как до момента появления продукта в нем может произойти много изменений.

Эти предположения отражают реальную картину: из опыта прошлых лет известно, что окончательная функциональность инструмента определяется в последний момент (что-то появляется уже после выхода бета-версии, а что-то и пропадает). В данном случае нужно отметить, что предварительные закрытые демонстрации, утечка информации об ожидаемых новшествах, появление слухов и пр. — конечно же, продуманная маркетинговая акция, в ходе которой Microsoft изучает необходимость включения тех или иных инноваций. В том числе определения тех возможностей, с отсутствием которых тянуть уже нельзя (это может вывести из себя даже истинных поклонников VB).

Здесь нужно вспомнить, что история VB представляет собой классический пример строго дозированного расширения функциональности системы. Речь идет не о принципиальных новшествах, которые ранее вообще не использовались в системах программирования, а о давно известных вещах. Например, только в VB3 появилась возможность обязательного объявления переменных, в VB4 — создания повторно используемых программных компонентов, в VB5 — компиляция в настоящий машинный код и разработка элементов управления ActiveX. В VB 7 также ожидается появление многих давно ожидаемых функций.

В начало статьи

VB как составная часть Visual Studio

По мнению Microsoft, главной задачей сегодня является быстрое построение надежных, масштабируемых, многоуровневых Web-приложений. Имеющиеся сейчас средства разработки не в полной мере отвечают этим требованиям. Поэтому главный акцент при создании очередной версии инструментов Visual Studio сделан на необходимости максимально упростить создание Web-приложений масштаба предприятий. За счет повышения их производительности, возможности реализации модели Web-разработки "End-to-End" и использования масштабируемых повторно используемых Web-компонентов Visual Studio должен обеспечить эффективную и быструю адаптацию бизнес-систем к изменяющимся рыночным условиям.

Ключевые новшества следующей версии Visual Studio будут иметь развитие в следующих основных направлениях:

В настоящее время в заявлениях о Visual Studio 7.0 речь идет пока о трех ключевых продуктах, которые Microsoft позиционирует следующим образом:

Учитывая особую нацеленность на создание Web-приложений, можно предположить, что InterDev станет частью интегрированной среды VS 7.0. Разумеется, встроенный HTML-редактор будет поддерживать технологию IntelliSense (подсказка синтаксиса функций, методов и свойств, завершение ввода тэгов).

В начало статьи

Что нам обещают в VB 7

Ключевые новшества — Web-формы, Web-сервисы и полная объектно-ориентированная модель языка. Однако начнем описание VB 7 с других интересных мелочей. По некоторым сведениям, VB и VC++ будут иметь единую среду разработки. Более точно известно, что VB 7 включает новый редактор меню. По общим оценкам специалистов, которые уже работали с ним, модернизированная версия Menu Editor стала намного удобнее, позволяя, в частности, создавать меню визуальными методами.

В дополнение к режиму Option Explicit (обязательное объявление переменных) появится Option Strict — строгое использование типов данных, запрет неявного преобразования типов (мы в наших "Советах" не раз отмечали крайнюю необходимость такой функции).

Еще один важный момент — управление процедурой компоновки исполняемого модуля. Нам уже приходилось отмечать, что многие VB-программисты (из тех, кто не работал с другими системами) вообще не знают, что процедура создания исполняемого модуля или DLL состоит на самом деле из двух разных операций: компиляции (трансляция исходных модулей проекта в объектные модули) и компоновки (стыковка всех объектных модулей в один загрузочный). В VB до сих пор не было такого разделения по той простой причине, что Microsoft не позволял подключать к проекту объектные модули, откомпилированные вне данного проекта (не важно — с помощью VB или другого инструмента). Теперь нам обещают разрешить такую компоновку с подключением внешних объектных модулей и объектных (статических) библиотек (они традиционно имеют расширение OBJ и LIB).

Примечание. Нужно иметь в виду, что «объектный модуль» (или библиотека) — очень старый термин, не имеющий отношения к современным "объектам" (неким исполняемым программным компонентам). Объектный модуль — это результат компиляции исходного (текстового) модуля, который пригоден для дальнейшей обработки компоновщиком программ.

Напомню, что такая возможность существовала еще во времена QuickBasic и Basic PDS (QBX). Там подключение внешних объектных модулей к проекту при работе в среде выполнялась с помощью создания специальной QBL-библиотеки (что-то вроде специального модуля поддержки проекта).

В начало статьи

ASP + Web Forms

Речь здесь идет не просто о конструировании Web-форм, а о новой технологии создания Web-приложений, которая будет поддерживаться всеми инструментами, входящими в состав Visual Studio. Как известно, в настоящее время VB поддерживает два типа Web-приложений – WebClass (серверные) и DHTML (клиентские), а InterDev обеспечивает разработку Active Server Pages (ASP). Такое разнообразие создает для пользователей проблему выбора, так как функциональность разных методов различается.

Microsoft обещает, что Web Forms станет преемницей ASP и WebClass, объединив достоинства обеих технологий. Тем не менее создается впечатление, что речь идет, скорее, о развитии WebClass-технологии, реализованной в VB 6.0 (см. "VB6 упрощает разработку для Web" и "Создание DHTML-приложений с помощью VB6" в "КомпьютерПресс" N 5'99). Страница Web Forms состоит из двух частей: шаблона в виде HTML-файла и файла с программным кодом. Такое разделение, в частности, повышает скорость выполнения программы, так как используется режим выполнения машинного кода (DLL), а не интерпретации скрипта. Кроме того, для написания кода можно применять любой язык программирования, а создаваемые компоненты могут использоваться повторно. Создавать HTML-шаблоны можно с помощью встроенного редактора или внешнего, специализированного (в VB 6.0 встроенный конструктор Web-форм был откровенно слабым).

Подразумевается, что VB-программисты смогут формировать Web-интерфейсы почти так же, как они создают сейчас формы Windows. Используя палитру инструментальных средств, специально сгенерированных, чтобы поддержать любую указанную версию HTML, можно будет с помощью метода "перетащи и оставь" создавать пользовательский интерфейс на базе Web и писать сервер-ориентированный код для каждого объекта так же, как они это делают для форм на базе Windows. Код для Web-форм постоянно находится на сервере; а HTML генерируется "на лету". Элементы управления Web-форм преобразуются в HTML-объекты по мере выполнения кода на сервере. Как обещает Microsoft, VB 7.0 будет использовать "первоклассный" HTML-редактор, входящий в состав Visual Studio и поддерживающий работу с различными версиями HTML (например, 3.2, 4.0 или XML).

Подобные инструменты создания Web-форм уже существуют в версии Visual Studio 6.0 (в Visual Basic и Visual InterDev). Однако функциональность их для VB пока заметно уступает средствам создания обычных оконных форм. В новой версии пакета возможности проектирования Web-форм будут значительно расширены и доступны для всех инструментов.

В плане подготовки к использованию технологии Web Forms рекомендуется применять многоуровневую архитектуру приложений. В этом случае переход к Web-приложениям будет заключаться только в достаточно простой замене интерфейса.

В начало статьи

Web Services

Это некая принципиально новая платформно-независимая технология, связанная с использованием стандарта XML и протоколом доступа к простым объектам (Simple Object Access Protocol — SOAP), которая будет широко интегрирована в средства разработки. Здесь пока еще многое выглядит весьма туманно, но ключевая идея состоит в создании компонентов уровня бизнес-логики, которые взаимодействуют с внешними объектами с помощью стандартных Web-протоколов. При этом Microsoft обещает обеспечить совместимость с UNIX и Linux.

Проще говоря, в данном случае приложение обращается за выполнением некоторой функции не к DLL или ActiveX DLL, а к компоненту на удаленном компьютере с помощью Интернет-протокола. Создание нового типа компонентов выполняется в VB 7 с помощью оригинального проекта, называемого Web Service. Выглядит это примерно следующим образом:

Разработчик создает проект типа Web Service с названием RatingService, добавляет в него модуль класса с именем ClassComponent и пишет в него функцию для решения некоторой задачи:


Public Function GetRate (ByVal ticker As String) As String
  ' Решаем — покупать или продавать акции
  If ticker = "ACME" Then
    GetRate = "Покупать!"
  Else
    GetRate = "Продавать!"
  End If
End Function

При построении проекта с данной функцией VB автоматически сформирует XML-описание этой функции и опубликует его на Web:


<?xml version='1.0' ?>
<methods href='http://Kolesov/RatingService'>
  <method name='GetRate' href = 'GetRate'>
    <request>
      <param dt='string'>ticker</param>
    </request>
  </method>
</methods>

Теперь вы можете обратиться к этой функции с помощью обычного браузера (с включенной в него XML-поддержкой). Наберите такой URL:


http://kolesov/RatingService/ClassComponent.methods/GetRate?ticker=AMCE

и вы получите в окне браузера результат:


<?xml version='1.0' ?>
<response>Покупать</response>

Созданные средства Web Services можно также подключать к VB-проекту. Причем эти функции могут быть созданы, например, с помощью UNIX-инструментов и работать в среде Web-сервера Apache.

В начало статьи

Новшества языка

В течение нескольких лет идут постоянные дебаты о том, может ли Visual Basic считаться языком объектно-ориентированного программирования (ООП). С одной стороны, элементы ООП в нем были всегда, и их число росло от версии к версии. С другой — многих нужных ООП-возможностей в нем не было. Похоже, появление VB 7 положить конец всем этим дискуссиям, так как все необходимые атрибуты ООП в нем будут реализованы.

Основные новшества языка в VB 7 заключаются в следующем: