Delphi 7: первый взгляд
Поддержка UML и Model Driven Architecture
Создание Web-приложений и Web-сервисов
Поддержка элементов управления и тем Windows XP
Другие изменения в среде разработки, библиотеках VCL и CLX
В начале августа компания Borland объявила о выходе Delphi 7 Studio — новой версии самого популярного средства разработки этой компании, предназначенного для создания Windows-приложений.
Borland Delphi 7 Studio (рис. 1) существует в четырех редакциях: Architect (для реализации сложных проектов масштаба предприятия), Enterprise (для моделирования и создания распределенных приложений), Professional (для разработки Windows-приложений и Web-приложений, а также Web-сервисов) и Personal (в основном для создания некоммерческих приложений и изучения продукта).
Ниже мы кратко рассмотрим основные особенности различных редакций Delphi 7 Studio.
Поддержка Microsoft .NET
Delphi 7 с помощью диалоговой панели Import Type Library можно создать COM-интерфейсы к сборкам Microsoft .NET c применением COM Interop — средств обеспечения совместимости COM и .NET.
Для того чтобы можно было создавать приложения, в дальнейшем совместимые с платформой Microsoft .NET, в компилятор Delphi были добавлены три дополнительных сообщения: Unsafe_Type, Unsafe_Code и Unsafe_Cast. Эти сообщения указывают на то, что корректность выполнения указанных операторов не может быть проанализирована Just-In-Time-компилятором Microsoft .NET (примерами таких операторов являются манипуляции с указателями и непосредственная запись в ячейки памяти).
Данные сообщения можно сделать доступными с помощью директивы {$WARN UNSAFE_CODE ON}, запуска компилятора с соответствующим ключом (dcc32 -W+UNSAFE_CODE) либо отметив соответствующие опции на странице Compiler Messages диалоговой панели Project Options (рис. 2).
И наконец, во все редакции Delphi 7 включена предварительная версия (preview) компилятора Delphi for .NET, позволяющая создавать приложения для платформы .NET. Впрочем, этот компилятор заслуживает отдельного разговора и, если будет такая возможность, мы вернемся к этой теме чуть позже.
Поддержка UML и Model Driven Architecture
числе особенностей Delphi 7 Studio стоит отметить поддержку MDA (Model Driven Architecture) и наличие средств UML-моделирования — эти дополнения позволяют рассматривать Delphi не просто как инструмент быстрой разработки приложений, но и как набор средств реализации крупных проектов масштаба предприятия, содержащий все необходимые инструменты для решения этой задачи.
ModelMaker, продукт компании ModelMaker Tools BV, входящий в состав редакций Architect и Enterprise, представляет собой инструмент визуального UML-моделирования классов и приложений. С его помощью можно создавать модели приложений и генерировать их код (рис. 3).
Кроме того, в редакцию Delphi 7 Studio Architect входит продукт Bold for Delphi компании BoldSoft, включающий набор компонентов и редактор UML-моделей и предназначенный для создания приложений на основе подобных моделей. Данный продукт поддерживает UML-модели ModelMaker и Rational Rose и позволяет на основе UML-модели генерировать клиентские приложения и бизнес-объекты для среднего звена многозвенных приложений, а также создавать схемы баз данных, снижая тем самым затраты, связанные с созданием приложений. При применении этого продукта можно избежать написания и отладки большого количества кода, описывающего логику работы различных составных частей приложения (рис. 4).
Отметим, что Bold for Delphi поддерживает обмен данными между звеньями приложений с помощью HTTP, COM, XML, SOAP, а в качестве механизмов доступа к данным поддерживает BDE, ADO, dbExpress, DBISAM, прямой доступ к IB Database и Advantage Database Server.
Создание Web-приложений и Web-сервисов
состав Delphi 7 включены новые компоненты IntraWeb, лицензированные у компании AtoZed Software. Эти компоненты позволяют проектировать пользовательский интерфейс Web-приложений с помощью дизайнера форм — возможность, которой, пожалуй, явно не хватало предыдущим версиям Delphi (впрочем, компоненты независимых производителей, реализующие подобную функциональность, существуют со времен чуть ли не Delphi 1). При этом созданные формы можно (но не обязательно) использовать в приложениях WebSnap и Web Broker (рис. 5).
Полный набор компонентов IntraWeb содержится в редакциях Architect и Enterprise, а в версии Professional имеются некоторые из этих компонентов. Напомним, что создание приложений WebSnap и Web Broker возможно в редакциях Architect, Enterprise и Professional.
К компонентам Indy добавлены компоненты Indy Intercepts и Indy I/O Handlers, предназначенные для реализации ввода и вывода с применением шифрования, SSL, сжатия и преобразования данных, создания log-файлов. Напомним, что компоненты Indy доступны пользователям редакций Professional, Enterprise и Architect.
Помимо этого с помощью Delphi 7 можно создавать Web-приложения и Web-сервисы для Apache 2.
Что касается поддержки Web-сервисов, отметим добавление в WSDL Import Wizard UDDI1 -браузера, позволяющего осуществлять поиск нужного Web-сервиса в UDDI-реестрах и получать URL его WSDL-описания (рис. 6).
Также следует отметить появление новых классов и интерфейсов, позволяющих читать и добавлять заголовки в SOAP-конверты для обмена сообщениями между клиентами и серверами, возможность использования вложений в SOAP-сообщениях, а кроме того, ряд изменений в поддержке типов данных, которыми клиентские приложения обмениваются с Web-сервисами (например, к классу TRemotable добавлены два виртуальных метода — ObjectToSOAP и SOAPToObject, с помощью переопределения которых можно описать правила преобразования классов, предназначенных для представления в виде Web-сервисов, в их SOAP-представление). Стоит упомянуть о наличии новых событий, позволяющих выполнить определенные действия перед отправлением HTTP-сообщения, перед или после вызова методов Web-сервисов и в процессе генерации WSDL-данных, а также ряд новых возможностей, связанных с созданием правил соответствия WSDL параметрам методов, возвращаемым значениям и действиям по умолчанию.
Доступ к данным
Delphi 7 обновлены драйверы dbExpress. Теперь они поддерживают Informix SE, Oracle9i, DB2 7.2, InterBase 6.5, MySQL 3.23.49. Наконец-то добавлен драйвер dbExpress для Microsoft SQL Server 2000.
Пользователям Delphi, имеющим многолетний стаж работы с этим продуктом, компания Borland настоятельно рекомендует исключить из применения драйверы SQL Links — никаких изменений в них далее не планируется и в последующих версиях Delphi они будут отсутствовать. Вместо них в Borland советуют использовать технологию dbExpress (соответствующий документ «The Future of the Borland Database Engine (BDE) and SQL Links», подготовленный Джоном Кастером, можно найти по адресу http://community.borland.com/article/0,1410,28688,00.html).
Напомним, что драйверы SQL Links и dbExpress для серверных СУБД ведущих производителей (IBM/Informix, Microsoft, Oracle, Sybase) доступны в редакциях Professional, Enterprise и Architect.
На странице dbExpress палитры компонентов можно найти компонент TSimpleDataSet, предназначенный для применения в двухзвенных приложениях (его следует использовать вместо TSQLClientDataSet).
В VCL добавлен новый модуль DBClientActns, содержащий классы для работы с клиентскими наборами данных (client datasets): TClientDataSetApply, TClientDataSetUndo и TClientDataSetRevert.
Технология DataSnap
приложениях DataSnap, которые могут создавать пользователи редакций Architect и Enterprise, вместо интерфейса IAppServer теперь применяется интерфейс IAppServerSOAP. Клиентские приложения, предназначенные для применения с серверами, разработанными с помощью прежних версий Delphi, можно создавать путем использования свойства UseSOAPAdapter компонента TSoapConnection.
К серверам DataSnap, имеющим несколько модулей данных, теперь можно добавить специальный модуль данных SOAP. Кроме того, с помощью компонента TSOAPConnection можно обращаться к расширениям интерфейсов серверов приложений.
Отметим, что поставка распределенных DataSnap-приложений, разработанных с помощью Delphi 7 Studio, может осуществляться без дополнительного лицензирования.
Rave Reports
состав редакций Delphi 7 Enterprise и Professional включены компоненты Rave Reports компании Nevrona, позволяющие создавать отчеты высокого качества и поддерживающие механизмы доступа к данным ADO, BDE и dbExpress (при этом в качестве источника данных можно, хотя и не обязательно, использовать компоненты доступа к данным VCL, например IBExpress). Можно включать в отчеты Rave Reports штрих-коды, графику, сохранять отчеты в различных форматах, в том числе и в Adobe PDF, внутрь исполняемого файла приложения вставлять не только сам отчет, но и дизайнер отчетов (рис. 7).
Конечным пользователям это дает возможность редактировать отчеты, не покидая приложения, — об этом давно мечтали многие разработчики. Отметим, что у той же компании Nevrona для приложений масштаба предприятия можно приобрести сервер, позволяющий распространять отчеты для многих пользователей и, как и большинство современных серверных продуктов, удовлетворяющий современным требованиям масштабируемости: он поддерживает использование нескольких процессоров и баланс нагрузки.
Поддержка элементов управления и тем Windows XP
CL-приложения теперь поддерживают элементы управления Windows Сommon Сontrols версии 6. Это означает, что в созданных с помощью Delphi 7 VCL-приложениях, запущенных в Windows XP, можно отображать элементы управления способом, характерным для данной операционной системы. Для этого в каталог, где находится исполняемый файл приложения, следует добавить специальный файл манифеста. Последний представляет собой XML-документ, содержащий сведения о том, каким образом данная операционная система должна отображать элементы управления данного приложения. Отметим, что эта возможность доступна пользователям редакций Professional, Enterprise и Architect.
Другие изменения в среде разработки, библиотеках VCL и CLX
з изменений в среде разработки следует упомянуть о наличии в меню команды View|Additional Message Info, с помощью которой можно получить последнюю версию списка сообщений компилятора с Web-сайта Borland. Отметим, что в диалоге Project Options можно указывать, какие именно типы сообщений компилятора необходимо отображать.
Для проектов CLX-приложений имеется своя версия страницы System палитры компонентов, содержащая компоненты для отображения и выбора каталогов и файлов.
На странице Dialogs палитры компонентов добавлен компонент TPageSetupDialog, позволяющий использовать в приложении стандартную диалоговую панель для управления параметрами страницы при печати документов. На странице Additional появились новые компоненты TXPColorMap, TStandardColorMap, TTwilightColorMap, предназначенные для изменения внешнего вида меню и инструментальных панелей.
CLX-версии компонентов TOpenDialog и TSaveDialog теперь поддерживают некоторые новые возможности, такие как предварительный просмотр файлов.
VCL-версия класса TCustomForm теперь приобрела новые свойства ScreenSnap и SnapBuffer, с помощью которых можно указывать, располагается ли данная форма автоматически вдоль края экрана при ее перемещении (подобно тому, как ведет себя панель задач Windows).
Класс TCustomComboBoxEx обладает свойством AutoCompleteOptions, позволяющим управлять тем, как именно его наследники обрабатывают пользовательский ввод с клавиатуры.
CLX-классы, являющиеся наследниками классов TOpenDialog и TQtDialog, теперь могут использовать как диалоги из библиотеки Qt, так и стандартные диалоги Windows — для этого они оснащены новым свойством UseNativeDialog.
В библиотеку компонентов были добавлены новый класс EFileStreamError и два его наследника — EFileStreamError и EFOpenError, получающие в качестве входного параметра имя файла, при доступе к которому произошла ошибка ввода-вывода. С помощью этих классов можно предоставлять пользователю диагностические сообщения о подобных ошибках, содержащие имена соответствующих файлов.
Класс TStrings теперь обладает свойствами ValueFromIndex и NameValueSeparator, что позволяет определить значения по номеру строки и указать, какой символ отделяет имена параметров от значений.
В модуль StrUtils внесен ряд изменений, связанных с поддержкой многобайтовых наборов символов. В частности, теперь функции LeftStr, RightStr, MidStr поддерживают данные типа WideString, однако при этом для хранения однобайтовых значений в строках AnsiString следует применять новые функции LeftBStr, RightBStr, MidBStr и соответствующим образом изменять код старых проектов, в которых использовались эти функции. Ряд изменений был также внесен и в модуль SysUtils.
Поддержка Linux
помощью Delphi 7 Studio можно создавать как Windows, так и Linux-приложения — для этой цели в состав всех редакций Delphi 7, кроме Personal, включен Borland Kylix 3 for Delphi — выпущенная этим летом новая версия средства быстрой разработки приложений для Linux. Напомним, что исходные тексты проектов Delphi и Kylix, созданные с применением библиотеки компонентов CLX, являются переносимыми между этими платформами.
Заключение
настоящей статье мы кратко рассмотрели особенности Delphi 7 Studio — новой версии самого популярного средства разработки компании Borland, предназначенного для создания Windows-приложений. Мы видим, что этот продукт приобрел много новых особенностей, существенно повышающих его ценность как средства разработки приложений масштаба предприятия, инструмента создания Web-сервисов и интеграции приложений, средства создания многоплатформенных приложений, поддерживающего самые современные технологии и обладающего весьма заманчивыми перспективами (такими, например, как полноценная поддержка Microsoft .NET). Поэтому, на наш взгляд, этот продукт заслуживает пристального внимания разработчиков.
КомпьютерПресс 10'2002