Borland Delphi 7: міграція в бік. Net h2>
Віталій Чужа p>
Delphi
7 Studio позиціюється як перший незалежний інструмент для полегшення
міграції до платформи. Net p>
Qui non proficit, deficit. b> Втрачає той, хто не йде вперед b> p>
Отже,
перед нами чергова версія знаменитого продукту фірми Borland - Delphi 7
Studio, про вихід якого було повідомлено в прес-релізі компанії від 6 серпня
2002 року. Нова версія Delphi позиціюється як перший незалежний інструмент
для полегшення міграції до платформи. Net і, будучи доступна з літа 2002 року,
поставляється в чотирьох редакціях: Architect, Enterprise, Professional і
Personal. У шостій версії, як ви пам'ятаєте, була відсутня редакція Architect, та
і саме поняття «Studio» (студії). Також потрібно зауважити, що, хоча Delphi
кілька «потяжчав» і змінився перелік підтримуваних операційних систем,
системні вимоги Delphi 6 і Delphi 7 версій Enterprise, в основному,
залишилися колишніми. p>
Для
версії Architect, яка є найбільш повною і дорогий (99) редакцією,
вимоги до ПК вище - для повної установки їй потрібно 540 Мб простору на
жорсткому диску. Ціни на «стандартні» версії, у порівнянні з Delphi 6, не
змінилися: Enterprise коштує 99, Professional - 9 і Personal -. p>
Які
ж нові можливості були включені в Delphi 7 Studio? Розглянемо їх по порядку. P>
середу розробки h2>
Зміни,
зачепили IDE, торкнулися палітри компонент, достройщіка коду, відладчика і
налаштувань редактора коду. У палітрі компонент з'явилися наступні закладки:
нова версія закладку System тільки для CLX-додатків, закладки Indy
Intercepts і Indy I/O Handlers, що містять компоненти з підтримкою протоколів
інтернет з відкритим вихідним кодом (редакції Professional і Enterprise). Для
розробки веб-додатків - нові закладки IW Standard, IW Data, IW Client
Side, і IW Control з компонентами IntraWeb, а також нова закладка Rave з
компонентами генерації звітів. Крім того, якщо закладка містить компоненти,
для доступу до яких потрібна горизонтальна прокрутка, то тепер дістатися
до них можна і за допомогою спадаючого меню. p>
Достройщік
коду (code completion) тепер працює швидше і дозволяє перейти до
оголошенням елементів через їх список шляхом натискання клавіші і
кліка мишею на будь-якому ідентифікаторі в списку. З'явився новий достройщік
HTML-код, який автоматично відображає потрібні HTML-елементи та атрибути в
редакторі коду (для редакцій Professional і Enterprise). Для зручності роботи
у Tools р Editor Options р Code Insight можна налаштувати кольори,
використовувані достройщіком коду. Також необхідно відзначити можливість написання
власних менеджерів завершення коду. p>
Вікно
перегляду повідомлень відладчика (Watch List) обзавелося безліччю закладок
полегшення процесу вилову помилок. Кожну закладку можна налаштувати - відображати
її або сховати. Діалогове вікно Run Parameters тепер має нову настройку:
робочий каталог (Working Directory), вказавши який, можна налаштувати каталог,
що використовується для налагодження. p>
З
Project Manager можна компілювати лише частина проектів в групі, клацнувши
правою кнопкою по проекту і вибравши пункти меню Make All from Here або Build All
from Here, а у вікні перегляду повідомлень (Message view) з'явилося безліч
закладок для відображення різних типів повідомлень (Build, Search, і т. д.) У
вікні, що є доступним через меню View р Component List, можна вибирати кілька
компонент за допомогою клавіші. Вікно налаштувань редактора коду,
доступне через меню Tools р Editor Options р Source Options, дозволяє
встановлювати різні налаштування для мов Pascal, C + +, C #, HTML, XML,
контролювати відображення знаків пробілу і табуляції, редагувати шаблони
коду. Вікно, доступне у Tools р Editor Options р Color, має два
нові налаштування: колір символу (Foreground Color) і колір фону (Background Color)
- Замість кольорової сітки для налаштування кольору в редакторі коду. P>
Веб-технології h2>
В
сьому версію Delphi увійшов набір компонентів IntraWeb від AtoZed Software,
який може бути використаний для написання програм веб-сервера з використанням
стандартного інструментарію розробки форм. IntraWeb також годиться для
розробки сторінок Web Broker і WebSnap додатків. Повна версія IntraWeb
входить до складу редакції Delphi Enterprise. Delphi також підтримує Apache 2
- Як цільовий тип для Web Broker, WebSnap і SOAP. У той же час Borland НЕ
рекомендує використовувати Win-CGI для додатків веб-сервера або веб-сервісів.
Замість цього рекомендується використовувати CGI, ISAPI/NSAPI, або Apache. P>
Веб-сервіси h2>
З'явився
новий UDDI (Universal Description, Discovery, and Integration) браузер у
чарівника імпорту WSDL, який дозволяє сканувати реєстр UDDI для пошуку
веб-сервісу та імпорту адреси WSDL документа. Сам реєстр UDDI є базою
даних, у якій реєструються компанії, що поставляють веб-сервіси. Нові
класи та інтерфейси дозволяють читати або вставляти заголовки в SOAP-конверти,
які переказують сполучення між клієнтом і сервером. Програми веб-сервісів (як
клієнтів, так і серверів) тепер в змозі обробляти вкладення. Вкладення
(спадкоємці класу TSOAPAttachment) відсилаються разом з закодованими
повідомленнями SOAP як частина складовою форми. Коли програма отримує повідомлення
з вкладенням, воно зберігає вкладення в тимчасовому файлі, доступному вашої
програмі. p>
Нові
події, які обчислюються, компонентом THTTPReqResp, дозволять вам перехоплювати
повідомлення HTTP до їх відсилання і відслідковувати хід отримання або відсилання довгих
повідомлень. У класі THTTPSoapPascalInvoker доступні повідомлення, які дозволять
написати код, що виконується до або після того, як об'єкт класу здійснить виклик
запитуваної методу. Інтерфейс IOPConvert отримав нову властивість Encoding,
що дозволяє вказати набір символів для використання в повідомленнях,
переданих між клієнтом постачальником веб-сервісу. p>
Бази даних h2>
Оновлено
драйвера dbExpress для Informix SE, Oracle 9i, DB2 7.2, InterBase 6.5 та MySQL
3.23.49. Новий драйвер поставляється і для MS SQL Server 2000. А ось SQL Links
Borland не рекомендує використовувати, більше того - робота над
удосконаленням SQL Links припиняється. Повідомляється також, що ця
технологія не буде поставлятися разом з Delphi після 2002 року. У вигляді заміни
рекомендовано використовувати dbExpress для доступу до баз даних SQL серверів. p>
Припинено
також підтримка CORBA-з'єднань компонентами DataSnap. p>
Бібліотека компонент h2>
Програми,
написані з використанням VCL, тепер включають компоненти, які підтримують
бібліотеку елементів управління Windows шостої версії. Тому додаток буде
автоматично використовувати нові елементи управління Windows в ОС Windows XP,
якщо знайде відповідний файл-маніфест. p>
Новий
модуль DBClientActns включає три нових компонента для роботи з клієнтськими
наборами даних: TClientDataSetApply, TclientDataSetUndo і
TClientDataSetRevert. P>
Закладка
dbExpress включає новий компонент TSimpleDataSet для використання з простими,
дворівневими додатками баз даних (TSimpleDataSet замінив собою
TSQLClientDataSet). Оновлена закладка Dialogs на палітрі компонент - додано
TPageSetupDialog для представлення стандартного діалогового вікна Windows
налаштування параметрів сторінки. На закладку Additional додані компоненти
TXPColorMap, TstandardColorMap і TtwilightColorMap для фарбування меню і панелей
інструментів. p>
У
VCL-версії компонента TCustomForm додалися два нових властивості: ScreenSnap і
SnapBuffer, які контролюють «прилипання» вікна до країв екрана. Компонент
TCustomComboBoxEx отримав нову властивість AutoCompleteOptions, яке дозволяє
відгукуватися на введення користувача. p>
Бібліотека часу виконання h2>
Модуль
Classes містить новий клас-виключення EFileStreamError. Класи EFCreateError
і EFOpenError є спадкоємцями цього класу. Оскільки конструктор цього
класу приймає ім'я файлу як параметр, то в повідомленні про виняткову
ситуації можна бачити ім'я файлу, в якому вона відбулася. p>
Клас
TStrings також обладет тепер двома новими властивостями: ValueFromIndex і
NameValueSeparator. P>
В
модулі StrUtils також відбулися певні зміни, що стосуються роботи з
багатобайтові наборами символів. Раніше функції LeftStr, RightStr і MidStr брали
параметр типу AnsiString і повертали значення того ж типу, не підтримуючи
багатобайтові набори символів. Тепер кожна з цих функцій замінена парою
перевантажених функцій, одна з яких працює з типом AnsiString, а інша --
з типом WideString. Також в модуль додана нова функція для пошуку в рядку,
іменована PosEx. p>
В
модулі SysUtils функції, що працюють над форматуванням і розбором чисел, валют
і значень типу дата і час, замінені на безпечні при роботі з нитками. p>
Модуль
VarCmplx містить нові функції VarComplexLog2, VarComplexLog10,
VarComplexLogN, VarComplexTimesImaginary і VarComplexTimesReal. P>
В
модуль Variants додані функції VarIsError і VarAsError. Виключення
EVariantError тепер є батьківським класом для більш ретельно розроблених
класів-виключень, які використовуються в коді з використанням змінних
типу variant. p>
Компілятор h2>
Компілятор
Delphi підтримує три додаткових попередження: Unsafe_Type, Unsafe_Code
і Unsafe_Cast. Ці попередження за замовчуванням відключені, однак їх можна
задіяти за допомогою директив компілятора ($ WARN UNSAFE_CODE ON), команди
компілятора командного рядка (dcc32-W + UNSAFE_CODE), або за допомогою середовища
розробки, скориставшись меню Project р Options р Compiler Messages. Ця особливість
повинна допомогти вам перенести код в оточення керованого виконання платформи
Microsoft. NET. У цьому оточенні «unsafe» означає, що дії, що виконуються
програмою, не можуть бути перевірені під час аналізу, здійснюваного Just In
Time (JIT) компілятором. Такий код видається небезпечним. Прикладом такого
коду можуть послужити операції з вказівниками. p>
Підтримка b> Rave Reports b> p>
(для редакції
Professional і
Enterprise) p>
Разом
з Delphi тепер постачається набір компонентів для генерації звітів Rave Reports
фірми Nevrona. Повна його назва - Rave 4.0 Borland Edition (BE). Включає 19
компонентів, що містять більше 500 методів, властивостей і подій. Компоненти
компілюються в ехе-файл програми, але не вимагають для роботи ніяких
додаткових файлів. У генератор звітів включена підтримка графіки,
вирівнювання та переносу тексту, точне позиціонування сторінки,
конфігурування принтера, управління шрифтами, повнофункціональний
попередній перегляд. Rave 4.0 BE справляється і зі звітами виду master-detail, листами,
рахунками і т. д. (рис. 1) p>
Підтримка ModelMaker p>
(для редакції
Professional і
Enterprise) p>
ModelMaker
покликаний допомогти спростити дизайн, розробку і підтримку класів і інтерфейсів.
ModelMaker також містить можливості створення діаграм у стилі UML (Unified
Modeling Language), які можуть бути використані для створення і модифікації
вихідного коду проекту. p>
Відзначу,
що версія Delphi Enterprise включає повноцінну версію ModelMaker, а Delphi
Professional - лише 30-денну пробну версію, хоча функціональність обох
версій однакова. p>
Висновок h2>
Незважаючи
на безліч нововведень у цій версії Borland Delphi, можна відзначити, як
мінімум, три важливі тенденції. p>
Перша
- Згортання власних технологій, таких як Borland Database Engine (BDE)
і SQL Links. Здається ймовірним відмова від набору компонент Quick Reports, успішно
поставлялися з кількома останніми версіями Delphi. p>
Друга
- Що стала вже традиційною підтримка написання програм для Linux. P>
Третя
- На мій погляд, більш важлива - поступовий відхід провідних засобів розробки від
платформи Win32 і їх міграція в бік платформи. Net. І хоча, як сказано в
прес-релізі Borland, за одну ніч нова платформа не змінить технологію
розробки та розповсюдження програм, однак платформа. Net - наступна,
еволюційна ступінь Windows, прихід якої неминучий. Беручи до уваги
той факт, що розробники в основній своїй масі люди інертні, а також те,
що на вивчення нових технологій необхідно досить багато часу і коштів,
Borland зробила ставку на необхідність еволюційного розвитку Delphi і, на мій
погляд, не помилилася. Включення в цю версію підказок і попереджень
компілятора, що стосуються сумісності з Microsoft. Net, можливості імпорту
вузлів (assembly). Net в Delphi та експорту COM об'єктів в додатку. Net,
підтверджує сказане вище. Повноцінна ж підтримка цієї багатообіцяючою
платформи, напевно, буде реалізована в наступній версії Delphi - Delphi. Net,
яку і будемо з нетерпінням чекати. p>
Список літератури h2>
Для
підготовки даної роботи були використані матеріали з сайту http://www.hostmake.ru/
p>