Для большинства современных программных продуктов применение консольного интерфейса является неактуальным в связи с отсутствием многих функциональных возможностей, например, управление мышью.
Оконный интерфейс решает большинство трудностей, с которыми сталкивается пользователь, облегчает управление программой, делает представление данных более наглядным, а функционал интуитивно понятным.
Для разработчика необходимо применение платформ и сред, позволяющих эффективно реализовать оконный интерфейс. В данной статье речь пойдет об общеязыковой среде исполнения CLR, являющейся основой платформы.NET компании Microsoft.
Существует несколько эффективных решений для программирования оконных приложений на языке C++. Например, кросплатформенный фреймворк Qt, позволяющий создавать приложения на многих популярных языках программирования: данная платформа является основой среды KDE, используемой во многих версиях ОС Iinux. Основным преимуществом является возможность компиляции для разных версий операционных систем без изменения исходного кода, наличие всех необходимых классов для работы как с обычными приложениями, так и с сетью, базами данных. Однако, данная платформа имеет и недостатки, например, большой объем приложений после разработки.
Одной из альтернатив QT является среда Common Language Runtime (CLR), архитектура которого определена спецификацией CLI (Common Language Infrastructure). Данная среда отвечает за ряд задач, основными являются изоляция памяти приложений, проверка типов, преобразования IL (набор инструкций, не зависящих от платформы) в машинный код и так далее. То есть, фактически, код приложения не компилируется в машинный код, но хранится в наборе инструкций на CIL, которые исполняются CLR для конкретной платформы. Таким образом, обеспечивается кросплатформенность при меньшем объеме исполняемых файлов. Наглядно представление о роли среды CLR при компиляции.NET приложений продемонстрирована на Рис. 1:
Рис. 1. Графическое представление роли CLR при компиляции программы
В среде разработки Microsoft Visual Studio реализована возможность создания приложений с оконным интерфейсом в среде CLR. Для удобства работы создан простой конструктор форм, позволяющий создать макет будущего приложения (Рис. 2):
Рис. 2. общий вид рабочего окна Microsoft Visual Studio при разработке оконного приложения
Добавить новые элементы управления можно, используя панель элементов. Для удобства элементы управления разделены на разделы согласно их назначению (Рис. 3 а).
Отметим, что при добавлении элементов на форму, изменению их графических свойств (размер, положение на экране), в файле Имя_Формы.h автоматически генерируется необходимый код, а все элементы управления становятся членами класса формы.
Для каждого элемента можно настроить его основные свойства (Рис. 3 б), а также назначить методы — обработчики событий. Они включают в себя все возможные события, от создания объекта, до его удаления (в том числе, все возможные взаимодействия пользователя с объектом) (Рис. 3 в).
Рис. 3. а) Панель элементов; б) Свойства элемента; в) События элемента.
В результате средой будут описаны:
– Класс Имя_Формы — дочерний класс от Windows Forms, содержащий свойства и методы формы — рабочего окна приложения;
– Объекты классов, соответствующих элементам управления. Будут являться свойствами объекта класса Windows Forms, соответственно, через методы можно будет взаимодействовать с другими объектами, но только принадлежащими данной форме. Доступ к элементам управления одной формы из другой невозможен, так как две разные формы — это разные, не связанные друг с другом классы. Однако, они будут принадлежать общему пространству имен — пространству имен проекта;
– Методы-события формы и элементов управления, в которых программист может описать алгоритмы, которые нужно выполнить при возникновении того или иного события.
Таким образом, при создании программы соблюдаются все базовые принципы Объектно-Ориентированного Программирования.
Для связи данных между формами можно использовать библиотеку, содержащую описания статических переменных и структур, через которые экземпляры разных классов могут обмениваться данными в рамках одного пространства имен.
Используя среду CLR, была разработана программа, позволяющая создавать и редактировать шаблоны задач. Было создано несколько рабочих форм, обменивающихся данными друг с другом. Приложение было разработано с использованием стандартных библиотек и среды CLR и применением различных элементов управления. Примеры работы программы представлены ниже (Рис. 4, Рис. 5):
Рис. 4. Пример работы программы
Рис. 5. Пример работы программы
В ходе разработки программ с использованием среды CLR, были отмечены такие достоинства, как простота разработки макетов форм, удобное автоматическое описание классов форм и элементов управления, позволяющее эффективно связывать формы проекта, а также обеспечивающая инкапсуляцию и защиту целостности кода. Также следует выделить хорошую оптимизацию.
Литература:
- Макки, А Введение в.NET 4.0 и Visual Studio 2010 для профессионалов — Москва, Вильямс, 2010–416 с.
- Михайлова А. Е., Дошина А. Д., Карлова В. В. Эволюция веб-фреймворков Microsoft. ASP.NET vNext (ASP.NET 5) [Текст] // Современные тенденции технических наук: материалы IV Междунар. науч. конф. (г. Казань, октябрь 2015 г.). — Казань: Бук, 2015. — С. 16–19. — URL https://moluch.ru/conf/tech/archive/163/8851/
- Практическое руководство. Создание проектов CLR. — URL https://msdn.microsoft.com/ru-ru/library/68td296t.aspx
- Программирование.NET с использованием C++/CLI (Visual C++). — URL https://docs.microsoft.com/ru-ru/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp