Працюємо з mono частина 2

MonoDevelop володіє всіма основними можливостями, необхідними для сучасної інтегрованої середовища розробки:

Установка MonoDevelop 2.4

Так як недавно MonoDevelop була оновлена ​​до версії 2.4, в штатних репозиторіях більшості дистрибутивів міститься попередня версія середовища. Рекомендації по установці нової версії можна знайти на сторінці завантаження офіційного сайту. У цій статті буде розглянуто варіант установки (або поновлення попередньої версії) середовища програмування MonoDevelop 2.4 з стороннього сховища на Ubuntu 10.04.

Малюнок 1. Додавання сховища зі MonoDevelop

Працюємо з mono частина 2

Зовнішній вигляд середовища розробки

GUI MonoDevelop схожий на GUI інших середовищ розробки, тому для програміста зазвичай не складає труднощів освоїтися в ньому.

Малюнок 2. GUI Вікно MonoDevelop 2.4

Працюємо з mono частина 2

У вікні Solution (Рішення) відображається список проектів, що відносяться до активного вирішення (solution - в термінології Mono позначає групу проектів). У вікні Classes (Класи) можна виконувати пошук по класах і подвійним клацанням по імені класу чи методу переходити до фрагменту коду, де цей клас або метод описується. Вікно Files (Файли) використовується для навігації по файлам проектів. У вікні Properties (Властивості) налаштовуються властивості активного в даний момент елемента (клас, вікно, метод, проект). У вікно Message Log (Журнал Повідомлень) виводяться повідомлення, попередження і помилки, що виникають в процесі розробки і компіляції проекту.

На малюнку 3 показаний механізм підсвічування нового місця розташування панелі інструментів при її переміщенні.

Малюнок 3. Вказівка ​​на місце розташування панелі інструментів

Працюємо з mono частина 2

Створення нового проекту

Процес створення нового проекту досить простий і складається з декількох дій. Для створення проекту потрібно вибрати пункт меню File (Файл) -> New (Новий) -> Solution. (Рішення) або натиснути клавіші Ctrl + Shift + N.

Малюнок 4. Перший етап створення проекту в MonoDevelop

Працюємо з mono частина 2

На першому етапі встановлюється мову і тип проекту. У статті створюється простий консольний проект (Console Project) на мові C #. При створенні проекту необхідно вказати його ім'я і каталог для зберігання файлів проекту.

Наступні дії можуть відрізнятися в залежності від обраного типу проекту.

Малюнок 5. Другий етап створення проекту в MonoDevelop

Працюємо з mono частина 2

На другому етапі необхідно встановити додаткові параметри проекту:

  1. Packaging (компоновка). Ця опція додає в проект можливість створення бінарних пакетів для поширення програми. На малюнку 5 обрані всі можливі варіанти - tar-архів і бінарні архіви для Linux і Microsoft Windows.
  2. Unix Integration (інтеграція з Unix-системами). Дана опція створює сценарії запуску і файли .desktop для інтеграції в системи меню та панелі запуску середовищ GNOME і KDE.
  3. GTK # Support (підтримка GTK #). Ця опція додає в додаток підтримку GTK # та дозволяє вибрати версію GTK #, яка буде використовуватися для створення вікон. Для консольного застосування ця функціональність не потрібно.

За замовчуванням MonoDevelop створює шаблон коду, що відповідає обраній конфігурації проекту. Для консольного проекту це буде код, що виводить в консоль фразу "Hello World!", Як показано в лістингу 1.

Лістинг 1. Шаблон коду, згенерований MonoDevelop

налаштування проекту

Після створення проекту можна переходити до детальної налаштування його властивостей. Також можна налаштувати глобальні властивості всього рішення, вибравши в меню пункт Project (Проект) -> Solution Properties. (Налаштування Рішення ...)

На вкладці General (Загальні) -> Main Settings (Головні Налаштування) у вікні налаштувань рішення встановлюються версія, опис і кореневої каталог рішення.

Малюнок 6. Основні настройки рішення

Працюємо з mono частина 2

Працюємо з mono частина 2

На вкладці Build (Збірка) -> Configurations (Зміни) описуються різні варіанти конфігурацій для збірки рішення.

Малюнок 8. Налаштування конфігурації для збірки

Працюємо з mono частина 2

Вкладка Run (Виконання) -> Startup Project (запускається Проект) дозволяє вибрати проект, який буде запускатися при виклику команди Run (Виконати). Це властивість потрібно, коли рішення буде складатися з декількох проектів, серед яких буде основний проект і кілька бібліотек.

Малюнок 9. Налаштування параметрів запуску рішення

Працюємо з mono частина 2

На вкладці Source Code (Початковий Код) -> Code formatting (Форматування коду) -> C # source code (вихідний код C #). налаштовується стиль форматування вихідного коду, включаючи автоматичне формування відступів або розстановку дужок. Доступні правила форматування представлені у вигляді дерева, і при виборі правила можна не тільки включити / вимкнути його, але і подивитися результат його застосування.

Малюнок 10. Налаштування стилю форматування вихідного коду

Працюємо з mono частина 2

На вкладці Source Code (Початковий Код) -> Standard Header (Стандартний Заголовок) можна ввести текст заголовка або вибрати тип ліцензії, які будуть додаватися в початок файлу вихідного коду при його створенні.

Малюнок 11. Вибір заголовка для файлів вихідного коду

Працюємо з mono частина 2

Поряд з настройками, що відносяться до вирішення, існують настройки для окремих проектів, що входять в рішення. Для роботи з цими настройками в меню Project (Project) необхідно вибрати <Имя проекта> Properties (властивості проекту <Имя проекта>).

На вкладці General -> Main Settings у вікні дублюється інформація відповідної вкладки з налаштуваннями рішення. Тут можна ввести номер версії і опис проекту, причому номер версії можна імпортувати з налаштувань рішення.

Малюнок 12. Вікно для настройки властивостей проекту

Працюємо з mono частина 2

На вкладці General -> Custom Commands (Спеціальні Команди) задаються команди, які викликаються на певних етапах життєвого циклу проекту (збірка (Build), виконання (Execute) і т.д.). Команди, можуть викликатися як при настанні події, так і до або після події. Також в MonoDevelop передбачені призначені для користувача команди (Custom Commands), які викликаються розробником в певні моменти. Момент, коли необхідно викликати команду, можна вибрати зі списку, зображеного на малюнку 14.

Малюнок 13. Налаштування команд, що викликаються по ходу роботи над проектом

Працюємо з mono частина 2

Малюнок 14. Події, для яких можна встановити виклик команди

Працюємо з mono частина 2

Вкладка Build (Збірка) -> General (Загальні) використовується, щоб встановити версію середовища виконання, для якої розробляється проект, спосіб збирання (виконуваний файл, бібліотека і т.д.) і основний клас проекту (Main Class). Там же можна вказати шлях до піктограми проекту для Win32-додатків (Win32 Icon), кодування для компілятора (Compiler Code Page), версію мови C # і можливість використання небезпечного (unsafe) коду.

Малюнок 15. Налаштування параметрів збірки проекту

Працюємо з mono частина 2

На вкладці Build -> Compiler (Компілятор) задаються параметри компіляції для кожної з певних конфігурацій проекту. Нижче наведено опис доступних параметрів компілятора:

  • Generate overflow checks - генерація додаткового коду для перевірки на переповнення.
  • Enable optimizations - включення оптимізації коду (рекомендується для конфігурацій, які використовуються для випуску остаточної версії проекту).
  • Emit Debug Information - додавання в код налагоджувальної інформації (рекомендується для налагоджувальних конфігурацій).
  • Generate XML Documentation - генерація XML-документації з коду.
  • Define Symbols - визначення директив. Використовується для умовної компіляції.
  • Platform Target - платформа, для якої буде генеруватися код.
  • Warning Level - настройка рівня виведених попереджень, щоб ігнорувати незначні відхилення і звертати увагу тільки на серйозні.
  • Ignore Warnings - список попереджень, які слід ігнорувати.
  • Threat warnings as errors - розглядати попередження як помилки, щоб заборонити збірку виконуваного модуля при наявності попереджень в коді.
  • Additional arguments - додаткові опції компілятора.
Малюнок 16. Налаштування компілятора в MonoDevelop IDE

Працюємо з mono частина 2

На вкладці Build -> Output (вихідні артефакти) задається шлях і ім'я файлу, що виконується, одержуваного після складання.

Малюнок 17. Вказівка ​​параметрів виконуваного модуля проекту

Працюємо з mono частина 2

Вкладка Run -> General відповідає за настройку параметрів для запуску проекту безпосередньо в середовищі MonoDevelop. В цьому вікні можна встановити для проекту параметри командного рядка і додаткові змінні оточення, а також дозволити запуск проекту в окремому вікні консолі.

Малюнок 18. Налаштування параметрів запуску проекту

Працюємо з mono частина 2

Збірка і запуск програми

Збірка додатки здійснюється за допомогою команди меню Build (збірка) -> Rebuild All (пересобран все). а запуск зібраного застосування командою меню Run -> Run.

Малюнок 19. Результат запуску додатка

Працюємо з mono частина 2

Для створення вихідних файлів проекту у вікні Solution Explorer необхідно натиснути правою кнопкою миші по проекту Packages (Пакети) і вибрати пункт Build. як показано на малюнку 20.

Малюнок 20. Контекстне меню для складання пакетів додатки

Працюємо з mono частина 2

У разі успішної збірки буду створені такі файли:

  • MonoDevHello-linux.tar.gz - містить виконувані файли і сценарій запуску для Linux.
  • MonoDevHello-windows.tar.gz - містить виконувані файли для Microsoft Windows.
  • monodevhello-0.1.tar.gz - містить вихідний код і configure-сценарії для збірки за допомогою make.

У разі виникнення помилок при складанні пакетів слід проаналізувати висновок у вікні Package Output.

Налагодження c MonoDevelop IDE

Налагодження додатків в MonoDevelop IDE мало чим відрізняється від налагодження в будь-який інший середовищі розробки. Для знайомства з процесом налагодження можна використовувати програму з лістингу 2, в яку навмисно внесена помилка.

Лістинг 2. Приклад програми з помилкою

Як видно, цикл for реалізований так, що на останній ітерації проводиться запис за межі масиву a. Для налагодження необхідно поставити крапку зупинки на рядку a [i] = i і запустити програму командою Run -> Debug. Точка зупину спрацює, а середовище Mono Develop автоматично переведе інтерфейс користувача в режим налагодження.

Малюнок 21. Режим налагодження в MonoDevelop

Працюємо з mono частина 2

У вікні Locals можна побачити вміст локальних змінних. На момент початку налагодження значення i дорівнює 0. Якщо за допомогою кнопки Step Over (переступити) виконати кілька ітерацій циклу, то значення змінної i буде змінюватися. Коли воно досягне 5, буде викинуто виключення.

Малюнок 22. Кнопка Step Over
Малюнок 23. Висновок виключення в режимі налагодження

Працюємо з mono частина 2

Середа MonoDevelop дозволяє використовувати практично всі прийоми, що застосовуються в процесі налагодження, наприклад, відслідковувати значення в осередках пам'яті. Також в MonoDevelop є підтримка умовних точок зупину і можливість записувати відео у журнал виведення замість зупинки програми. Додатково можна налаштувати відладчик так, щоб він повідомляв про винятки певного типу, навіть якщо вони вже були оброблені за допомогою конструкції try-catch.

Інтеграція MonoDevelop з Subversion

Для інтеграції MonoDevelop з Subversion необхідно розширення monodevelop-versioncontrol. Якщо це розширення не встановлено, то можна завантажити його за допомогою команди:

Малюнок 24. Контекстне меню системи контролю версій

Працюємо з mono частина 2

При виборі цього пункту відкриється вікно з вкладкою Registered Repositories (зареєстровані репозиторії). Для підключення до локального сховища, розташованого в каталозі / home / heaven / subversion, необхідно натиснути кнопку Add (Додати) і налаштувати параметри сховища, як показано на малюнку 25.

Малюнок 25. Вікно налаштувань сховища

Працюємо з mono частина 2

Для додавання сховища необхідно вказати ім'я (Name), протокол (Protocol) і шлях (Path) до сховища з урахуванням використовуваного протоколу. Після цього необхідно натиснути кнопку OK, щоб переглянути, що репозиторій додався без помилок.

Малюнок 26. Сховище успішно доданий в MonoDevelop IDE

Працюємо з mono частина 2

Ще одне натискання на кнопку OK завантажить рішення в репозиторій і після цього в контекстному меню з'являться нові команди для операцій над вихідним кодом.

Малюнок 27. Повний список команд для роботи з SVN

Працюємо з mono частина 2

Для перевірки інтеграції з системою контролю версій можна виправити помилку в коді з лістингу 2. Для цього рядок:

необхідно замінити на рядок

Малюнок 28. Відмінності в локальному коді і в репозиторії

Працюємо з mono частина 2

За допомогою кнопок угорі вікна або команд контекстного меню Version Control можна завантажити зміни в репозиторій, відкотити їх назад або зробити патч (Create Patch) для попередньої версії коду.

Малюнок 29. Робота зі змінами в середовищі MonoDevelop

Працюємо з mono частина 2

висновок

Середа MonoDevelop володіє величезними можливостями, і для того, щоб розглянути їх усі, буде потрібно не серія з декількох статей, а повноцінна книга. Однак навіть такий невеликий огляд дозволяє зробити висновок, що знайомство з MonoDevelop IDE буде вкрай корисно для будь-якого розробника мультиплатформенного ПО. А саме середовище розробки MonoDevelop зможе допомогти програмісту в виконанні всіх стандартних операцій, що входять в цикл розробки ПЗ.