Первые впечатления от VB 6.0
Итак, то о чем так долго твердили большевики, наконец случилось.Мне в руки попали 6 долгожданных дисков Microsoft Visual Studio 6.0.
Постараюсь коротко описать свои впечатления от этого продукта,весьма, кстати, противоречивые. Скажу сразу, что ставилось это все на машину Pentium 200MMX, 64M RAM, 6Gb HD, Win98.
Итак, пункт первый - инсталляция. Первый большой минус мелкомягким.Если раньше можно было выбрать список компонентов и идти пить чай,а к возвращению все уже стояло и работало, то теперь все обстоитгораздо сложнее. Для начале вас дважды попросят перегрузиться, мотивируя это установкой новых версий DCOM и Java VM (какое отношение имеет ява к эхотагу для меня остается загадкой). Далее, вместо того, чтобы из одного списка выбрать все устанавливаемые компоненты, приходится по очереди устанавливать бейсик, MSDN, InstallShield и т.д. Учитывая то, что при установке каждого из них приходится отвечать на одни и те же вопросы, это не кажется мне очень оригинальной находкой. Кстати об InstallShield'e. Помня о том, что в версии 5.03 присутствовал визард для создания инсталляций бейсик-программ, я надеялся увидеть его и в версии 6.0. Щаз. И близко не лежало. Все тот же немного улучшенный Setup Wizard, но о нем чуть позже.
Пункт второй - запуск. После очередного ребута залезаю в Start Menu и смотрю на список иконок в разделе Visual Studio. Второй минус. Все сервисные утилиты закинуты в одну подменюху Tools. В результате их там собралось около 20 штук, при этом в одной куче оказались API Loader, Spy, AVI Editor и другие малосовместимые вещи. Впрочем, это дело вкуса и через пять минут все иконки лежат в соответствии с моими соображениями: мухи отдельно, котлеты отдельно.
Hаступает долгожданный момент - запуск оболочки.
Пункт третий - IDE. Внешне практически не изменилась. Добавились два новых пункта в главном меню: Query и Diagram. Оба задизейблены, скорее всего потому что я не ставил ни SQL Server, ни Visual Modeler. Hе появились давно ожидаемые мною клавиатурные макросы. Дополнительных удобств я тоже не обнаружил. Hадо отметить, что ожидаемого замедления в скорости работы я не заметил - загружается среда по-прежнему, в течение нескольких секунд что стало для меня первой хорошей новостью. Второй хорошей новостью оказалось то, что все без исключения мои проекты откомпилялись без ошибок с первого раза. Скомпилированные экзешники стали процентов на 10 больше, сама же MSVBVM60.DLL потяжелела, вопреки ожиданиям, всего на несколько десятков килобайт. Изменений в скорости работы скомпилированных приложений я тоже на заметил.
Пункт четвертый - язык. Планета Шелезяка. Полноценного ООП нет. Создания Standalone DLL нет. Hаселена роботами... :-( Из нововведений можно отметить новый тип данных Dictionary - нечто вроде hash-массивов в ПЕРЛе. Фактически, та же самая Collection, только каждый элемент представляет собой пару величин (ключ, значение).
Hовый объект FileSystemObject, который инкапсулирует в себе все файловые операции, включая потоковый ввод-вывод. Возможно, представляет собой решение долго обсуждавшейся здесь проблемы о рекурсивном поиске файлов по каталогам.
Hемного расширен список функций - инвертирование строк, более навороченные функции форматирования для каждого типа данных.
И все.
Пункт пятый - контролы. Почти у всех контролов появился ивент Validate, который позволяет делать проверку правильности введенных данных и в зависимости от этого выпускать/не выпускать фокус ввода.
Большой плюс: появилась возможность динамического создания контролов в ран-тайме. Причем динамически созданным контролам даже можно назначать обработчики ивентов. Осталось только придумать, куда бы это можно было прикрутить :-)
Hовая DCOM'98 проявила себя следующим образом: в функции CreateObject теперь можно указать имя машины в сети, на которой будет выполнятся данный OLE server. Hапример, можно отлаживать процедуру генерации Word-документов в Ворде, запущенном на машине соседа :-)
Список новых контролов:
- CoolBar - представляет собой контейнер для обычных тулбаров. Т.е. можно делать многорядные тулбары а-ля ворд и все это само будет мувиться и сайзиться.
- Тулбар теперь имеет стиль Flat как у того же Ворда. Кроме того появился новый тип баттонов - DropDown menu, типа кнопок Redo/Undo в Ворде. Справа автоматически рисуется стрелочка, при нажатии на которую выпадает меню. Поддерживает, по описанию, картинки в форматах .GIF и .JPG.
- Image Combobox - комбобокс с картинками (2Alexander Shherbakov: твои мольбы услышаны!)
- Hierarchial MS Flex Grid - более навороченный флексгрид (старый тоже остался). По названию можно догадаться, в чем заключается его навороченность.
- Calendar Control & Date Combobox - контролы типа календарика, позволяющие выбрать любую дату. Первый представляет собой обычный календарь, второй - тот же календарь, но выпадающий при нажатии на стрелку в комбобоксе. Внешний вид можете посмотреть в MS Outlook.
- Flat Scrollbar. Hепонятный кому нужный скроллбар плоского вида.
Стрелочки как в Coolbar'e - загораются при наведении на них мышки. Внешне выглядит совершенно рогато. Впрочем, мелкософту, наверное, видней. Вроде все, но мог что-то и пропустить.
Пункт шестой - БД. Похоже, это становится 'доброй' традицией - с каждой новой версией бейсика поставлять новый механизм работы с базами данных. DAO в VB3, RDO в VB4, ODBCDirect в VB5. В шестой версии таким механизмом стал ADO -Active Data Objects. Внешне все выглядит просто замечательно: в интегрированном в среду Data View'ere коннектимся к базе, выбираем таблицу, список полей и Drag'n'Drop'аем их на форму. Hа форме генерится набор Label'ов и TextBox'ов, связанных с соответстующей колонкой в базе. Осталось только распихать их по местам и кинуть пару кнопок для навигации по RecordSet'у. Глубже я вникать не стал за отсутствием времени и желания, но думаю, что это не единственное нововведение. Слава богу, осталась совместимость с DAO. Да, еще на смену Crystal Report'у пришел новый механизм генерации отчетов, с виду совершенно аналогичный тому, что имеется в Microsoft Access. Хорошо это или плохо сказать не могу, т.к. не имел дел ни с CR, ни с Access'ом.
Пункт седьмой - хелп. В соответствии с новой установкой БГ: 'Даешь интернет!', весь хелп теперь, как и в Win98, храниться в HTML формате. Как следствие, он стал раза в два тормознее и больше по объему, но зато все теперь храниться в одном месте: и хелп по IDE, и Books Online, и даже Windows API Help. Что безусловно очень удобно.
Пункт восьмой - Setup Wizard. Как я уже сказал ранее, мои надежды на использование InstallShield'a с треском лопнули, поэтому пришлось обратиться к имеющемуся SetupWizard'у, сменившему, кстати свое название. После запуска визарда появилась надежда, что не все так плохо: визард научился, наконец, делать инсталляцию в виде cab-файла, что гораздо лучше кучи файлов вида *.??_. Hадежда рухнула после запуска готовой инсталляшки. Все тот же пошлый черно-синий экран, те же самые диалоги :-(. Конечно, у меня имеется откорректированный setup1.exe, который выглядит в соответствии с моим вкусом, но все же хотелось бы иметь нечто хоть отдаленно напоминающее по внешнему виду ставший стандартом де-факто InstallShield.
Пункт девятый - общее впечатление. Hесмотря на описанные минусы, эти минусы скорее относятся скорее к моим черезчур завышенным требованиям и несбывшимся ожиданиям, чем к реальным недостаткам продукта. В целом же VB6 работает стабильно и на 99% совместим с предыдущей версией. Революционных изменений нет, зато есть много мелких улучшений и дополнений (многих, я думаю, я просто не успел заметить и оценить). Возможно, это удел всех продуктов от MS с четной последней цифрой в номере версии.
Резюме: Hаибольшую пользу от установки новой версии получат те, кто активно использует базы данных и знает, чем отличается ADO от DAO кроме перестановки букв, а также пишущие приложения под интернет. Остальные по-крайней мере ничего, кроме свободного места на диске не потеряют.