Delphi 2005 стає багатомовною, Інтеграція додатків і даних, Бази даних, статті

Випустивши в 1983 р. першу версію мови та середовища програмування Turbo Pascal, компанія Borland Software відкрила нову сторінку в історії розвитку засобів розробки додатків. Через 12 років, в 1995-м, побачила світ і перша версія Delphi (Що опинилася в той же час останнім 16-розрядним компілятором), в якій була реалізована заснована на компонентах методологія швидкої розробки додатків (RAD). Однак з появою середовища розробки JBuilder розвиток Delphi кілька загальмувався, хоча було випущено ще сім версій цього потужного інструменту. І ось тепер корпорація Borland оголосила про вихід Delphi 2005, Який зв’язав у єдиній середовищі підтримку мов Object Pascal для Win32 і. NET та C # для. NET, засоби роботи з Web і базами даних, а також засновану на моделях розробку програм та інструменти управління життєвим циклом додатків (ALM).

Інтегроване середовище розробки


Delphi 2005 забезпечує єдину інтегровану середовище розробки (IDE) для всіх типів ПЗ (наприклад, Win32 на Паскалі або. NET на C #), однак при цьому автоматично враховуються особливості кожного виду розробки. Так, якщо створюється веб-сторінка ASP.NET, то вдаються до допомоги конструктора HTML (HTML Designer), що дозволяє розміщувати і налаштовувати веб-компоненти і відразу оцінювати отриманий результат. Якщо ж проектується додаток Win32, то застосовується конструктор VCL (VCL Designer; VCL – бібліотека візуальних компонентів). Природно, залежно від виду проекту використовується той чи інший набір інструментів (палітра компонентів, відладчик, засоби редактора коду і т. п.).

Деякі розробники, що мали справу з Delphi 8, скаржилися на відсутність традиційного для попередніх версій “плаваючого” конструктора VCL. У новій версії з’явився вибір: можна використовувати або “плаваючий конструктор “, або вбудований конструктор. NET-стилю.

Дуже зручним засобом є вікно структур (Structure Pane), вміст якого залежить від того, яке основне вікно розробки задіяно в даний момент. Наприклад, якщо розробник знаходиться в редакторі коду, у вікні структур відображаються всі класи, типи, інтерфейси і інші символи поточного файлу. Якщо ж іде проектування форми Win32, вікно структур показує використані на формі компоненти. За допомогою цього вікна можна швидко перейти до редагування властивостей потрібного компонента або ділянки коду, потрібно лише двічі клацнути мишею на його назві.

У Delphi 2005 удосконалено палітра компонентів (Component Palette). Якщо раніше вона служила тільки для вибору і переносу в форму необхідних компонентів, то тепер з її допомогою можна створювати нові проекти, файли та об’єкти, а також отримувати доступ до наявних майстрам (Wizards) і використовувати стандартні фрагменти коду. Розширено також кошти вибору компонентів з палітри: досить набрати частина імені об’єкта, і палітра автоматично відкриє список відповідних компонентів. Нарешті, тепер реалізовано перетягування компонентів на форму за допомогою технології drag & drop, раніше ж для цього треба було двічі клацнути мишею (втім, цей спосіб зберігся і в новій версії).

Розширився набір візуальних компонентів для VCL-додатків. Особливо збагатилася бібліотека компонентів для додатків. NET, що полегшує перенесення проектів Win32 на нову платформу.

Доопрацюванням піддався і інспектор об’єктів (Object Inspector). Крім свого прямого призначення – редагування властивостей використовуваних компонентів і призначення обробників подій – він тепер дозволяє проглядати і змінювати характеристики об’єктів, обраних в менеджері проектів (Project Manager), наприклад перейменовувати файли, що входять в проект.

Значно зріс набір майстрів, що пов’язано насамперед з підтримкою різних платформ і мов програмування. Крім того, з’явився майстер, що допомагає здійснити перенесення Win32-додатки на платформу .NET.

Серед інших додатків і поліпшень можна відзначити кошти для імпорту або експорту. NET-проектів на мові C # Delphi між 2005 і Visual Studio. NET, повну підтримку кодування UTF-8 у всіх майстрів і компонентах IDE, а також вбудовані в оболонку засоби передачі в Borland повідомлень про виниклі помилки.

Редактор коду


Хоча редактор коду (Code Editor) відноситься до IDE, внесені до нього поліпшення і доповнення настільки істотні і численні, що доцільно поговорити про них окремо.

Delphi 2005 включає засоби підтримки переробки додатків (Refactoring). До цієї переробки вдаються, коли необхідно поліпшити читаність і ефективність коду, не змінюючи при цьому поведінки програми. Типовими прийомами переробки є присвоєння змінним, типам і класам більш виразних імен, винесення повторюваних ділянок коду в окремі процедури, заміна безпосередніх значень іменованими константами.

Засоби перейменування символів, на відміну від звичайної операції пошуку і заміни, враховують контекст, в якому застосовуються перейменовуємо символи. Такими символами можуть бути імена класів і інтерфейсів, властивості, методи, процедури та функції, змінні та константи. Природно, враховується контекст символів; наприклад, локальна змінна буде перейменована тільки в межах тієї процедури, де вона визначена. Дія перейменування символів поширюється також на класи – спадкоємці того класу, символ якого перейменовується, і на файли ресурсів. Без цього механізму “глобальне” перейменування найчастіше ставало тяжкою працею, зв’язаних з появою безлічі помилок.

Для більшої зручності роботи в Delphi 2005 введено спеціальне діалогове вікно для оголошення локальної змінної або поля запису. Тепер немає потреби подорожувати туди-сюди по коду кожного разу, коли треба описати нову змінну. Ця можливість підтримується лише для мови Object Pascal.

Ще одним засобом “тільки для Паскаля” є переробка ресурсів (Resource Refactoring), що полягає в заміні рядкових констант, що знаходяться прямо в виконуваному коді, на блоки строкових ресурсів. Особливо корисний цей механізм при розробці додатків, які в майбутньому передбачається локалізувати для інших країн. У мові C # механізм блоків строкових ресурсів відсутня.

Засоби вилучення методів дозволяють, виділивши кілька рядків коду Object Pascal, створити на їх основі новий метод, а самі рядки замінити викликом цього методу. Такий механізм вельми інтелектуальний: наприклад, він “розуміє”, які змінні передавати методу за значенням, а які – за посиланням. Для C # подібного кошти поки немає.

Дуже зручний механізм імпорту простору імен для C # або пошуку модуля для Object Pascal. Він дає можливість швидко відшукати потрібний простір або модуль для заданого символу і підключити його до проекту.

Засіб синхронного редагування (SyncEdit) є доповненням механізму перейменування символів, але на відміну від останнього діє лише у виділеному блоці коду, зате робить зазначену заміну не тільки власне в коді, але і в коментарях, що потрапили у виділений блок.

Механізм попередження помилок (Code Insight) заснований на безперервному контролі вводиться в редакторі коду. Раніше подібний контроль застосовувався тільки для виділення ключових слів, імен змінних, констант і т. п., тепер же автоматично здійснюється синтаксичний аналіз коду і проблемні фрагменти підкреслюються червоною хвилястою лінією, як це робить Microsoft Word для тих слів, які йому здаються неправильними. Навівши курсор миші на підкреслений елемент, можна отримати інформацію про те, що ж саме не сподобалося редактору. Крім того, крім відображення помилок у вікні редактора коду всі проблеми заносяться у вікно структур (Structure Pane). Це дозволяє програмісту швидко переходити від однієї помилки до іншої, не прокручуючи сам текст програми.

Автоматична допомогу (Help Insight) викликається, коли курсор миші затримується деякий час на імені будь-якого класу, властивості або методу. Це засіб доповнює традиційну систему допомоги, проте не замінює її повністю, оскільки можливості “автоматики” обмежені.

Менеджер змін (History Manager) зберігає старі версії вихідних файлів коду і форм в окремій папці і дозволяє завжди повернутися до попередньої версії, а також порівняти одну версію з іншого, показавши внесені зміни. Він може взаємодіяти також з сервером контролю версій Borland StarTeam, відстежуючи зміни, внесені різними членами команди розробників.

Значно розширилися засоби навігації по коду. Так, тепер одним натисканням комбінації клавіш можна “перестрибнути” від оголошення методу до його тіла або навпаки. Стали більш багатими і можливості закладок, завдяки чому, наприклад, можна визначати постійні закладки, які видаляються тільки явним чином (раніше закладка зберігалася тільки під час сеансу редагування).

З’явилося засіб швидкого “відключення” блоку коду шляхом розміщення ознаки коментаря (символів “//”) на початку кожної його рядки, а також виконання зворотного процесу.

Нарешті, в редактор була додана можливість перекодування вихідних файлів. Такий засіб буває корисним, коли, скажімо, треба відредагувати HTML-сторінку, створену з використанням одного кодування, і зберегти її в іншій.

Бібліотека візуальних компонентів (VCL) для. NET


VCL для. NET поповнилася крім нових компонентів і новим механізмом виклику процедур і функцій, які перебувають у звичайних DLL платформи Win32, – інтерфейсом віртуальних бібліотек (Virtual Library Interface, VLI). Підтримуваний платформою. NET сервіс викликів PInvoke мав обмежені можливості і був досить незручний у використанні: так, з його допомогою не можна було звернутися до бібліотеки, місце розташування якої ставало відомим тільки під час виконання програми. VLI і знімає подібні обмеження.

Компілятори


До складу Delphi 2005 входять три компілятора. Один з них, ліцензований у корпорації Microsoft (www.microsoft. com), Забезпечує трансляцію програм, створених на мові C #, в проміжний мова (Intermediate Language, IL) платформи. NET. Породжуваний ним код повністю збігається з тим, який генерується компілятором C #, що входять до складу Microsoft Visual Studio for. NET. Два інших компілятора розроблені корпорацією Borland і забезпечують трансляцію програм мовою Object Pascal в машинний код для виконання на платформі Win32 або в IL-код для використання на платформі. NET.

У порівнянні з попередніми версіями синтаксис мови Object Pascal був дещо розширений. Наприклад, був введений новий цикл for … in, який забезпечує послідовний перебір елементів колекції і по своїми функціями аналогічний циклу foreach мови C #.

Нові компілятори здатні транслювати вихідні файли в кодуванні UTF-8 або Unicode. Попередні версії могли працювати тільки з файлами в кодуванні ANSI.

Найважливішим зміною в компіляторі для. NET стала можливість утворювати єдиний простір імен для групи модулів або навіть групи додатків (у Delphi 8 кожен модуль мав свій власний простір імен, що здавалося незручним розробникам, які звикли до мови C #).

У компіляторі для Win32 з’явилася можливість вбудовування (inlining) процедур і функцій. Коли функція оголошена як вбудовується, компілятор при зверненні до неї не генерує інструкцію виклику підпрограми, а розміщує в точці виклику сам код функції. Оскільки інструкції виклику і повернення з підпрограм відносяться до одних з найбільш повільних, подібний засіб в певних випадках допомагає істотно підняти продуктивність програми.

Ще одним нововведенням для платформи Win32 стала підтримка вкладених типів, тобто визначення одного типу всередині визначення іншого. Крім того, тепер можна оголошувати константи всередині оголошень класів. На платформі. NET ці кошти були ще в минулій версії.

На основі вихідного коду Win32 сьогодні можна генерувати файли документації в форматі XML. Ця можливість також запозичена у компілятора для платформи. NET.

Нарешті, компілятор для Win32 здатний генерувати код, оптимізований для інструкцій наборів SSE2 і SSE3, що є в процесорах Pentium 4. При виконанні деяких специфічних завдань цей засіб здатне багаторазово підвищити продуктивність програми.

Відладчики


Delphi 2005 має два відладчика: один для платформи Win32, інший – для платформи. NET. Можливості обох інструментів досить близькі і розрізняються лише в тій частині, яка залежить від платформи. Так, відладчик для Win32 дозволяє встановлювати точки зупину на спробу запису в пам’ять за певною адресою, а відладчик для. NET такої можливості не має, оскільки на цій платформі можна заздалегідь передбачити, де саме будуть зберігатися дані.

У порівнянні з попередніми версіями функції отладчиков дещо розширилися. Так, вони тепер можуть більш гнучко реагувати на ті чи інші виключення, що виникають в програмі (наприклад, можна ігнорувати певний клас винятків).

Відладчик для. NET “навчився” показувати вихідний текст програми, що згенерував IL-код і відповідний йому машинний код *.

Традиційні точки зупину тепер можуть у момент спрацьовування записувати до протоколу стан стека виклику. Змінилося і саме вікно управління точками останову: його зробили більш зручним.

З відладчика для. NET в відладчик для Win32 перекочувала можливість перегляду локальних змінних будь-якої процедури з стека виклику (раніше забезпечувався перегляд змінних тільки поточної процедури).

Управління життєвим циклом додатків


Delphi 2005 надає повний доступ з IDE до всіх можливостей Borland StarTeam – системи управління колективною роботою, забезпечує контроль версій, управління вимогами, відстеження помилок, підтримку дискусійних груп і віддалену розробку. Коли задіяні засоби колективної роботи, менеджер змін не зберігає версії вихідних файлів самостійно, а користується репозиторием StarTeam. Природно, в цьому випадку відслідковуються зміни, внесені будь-яким членом команди розробників.

Ще одним нововведенням є тестування модулів – окремих методів, функцій і процедур, що входять до складу програми. Тестування кожного такого “цеглинки” є одним з основоположних принципів екстремального програмування, але і ті розробники, що дотримуються іншої методології, часто знаходять за потрібне перевірити ті чи інші компоненти програми окремо.

Модулі тестуються шляхом створення за допомогою майстра спеціального тестового проекту, до якого включаються вихідні файли, що містять тестовані компоненти. Майстер генерує прості шаблони, на основі яких програміст створює код, який здійснює перевірку.

Enterprise Core Objects (ECO)


ECO – це технологія керованої UML-моделями розробки. NET-додатків. Такий підхід до розробки часто називають архітектурою, керованої моделями (Model Driven Architecture, MDA).

У більшості випадків моделі UML застосовуються виключно як керівництво для розробника: вони лише визначають класи, які повинні бути реалізовані у додатку. Проте в ECO моделі інтегровані з процесом розробки найтіснішим чином: їх використовують для автоматичної генерації класів і підтримує коду, складових ядро ​​програми. Якщо у додаток повинні бути внесені зміни, програміст повертається до моделей і вносить зміни до них, що автоматично відбивається на власне коді проекту.

ECO є технологією швидкої MDA-розробки, оскільки забезпечує багаторазове зниження обсягу коду, який необхідно написати вручну для реалізації заздалегідь створеної моделі UML.

У звичайних додатках, що працюють з базами даних, значні зусилля витрачаються на проектування самої бази. У разі ECO сховище даних створюється автоматично, програміст ж має справу з бізнес-об’єктами, і в нього немає потреби спускатися на нижчий рівень. При необхідності можна поступити і по-іншому: відобразити вже наявну базу на моделі UML.

На додаток до UML в ECO підтримується мова OCL (Object Constraint Language), що дозволяє визначити правила обчислення або управління значеннями атрибутів об’єктів. Використання OCL, як і UML, дозволяє звести до мінімуму ручне програмування рутинних завдань. У Delphi 2005 ECO підтримується для обох мов програмування – Object Pascal і C #.

Крім перерахованих в Delphi 2005 увійшло чимало інших нововведень. Хоча практично кожне з поліпшень не є чимось принципово новим, їх об’єднання в одне ціле дозволило корпорації Borland ось вже втретє вивести засоби розробки додатків на якісно інший рівень. Оцінити нові засоби Delphi 2005 може кожен розробник: пробна версія доступна для скачування на веб-сайті www.borland.com.

* – Іноді можливість налагодження на рівні машинних команд просто неоціненна. Наприклад, у мене був випадок, коли невелика програма на Visual C + + 6.0 вперто не хотіла працювати, і тільки “спустившись” до машинного коду, я побачив, що компілятор згенерував невірну послідовність команд.

Додаткова інформація



Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*