WinDEV
Як би часто і багато ми з вами, шановні читачі, не говорили про середовищах розробки додатків для Windows, цих розмов не буде достатньо. Тому що, як не крути, завжди знайдуться переваги у того чи іншого інструменту. І це цілком природно, тому що про тих інструментах, у яких немає ніяких переваг, немає сенсу говорити зовсім. Та й говорити про них можна найчастіше тільки в ретроспективі - законів ринку ніхто не відміняв, знаєте ...
Розробка, навіть під одну тільки платформу Windows, все одно включає в себе досить різноманітний спектр завдань. Розробка прикладних програм рівня від утиліти для чищення реєстру до AutoCAD'а; розробка різних бібліотек класів і компонентів для інших програмістів, розробка драйверів ... Однак драйвери - доля небагатьох, хоча, ймовірно, коли-небудь буде розповідь і про них. Основна маса додатків, які створюються білоруськими програмістами, - це додатки прикладні. Саме тому я і розповідаю, в основному, про тих середовищах, які призначені для їх розробки. Прикладні програми давно вже прийнято розробляти в RAD-середовищах, тобто в середовищах швидкої розробки. Тому інструмент, про який я зараз розповім, буде RAD-середовищем для Windows.
Називається ця штука WinDEV. Говорить таку назву, і досить вдале. Знайти дистрибутив безкоштовної ознайомлювальної версії можна за адресою www.windev.com . Однак хочу відразу попередити, що "важить" він зовсім не мало - близько 400 Мб. Розробила WinDEV французька фірма PC-Soft ( www.pcsoft.fr ), І на їх офіційному сайті також можна знайти цей продукт.
Уже під час установки відчуваєш, що продукт відрізняється від більшості засобів для розробки додатків. Чим? Своїм інтерфейсом, перш за все. Якщо всюди він, як правило, стандартний, такий же, як в самій системі, то в WinDEV оформлення всіх елементів управління особливе, фірмове. Одне віконце створення нового проекту чого варто (див. Скріншот)! Але працювати цей момент жодним чином не заважає: спочатку це кілька розважає, але потім звикаєш і зовсім не помічаєш.
Процес розробки в WinDEV відповідає класичній методиці: спочатку будує прототип програми у вигляді UML-діаграм, що містять його ключові елементи, потім за цими діаграмами середу генерує код і діалогові вікна. Редактор діаграм французи у своєму дітищі зробили потужний і зручний. Так, при подвійному натисканні на елемент діаграми, зображує вікно, автоматично відкривається візуальний редактор-дизайнер вікон, в якому працювати так само просто, як в тому ж Visual Basic або Delphi. Правда, контроли (елементи управління, цеглинки інтерфейсу програми) в WinDEV за замовчуванням пропонуються, чого вже гріха таїти, досить своєрідні. Наприклад, на панелі вибору компонентів є пункт "Maps", в якому пропонуються на вибір зображення карт материків і деяких європейських країн (Білорусь, звичайно ж, буржуї забули). Навіщо це треба, не цілком ясно, але, напевно, комусь, тим не менш, стане в нагоді.
Втім, додаткові компоненти додати не проблема. Середа вміє працювати як з власним форматом компонентів, так і імпортувати збірки .NET Framework. Звичайно, таке змішування різних технологій не може не відбитися на розмірі вихідного файлу програми ... Втім, про це ще окремо нижче.
Звичайно, вітчизняних розробників не може не цікавити, як йде справа з розробкою додатків, взаємодіючих з базами даних. Поспішаю заспокоїти: все зовсім не погано. Разом з WinDEV поставляється СУБД HyperFile, яка підтримує як файл-серверну, так клієнт-серверну модель роботи. Працювати сервер HyperFile'а може і під Windows, і під Linux, і навіть під управлінням систем для мобільних пристроїв (до речі, є версія WinDEV для розробки під ці самі пристрої, проте про неї нижче або взагалі потім - зараз ми все ж говоримо не про цьому, а про Windows). HyperFile - досить зручна і надійна СУБД, підходяща для більшості прикладних задач. Дізнатися про обмеження обсяг даних, навряд чи стануть проблемою, однак при цьому є підтримка автоматичного реіндексірованія бази в разі апаратного або системного збою, конкурентного доступу до даних і багатьох інших речей, необхідних у повноцінній клієнт-серверної СУБД. При цьому HyperFile дуже гарний як вбудовується СУБД, оскільки вимагає мінімальної настройки при установці і може відмінно функціонувати без додаткового адміністрування довгий час. Втім, пора закінчувати розписувати HyperFile, тому що це СУБД додаток до середовища, а не навпаки. Давайте подивимося, що ще корисного і доброго є в самій WinDEV.
Є в ній, наприклад, підтримка і інших серверів баз даних, а не тільки HyperFile (не втримався, знову мене потягнуло на БД. Ну нічого, це ж все одно цікаво). Серед тих, які підтримуються без проміжних технологій і додаткових зв'язок, - MS SQL Server, MySQL, Sybase, DB2, Oracle, Access, xBase і деякі інші. Правда, можна працювати взагалі з будь-СУБД, оскільки є підтримка технологій ODBC і OLE DB (про них я не так давно вже коротко розповідав в "КВ" № 11 '2007). Однак якщо потрібно скористатися базами даних на основі XML, не потрібно шукати для них ODBC або OLE DB драйвера. З ними середовище розробки допоможе впоратися і без додаткових засобів, оскільки XML підтримується вбудованими компонентами.
Так повелося, що де бази даних, там і звіти. Вбудований в середу генератор звітів володіє багатьма можливостями, що дозволяють поставити його на одну дошку з таким гігантом індустрії, як Crystal Reports. Він дозволяє друкувати написи, діаграми, зображення і багато іншого. Вбудована підтримка струменевих, лазерних, матричних принтерів. Візуальний редактор, підтримка експорту звітів в PDF, Word, Excel, HTML; можливість автоматичної відправки по електронній пошті, попередній перегляд перед друком, вбудована підтримка штрих-кодів. Загалом, виглядає заманливо і працює (принаймні, на демонстраційних прикладах) досить рівно і спритно.
Давайте ще раз тепер повернемося до UML, про який я побіжно згадав спочатку. Завдяки йому можна створювати додатки, що працюють з вже готовими і наповненими базами даних. Програма автоматично імпортує структуру бази в проект, і потім вже можна автоматично по ній створювати діалогові вікна, звіти і т.д. До речі, я говорив, що WinDEV створює код по UML-діаграм, як і належить будь-якого засобу, що працює з моделями? Говорив, швидше за все. Так ось, ця операція, як сказали б математики, коммутативна. Тобто можна і за кодом створити діаграми. Насправді, звичайно, ця можливість менш затребувана, ніж, так би мовити, "пряме" моделювання, однак теж може бути корисною.
Говорячи про розробку програмного забезпечення, ми так чи інакше розуміємо під нею програмування в тій чи іншій його іпостасі. А програмування тісно і нерозривно пов'язане з алгоритмічними мовами. І в WinDEV теж є власна мова, за допомогою якого створюється програмний код продукту. Називається він W-Language, однак насправді до болю нагадує Visual Basic. Цілком зручний і потрібну мову для RAD-середовища. З огляду на, що левова частка рутинного коду в WinDEV генерується різноманітними помічниками і майстрами, навіть затяті шанувальники Паскаля і Сі-подібних мов навряд чи будуть дуже ображені. Однак простота мови - це ще не все, що забезпечує простоту кодування. Об'єктна бібліотека WinDEV вельми проста і логічна в використанні, проте не позбавлена функціональності. Робота з сокетами, створення багатопоточних додатків, об'єкти для зв'язку з базами даних ... Програмістові практично немає ніякої необхідності використовувати стандартні системні API в явному вигляді. Дуже цікава можливість мови - динамічна компіляція. Тобто можна з допомогою програми згенерувати код, який тут же, "на льоту", може бути виконаний. І редактор коду, якого навряд чи буде багато, проте, дуже зручний.
Як я вже сказав, генерація коду досить серйозно автоматизована. Це відноситься не тільки до коду безпосередньо самої програми, а й до коду запитів, які пишуться на SQL. Для генерації запитів використовуються спеціальні майстри, які черпають інформацію про структуру запиту зі структури таблиць бази даних і з тих самих UML-діаграм, побудованих програмістом. Так само можна створювати нові запити на основі результатів старих.
Створення нової панелі в програмі теж відбувається, як правило, не з нуля. У середу вбудовано чимале число різноманітних шаблонів, переважно орієнтованих на створення додатків, що працюють з БД: таблиці, форми з заповнюваними полями і т.п. Є і стандартні форми: діалог пошуку, діалог логіна і пароля, діалоги з повідомленнями та інше. До кожного вікна, як і до всього з додатком в цілому, можна застосувати певні стилі оформлення, яких в стандартній бібліотеці теж не так вже й мало, і всі красиві. Хоча, може, професійного дизайнера вони б і не сподобалися. Але насправді це плюс, оскільки дуже легко перейти від одного стилю до іншого, а навіть такі косметичні зміни - краще, ніж ніяких в разі аврального випуску нової версії продукту. По крайней мере, вони зможуть відвернути користувачів від недоробок. Однак найцікавіше в автоматичному створенні вікон не це. Програма дозволяє створити нове вікно за образом і подобою будь-якого відкритого на даний момент в системі. Правда, виходить не дуже рівно, але меню і більшу частину стандартних елементів керування в корпоративному середовищі розпізнає коректно.
Окремої згадки заслуговує компонент побудови графіків і діаграм. Вони виходять дуже красивими, правда, за це доводиться платити тим, що для його нормального функціонування потрібен DirectX. Ще в середу вбудовано засіб автоматичної перевірки інтерфейсу. У чому полягає його робота? У тому, щоб всі елементи управління були однаково вирівняні і мали пропорційні розміри. Додатково до всього згаданого є можливість створення локалізацій для інших мов, щоб користувачі з неангломовних країн могли нормально користуватися вашим додатком, створеним за допомогою WinDEV. У середовищі вже є переклади всіх стандартних повідомлень на велику кількість мов, в тому числі і російська (але, на жаль, неможливо білоруський). Всі стандартні компоненти середовища дозволяють, по завіреннях розробників, використовувати для введення та виведення інформації мови південно-східній Азії, хоча для нашої країни навряд чи ця можливість виявиться особливо корисною.
У середовищі присутня підтримка командної розробки: контроль версій, та й при кожному вході в WinDEV потрібно вводити логін і пароль. Є вбудований профілювальник коду (про відладчик я мовчу, це мається на увазі як би само собою). Серед додаткових інструментів, що поставляються разом з WinDEV - різні засоби для адміністрування і створення баз даних СУБД HyperFile, програма для створення дистрибутивів додатків, засіб для перегляду властивостей і методів встановлених в системі ActiveX-компонентів, а також інструмент для тестування програм.
У всій цій красі невеликий ложкою дьогтю виглядає тільки обсяг створеної за допомогою WinDEV програми, стартове значення якого починається десь в районі трьох мегабайт. Для роботи програми потрібні об'ємні runtime-бібліотеки, які можна як включити в сам виконуваний модуль, так і залишити окремо у вигляді DLL. Втім, для розробки великих програм це не шкідливо, а, навпаки, надає їм солідності.
Що ж, обсяг газетної статті обмежений, а шкода. Я ще багато про що не встиг розповісти ... Давайте підіб'ємо короткий підсумок. Як написано на сайті PC-SOFT (і в епіграфі до цієї статті), "WinDEV унікальна". Сміливе твердження, але воно, в цілому, відображає дійсність. Чудове середовище розробки, яка при цьому і коштує не дуже дорого на загальному тлі, і працює добре ... Загалом, дуже рекомендую поглянути на неї. Тут дійсно продукт із серії "краще один раз побачити, ніж десять разів прочитати".
Вадим СТАНКЕВИЧ
Чим?До речі, я говорив, що WinDEV створює код по UML-діаграм, як і належить будь-якого засобу, що працює з моделями?
У чому полягає його робота?