oldi

Новинки издательства «Питер»

Алексей Федоров

Visual Basic и VBA для профессионалов

Delphi 5: учебный курс

Microsoft SQL Server 7 для профессионалов

 

В данном обзоре мы ознакомимся с новинками издательства «Питер». Первые две книги представляют интерес в первую очередь для разработчиков на Visual Basic и Delphi. Следующие три книги посвящены Microsoft SQL Server — одной из лучших на сегодняшний день серверных СУБД, которая работает на любой 32-битной платформе Windows, — «Microsoft SQL Server 7 для профессионалов», «Administering SQL Server 7. Сертификационный экзамен — экстерном» и «Database Design on SQL Server 7».

Visual Basic и VBA для профессионалов

Эта небольшая по объему книга (в ней чуть более 400 стр.) посвящена новым возможностям Visual Basic 6, о которых рассказано с позиции профессионалов. Авторы — Эванджелос Петруцос и Кэвин Хау решили выбрать несколько нетривиальных, с их точки зрения, тем и рассказать о них. В результате получилась книга «Visual Basic и VBA для профессионалов» (оригинальное название — Visual Basic 6 Developers Handbook, издательство Sybex, 1999), которая посвящена ряду аспектов языка, содержит законченные примеры и рассчитана в первую очередь на программистов, создающих приложения в архитектуре «клиент-сервер».

Книга состоит из 17 глав, которые в большинстве своем не связаны друг с другом, поэтому их можно читать в любой последовательности.

«Visual Basic и VBA для профессионалов» открывается главой, посвященной объектам ADO. Здесь мы найдем краткое описание объектной модели ADO и ряд примеров, показывающих выборку данных, работу с хранимыми процедурами и транзакциями. Отметим, что авторы неверно указывают, что в ADO возможно использование только ODBC-драйверов. Впрочем, во всех примерах данной главы (за исключением примера с транзакциями) для доступа к Microsoft SQL Server используется ODBC-драйвер.

Второй главе, посвященной разработке интерфейса, отведено всего шесть страниц, и вряд ли в ней вы найдете какие-то откровения. Далее следует глава, в которой рассматриваются трехуровневые приложения. Уровни имеют следующие названия: «пользовательский», «коммерческий» и «уровень данных», а также «ближний/средний/дальний» и «первый/второй/третий». Первый уровень представляет собой обычную программу, которая взаимодействует с DLL, реализующей второй (коммерческий) уровень. Почему сделано именно так, авторы не объясняют, но поскольку книга рассчитана на профессионалов, они должны знать, что на втором (среднем) уровне обычно располагаются бизнес-правила, определяющие логику обработки данных. Такое разделение приложения на интерфейсную часть и бизнес-логику удобно тем, что при изменении бизнес-правил достаточно изменить только коммерческий (средний) уровень и не затрагивать клиентские приложения, которые могут быть установлены у сотен и тысяч пользователей.

Четвертая глава рассказывает об объектно-ориентированном программировании на Visual Basic. Так как книга имеет небольшой объем, данной теме отведено 12 страниц, на которых приведен обзор основных возможностей Visual Basic в области ООП.

Компонентам ActiveX посвящены три следующие главы — «Построение компонентов ActiveX», «Построение элементов ActiveX» и «Построение элементов ActiveX, связанных с данными». Названия этих глав полностью отражают их содержание — в них вы найдете примеры построения компонентов и элементов ActiveX, а также
узнаете о том, как связать последние с данными. Разница между компонентами и элементами заключается в том, что компоненты не имеют пользовательского интерфейса.

Разобравшись с ActiveX, авторы переходят к рассмотрению расширений IDE с помощью надстроек. Здесь достаточно подробно описана объектная модель среды разработчика в Visual Basic и приведены многочисленные примеры использования объектов и методов для управления проектами, элементами программы и ее исходным кодом. Эта глава демонстрирует, как в достаточно небольшом объеме можно рассказать о самом главном и дать читателям основу для дальнейшего изучения технологии.

Глава 9 рассказывает об использовании функций Windows API. В ней рассмотрены функции для работы с окнами (handle здесь называется манипулятор — сколько переводов, столько и терминов!), управление приложениями, анализ структуры меню приложения, графические функции, системные функции, а также объявление функций и передача аргументов. Отдельная глава посвящена работе с реестром — в ней рассмотрены все программные манипуляции с этим системным хранилищем информации.

Затем авторы возвращаются к теме ActiveX, отведя целую главу встроенным элементам ActiveX. В ней рассматриваются стандартные элементы среды Windows — дерево, панель инструментов, набор вкладок, строка состояния и т.п. Для каждого элемента приводится информация об использовании, а также ряд примеров, поясняющих его применение в программах на Visual Basic.

Глава 12 посвящена оптимизации приложений. Здесь мы найдем советы по написанию эффективного кода, по оптимизации графических операций и использованию DLL.

Три следующие главы — «Основы программирования для Web», «Active Server Pages (ASP)» и «Создание приложений для Интернета» освещают различные вопросы, связанные с созданием Web-приложений. Здесь приведен краткий обзор интерактивных элементов, поддерживаемых в языке HTML, и дается краткое описание языка VBScript. Далее авторы обращаются к активным серверным страницам и довольно подробно разбирают объектную модель ASP, показывая основные возможности этой технологии — генерацию HTML-документов, публикацию данных и интеграцию с другими приложениями, работающими на сервере. Завершает этот тур по Web-приложениям глава, которая имеет реальное отношение к Visual Basic, — в ней рассказывается о том, как DHTML-приложения создаются средствами Visual Basic 6.

На этом изложение материалов, посвященных непосредственно Visual Basic, завершается, и две заключительные главы рассказывают о Visual Basic for Applications (VBA). В первой из них приводится краткое описание основ языка, рассказывается об автоматизации приложений Microsoft Office и использовании ряда объектов из объектной модели Word и Excel. Завершает книгу глава, посвященная объектам Outlook 98.

В целом «Visual Basic и VBA для профессионалов» отвечает поставленной авторами задаче: она дает представление об основных возможностях Visual Basic 6.0, содержит большое число примеров и не перегружена вводным материалом и излишними теоретическими рассуждениями. Естественно, эта книга не предназначена для ознакомления с продуктом — ее следует использовать как пособие по решению конкретных задач и, возможно, как сборник готовых рецептов. При этом следует понимать, что это — не толстая «Поваренная книга», а скорее «Рецепты уральской кухни».

С книгой поставляется CD-ROM, на котором читатели найдут исходные тексты всех описанных в книге примеров, демонстрационные версии продуктов сторонних фирм и описания функций API.

В начало

В начало

Delphi 5: учебный курс

Учебный курс Сергея Бобровского по Delphi 5 состоит из 12 уроков, посвященных следующим темам: язык Object Pascal, визуальные компоненты, работа с базами данных, многоуровневые приложения, Internet-приложения и дополнительные возможности Delphi.

Первую часть книги, в которой приведено описание языка Object Pascal, хотелось бы отметить особо: в достаточно компактной форме автору удалось здесь рассказать и о самом языке, и о его объектных расширениях. Далее следует описание среды и основных визуальных компонентов: для некоторых из них приведены примеры использования, для других — краткая справочная информация, однако обещанных рекомендаций по эффективному применению обнаружить не удалось. Имена всех компонентов переведены на русский язык: Движок, Быстрая кнопка, Рисуемая таблица и т.п., что воспринимается примерно так же, как Microsoft Окна.

Некоторые темы, которые можно отнести к обязательным, практически не затронуты. Очевидно, что на семи страницах нельзя рассказать о поддержке графики в Delphi, как и пяти страниц явно мало для стандартных диалоговых панелей, а две страницы, отведенные под обсуждение технологий печати, — это просто смешно.

Значительный объем в книге отведен технологии BDE и связанным с ней компонентам, утилитам и проч. В отличие от других тем, работа с базами данных освещена подробно, обстоятельно и не вызывает никаких вопросов.

После этого автор переходит к более сложным, но не менее интересным темам, среди которых — взаимодействие приложений (технологии DDE, OLE, DLL, потоки, COM; однако что общего у DLL и DDE, не объясняется), посвящает целых восемь страниц вопросам, связанным с COM/MTS, шесть страниц — CORBA, 12 страниц — MIDAS, восемь страниц — MTS и шесть страниц — ADO. При таком объеме не следует ожидать какого-либо подробного объяснения и полноценных примеров. Скорее, эту часть книги, как и следующую за ней (создание компонентов — 8 стр., активные формы — 7 стр., использование Microsoft Office — 3 стр., работа с реестром — 5 стр., InstallShield — 4 стр. и т.п.), следует рассматривать как приложение к предыдущим разделам, дописанное, видимо, всего для «полноты».

В целом «Delphi 5: учебный курс» может оказаться неплохим учебником для начинающих программистов, а также для тех, кто решил, например, освоить второе средство программирования (скажем, «Delphi как второй язык»). К сожалению, предлагаемый на обложке путь «от ученика до мастера» обрывается примерно посередине, и для восхождения к реальным вершинам вам придется сменить проводника.

В начало

В начало

Microsoft SQL Server 7 для профессионалов

Книга Евгения Мамаева и Алексея Вишневского представляет собой объемное (около 900 стр.) руководство, предназначенное для системных администраторов и программистов, использующих или планирующих начать использование Microsoft SQL Server 7.0. Книга разделена на четыре части — «Структура» (главы 1-3), «Выполнение установок» (главы 4-6), «Администрирование» (главы 7-17) и «Разработка и сопровождение баз данных» (главы 18-30).

О книге в целом можно сказать, что авторы справились с поставленной задачей — хорошо перевели содержимое соответствующих разделов Books Online, воспользовались материалами из Microsoft Backoffice Resource Kit и Microsoft TechNet и даже не поленились изменить надписи в иллюстрациях. Одним словом, сделали то, что не смогла сама Microsoft. Естественно, перевод всех 12 томов документации по Microsoft SQL Server 7.0 вряд ли под силу небольшому коллективу. Поэтому в книге представлено лишь то, что показалось авторам наиболее важным и интересным для профессионалов.

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

Помимо текстов, принадлежащих фирме Microsoft, авторы позволили себе высказать и собственные суждения. При этом точка зрения авторов не всегда совпадает с общепринятой, что особенно заметно в тех местах, где говорится о технологиях.

Позволю себе несколько цитат, чтобы пояснить, о чем идет речь. На стр. 44 мы обнаружим следующий пассаж: «Если необходимо обратиться к данным из приложения, написанного на языке высокого уровня, можно использовать специализированные API: ActiveX Data Object (ADO), DNA, RDO. Интерфейсы OLE DB и ODBC являются встроенными интерфейсами. Это означает, что запрос отправляется непосредственно серверу, избегая дополнительных трансформаций». Из приведенного текста абсолютно ясно, что авторы не понимают, что такое Windows DNA и слабо разбираются в том, как работают механизмы OLE DB и ODBC. Текст на стр. 64 подтверждает это: «Иногда, например при работе с... файлами Paradox, все действия по выборке и обработке данных выполняет сам поставщик OLE DB». То, что для работы с Paradox требуется BDE, авторам, очевидно, неведомо. На стр. 65 мы обнаружим следующий текст: «Архитектурно ADO представляет собой надстройку над OLE DB в виде библиотеки COM-интерфейсов. Это... избавляет от необходимости программировать COM-интерфейсы». Я позволю себе оставить его без комментариев — здесь и так все понятно.

На стр. 63 следующая фраза даже выделена в рамку и сопровождена примечанием: «ВНИМАНИЕ: Не путайте хранимые процедуры с функциями Transact-SQL. Процедура не возвращает значения...». Этому утверждению, естественно, верить нельзя. Процедуры, которые не возвращают значения, реализованы в языках Pascal и Fortran, а в Transact-SQL хранимые процедуры могут возвращать, более того, возвращают значения.

Не менее интересна и точка зрения на связанные серверы (стр. 176): «Работая над новой версией продукта, Microsoft позаботилась о написании всех необходимых компонентов для доступа к данным, размещенным на серверах Oracle. Также поддерживается обращение к данным ODBC, DTS, служба OLAP и др.» Очевидно, тот факт, что для работы с данными Oracle есть и ODBC-драйвер, и OLE DB-провайдер, заслуживает отдельного упоминания. При этом ни слова не сказано о том, что новые типы данных, реализованные в Oracle8, либо не поддерживаются, либо поддерживаются не так, как это должно быть. При чем здесь DTS и OLAP — вообще непонятно.

Но самый интересный текст обнаружен мною на стр. 233:«...Web Assistant Wizard… позволяет легко предоставить информацию из баз данных клиентам, обращающимся к серверу по сети Интернет. Для получения данных пользователи могут использовать обычные браузеры...» Если верить авторам, достаточно установить SQL Server, оснастить пользователей браузерами — и вперед, никаких Internet Information Server, ASP, ADO и прочего. А ведь речь шла всего лишь о том, что SQL Server позволяет сохранять данные запросов в виде HTML-файлов.

Неприятности с ODBC и OLE DB продолжаются и дальше. Например, на стр. 253 мы узнаем: «Если приложение ODBC не поддерживает OLE DB, для доступа к нему можно использовать специального поставщика OLE DB вместе с драйвером ODBC для этого приложения». И так далее…

На обложке про авторов сказано, что они — опытные инженеры и администраторы сетей, сертифицированные фирмой Microsoft. Возникает вполне закономерный вопрос: что, сертификация Microsoft не предполагает знания архитектуры и понимания взаимодействия и принципов основных компонентов?

Позволю себе еще две цитаты. На стр. 252 я обнаружил следующий текст, относящийся к Data Transformation Services (DTS): «Эта возможность особенно полезна, когда корпоративная база данных хранится на SQL Server, а торговые агенты, разъезжающие по всей стране, имеют в своем распоряжении только устаревшие портативные компьютеры с объемом памяти 1 Мбайт. Естественно, об установке на этих компьютерах Microsoft Excel, а тем более SQL Server речи не идет. В распоряжении торговых агентов только простенькие текстовые редакторы. Но им необходимо примерно раз в неделю обновлять список товаров и информацию о ценах. Используя модем, они могут подключаться к корпоративной сети и копировать текстовые файлы с необходимой информацией». Прочитав эти строки, я представил себе коммивояжеров, добирающихся до клиентов на машинах, санях, телегах, собачьих упряжках и держащих под мышкой простенькие портативные компьютеры. Примерно раз в неделю в гостиницах, общежитиях, на частных квартирах и в других местах оживают модемы и по всей стране агенты подключаются к корпоративной сети, копируя *.TXT.

Последняя цитата взята мною со стр. 317: «Ближайший конкурент Microsoft в области СУБД — это фирма Oracle с одноименным продуктом Oracle8i. В первое время после выхода SQL Server 7.0 фирма Oracle была лидером по скорости выполнения стандартных бизнес-запросов к большим базам данных. Отставание SQL Server 7.0 было настолько значительно, что многие руководители всерьез задумались о переходе на Oracle8i. Но спустя полгода после выхода SQL Server 7.0 корпорация Microsoft реализовала поддержку OLAP для своей СУБД и достигла практически такой же производительности, как и Oracle8i. В то же время стоимость системы для реализации SQL Server 7.0 была в 16 раз ниже, чем для Oracle8i (стоимость системы для SQL Server 7.0 — 600 тыс. долларов, а для Oracle8i — 10 млн. долларов)». Из приведенного текста я так и не понял: как поддержка OLAP смогла помочь Microsoft достигнуть практически такой же производительности, что и у Oracle8i, и при чем здесь разница в 9 млн. 400 тыс. долл. США? Если знаете ответ, подскажите.

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

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

 

Две следующие книги рассчитаны на тех, кто готовится к сертификационным экзаменам по Microsoft SQL Server 7 — 70-028: Administering SQL Server 7 и 70-029: Database Design on SQL Server 7. Обе книги — «Administering SQL Server 7. Сертификационный экзамен — экстерном» и «Database Design on SQL Server 7. Сертификационный экзамен — экстерном» — написаны коллективом авторов — Джеффри Р. Гарбусом, Дэвидом Ф. Паскузи и Элвином Т. Чангом и в оригинале были выпущены в 1999 году издательством The Coriolis Group, Inc. в серии Certification Insider Press.

Оба пособия имеют одинаковую структуру — первые 60 страниц посвящены теме сертификации по продуктам и технологиям Microsoft, описанию различных видов сертификации, прохождению экзаменов, советам по подготовке и т.п. Далее идет материал, относящийся непосредственно к экзаменам.

Пособие для подготовки к экзамену 70-028: Administering SQL Server 7 состоит из 14 глав и одного приложения, второе пособие более объемное — 18 глав и 3 приложения. В конце книги приводится шпаргалка — от двух до четырех страниц с наиболее важной информацией по рассматриваемой теме.

Каждая глава отражает определенную тему, знания которой проверяются на сертификационном экзамене. Структура глав одинакова — сначала идет описание ключевых терминов и необходимых приемов и знаний, затем теоретическая часть, в которой приведены базовые сведения по данной теме и список примерных вопросов для подготовки к экзамену. В отличие от книг из серии «Официальный тест» (издательство «Русская редакция»), здесь вопросы и ответы на них обычно размещены на одной странице — ответ следует сразу же после вопроса, что не совсем удобно.

Особое внимание при подготовке к экзамену следует обратить на завершающие главы пособий, в которых содержится пример экзамена. Здесь, в отличие от примерных вопросов, приводимых в главах книги, ответы содержатся отдельно и не мешают проверке знаний.

Книги, выходящие в серии «Сертификационный экзамен — экстерном», в первую очередь следует использовать по назначению — как пособие для подготовки к сдаче сертификационного экзамена. Однако поскольку они содержат лишь базовые сведения, их рекомендуется использовать совместно с другими материалами — книгами или соответствующими разделами Books Online. Эти книги также могут быть полезны тем пользователям, которые уже знакомы с предметом и им нужно лишь освежить знания. Помимо этого, вероятно, что книги из серии «Сертификационный экзамен — экстерном» могут послужить хорошим пособием для слушателей курсов.

КомпьютерПресс 9'2000