Delphi 2005
Для профессионалов
Автор:
Кэнту М.
Издательство: Питер, 2006
912 страниц
Аннотация
Содержание
Введение
Аннотация
Последний релиз Borland Delphi подвергся значительным изменениям и вобрал в себя множество новых возможностей. Delphi 2005 позволяет создавать как традиционные Win32-приложения, так и программы для платформы .NET. Эта книга поможет вам идти в ногу со временем, независимо от уровня владения программной средой. Автор книги, признанный во всем мире экперт по Delphi, рассказывает о том, как наилучшим образом использовать преимущества новой программной среды: ее простой язык, быстрые методы разработки, переносимость кода и дополнительный инструментарий, созданный сторонними фирмами. Книга будет одинаково полезна как начинающим программистам, впервые сталкивающимся с Delphi, так и профессионалам, в совершенстве владеющим предыдущими версиями борландовского продукта.
Содержание
Введение
Девять версий
Структура книги
Бесплатный исходный код в Сети
Глава 1. Знакомство с Borland Developer Studio 3.0
Обзор IDE
Среда разработки для .NET и ALM
Запуск Delphi 2005
Структура IDE
Конфигурация рабочего стола
Меню
Список задач
Результаты расширенного поиска
Редактор Delphi
Свертка кода в Delphi 2005
Кодировка файлов с исходным кодом
Фрагменты кода
Code Insight
Другие новые возможности редактора
Визуальные конструкторы
Object Inspector
Окно структуры для конструкторов
Копирование и вставка компонентов
Управление проектами
Файлы проектов
Мастер обновления проектов Delphi 2005
Файлы групп проектов
Параметры проекта
Файлы с исходным кодом
Что далее?
Глава 2. Платформы: Win32 и Microsoft .NET
Win32 API
Библиотеки классов
COM приходит на помощь
Что такое Microsoft .NET?
''Маркетинговые'' цели .NET
Почему .NET?
VES
CIL
CLS
CLR
Цикл компиляции .NET и модель JIT
Модель управляемого выполнения и уборка мусора
CTS
CTS: структурные типы
CTS: ссылочные типы
Пространства имен и сборки
Что такое сборка?
Привязка и загрузка сборок
Контроль версий сборок и GAC
Динамическая загрузка сборок
Что далее?
Глава 3. Язык программирования Delphi
Основные возможности языка
Классы и объекты
Дополнительно о методах
Динамическое создание компонентов
Инкапсуляция
Private, Protected и Public
Полноценная приватность
Свойства как элемент инкапсуляции
Инкапсуляция и формы
Конструкторы
Деструкторы и метод Free
Модель объектных ссылок в Delphi
Присваивание объектов
Объекты и память
Наследование от существующих типов
Защищенные поля и инкапсуляция
Наследование и совместимость типов
Позднее связывание и полиморфизм
Переопределение методов
Виртуальные и динамические методы
Абстрактные методы
Закрепленные классы и финальные методы
Вложенные типы и вложенные константы
Безопасное понижающее преобразование
Использование интерфейсов
Обработка исключений
Последовательность обработки исключений и блок finally
Классы исключений
Регистрация ошибок
Исключения и конструкторы
Ссылки на классы
Создание компонентов с использованием ссылок на классы
Цикл for..in
Подстановка кода
Что далее?
Глава 4. Язык Delphi для .NET
Язык Delphi для Microsoft .NET
Традиционные модули
Глобальные имена и фиктивные классы модулей
Модули как пространства имен
Инициализация модулей и конструкторы классов
Идентификаторы
Уточнение идентификаторов
Поддержка Юникода в идентификаторах
Основные типы данных
Примитивные типы
Упаковка примитивных типов
Множества и перечисляемые типы Delphi
Новый облик записей
Записи или классы?
Новые стандартные записи в Delphi
Ссылочные типы
Строки
Небезопасные типы
Записи с переменными типами
Нетипизованные параметры
Выделение памяти функцией New
Тип PChar
Безопасные преобразования типов
Новые возможности классов
Спецификаторы доступа
Трюк с обходом protected по-прежнему работает!
Данные классов и статические методы
Конструкторы классов
Абстрактные классы
Помощники
Свойства
Применение конструкторов к экземплярам
Вызов унаследованных конструкторов
Освобождение памяти и уничтожение объектов при уборке мусора
Ссылки на классы и метаклассы
Поддержка ''чистых'' интерфейсов
Новые возможности операторов
Атрибуты
Объявление пользовательских атрибутов
Рефлексия и чтение атрибутов
Групповые события
Что далее?
Глава 5. Библиотека времени выполнения Delphi Win32
Модули RTL
Модуль System в Win32
Модули SysUtils и SysConst
Модуль Math
Модули ConvUtils и StdConvs
Модуль DateUtils
Модуль StrUtils
Новый модуль WideStrUtils
Модуль Types
Модули Variants и VarUtils
Модули DelphiMM и ShareMem
Работа с файлами средствами SysUtils
Класс TObject
Вывод информации о классе
Класс TPersistent
Ключевое слово published
Обращение к свойствам по имени
Списки и контейнерные классы
Списки
Контейнерные классы
Контейнеры и списки, безопасные по отношению к типам
Потоки данных
Класс TStream
Конкретные потоковые классы
Использование файловых потоков
Классы TReader и TWriter
Потоки данных и устойчивость
Сжатие потоков
Что далее?
Глава 6. Архитектура VCL
Класс TComponent
Принадлежность
Свойство Name
Удаление полей форм
Скрытие полей форм
Передача произвольных данных в свойстве Tag (в Win32 и .NET)
Класс TComponent в VCL для .NET
События
События в Delphi
Указатели на методы
События как свойства
Традиционное строение VCL
TControl и производные классы
TControl и производные классы в .NET
Свойство Parent и элементы
Свойства, относящиеся к позиции и размеру элемента
Свойства активации и видимости компонентов
Шрифты
Цвета
Класс TWinControl
Основные компоненты
Компоненты ввода текста
Выбор вариантов
Списки
Диапазоны
Команды
Приемы работы с элементами
Фокус ввода
Привязка элементов
Компонент Splitter
Использование подсказок
Прорисовка элементов владельцем и стили
Элементы ListView и TreeView
Графический список ссылок
Иерархическое представление данных
Настройка узлов дерева
Что далее?
Глава 7. Работа с формами
Класс TForm
Простые формы
Стиль формы
Стиль границы
Установка дополнительных стилей окон
Прямой ввод на формах
Ввод с клавиатуры
Ввод с мыши
Рисование мышью
Позиция, размер, прокрутка и масштабирование
Позиция формы
Пристыковка к краям экрана
Размер формы и клиентская область
Ограничения размеров
Прокрутка формы
Создание и закрытие форм
События при создании формы
Закрытие формы
Диалоговые окна и другие вторичные формы
Добавление в программу второй формы
Создание вторичных форм во время выполнения
Создание диалогового окна
Диалоговое окно из примера RefList
Немодальное диалоговое окно
Стандартные диалоговые окна Windows
Объект Application
Активация приложений и форм
Активация мышью в Delphi 2005
Отслеживание форм при помощи объекта Screen
Создание приложений MDI
Рамочные и дочерние окна в Delphi
Пример MdiDemo
Визуальное наследование форм
Наследование от базовой формы
Полиморфные формы
Фреймы
Фреймы и страницы
Множественные фреймы без страниц
Базовые формы и интерфейсы
Использование базового класса формы
Интерфейсы
Что далее?
Глава 8. Построение пользовательского интерфейса в VCL (для Win32 и .NET)
Многостраничные формы
Компоненты PageControl и TabSheet
Программа просмотра изображений с нестандартной прорисовкой корешков
Пользовательский интерфейс мастера
Панели инструментов
Пример RichBar
Меню и поле со списком на панели инструментов
Простая строка состояния
Темы Windows XP
Архитектура ActionList
Предопределенные действия
Практическое применение действий
Панель инструментов и компонент ActionList редактора
Контейнеры панелей инструментов
Меню в контейнере ControlBar
Поддержка стыковки в Delphi
Стыковка панелей инструментов в контейнерах ControlBar
Стыковка с компонентом PageControl
Новые компоненты стыковки в Delphi 2005
Архитектура ActionManager
Простая демонстрационная программа
Вывод сокращенных меню
Адаптация существующих программ
Действия со списками
Что далее?
Глава 9. Библиотека времени выполнения .NET и FCL
Библиотека времени выполнения Delphi для .NET
Модуль System в Delphi для .NET
Borland.Delphi.DLL
Borland.VclRtl
Классы Borland.VclRtl
BCL
Класс System.Object
Класс StringBuilder
Регулярные выражения
Потоки данных в .NET
Класс Component
WinForms
Только код, без DFM-файлов
''Двойники'' и другие различия
Элементы WinForms
От GDI к GDI+
Класс Forms
Возможности VCL, отсутствующие в WinForms
Что далее?
Глава 10. Переработка и модульное тестирование
За пределами RAD
Гибкие методологии
Экстремальное программирование
Переработка кода
Модульное тестирование
Переработка кода в Delphi 2005
Новые объявления
Преобразование строк в ресурсы
Переименование
Извлечение методов
Поиск модулей
Поиск ссылок
Модульное тестирование в Delphi 2005
DUnit
NUnit
Что далее?
Глава 11. Библиотеки, пакеты и сборки
DLL в Win32
Что такое ''динамическая компоновка''?
Для чего нужны DLL?
Правила написания DLL в Delphi
Вызов функций существующих DLL
Построение Win32 DLL в Delphi
Экспорт строк из DLL
Вызов функции Delphi DLL
Изменение имен библиотек
Вызов функции DLL во время выполнения
Win32 DLL в памяти: код и данные
Общий доступ к данным и файлы, отображаемые на память
Пакеты Delphi
Пакеты времени выполнения
Написание и компиляция пакетов
Контроль версий пакетов
Динамические пакетные архитектуры
Приложения с пакетами времени выполнения
Загрузка пакетов на стадии выполнения
Использование интерфейсов в пакетах
Структура пакета
От пакетов к сборкам
Написание и использование управляемой DLL
Динамическая загрузка управляемых DLL
Загрузка локальная и сетевая
Динамическая архитектура на базе сборок
Анализ сборок
Что далее?
Глава 12. Взаимодействие COM и .NET
Краткая история COM и .NET
Реализация IUnknown
Глобально-уникальные идентификаторы
Роль фабрик классов
Первый сервер COM
Интерфейсы COM и объекты
Инициализация объекта COM
Тестирование сервера COM
Свойства интерфейсов
Автоматизация
Диспетчеризация
Написание сервера Автоматизации
Редактор Type Library Editor
Код сервера
Регистрация сервера Автоматизации
Написание клиента для сервера
Область видимости объектов Автоматизации
Сервер в компоненте
Типы данных COM
Взаимодействие с .NET
Использование COM в .NET
Что далее?
Глава 13. Архитектура баз данных Delphi
Работа с базами данных в Win32
Библиотека dbExpress
BDE
InterBase Express
MyBase и компонент ClientDataSet
dbGo для ADO
Пользовательские компоненты наборов данных
MyBase: автономный компонент ClientDataSet
Подключение к существующей локальной таблице
От MIDAS DLL к модулю MidasLib
Форматы XML и CDS
Определение новой локальной таблицы
Индексирование
Фильтрация
Поиск записей
Элементы управления, работающие с данными
Данные в компоненте DBGrid
DBNavigator и действия, связанные с наборами данных
Текстовые элементы для работы с данными
Списковые элементы для работы с данными
Подстановочные элементы
Графические элементы для работы с данными
Класс TDataSet
Состояние набора данных
Поля набора данных
Использование объектов полей
Иерархия классов полей
Добавление вычисляемого поля
Подстановочные поля
Обработка неопределенных значений полей
Перемещение внутри набора данных
Суммирование столбцов таблиц
Использование закладок
Редактирование столбца таблицы
Настройка элемента DBGrid
Нестандартная прорисовка DBGrid
Поддержка множественного выделения
Перетаскивание в сетку
Стандартные элементы управления в приложениях баз данных
Имитация стандартного поведения Delphi
Пересылка запросов в базу данных
Группировка и агрегатные значения
Группировка
Определение агрегатных значений
Главные и подчиненные таблицы
Связи между главными и подчиненными таблицами в компонентах ClientDataSet
Обработка ошибок в приложениях баз данных
Что далее?
Глава 14. Клиент-серверное программирование и компоненты баз данных VCL
Архитектура ''клиент-сервер''
Элементы проектирования баз данных
Сущности и отношения
Правила нормализации
От первичных ключей к идентификаторам объектов OID
Дополнительные ограничения
Однонаправленные курсоры
Знакомство с InterBase
Использование IBConsole
InterBase: программирование на стороне сервера
Библиотека dbExpress
Работа с однонаправленными курсорами
Платформы и базы данных
Проблемы с версиями драйверов
Компоненты dbExpress
Компонент SQLConnection
Компоненты наборов данных dbExpress
Компонент SimpleDataSet
Компонент SQLMonitor
Примеры использования dbExpress
Использование одного компонента или нескольких компонентов
Внесение изменений в базу данных
Отслеживание подключения
Доступ к метаданным с использованием SetSchemaInfo
Параметризованные запросы
Печать отчетов
Пакеты и кэш
Операции с обновлениями
Обновление данных
Транзакции
Использование InterBase Express
Наборы данных IBX
Административные компоненты IBX
Пример ипользования IBX
Построение редактируемого запроса
Анализ работы InterBase Express
Получение дополнительной системной информации
Задачи из реального мира
Генераторы и идентификаторы
Поиск текста без учета регистра символов
Обработка информации об адресах и людях
Построение пользовательского интерфейса
Оплата учебных курсов
Диалоговое окно подстановки
Форма с редактируемым запросом SQL
Что далее?
Глава 15. Технология ADO
MDAC (Microsoft Data Access Components)
Провайдеры OLE DB
Использование компонентов dbGo
Практический пример
Компонент ADOConnection
Файлы связи с данными
Динамические свойства
Получение информации о схеме
Механизм Jet
Доступ к Paradox через Jet
Доступ к Excel через Jet
Доступ к текстовым файлам через Jet
Импорт и экспорт
Работа с курсорами
Расположение курсора (свойство CursorLocation)
Тип курсора (свойство CursorType)
Комбинации местоположений и типов курсоров
Отсутствие счетчика записей
Клиентские индексы
Клонирование
Обработка транзакций
Вложенные транзакции
Атрибуты компонента ADOConnection
Типы блокировки
Обновление данных
Пакетные обновления
Оптимистическая блокировка
Разрешение конфликтов, связанных с обновлением данных
Автономные наборы записей
Пулы подключений
Сохранение наборов записей
Модель Briefcase
Что далее?
Глава 16. ADO.NET
Архитектура ADO.NET
Работа в подключенном режиме
Обобщенный доступ к данным с использованием интерфейсов
Работа в автономном режиме
Использование компонента OleDbDataAdapter
Создание таблицы на стадии конструирования
Отсутствие данных на стадии конструирования
Компоненты содержания
Прямой доступ к данным наборов
Главные/подчиненные таблицы в классе DataSet
Поддержка XML в классе DataSet
Сортировка и фильтрация средствами класса DataView
Создание пользовательских классов DataSet
Управление кэшированными данными и обновлениями
Сравнение с ClientDataSet
BDP
Настройка BDP
Визуальная разработка в BDP
Другие возможности BDP
Работа со схемами в BDP
Использование ADO.NET в приложениях VCL
Что далее?
Глава 17. Многозвенные архитектуры
Технические основы DataSnap
Интерфейс IAppServer
Протокол подключения
Пакеты данных
Вспомогательные компоненты Delphi (на стороне клиента)
Вспомогательные компоненты Delphi (на стороне сервера)
Построение демонстрационного приложения
Первый сервер приложений
Первая версия тонкого клиента
Построение клиента для платформы .NET
Добавление серверных ограничений
Ограничения полей и наборов данных
Свойства полей
События полей и таблиц
Расширение функциональности на стороне клиента
Последовательность обновления
Обновление данных
Дополнительные возможности DataSnap
Параметризованные запросы
Вызов методов сервера
Отношения ''главные/подчиненные данные''
Брокер подключений
Другие параметры провайдера
Компонент SimpleObjectBroker
Пулы объектов
Настройка пакетов данных
Разработка многозвенных приложений в Microsoft .NET
Архитектура .NET Remoting
Практическое использование .NET Remoting
ADO.NET Remoting и компоненты Delphi
Практическое применение ADO.NET Remoting
Что далее?
Глава 18. ECO
Модель
Классы
Атрибуты
Операции
Ассоциации
Производные атрибуты: OCL
Производные атрибуты: код
Производные ассоциации
Классы ассоциаций
ECOSpace
Пользовательский интерфейс
Манипуляторы
ECO в программном коде
Создание объектов, часть 1
Получение ссылки на текущий выделенный объект
Создание объектов, часть 2
Выполнение OCL на программном уровне
Что далее?
Глава 19. Программирование для HTML и HTTP
Создание сокет-приложений
Основы программирования сокетов
Использование TCP-компонентов Indy
Работа с протоколом HTTP
Сохранение HTTP-содержания
WinInet API (Win32)
Класс WebClient в FCL (.NET)
Простой HTTP-сервер
Генерирование кода HTML
Компоненты Delphi для работы с HTML
Создание страниц HTML
Создание страниц данных
Построение таблиц HTML
Использование стилей
Динамические страницы на собственном сервере
Динамические веб-страницы
Обзор CGI
Использование динамических библиотек
Технология WebBroker среды Delphi
Отладка с использованием Web App Debugger
Построение многоцелевого веб-модуля
Динамическое построение отчетов
Запросы и формы
Работа с Apache
Работа с IIS
Практические примеры
Графический счетчик обращений
Работа с поисковой системой
Что далее?
Глава 20. WebSnap и IntraWeb
WebSnap
Управление страницами
Серверные сценарии
Адаптеры
Размещение файлов
Использование DataSetAdapter
Веб-интерфейс для DataSetAdapter
Сеансы, пользователи и разрешения
Использование сеансов
Запрос на вход в систему
IntraWeb
От веб-сайтов к веб-приложениям
Заглянем за кулисы
Исходный код IntraWeb-приложения
Построение IWSimpleApp на платформе Delphi для .NET
Архитектуры IntraWeb
Построение IntraWeb-приложений
Написание многостраничных приложений
Управление сеансами
Интеграция с WebBroker (и WebSnap)
Управление макетом страницы
Веб-приложения баз данных
Связь с подчиненными данными
Передача данных клиентской стороне
Диспетчер размещения в Delphi 2005
Что далее?
Глава 21. Архитектура ASP.NET
Основные концепции ASP.NET
ASP.NET и веб-серверы
Пустая страница в Delphi
Технология сценариев
Модель Code behind
Управление состоянием
Построение страниц ASP.NET
Класс Control
HTML-элементы
WebControls
Класс Page
Проверка содержимого элементов
Работа с данными в ASP.NET
Работа с базами данных
Компоненты DBWeb
Построение приложений ASP.NET
Передача данных между страницами
Управление сеансами
Аутентификация с применением форм
Кэширование в ASP.NET
Размещение приложений ASP.NET
Что далее?
Глава 22. Технологии XML
Знакомство с XML
Основной синтаксис XML
Хорошо сформированный XML
Работа с XML
Обработка XML-документов в Delphi
Программирование с использованием DOM
Документ XML в элементе TreeView
Использование компонента XMLDocument в .NET
Создание документов с использованием DOM
Интерфейсы привязки данных
Низкоуровневая поддержка XML DOM в .NET
Разбор XML-кода
Использование SAX API
Разбор XML-кода в .NET
Использование XSLT
Использование XPath
Практическое использование XSLT
Обработка XSLT с использованием WebSnap
Прямые преобразования XSL с использованием DOM
XSLT в ASP.NET
Преобразования XML-кода
Обработка больших документов XML
Из ClientDataSet в XML-документ
Из XML-документа в ClientDataSet
Что далее?
Глава 23. Веб-службы и SOAP
Технологии веб-служб
Поддержка SOAP в Delphi для Win32
Клиент SOAP: биржевые котировки
Построение веб-служб в Delphi для Win32
Отладка заголовков SOAP
Доступ к существующему классу как к веб-службе
Веб-службы в .NET
Клиент веб-службы в .NET
Построение сервера .NET
Работа с базами данных через SOAP
Передача XML-документов
Клиентская программа
DataSnap через SOAP
Построение сервера DataSnap SOAP
Построение клиента DataSnap SOAP
Сравнение SOAP с другими подключениями DataSnap
Обработка вложений
Что далее?
Приложение. Дополнительный инструментарий Delphi
Мои разработки
Мастеры CanTools
Object Debugger
Memory Snap
Другие полезные бесплатные программы
Project JEDI
GExperts
InstantObjects
Алфавитный указатель
Введение
Год 2005 ознаменовался выходом новой версии Delphi и десятилетним юбилеем этого продукта. Официальный дебют Delphi состоялся 14 февраля 1995 года, как указано на моей личной странице юбилея Delphi (www.marcocantu.com/delphibirth).
Примерно за год до того Зак Арлокер (Zack Urlocker) впервые показал мне еще не вышедший продукт с условным названием Delphi, и я немедленно осознал, что он изменит мою работу, а также работу множества других программистов. В те времена я боролся с библиотеками C++ для Windows, и среда Delphi была и до сих пор остается наилучшим сочетанием объектно-ориентированного и визуального программирования не только для платформах Win16 и Win32, но и в операционной системе Linux и на платформе Microsoft .NET Framework.
Среда Delphi 2005 построена на этих традициях и прочном фундаменте VCL, но в ней также произошел целый ряд революционных изменений, включая спроектированную заново интегрированную среду разработки (IDE), существенно расширенный язык объектно-ориентированного программирования и включение множества средств разработчика Borland для всего жизненного цикла разработки программного продукта. Еще более важная и неповторимая особенность заключается в том, что Delphi теперь не только позволяет разрабатывать версии программ для Win32 и .NET в одной среде, но и строить программы для обеих платформ с использованием единого исходного кода.
Разработка Delphi затрагивает практически все области: простые автономные программы, обработку графики, разработку баз данных, клиент-серверные и многозвенные бизнес-приложения, интрасетевое и интернет-программирование, XML и веб-службы. Независимо от того, чего вы ищете - богатства возможностей, высокой производительности или просто удобства - среда Delphi предоставит вам все желаемое.
Девять версий
Среди исходных особенностей Delphi особенно привлекательными мне показались: общий подход, основанный на применении форм и объектно-ориентированных методов, чрезвычайно быстрый компилятор, превосходная поддержка баз данных, интеграция с Windows-программированием и компонентная технология. Но самым важным элементом был язык Object Pascal (теперь называемый языком Delphi), который заложил основу для всего остального.
Среда Delphi 2 стала еще лучше! Среди важнейших нововведений можно выделить появление объекта Multi-Record и улучшенной сетки для работы с базами данных, поддержки OLE Automation и универсального типа данных, полную поддержку и интеграцию с Windows 95, длинный строковый тип данных и визуальное наследование форм. В Delphi 3 к этому добавились технология Code Insight, поддержка отладки DLL, шаблоны компонентов, технологии TeeChart, WebgBroker, пакеты компонентов, ActiveForms и великолепная интеграция с COM благодаря применению интерфейсов.
Версия Delphi 4 дала нам редактор AppBrowser, новые возможности Windows 98, улучшенную поддержку OLE и COM, расширенные компоненты баз данных и много дополнений в основные классы VCL, включая поддержку пристыковки (docking), ограничений и привязки элементов. Delphi 5 добавила к общей картине множество улучшений IDE, расширила поддержку баз данных (наборами данных ADO и InterBase), улучшенную версию MIDAS (теперь DataSnap) с поддержкой Интернета, средства локализации, концепцию фреймов и новые компоненты.
В Delphi 6 ко всем существующим возможностям добавилась поддержка кросс-платформенной разработки с использованием Component Library for Cross-Platform (CLX, сейчас не поддерживается), расширенная библиотека времени выполнения, механизм работы с базами данных dbExpress, мощная технология WebSnap, дальнейшие улучшения IDE и ряд новых компонентов и классов.
Среда Delphi 7 повысила надежность некоторых архитектур за счет улучшения и исправления (например, SOAP и DataSnap), а также обеспечила поддержку ряда новых технологий (таких, как темы Windows XP и UDDI). Одним из важнейших новшеств стало появление интересного инструментария сторонних производителей: процессора отчетов RAVE, технологии программирования веб-приложений IntraWeb и среды конструирования ModelMaker.
Delphi 8 для Microsoft .NET Framework открыла совершенно новый мир, предоставив первый компилятор Borland для языка Pascal/Delphi, ориентированный не на процессор компании Intel, а на платформу .NET CIL. Компилятор поддерживал все основные возможности .NET Framework, включая ADO.NET, WinForms и особенно ADO.NET. В Delphi 8 также появились некоторые технологии управления жизненным циклом приложения, приобретенные компанией Borland (такие, как StarTeam и Caliber).
Теперь Delphi 2005 объединяет все перечисленные возможности, предоставляя одну версию IDE для разработок Win32 и .NET, а также обеспечивая поддержку нескольких языков программирования, включая Delphi и C#. Delphi все еще остается одним из основных конкурентов в области ускоренной разработки (RAD), но теперь среда также вошла в мир MDA (Model Driven Architecture) со своей технологией ECO. Как я уже упоминал, Delphi 2005 содержит заново спроектированную версию IDE с бесчисленными новыми возможностями и функциями, упрощающими программирование, а также расширенным языком программирования для Win32 и .NET.
Структура книги
В главе 1 представлены новые возможности интегрированной среды разработки (IDE), в главе 2 рассматриваются две целевые платформы (Win32 и .NET), после чего следует описание языка Delphi (главы 3 и 4), библиотеки времени выполнения (глава 5) и VCL (главы 6-8). Первая часть завершается обзором .NET Framework Class Library (глава 9).
Следующие главы охватывают переработку кода, модульное тестирование, архитектуру динамических Delphi-приложений, COM и взаимодействие .NET с COM и Win32.
Затем углубленно рассматриваются элементы, ориентированные на работу с данными, клиент-серверное программирование, dbExpress, InterBase, ADO, ADO.NET и многозвенные архитектуры с использованием технологий DataSnap и ADO.NET. В последней главе третьей части читатель познакомится с архитектурой ECO (Enterprise Core Objects).
В последних двух главах рассматривается XML и разработка веб-служб.
Вкратце можно сказать, что в книге рассматриваются темы, представляющие интерес для всех пользователей Delphi с любым уровнем подготовки и почти во всех областях. Я попытался обойтись без справочного материала и полностью сосредоточиться на методах эффективного использования Delphi. Поскольку Delphi содержит обширную электронную документацию, приводить в книге списки методов и свойств было бы излишне; кроме того, при малейшем изменении продукта материал перестал бы соответствовать действительности. Я рекомендую читать книгу, имея под рукой справочную документацию Delphi, чтобы без труда найти необходимую информацию.
Однако я сделал все возможное, чтобы книгу можно было читать вдали от компьютера, если вам так удобнее. В этом вам помогут копии экрана и ключевые фрагменты листингов. Для удобства в книге используется минимальное количество условных обозначений: исходный код выделяется вот таким шрифтом, а фрагменты кода форматируются так, как они выглядят в редакторе Delphi (ключевые слова - жирным шрифтом, комментарии и строковые литералы - курсивом).
Бесплатный исходный код в Сети
Основное внимание в книге уделяется практическим примерам. После представления каждой концепции приводится работоспособный пример программы (иногда не один), демонстрирующий ее использование. В книге представлено свыше 300 примеров, большая часть из которых существует в версиях для Win32 и .NET. Программы можно загрузить в одном zip-файле объемом более 3 Мбайт на сайте Sybex (www.sybex.com) и на моем сайте (www.marcocantu.com). Как правило, примеры очень просты и посвящены одному конкретному аспекту Delphi. Более сложные примеры строятся поэтапно, при этом промежуточные этапы содержат частичные решения и обеспечивают постепенное наращивание возможностей.
ПРИМЕЧАНИЕ
Некоторые приложения баз данных требуют установки файлов-примеров баз данных Delphi; эти файлы входят в комплект стандартной установки Delphi. Для других примеров необходима база данных EMPLOYEE, относящаяся к InterBase (и сам сервер InterBase, конечно). Для некоторых примеров веб-программирования потребуется установленный веб-сервер.
|
На моем сайте также имеется HTML-версия исходного кода с полным синтаксическим выделением и перекрестными ссылками ключевых слов и идентификаторов (классов, функций, методов, имен свойств и т. п.). Перекрестные ссылки находятся в HTML-файле, поэтому вы сможете быстро найти в браузере ключевое слово или идентификатор (не полноценная поисковая система, но довольно близко к ней).
Структура каталогов примеров очень простра. Каждая глава книги представлена отдельной папкой, в которой находятся вложенные папки для каждого примера (например, 05\FilesList). В тексте ссылки на примеры осуществляются просто по имени (например, FilesList).
ПРИМЕЧАНИЕ
Обязательно прочитайте файл readme в архиве с примерами исходного кода. В нем содержится важная информация о том, как законно и эффективно использовать приведенные примеры.
|