Правильная ссылка на эту страницу
http://az-design.ru/Support/SoftWare/Delphi/D3/Hend01h.shtml

Глава 1. Является ли Delphi панацеей?

  • Почему именно Delphi?
  • Безграничные возможности
  • Масштабируемость
  • Что ожидает вас впереди
  • Резюме

       Каждые два-три года появляется новая панацея — средство или технология, с помощью которых, как утверждают их сторонники, можно обеспечить создание в рекордно короткие сроки программ, не содержащих никаких ошибок. В свое время такими панацеями были СУБД клиент/сервер, CASE-технология, объектно-ориентированное программирование. Сегодня многие обратились к языку Java как к очередному средству, призванному спасти нас от всех напастей.
       Однако здравый смысл подсказывает, что панацеи нет — невозможно создать средство разработки, которое одинакового хорошо справлялось бы со всем многообразием задач программирования Если некая система позволяет быстро создавать приложения — возникает вопрос в эффективности генерируемого ею выполняемого кода. Если система обладает хорошими возможностями визуального проектирования интерфейса, то часто оказывается, что она недостаточно хороша в низкоуровневом программировании. Системы, ориентированные на архитектуру клиент/сервер, часто "отказываются" работать с базами данных таких "примитивных" СУБД, как Paradox и т.д.
       Я не буду утомлять вас заверениями, что Delphi является универсальным средством для решения всех проблем программирования. Однако не могу не отметить, что эта система сделала колоссальный шаг вперед по сравнению с остальными средствами визуального проектирования приложений. Delphi была первой системой ускоренной разработки приложений (RAD — Rapid Application Development), в которой удачно соединились средства визуального проектирования и оптимизирующий компилятор. Добавьте к этому обширную библиотеку компонентов, полную поддержку Internet и многоуровневую архитектуру баз данных и вы поймете, почему я считаю Delphi самой мощной системой разработки среди всех известных систем аналогичного назначения для Windows. Если Delphi и не является панацеей, то она очень сильно приблизилась к тому, чтобы именоваться таким образом.
       Тем не менее, несмотря на все свои достоинства, Delphi не сможет создать абсолютно безошибочную программу, если проект этой программы не был достаточно хорошо продуман. Delphi не может проектировать приложения за вас или решать, что нужно пользователям вашей программы. Более того, Delphi также не сможет думать за вас или привести к установлению мира на всей планете. Delphi — это просто инструмент, который сделает только то, что вы от него потребуете.
       Цель этой книги — научить тому, как сообщить Delphi о своих потребностях. Внимательно прочитав книгу, вы сможете овладеть всей мощью Delphi, позволяющей создавать надежные приложения баз данных архитектуры клиент/сервер. Концепции и методики, изложенные на ее страницах, помогут облегчить ваш путь к освоению принципов разработки систем клиент/сервер с помощью Delphi.

Почему именно Delphi?
       Часто, рекомендуя использовать Delphi для разработки приложений клиент/сервер людям, незнакомым с этой системой, мне приходится слышать вопрос: "А почему именно Delphi?" В конце концов, на рынке имеется немало хороших средств разработки, позволяющих создавать приложения для архитектуры клиент/сервер PowerBuilder, Visual Basic и другие подобные системы охватывают достаточно большие секторы рынка средств разработки баз данных. Почему же нужно отказываться от этих средств в пользу Delphi?

На заметку
       Хотя лично я не придерживаюсь мнения, согласно которому лучшие продукты пользуются большим спросом, однако многие считают именно так. Для сторонников количественного подхода скажу, что объем продаж Delphi постоянно превосходит совокупный объем продаж таких систем, как Visual Basic и PowerBuilder. Например, в первый же год выпуска Delphi количество проданных копий системы превысило количество проданных копий Visual Basic и PowerBuilder, вместе взятых.

       На мой взгляд, на то есть масса причин. Как я уже говорил, в Delphi удачно сочетаются средства визуального проектирования приложений и оптимизирующий компилятор, чего, к сожалению, нельзя сказать о других системах RAD. Наличие в системе компилятора или генерирование ею выполняемого машинного кода еще не означает, что получаемый код является оптимальным. Такие системы, как PowerBuilder и Visual Basic, изначально создавались на основе концепции генерации псевдокода. При выполнении приложений, созданных с помощью этих систем, полученный псевдокод интерпретировался. С выходом Delphi как компания Microsoft, так и компания Powersoft попытались внедрить в свои продукты полноценные компиляторы. По-видимому, производители внезапно "прозрели" и "поняли", что компиляция приложений в машинный код — это стоящее дело. Однако проблема заключается в том, что ни язык Visual Basic, ни язык PowerScript не предназначались для компиляции, поэтому преобразование их в машинный код оказалось достаточно трудной задачей. Что касается оптимизации получаемого кода, то о ней можно вообще не говорить.
       Если сравнивать вышеупомянутые языки с языком Object Pascal, используемом в системе Delphi, то различие видно сразу. Object Pascal всегда был компилируемым языком, и при его разработке были соблюдены все требования, выполнение которых обязательно при компиляции и оптимизации. Итог вышесказанного таков: Delphi является единственным полноценным средством промышленной разработки систем клиент/сервер. Сравнение Delphi с Visual Basic или PowerBuilder подобно сравнению современного компилятора с языка C++ с компилятором Clipper времен господства DOS. Только успех Delphi подвиг многих производителей средств разработки приложений клиент/сервер добавить в свои продукты технологию генерации машинного кода. Однако, пока они только начинают двигаться в этом направлении, развитие системы Delphi идет семимильными шагами.
       Хочу отметить, что в случае Delphi слова "оптимизирующий компилятор" не означают "медленный компилятор". В последней версии продукта представлен лучший компилятор с языка Pascal компании Borland, которая уже на протяжении многих лет удерживает пальму первенства в этой области. Компиляторы с Pascal этой компании снискали заслуженную славу за генерацию выполняемого кода, который экономно использует ресурсы компьютера и одновременно обладает высокой производительностью. Компилятор Object Pascal, используемый в Delphi, не является исключением. Более того, генератор кода Delphi — это тот самый генератор кода, который применяется компанией Borland в ее компиляторах с языка C++. Таким образом, используя Delphi, вы получаете скорость программ, написанных на языке C++, не имея головной боли, связанной с этим языком программирования.
       Однако современных разработчиков волнует не только эффективность выполняемого кода. Им нужно средство, которое было бы, с одной стороны, достаточно мощным и гибким, чтобы выполнить любую стоящую перед ними задачу, и, с другой стороны, достаточно простым и удобным в работе. Разработчики хотят иметь систему, построенную на принципах объектно-ориентированного программирования, и вместе с тем, позволяющую применять, в случае необходимости, ассемблер. Им нужна система, которая генерировала бы не только выполняемые файлы в формате ЕХЕ, но и могла создавать файлы DLL и драйверов устройств. Наконец, им нужна среда для быстрой разработки баз данных, которая не вынуждала бы их каждый раз при программировании спускаться до ядра СУБД.
       Все это и даже больше предоставляет Delphi. Это стало возможным благодаря подходу, который применила компания Borland при создании этой системы, — собрать все лучшее, что есть в средствах разработки для Windows, и объединить в одном продукте. В состав Delphi входит обширная библиотека компонентов, с помощью которой можно избежать ручного написания программ, что широко распространено в других средствах разработки. С другой стороны, программист в любой момент может прибегнуть к низкоуровневым ассемблерным процедурам. Можно создавать приложения в визуальном режиме, просто помещая нужные компоненты на форму и, вместе с тем, сохраняя доступ ко всем функциям программного интерфейса Windows, системным сообщениям и процессам. Работая в Delphi, программист может с помощью нажатия одной клавиши создать выполняемый файл в формате ЕХЕ, однако, при необходимости, можно компилировать и файлы DLL, драйверов устройств, а также консольных приложений. Наконец, несмотря на то, что Delphi является системой разработки, ориентированной на создание баз данных, вы можете с ее помощью разрабатывать любые приложения Windows, начиная от редакторов и заканчивая хранителями экранов. Даже сама система Delphi разрабатывается с использованием системы Delphi!
       Добавьте ко всему этому мощные средства отладки и вы поймете, почему Delphi является системой, равных которой практически нет.
       Итак, существует множество достоинств, благодаря которым можно выделить Delphi из ряда других средств разработки:
       — обширная библиотека классов;
       — быстрый оптимизирующий компилятор, генерирующий машинный код;
       — встроенный отладчик, равных которому нет;
       — простой в освоении механизм доступа к базам данных;
       — мощная и удобная в работе среда разработки.
       Другие средства в каждой из перечисленных областей остались далеко позади. Не знаю, какое мнение сложилось у вас, но для меня проблемы выбора не существует.

Безграничные возможности
       Несмотря на приводящиеся в средствах информации длинные перечни возможностей Delphi, у некоторых программистов может возникнуть сомнение — все ли тут в порядке? Не скрывается ли за этой словесной пеленой нечто такое, чего нельзя сделать в Delphi?
       Такие опасения беспочвенны. В отличие от других средств RAD, система Delphi полнофункциональна — в распоряжении пользователя имеется столько возможностей наращивания ее мощи, что он никогда не столкнется с задачей, которая окажется Delphi не "по зубам". Разрабатываете ли вы приложения баз данных или компоненты ActiveX, Delphi снова и снова оказывается на высоте.
       Вот лишь краткий список возможностей Delphi, которые делают ее такой гибкой:
       — прямой доступ к программному интерфейсу Windows;
       — встроенный ассемблер и поддержка программирования в машинных кодах;
       — возможность создания пользовательских компонентов VCL и ActiveX;
       — поддержка формата DLL и других выполняемых файлов Windows;
       — возможность многоуровневой разработки приложений;
       — полная объектная ориентированность
       — в программах можно создавать объекты, берущие начало как от библиотечных классов, так и от созданных программистом.
       Хочу отметить, что далеко не все инструментальные средства, обладающие поддержкой объектно-ориентированного программирования (ООП), могут похвастаться такими возможностями. Многие из систем разработки лишь имитируют объектную ориентацию, но сами по своей природе не являются продуктами, построенными на принципах ООП. С другой стороны, если какой-то продукт действительно реализован на принципах ООП, но при этом чудовищно медлителен, то его вряд ли можно считать полноценным инструментальным средством. Система разработки, претендующая на название истинно объектно-ориентированной системы, должна соответствовать четырем основным критериям.
       Наследование (inheritance). Новые объектные типы данных должны обладать возможностью наследовать свойства и методы имеющихся объектных типов.
       Полиморфизм (polymorphism). В системе должен быть реализован механизм вызова методов объекта без жесткой связи с объектным типом данных, в котором содержится программный код, образующий эти методы. Например, метод Show может выполнять абсолютно разные задачи, когда он вызывается для объекта кнопки или сетки, однако механизм его вызова должен быть тем же самым. Кроме того, если оба объекта имеют общего предка, то вызов метода Show предка через ссылку на экземпляр объекта сетки или кнопки должен приводить к отображению соответствующего элемента управления.
       Инкапсуляция (encapsulation). Данные и код программы должны образовывать единую сущность, называемую объектом. Другими словами, объекты программы должны обладать возможностью хранить элементы данных и процедуры (называемые методами). Процедурные элементы объекта должны иметь автоматический доступ ко всем элементам данных объекта.
       Преобладающая методология. Самый важный принцип. Истинно объектно-ориентированное средство разработки должно иметь ООП в качестве преобладающей методологии создания программного кода, а не в качестве дополнительной возможности, добавленной задним числом. Когда ООП является преобладающей методологией, работа средства разработки должна быть высокопродуктивной. Если же производительность системы оставляет желать лучшего, возникает подозрение относительно принципов, положенных в ее основу.
       Delphi полностью соответствует этим критериям, как и все традиционные средства ООП, такие как системы программирования на C++. Достаточно вспомнить тот малоизвестный факт, что компилятор с языка Pascal компании Borland был полностью объектно-ориентированным задолго до появления объектно-ориентированных компиляторов с языка С как компании Microsoft, так и компании Borland. Технология ООП в Delphi — это не "довесок", а краеугольный камень, на котором зиждется вся среда разработки. Добавив средства визуального проектирования приложений, компания Borland лишь избавила пользователей от утомительной работы, которая часто ассоциируется с ООП.
       Выгодно отличает Delphi от большинства других средств RAD, имеющихся сегодня на рынке, тот факт, что до того, как система стала средством визуального проектирования, она уже была истинным ООП-средством генерации выполняемого кода. Как я уже упоминал, Delphi является прямым потомком компиляторов Turbo Pascal компании Borland. Уже в конце 80-х годов компиляторы с языка Pascal, созданные этой компанией, были построены на принципах ООП и генерировали машинный код. В Delphi эта технология была поднята на новый уровень — к истинному средству RAD. Сравните теперь подходы, используемые в Visual Basic и PowerBuilder. Оба эти продукта возникли как интерпретирующие средства визуального проектирования. Только теперь сделаны попытки добавить в них технологию ООП и генерацию машинного кода. Из-за такого различия в концепциях продуктов полученные результаты разительно отличаются. Одна среда разработки с самого начала создавалась для достижения максимальной гибкости и скорости работы. Другие же предназначались прежде всего для захвата рынка, а уже потом — для превосходства в технологии. Только время покажет, какой подход оказался правильным. Для того чтобы впихнуть тяжеловесный башмак интерпретатора в изящный отпечаток (только в отпечаток — обладательница туфелек уже ушла далеко вперед!) туфельки системы, построенной на принципах ООП и генерации машинного кода, надо обладать недюжинными способностями.

Масштабируемость
       Одной из важнейших характеристик средства разработки систем клиент/сервер является его масштабируемость (scalability), т.е. возможность работы как с простейшими, так и сложными базами данных. Если какое-то средство хорошо показывает себя в работе с таблицами dBASE, дайте ему таблицу Sybase и посмотрите на результат. Часто он оказывается плачевным. Многоуровневая архитектура баз данных Delphi делает данную систему масштабируемой в такой степени, что с ней не может потягаться никакое другое средство из имеющихся на рынке. Среди возможностей, благодаря которым обеспечивается такая масштабируемость, можно выделить следующие.
       — Поддержка как таблиц, размещенных на локальном компьютере, так и хранящихся на удаленном сервере баз данных.
       — Поддержка гетерогенных запросов и доступа к различным СУБД из одного приложения.
       — Независящий от платформы доступ к базам данных с помощью использования механизма Borland Database Engine (BDE), позволяющего приложениям переключаться с одной СУБД на другую.
       — Быстрые и эффективные драйверы BDE для всех основных платформ клиент/сервер.
       — Компоненты DataSet с виртуальными методами, позволяющие разработчикам создавать собственные драйверы баз данных, независящие от BDE.
       — Поддержка компактных и не требующих настройки клиентных приложений.
       — Полная поддержка ODBC.
       Короче говоря, Delphi — это швейцарский армейский нож в мире средств разработки систем клиент/сервер. Используете ли вы таблицы, хранящиеся на рабочей станции, или расположенные на SQL-сервере, Delphi предоставит вам все, что нужно для создания базы данных, причем в самые короткие сроки и без лишней головной боли.

Что ожидает вас впереди
       Ниже приведен краткий обзор материала, изложенного в последующих главах книги. Эти сведения помогут вам быстро найти информацию, которая интересует вас больше всего.

       Глава 2. Начало работы. Посвящена описанию того, как приступить к созданию приложений баз данных с помощью Delphi в предельно сжатые сроки. Если вы никак не решитесь попробовать Delphi в деле, то эта глава предназначена именно для вас.

       Глава 3. Основные понятия. В ней излагаются сведения, знание которых необходимо при создании приложений с помощью Delphi. Если вы никогда не работали с Delphi, обязательно ознакомьтесь с этой главой.

       Глава 4. Соглашения. В данной главе вы найдете мои соображения о присвоении имен программным элементам и объектам баз данных, а также о структуризации программы на языке Object Pascal.

       Глава 5. SQL для простых смертных. Эта глава представляет собой упрощенное руководство по SQL. Если вы никогда раньше не сталкивались с SQL или хотите освежить свои знания, обратитесь к этой главе. В ней вы найдете все необходимые сведения без ненужных подробностей.

       Глава 6. Проектирование базы данных архитектуры клиент/сервер. Здесь приведены основные принципы теории реляционных баз данных и описаны методы воплощения этих принципов в среде Delphi. Рекомендую эту главу тем читателям, у которых хромает теоретическая подготовка.

       Глава 7. Проектирования приложения архитектуры клиент/сервер. Данная глава продолжает разговор о проектировании баз данных и посвящена вопросам проектирования приложения базы данных. Главы 6 и 7 дополняют друг друга и будут интересны читателям, увлекающимся темой проектирования прикладных систем баз данных.

       Глава 8. Ваша первая система клиент/сервер. Эта глава открывает вторую часть книги, озаглавленную "Учебный курс". Главы 8—14 этой части посвящены описанию процесса разработки полнофункционального приложения базы данных архитектуры клиент/сервер.

       Глава 15. Microsoft SQL Server. Эта глава открывает часть, содержащую справочные материалы. В данной главе рассмотрены вопросы, связанные с особенностями разработки приложений Delphi, использующих базы данных системы Microsoft SQL Server. Если эта тема для вас не безразлична, то здесь вы найдете целые россыпи ценнейшей информации.

       Глава 16. Oracle. Посвящена описанию особенностей разработки в Delphi приложений, использующих базы данных Oracle. Если вы новичок в Oracle, можете обратиться к этой главе, чтобы получить основные сведения об одной из самых популярных в мире реляционных СУБД. Опытные разработчики Oracle найдут в этой главе ответы на вопросы, которые чаще всего возникают при создании в Delphi приложений, взаимодействующих с базами данных Oracle.

       Глава 17. InterBase. В данной главе подробно описывается реляционная СУБД InterBase. В зависимости от варианта Delphi, которым вы располагаете, на вашем компьютере может быть установлена и копия InterBase. Данная глава представляет собой руководство по InterBase и содержит описание различных нюансов совместной работы Delphi и InterBase.

       Глава 18. Sybase SQL Server. Эта глава посвящена вопросам обеспечения взаимодействия приложений, созданных с помощью Delphi, и системы Sybase SQL Server. Если вы разрабатываете в Delphi приложения, которые осуществляют доступ к базам данных Sybase SQL Server, то найдете эту главу бесценной.

       Глава 19. Отчеты. Эта глава открывает завершающую часть книги, содержащую информацию для опытных разработчиков. В данной главе рассматриваются принципы создания отчетов баз данных с помощью Delphi. Вы узнаете, как создаются обычные отчеты по одной таблице, отчеты созданные по главной и подчиненной таблицам и многотабличные отчеты.

       Глава 20. Бизнес-правила и сервер баз данных. Вместе с главой 21, Бизнес-правила в приложениях, данная глава ознакомит вас с настройкой клиентной и серверной части бизнес правил в приложениях, созданных с помощью Delphi.

       Глава 22. За пределами двухуровневой модели. Посвящена описанию принципов создания в Delphi приложений многоуровневой архитектуры клиент/сервер.

       Глава 23. Совместный доступ к данным. В этой главе рассматривается управление совместным доступом к данным в приложениях баз данных, созданных с помощью Delphi. Хотя при организации совместного доступа к данным львиную долю работы выполняют сервер базы данных и драйвер BDE, программисту, создающему крупномасштабные приложения архитектуры клиент/сервер, нужно разбираться во всех тонкостях этого процесса. Данная глава посвящена описанию принципов реализации совместного доступа к данным в Delphi, а также способов их применения.

       Глава 24. Дополнительные сведения о SQL. Эта глава является углубленным курсом по программированию на языке SQL. В главе 5 затронуты лишь основные принципы использования SQL, тогда как в данной главе вы найдете материал, посвященный деталям применения SQL. Здесь описываются методы разработки драйверов баз данных, хранимых процедур и представлений, а также использования триггеров. Кроме того, в этой главе мы обсудим методы оптимального программирования SQL и некоторые вопросы философии проектирования баз данных.

       Глава 25. Оптимизация приложений архитектуры клиент/сервер. Эта глава наполнена информацией о методах оптимизации приложений, созданных с помощью Delphi и имеющих архитектуру клиент/сервер. Глава содержит целые россыпи советов по оптимизации приложений баз данных, а также объектов-серверов, к которым они обращаются.

       Глава 26. Borland Database Engine. В этой главе рассказывается о внутреннем устройстве системы доступа к базам данных Borland Database Engine. Изучив эту главу, вы узнаете, как напрямую обращаться к функциям программного интерфейса BDE (IDAPI), а также о том, как с их помощью расширить возможности компонентов баз данных Delphi.

       Глава 27. Разработка компонентов баз данных. Посвящена описанию вопросов разработки собственных компонентов баз данных. Из этой главы вы узнаете не только о возможности создания компонента на основе уже имеющихся, но и о разработке абсолютно новых компонентов.

       Глава 28. Приложения для работы с Internet. Здесь описываются методы создания приложений, предназначенных для взаимодействия с Internet. Из этой главы вы узнаете, как использовать в приложениях функции программных интерфейсов NSAPI и ISAPI, создавать броузеры Web, применять элементы управления ActiveForm OCX, а также разрабатывать приложения для заказов по Internet.

       Глава 29. Совершенствование приложений. В этой главе вы найдете немало интересных сведений о вопросах, связанных с разработкой приложений в Delphi, а также о подстерегающих вас на пути к промышленному производству приложений архитектуры клиент/сервер препятствиях, ухабах и бездонных провалах. Кроме того, в этой главе имеется раздел, посвященный описанию принципов использования программы создания дистрибутивных комплектов lnstallShield, поставляемой в составе Delphi.

       Приложение. Delphi и другие системы. Здесь приводятся сведения, которые помогут вам перейти от других средств визуальной разработки к Delphi. В приложении подробно описаны методы перехода к Delphi от PowerBuilder, Visual Basic, C++ и различных диалектов семейства Xbase.

Резюме
       Для того чтобы выбрать Delphi из всего многообразия средств визуального проектирования приложений, имеется множество причин. Разработчикам Delphi не на словах, а на деле удалось приблизить свое детище к тому идеалу, о котором давно мечтает все сообщество программистов для Windows. Я мог бы долго еще говорить о сильных и слабых сторонах Delphi и ее конкурентов, однако достаточно привести лишь краткий перечень ее самых примечательных достоинств, чтобы прояснить всю картину в целом. Итак, Delphi выгодно отличают от других систем следующие свойства.
       — Обширная библиотека объектов.
       — Истинная поддержка принципов ООП.
       — Компиляция в машинный код.
       — Встроенные средства отладки.
       — Абстракция доступа к базам данных.
       — Полный набор средств для разработки компонентов VCL и ActiveX.
       — Прямой доступ к программному интерфейсу Windows.
       — Встроенная поддержка ассемблера.
       — Создание выполняемых файлов в формате DLL и других системных форматах Windows.
       — Развитая среда разработки с исчерпывающим набором средств.
       Delphi — это непревзойденная инструментальная среда разработки систем клиент/сервер. При сравнении ее с такими средствами RAD первого поколения, как PowerBuilder и Visual Basic, становится ясно, что место Delphi — в высшей лиге, где она является абсолютным чемпионом. Даже по сравнению со средствами второго поколения, такими как Optima++, Delphi выгодно отличается мощностью и простотой использования. Иногда можно встретить высказывания, что в игре под названием "разработка систем клиент/сервер" Delphi может претендовать на первенство лишь в легчайшей весовой категории. Однако, как правило, такие высказывания появляются лишь из-за слабого знания возможностей Delphi и демонстрируют скорее поверхностность их авторов, чем недостатки системы. Кстати, весьма любопытно наблюдать, как производители конкурирующих систем, заявляя, что Delphi слишком слаба в той или иной области, сами лихорадочно работают над воссозданием этих "слабостей" в своих продуктах. Так, компания Microsoft постоянно заявляла, что технология компиляции в машинный код, используемая в Delphi, является безусловным пережитком, и в то же время усиленно работала над добавлением в Visual Basic 5 встроенного компилятора (кстати, весьма посредственного). Да, иногда одно дело показывает истину лучше, чем тысячи слов.

<<< Пред. Оглавление
Начало раздела
След. >>>




Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:55 MSK


Постоянный адрес статьи:
http://az-design.ru/Support/SoftWare/Delphi/D3/Hend01h.shtml