волов, то использование памяти возрастет до 13,4 MB - на 20 % меньше, чем при традиционном подходе.
* * *
Увеличение производительности в 6 раз и более эффективное использование ресурсов (от 20 % до 60 % меньше памяти) позволяют сделать вывод, что для очень больших массивов Objective-C объектов, безусловно, более эффективный метод распределения в C-стиле.
Однако, этот способ не стоит применять абсолютно для всех массивов. Большое количество дополнительного кода, любая часть которого может внести проблемы и вопросы, необходимость постоянно следить за сроком жизни контейнеров - вот те задачи, которые необходимо будет решить при использовании альтернативного метода аллокации объектов.
Список литературы:
1. Кочан С. Программирование на Objective-C 2.0. - 2010.
2. Чиснолл Д. Objective-C. Карманный справочник. - 2012.
3. Марк Д., Наттинг Дж., Ламарш Дж. iOS 5 SDK. Разработка приложений для iPhone, iPad и iPod touch. - 2012.
4. Хиллегасс А. Objective-C. Программирование для iOS и MacOS. - 2012.
5. Пайлон Д., Пайлон Т. Программируем для iPhone и iPad. - 2012.
6. Кочан С. Программирование на Objective-C 2.0. - 2-е изд. - 2011.
7. Документация по Objective-C [Электронный ресурс]. - Режим доступа: www.developer.apple.com.
8. Открытое сообщество разработчиков [Электронный ресурс]. - Режим доступа: www.stackoverflow.com.
СОВРЕМЕННЫЕ ТЕХНОЛОГИИ СОЗДАНИЯ DESKTOP-ПРИЛОЖЕНИЙ
© Викулина Д.А.*, Макаров С.Н.Ф,
Кунгурцева К.В.*, Гаранина Е.А.*
Московский государственный университет приборостроения и информатики,
г. Москва
В статье рассматриваются передовые средства и технологии, разработки настольных (desktop) приложений, проведен их анализ и сравнительная характеристика.
* Студент кафедры «Экономические информационные системы».
* Студент кафедры «Экономические информационные системы».
* Студент кафедры «Экономические информационные системы».
* Студент кафедры «Экономические информационные системы».
В последние годы постоянно расширяется влияние веб-технологий, но, несмотря на это, desktop-приложения, как и прежде, остаются востребованными в тех случаях, когда необходимо обеспечить наибольшую эффективность работы пользователя.
Настольное (desktop) приложение - это программа, обрабатываемая на стороне клиента и запускаемая в виде обыкновенного исполняемого файла на устройстве пользователя. В качестве такого устройства может быть компьютер, коммуникатор или смартфон. Например, таким программным продуктом может являться приложение на платформе .NET или приложение для iPhone. В настоящее время существует множество технологий для разработки десктоп-приложений: Microsoft. NET (C#, VB.NET, WinForms, WPF), C++ (QT, wxWidgets), Objective-C, Delphi (VCL, FireMonkey). Рассмотрим их подробнее.
Microsoft. NET Framework
Microsoft. NET - популярная технология для разработки десктоп-приложений под Windows. Технология Windows Presentation Foundation (WPF), включённая в .NET 3.0, позволяет быстро создавать интерактивные, визуально оформленные и удобные настольные приложения, интерфейс которых привлекательнее стандартного интерфейса пользователя операционной системы Windows [1]. Разработка проводится с помощью двух языков: XAML, который отвечает за построение интерфейса и C# (VB.NET), отвечающего за создание логики. Эти языки работают независимо друг от друга.
Преимущества:
1. Приложение подстраивается под любое разрешение экрана. Измерения производятся не в пикселях, а в точках на дюйм (dpi), что позволяет окну разворачиваться на любом мониторе.
2. Возможность настройки элементов управления. Можно изменять Button, ListBox, Slider и т.д. Любой элемент без написания кода поддается созданию с нуля или изменению стандартного шаблона.
3. Существует возможность экспортировать и импортировать элементы управления из WPF в WinForms.
4. Компоновка выполняется как в веб-документах - с помощью контейнеров.
5. Легко создается анимация.
6. Существует возможность разделения работы между дизайнером и программистом. WinForms (интерфейс программирования приложений, отвечающий за графический интерфейс пользователя и упрощающий доступ к элементам интерфейса Microsoft Windows за счет создания обертки для существующего Win32 API в управляемом коде) в этом плане менее удобен. В WPF можно использовать язык XAML; в то же время Microsoft предоставляет набор программ
Expression Studio 4, в который входят приложения для дизайнера: Expression Web - инструмент для создания веб-дизайна, Expression Encoder - для обработки мультимедиа, Expression Design - для работы с векторной графикой, Expression Blend - для построения пользовательского интерфейса десктоп-приложений. В Expression Blend дизайнер может создать интерфейс, а затем передать шаблон программисту для написания логики приложения в Visual Studio.
Недостатки:
- высокие требования к аппаратному обеспечению;
- сложность работы с некоммерческими релизами программного обеспечения (неустойчивость, отсутствие полной документации);
- технология ориентирована на работу только в ОС семейства Windows;
- невысокая скорость запуска и работы приложений.
C/C+ + (QT, wxWidgets)
Для языка C++ характерно использование концепции объектно-ориентированного программирования. Программы, написанные на C++, как правило, обладают более высокой производительностью, чем аналогичные программы, написанные на управляемых языках, например, на C#. Для написания кроссплатформенного графического интерфейса на C++ обычно используются такие известные библиотеки для написания десктоп-приложений как Qt или wxWidgets.
Qt - это кроссплатформенный набор графических элементов интерфейса пользователя для быстрой и комфортной разработки программ с графическим интерфейсом [2]. Qt использует расширенную версию языка программирования C++, при этом также существуют привязки к языкам Python, Ruby, C и Perl. Qt имеет расширенную поддержку и работает на всех основных платформах. Библиотека включает поддержку доступа к базам данных SQL, парсер XML и кроссплатформенный API для управления файлами. Поддерживаются 32- и 64-разрядные системы семейства Windows, Linux, Mac OS X.
wxWidgets - кроссплатформенная библиотека инструментов с открытым исходным кодом для разработки кроссплатформенных приложений, в частности для построения графического интерфейса пользователя [3]. Библиотека имеет набор классов для работы с графическими изображениями, процессами, HTML и XML-документами, архивами, файловыми системами, подсистемами печати, мультимедиа, и т.д.
Преимущества:
- лаконичность языка C++;
- большая производительность приложений;
- удобное использование благодаря принципам объектно-ориентированного программирования и механизму шаблонов;
- использование библиотек расширяет возможности для создания приложений любой сложности.
К недостаткам в данном случае можно отнести не совсем простую для освоения грамматику языка С++ и относительную сложность освоения фреймворка QT
Delphi (VCL, FireMonkey)
Объектно-ориентированная библиотека визуальных компонентов (VCL -Visual Component Library) - это компонентная «обертка» вокруг Windows API. Пользуясь этой библиотекой, разработчик имеет дело с меню, ресурсами, цветом, диалоговыми окнами, стилями, сообщениями Windows. В отличие от VCL, FireMonkey является кроссплатформенной «оберткой», также поддерживает событийную и компонентную модели, оперирование происходит на уровне, например, событий OnHasFocus, OnClick, onKeyDown и onMouseDown, но обрабатываются при этом события целевого устройства: PC, iPhone или Macintosh.
FireMonkey представляет собой прикладную платформу для создания визуальных приложений в среде Delphi и C++ Builder [4]. Используя графические библиотеки и при этом абстрагируясь от основной ОС, фреймворк предлагает пользователям HD (High Definition) и 3D-графику, поддержку развитого графического интерфейса, гибкие стили и усовершенствованную модель привязки данных для бизнес-приложений. VCL при этом является Windows-ориентированной библиотекой, FireMonkey вместе с нативным компилятором для различных операционных систем является основой кроссплатформенной архитектуры Delphi и C++ Builder.
С помощью FireMonkey создается приложение, при выполнении которого одновременно работают графический и центральный процессоры. Компиляторы и библиотеки времени выполнения (RTL - Run-time Libraries) позволяют скомпилировать приложение для Windows, Mac OS Х, имеющих разные возможности. Разработчики Delphi и C++Builder, вместо того, чтобы изучать программирование с применением различных графических библиотек и API разных платформ, могут применять один и тот же компонентный подход, редактируя формы и выполняя подключение к базам данных путем перемещения мышью выбранных компонентов. Если для приложения надо добавить поддержку других платформ или операционных систем, то нет необходимости его заново проектировать и разрабатывать - для этого достаточно просто перекомпилировать приложение.
FireMonkey поставляется вместе с системой анимации элементов интерфейса пользователя. Эта система позволяет использовать такие эффекты как анимация растровых изображений, подсветка фокуса элемента интерфейса пользователя и обработка векторной графики. Разработчику доступно более пятидесяти визуальных эффектов: превращение цветного изображения
в черно-белое, цветовой переход, размытие, отражение, создание теней -многие эффекты, доступные в современных графических процессорах. Созданное с применением платформы FireMonkey приложение посылает команды графическому процессору, который выполняет всю работу, которая касается отображения графики и создания интерфейса пользователя. В это время центральный процессор является свободным для осуществления вычислений и взаимодействия с операционной системой.
Основная особенность FireMonkey - построение пользовательского интерфейса. Фреймворк имеет средства для размещения растровой графики на таких элементах интерфейса как кнопки, меню и полосы прокрутки, используя для этой цели векторную графику с применением графического процессора. Элементы интерфейса аналогичны элементам управления, но всю работу по их отображению осуществляет графический процессор. К этим элементам можно применять стили, делая приложение похожим на приложение Windows или Mac OS Х, а также создавать собственный стиль, применяя свои стили к интерфейсным элементам - для этого в среде разработки имеется редактор стилей. При этом можно изменять и стиль уже готового приложения.
В библиотеке VCL имеется ограниченное число элементов управления -контейнеров, которые позволяют размещать в них другие элементы, в Fire Monkey контейнером является каждый элемент управления. Любой из элементов управления может содержать любой другой элемент управления. Например, внутри элементов выпадающего списка могут быть кнопки, поля редактирования, изображения и другие элементы управления.
FireMonkey обладает достаточно гибкой системой рендеринга - могут использоваться библиотеки Direct2D, Direct3D и OpenGL, посылая команды графическому процессору. Чтобы добиться того же в VCL, надо генерировать отдельный буфер вне экрана, создавать в нем изображение, а затем отображать его на форме. Если же на компьютере нет графического процессора, то по-прежнему можно применять двух- или трехмерные формы и при этом использовать элементы управления FireMonkey. Платформа FireMon-key в этом случае задействует библиотеки GDI+ либо другие аналогичные библиотеки и позволяет выполнять анимацию, применение эффектов или манипуляцию трехмерными объектами. Кроме того, при создании приложения можно загрузить готовую трехмерную модель - такие возможности требуются в бизнес-приложениях и приложениях для инженерных расчетов.
FireMonkey не единственная библиотека, использующая графический процессор для создания пользовательских интерфейсов. Существуют RIA (Rich Internet Application) платформы, которые применяются как для вебразработки, так и в качестве автономных платформ. Такими платформами являются, например, Microsoft WPF, Silverlight и Adobe Flex. При этом существуют как общие характеристики фреймворков, например, полное абстрагирование от платформы, нативные элементы управления для создания
интерфейса пользователя, так и особенные - в Silverlight/WPF, как и в Fire-Monkey, при работе используется графический процессор. Для адаптации абстрактного пользовательского интерфейса к конкретной платформе также применяется описание интерфейса пользователя в отдельном файле и внешние стили, даже если при этом используется совершенно другая реализация.
Преимущества FireMonkey:
- кроссплатформенность: FireMonkey поддерживает Win32, Win64, и Mac OS X;
- код является нативным для центрального процессора и операционной системы, отсутствуют интерпретаторы. Код компилируется и быстро исполняется;
- отсутствие библиотек, необходимых для развертывания и установки в операционной системе. FireMonkey компилируется в рабочее приложение, что позволяет распространять его среди пользователей компьютеров без каких-либо ограничений;
- FireMonkey может применяться для различных операционных систем при условии наличия в них компилятора языка Delphi и быть адаптированной для различных графических библиотек, например, DirectX и OpenGL;
- фреймворк максимально загружает центральный и графический процессоры в кроссплатформенной и открытой среде без установки виртуальных машин, сред выполнения или трансляторов на компьютерах и других устройствах пользователей.
Недостатком FireMonkey является то, что с введением поддержки кросс-платформенности, возрастают затраты на тестирование кода на нескольких платформах, написание документации и маркетинговых материалов для разных платформ, обучение пользователей. Написание кода занимает лишь часть времени и усилий, необходимых для создания приложений для конечных пользователей.
Сравнительные характеристики
Сравнительные характеристики рассматриваемых технологий разработки настольных приложений приведены в табл. 1.
Таблица 1
Сравнительные характеристики технологий разработки настольных приложений
Технологии Производительность Поддержка ОС
Microsoft .NET (C#) невысокая Win32, Win64, Windows Mobile
C++ (QT / wxWidgets) высокая Win32, Win64, Mac OS X, Linux
Delphi (FireMonkey) высокая Win32, Win64, Mac OS X
* * *
Для создания большинства настольных приложений с точки зрения их производительности, эффективности кода и кроссплатформенности - несомненное преимущество занимает C++ (QT/wxWidgets). Преимущество технологии FireMonkey состоит в том, что она обладает развитыми графическими возможностями и поддерживает объектно-ориентированный подход в вопросах работы с векторной и трёхмерной графикой, в том числе, в интерфейсе пользователя. Использование языка Delphi позволяет создавать код более читабельным и простым для освоения по сравнению с C++, однако выбор зависит от разработчика и решаемой задачи. В том случае, когда важна скорость разработки приложения и нет необходимости в использовании других ОС кроме Windows, имеет смысл воспользоваться технологией .NET.
Список литературы:
1. Microsoft .NET Framework [Электронный ресурс] // Microsoft Corporation. - Режим доступа: www.microsoft.com/net (дата обращения: 08.09.12).
2. wxWidgets [Электронный ресурс] // Digia. - Режим доступа: www.wx widgets.org (дата обращения: 13.09.12).
3. Qt [Электронный ресурс] // Digia. - Режим доступа: www.qt.digia.com (дата обращения: 14.09.12).
4. FireMonkey [Электронный ресурс] // Embarcadero Technologies. - Режим доступа: www.embarcadero.com/ru/products/firemonkey (дата обращения: 18.09.12).
АВТОМАТИЗИРОВАННАЯ СИСТЕМА ДИСТАНЦИОННОГО ОБУЧЕНИЯ
© Гуртяков А.С.*
Волгоградский государственный технический университет, г. Волгоград
В данной работе описывается созданная система дистанционного обучения, предназначенная для удаленного проведения лекций. Также приводится описание средств, которыми система была реализована, и требований данной системы.
Процесс информатизации является закономерным и объективным процессом, характерным для всего мирового сообщества. Он проявляется во всех сферах человеческой деятельности, в том числе и в обучении. Во мно-
* Аспирант кафедры «Системы автоматизированного проектирования и поискового конструирования».