В конце августа Microsoft объявила о выпуске второго сервисного набора Service Pack 2 (SP2/ VS97) для обновления своего инструментального комплекса Visual Studio 97, а также автономных пакетов, входящих в его состав: Visual Basic 5.0, Visual C++ 5.0, Visual InterDev 1.0, Visual J++ 1.1, Visual FoxPro 5.0 и Visual SourceSafe 5.0
Как и предыдущий пакет обновлений SP1/VS97, появившийся в начале июля, второй сервисный набор содержит только исправления ошибок и не включает каких-либо новых функциональных возможностей (в отличие от выпущенных летом аналогичных сервисных пакетов для Office 97 и Windows NT 4.0). Исправления касаются следующих продуктов.
Исправлена ошибка, которая не позволяла загружать программные примеры с помощью некоторых версий. Решена также проблема с производительностью, из-за которой среда Developer Studio иногда в процессе операций поиска занимала время компьютера на 100%.
Visual Basic. Исправлены ошибки при работе со средой разработки, объектом Printer, элементом управления Internet Transfer, а также в ряде других элементов управления и библиотеках, поставляемых с VB 5.0. Реализована возможность создания встроенных вариантов элементов управления и динамических библиотек (на основе новой модели Apartment Model Threading) для функционирования в среде в Internet Explorer 4.0, поддержки работы компонентов ActiveX DLL и исполняемых модулей, которые показывают формы в многопотоковых режимах, а также разработки многопотоковых компонентов, использующих утилиту проектирования UserConnection.
Visual C++. Устранены некоторые ошибки в работе отладчика. Последний теперь позволяет контролировать ситуацию с созданием строковых переменных длиной свыше 128 символов (это часто требуется при отладке шаблонов), предотвращая ошибки из-за нарушения доступа к данным. Отладчик также может стартовать в интегрированном варианте конфигурации Visual Test и VC++.
Visual Database Tools. Исправлена ситуация, при которой обновление отдельной строки вызывало замену данных во всех помеченных строках.
Visual FoxPro. Решены проблемы с нарушением доступа к данным, работой с Word 97 через OLE Automation, а также вопросы, связанные с печатью и предварительным просмотром отчетов в среде Windows NT. Внесены также исправления в систему Anomaly Tracking System.
Visual SourceSafe. Исправлен ряд ошибок, связанных с оперативной памятью, возникающих при интеграции разных продуктов в среде Visual Studio, а также проблемы с нарушением доступа к данным при использовании Analyze, когда некоторые файлы типа Status.dat держатся открытыми без всякой в этом необходимости.
Visual InterDev и Visual J++. Для них нет специальных исправлений, но на их работу могут влиять ошибки в других продуктах.
Полный список исправлений, реализованных в SP2 (в их число автоматически попали все модификации из SP1), а также ряд дополнительных рекомендаций по работе с этим пакетом можно найти на Web-странице по адресу: www.microsoft. com/vstudio/sp. Оттуда же можно переписать и программные модули SP2/ VS97, которые сформированы в нескольких вариантах для различных категорий пользователей.
1. Набор для английской версии Visual Basic (объем - 7,3 Мб).
2. Набор для локализованных версий Visual Basic (12,2 Мб).
3. Основной набор CORE: Visual Basic, Visual InterDev, Visual J++, Visual FoxPro и Visual SourceSafe (34,6 Мб).
4. Полный набор FULL: все, что входит в состав CORE, плюс обновления для Visual C++ updates (87,8 Мб). Этот вариант обновлений будет распространяться на отдельном компакт-диске вместе с последними версиями ODBC-драйверов.
5. Набор для Visual Basic для RISC-платформы, Alpha (8,5 Мб). Новый вариант всех RISC-файлов для VB и VC++ будет также доступен на отдельном компакт-диске.
Полный вариант обновлений пакета Service Pack 2 будет записан на сентябрьском выпуске MSDN 4-го уровня (Universal). Кроме того, уже выпущены два отдельных компакт-диска с разными вариантами SP2/VS97: набором FULL (без RISC-платформы) и набором для RISC-платформы.
По сведениям, полученным нами в фирме “Диалог. СФТ” - авторизованном дилере Microsoft по средствам разработки, - отдельные компакт-диски с SP2/VB87 (набор FULL) должны появиться в Москве уже в середине сентября. Как и предыдущие аналогичные пакеты, они будут бесплатно распространяться среди клиентов фирмы, купивших соответствующие программные продукты. Для всех остальных приобретение компакт-диска обойдется в сумму около $15.
Андрей Колесов
Телефоны: Microsoft АО - (095) 967-8585, “Диалог. СФТ” - (095) 329-4533.
Многопотоковая модель в Visual Basic 5.0
Одно из важнейших обновлений сервисного пакета SP2/VS97 состоит в появлении возможности использования модели Apartment-Model Threading (процессы с использованием встроенных моделей) в проектах, реализованных с помощью Visual Basic 5.0. В частности, это позволяет создавать элементы управления ActiveX и ActiveX-документы, адаптированные для работы в среде многопотоковых клиентов, например Internet Explorer 4.0.
Дело в том, что IE 4.0 выводит на экран окна в режиме многопотокового выполнения. Когда два разных окна в IE 4.0 используют копии одного и того же элемента управления ActiveX или Java-аплета, то они (окна) должны предоставить копию для каждого потока. Аплеты и элементы управления, созданные в однопотоковом варианте, не предоставляют такие копии для каждого процесса, поэтому одна из копий не будет фактически выполняться из-за кросс-потоковых операций.
Исправления, сделанные в SP2/VS97 для компиляции элементов управления ActiveX в среде VB, устраняют необходимость написания сложного многопотокового кода, который нужно создавать при работе в других инструментах и языках программирования. При работе в среде IE 4.0 копия каждого элемента управления запускается в том же самом потоке, что и окно, которое его содержит, потому что этот элемент управления поддерживает отдельный блок данных (Apartment) для каждого клиентского потока.
Кроме того, теперь с помощью технологии Apartment-Threading можно создавать DLL-модули для изображения форм. Таким образом, больше нет необходимости подавлять различные вмешательства пользователя в работу программы с помощью опции Unattended Execution (несопровождаемое выполнение) для создания многопотоковых EXE- и DLL-модулей. Сейчас можно просто выделить часть пользовательского интерфейса приложения в виде нескольких асинхронных компонентов и выводить на экран модельные формы без блокировки выполнения кода и форм в других потоках.