Файл: Средства разработки клиентских программ (Языки С/С++/С#).pdf
Добавлен: 04.04.2023
Просмотров: 316
Скачиваний: 2
СОДЕРЖАНИЕ
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ КЛИЕНТСКИХ ПРОГРАММ
1.1 Понятие и назначение клиентских программ
1.2 Основные виды клиентских программ
2. ОСНОВНЫЕ ПРОГРАММНЫЕ СРЕДСТВА СОЗДАНИЯ КЛИЕНТСКИХ ПРОГРАММ
2.2 Обзор программных продуктов, предназначенных для создания клиентских программ
2.3 Сравнительная характеристика программных средств создания клиентских программ
2.1.4 Object Pascal
Object Pascal - результат развития языка Турбо Паскаль [5], который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal - динамическую идентификацию типа данных с возможностью доступа к метаданным классов Отличительным свойством Object Pascal от С++ является то, что объекты по умолчанию располагаются в динамической памяти. Однако можно переопределить виртуальные методы NewInstance и FreeInstance класса TObject.
Object Pascal (Delphi) является результатом функционального расширения Turbo Pascal. Начиная с версии среды разработки Delphi 7, фирма Borland стала официально называть язык Object Pascal как Delphi.
Простота, скорость и эффективность Delphi объясняют ее популярность. Delphi имеет один из самых быстрых компиляторов, порождающий, тем не менее, весьма и весьма неплохой объектный код. Модель программирования в Delphi [19] - компонентная, что позволяет пользоваться компонентами, написанными другими разработчиками, даже не имея их исходного кода и уж подавно не изучая его. В Интернете есть огромное количество компонентов, значительная часть которых распространяется бесплатно. Применение компонентной модели приводит к тому, что довольно многое в поведении объектов программировать не нужно вообще, и многое, на что в других средах ушли бы недели, можно сделать за часы или даже минуты. К достоинствам можно отнести очень быстрый браузер классов и мгновенный вывод подсказки автозавершения кода (code completion).
2.2 Обзор программных продуктов, предназначенных для создания клиентских программ
На сегодняшний день программными продуктами, в которых ведется разработка клиентов, являются интегрированные среды разработки, позволяющие разрабатывать программы с графическим интерфейсом. Среда разработки - система программных средств, используемая программистами для разработки программного обеспечения. Обычно среда разработки включает в себя:
- текстовый редактор;
- компилятор и/или интерпретатор;
- средства автоматизации сборки;
- отладчик.
Иногда содержит также средства для интеграции с системами управления версиями и разнообразные инструменты для упрощения конструирования графического интерфейса пользователя [28]. Многие современные среды разработки также включают браузер классов, инспектор объектов и диаграмму иерархии классов - для использования при объектно-ориентированной разработке программного обеспечения.
Хотя, и существуют среды разработки, предназначенные для нескольких языков программирования - такие, как Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator или Microsoft Visual Studio, обычно среда разработки предназначается для одного определённого языка программирования - как, например, Visual Basic, Delphi, Dev-C++.
Рассмотрим такие среды разработки, как Eclipse, NetBeans, Delphi, Microsoft Visual Studio, Qt Creator.
2.2.1 Microsoft Visual Studio
Microsoft Visual Studio - интегрированная среда разработки компании Microsoft [30], позволяющая разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, а также веб-сайты и веб-приложения. Первая версия была выпущена в 1997 году, последняя версия – 18 апреля 2019 года [4]. Существует бесплатный аналог Visual Studio Professional - Visual Studio Community Edition, который обладает тем же функционалом. На данный момент выпущено множество редакций Visual Studio, например, Microsoft Visual Studio LightSwitch — это среда разработки, нацеленная на создание отрасли приложений, построенных на существующих .NET-технологиях и платформах Microsoft.
Visual Studio включает один или несколько компонентов из следующих:
- Visual Basic .NET, а до его появления — Visual Basic;
- Visual C++;
- Visual C# (включён начиная с Visual Studio .NET);
- Visual F# (включён начиная с Visual Studio 2010).
Многие варианты поставки [31] также включают Microsoft SQL Server либо Microsoft SQL Server Express.
В прошлом в состав Visual Studio также входили продукты:
- Visual InterDev;
- Visual J++;
- Visual J#;
- Visual FoxPro.
Visual Studio предлагает ряд высокоуровневых функциональных возможностей, которые выходят за рамки базового управления кодом. Перечислим основные преимущества этой среды разработки.
Встроенный Web-сервер. Для обслуживания Web-приложения ASP.NET необходим Web-сервер, который будет ожидать Web-запросы и обрабатывать соответствующие страницы. Наличие в Visual Studio интегрированного Web-сервера позволяет запускать Web-сайт прямо из среды проектирования, а также повышает безопасность, исключая вероятность получения доступа к тестовому Web-сайту с какого-нибудь внешнего компьютера, поскольку тестовый сервер может принимать соединения только с локального компьютера.
Поддержка множества языков при разработке. Visual Studio позволяет писать код на своем языке или любых других предпочитаемых языках, используя все время один и тот же интерфейс (IDE). Более того, Visual Studio также еще позволяет создавать Web-страницы на разных языках, но помещать их все в одно и то же Web-приложение. Единственным ограничением является то, что в каждой Web-странице можно использовать только какой-то один язык (очевидно, что в противном случае проблем при компиляции было бы просто не избежать).
Меньше кода для написания. Для создания большинства приложений требуется приличное количество стандартного стереотипного кода, и Web-страницы ASP. NET тому не исключение. Например, добавление Web-элемента управления, присоединение обработчиков событий и корректировка форматирования требует установки в разметке страницы ряда деталей. В Visual Studio такие детали устанавливаются автоматически.
Интуитивный стиль кодирования. По умолчанию Visual Studio форматирует код по мере его ввода, автоматически вставляя необходимые отступы и применяя цветовое кодирование для выделения элементов типа комментариев. Такие незначительные отличия делают код более удобным для чтения и менее подверженным ошибкам.
Более высокая скорость разработки. Многие из функциональных возможностей Visual Studio направлены на то, чтобы помогать разработчику делать свою работу как можно быстрее. Удобные функции, вроде функции IntelliSense (которая умеет перехватывать ошибки и предлагать правильные варианты), функции поиска и замены (которая позволяет отыскивать ключевые слова как в одном файле, так и во всем проекте) и функции автоматического добавления и удаления комментариев (которая может временно скрывать блоки кода), позволяют разработчику работать быстро и эффективно.
Возможности отладки. Предлагаемые в Visual Studio инструменты отладки являются наилучшим средством для отслеживания скрытых ошибок и диагностирования странного поведения. Разработчик может выполнять свой код по строке за раз, устанавливать интеллектуальные точки прерывания, при желании сохраняя их для использования в будущем, и в любое время просматривать текущую информацию из памяти.
Visual Studio также имеет и множество других функций [31]: возможность управления проектом; встроенная функция управления исходным кодом; возможность рефакторизации кода; мощная модель расширяемости. Более того, в случае использования Visual Studio 2008 Team System разработчик получает расширенные возможности для модульного тестирования, совместной работы и управления версиями кода (что значительно больше того, что предлагается в более простых инструментах вроде Visual SourceSafe).
В качестве недостатка [33] можно отметить невозможность отладчика (Microsoft Visual Studio Debugger) отслеживать в коде режима ядра. Отладка в Windows в режиме ядра в общем случае выполняется при использовании WinDbg, KD или SoftICE.
2.2.2 QT Creator
Qt Creator - кроссплатформенная свободная интегрированная среда разработки на языках С, С++ и QML. Разработана Trolltech (Digia) для работы с фреймворком Qt. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса как с использованием QtWidgets, так и QML [33]. Поддерживаемые компиляторы: GCC, Clang, MinGW, MSVC, Linux ICC, GCCE, RVCT, WINSCW. Рассмотрим особенности, преимущества и недостатки этой среды разработки.
В Qt Сreator реализовано автодополнение, в том числе ключевых слов, введённых в стандарте C++11, подсветка кода. Также есть возможность задания стиля выравнивания, отступов и постановки скобок.
Реализован ряд возможностей при работе с сигнатурами методов, а именно:
- автогенерация пустого тела метода после его обновления;
- возможность автоматически изменить сигнатуру метода в определении, если она была изменена в объявлении и наоборот;
- возможность автоматически поменять порядок следования аргументов.
Среда разработки имеет графический интерфейс для следующих отладчиков: GDB, CDB и QML/JavaScript.
При навигации по коду доступно переключение между определением и объявлением метода, переход к объявлению метода, переименование метода как в отдельном проекте, так и во всех открытых. Также есть возможность вызвать справку согласно текущему контексту.
Сравним Qt Creator с MS Visual Studio:
Преимуществами Qt Creator по сравнению с MS Visual Studio [33] являются:
1. Qt Creator - свободное программное обеспечение, что выражается в свободе запуска с любой целью; свободе изучения того, как программа работает, и её модификации; свободе распространения копий как исходного, так и исполняемого кода; свободе улучшения программы, и выпуске улучшений в публичный доступ.
2. Бесплатность. Можно скачать с официального сайта.
3. Кроссплатформенность. Qt Creator сам работает под различными ОС: Windows, GNU/Linux, OS X, BSD, и позволяет создавать приложения для этих платформ, а также для: Maemo 5, MeeGo Harmattan, Generic remote Linux, Symbian, Android.
4. Скорость работы: исследования, проводившиеся британскими учёными, показали, что Qt Creator 2.5 работает в среднем на 46% быстрее, чем Microsoft Visual Studio 2012.
5. Стабильность: те же исследования показали, что число системных ошибок, возникающих при работе с Qt Creator примерно на 42% меньше, чем в Visual Studio.
6. Размер установки: в ОС Windows Qt Creator с компилятором g++ (последних версий) занимает в 3,5 раза меньше места, чем Visual Studio последних версий.
7. Функция автодополнения работает лучше, поскольку она учитывает контекст, а также поддерживает нововведения C11 (стандарта языка С 2011 года) и C++11.
8. Возможность автоматического обновления через интернет.
Недостатки:
Бывают проблемы с исходниками, сохранёнными не в UTF8, а также разработкой в ОС (под ОС), поддерживающими UTF8 не полностью (например, Windows XP).
2.2.3 Eclipse
Первоначально Eclipse разрабатывалась фирмой IBM как преемник среды разработки IBM VisualAge, в качестве корпоративного стандарта IDE для разработки на разных языках под платформы IBM. По сведениям IBM, проектирование и разработка стоили 40 миллионов долларов. Исходный код был полностью открыт и сделан доступным после того, как Eclipse был передан для дальнейшего развития независимому от IBM сообществу.
В Eclipse 3.0 (2003 год) были выбраны спецификации сервисной платформы OSGi, как архитектура времени выполнения. С версии 3.0 Eclipse перестал быть монолитной IDE, поддерживающей расширения, а сам стал набором расширений. В основе лежат фреймворк OSGi и SWT/JFace, на основе которых разработан следующий слой -- RCP (Rich Client Platform, платформа для разработки полноценных клиентских приложений). RCP служит основой не только для Eclipse, но и для других RCP-приложений, например Azureus и File Arranger. Следующий слой -- сам Eclipse, представляющий собой набор расширений RCP -- редакторы, панели, перспективы, модуль CVS и модуль Java Development Tools (JDT).
Eclipse - в первую очередь полноценная Java IDE, нацеленная на групповую разработку: среда интегрирована с системами управления версиями -- CVS в основной поставке, для других систем (например, Subversion, MS SourceSafe) существуют плагины. В силу бесплатности и высокого качества, Eclipse во многих организациях является корпоративным стандартом для разработки приложений.
Второе назначение Eclipse -- служить платформой для разработки новых расширений, чем он и завоевал популярность: любой разработчик может расширить Eclipse своими модулями. Уже существуют C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с IBM, и средства для языков COBOL, FORTRAN, PHP и пр. от различных разработчиков. Множество расширений дополняет среду Eclipse менеджерами для работы с базами данных, серверами приложений и др.
Eclipse написана на Java, потому является платформонезависимым продуктом, за исключением библиотеки SWT, которая разрабатывается для всех распространённых платформ. Библиотека SWT используется вместо стандартной для Java библиотеки Swing. Она полностью опирается на низлежащую платформу (операционную систему), что обеспечивает быстроту и натуральный внешний вид пользовательского интерфейса, но иногда вызывает на разных платформах проблемы совместимости и устойчивости приложений.
2.2.4 Delphi
Delphi - среда программирования, в которой используется язык программирования Object Pascal [14]. Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.
Изначально среда разработки была предназначена исключительно для разработки приложений Microsoft Windows [16], затем был реализован также для платформ Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и, вскоре после этого, было объявлено о поддержке Microsoft.NET. При этом высказывались предположения, что эти два факта взаимосвязаны.