Файл: Программные средства создания клиентских программ (Характеристика программных средств создания клиентских программ).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 19.06.2023

Просмотров: 84

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Управляемый модуль. С помощью управляемого модуля и управляемого кода реализуется основная концепция исполнительной среды каркаса — двухэтапная компиляция. Управляемый модуль — это перемещаемый исполняемый файл или РЕ-файл (Portable Exeable). РЕ-файлы представляют собой модули, содержание которых формируется компиляторами языков программирования на промежуточной языке — IL (Intermediate Language). В зависимости от типа проекта, РЕ-файл может иметь расширение exe, dll, mod или mdl.

Несмотря на то, что РЕ-файл с расширением exe, он выполняется операционной системой не совсем так, как привычный exe-файл. При его запуске он распознается, как специальный промежуточный файл, и передается исполнительному среде для обработки. Исполнительная среда начинает работать с кодом, в котором не осталось ни специфики начальной языка программирования. Код на промежуточной языке начинает выполняться под управлением исполнительной среды.

Виртуальная машина. Результат работы исполнительной среды каркаса можно рассматривать как своеобразную виртуальную машину. Эта машина транслирует участка промежуточного кода, подаваемого на исполнение, у команды реального процессора, который в действительности и выполняет код. Основу виртуальной машины составляют трансляторы JIT (Just In Time Compiler), которые и выполняют трансляцию промежуточного кода в командный код той вычислительной машины, где установлено и функционирует исполнительная среда.

Microsoft в своей разработке использовал опыт виртуальной машины Java. Он получил широкое признание, улучшив процесс за счет того, что в отличие от Java, промежуточный код не интерпретируется исполнительной средой, а компилируется с учетом всех особенностей вычислительной платформы. Благодаря этому, существует возможность создавать более производительные приложения. Кроме того, исполнительная среда, работая с промежуточным кодом, осуществляет достаточно эффективную оптимизацию программного кода и, что немаловажно, его защиту.

Метаданные. Перемещаемый исполнительный РЕ-файл является самодокументируемым файлом, т.е. содержит вместе с программным кодом метаданные, которые его описывают. Файл начинается с манифеста, включающий описание всех классов, которые в нем хранятся, их свойств, методов, всех аргументов этих методов, то есть всю необходимую для CLR информацию. Поэтому, кроме РЕ-файла не требуется никаких дополнительных файлов и записей в реестре — вся необходимая информация берется из самого файла.

Сборник мусора (Garbage Collector). Под сборкой мусора понимается освобождение оперативной памяти, занятой объектами, которые стали лишними и не используются в дальнейшей работе приложения. Во многих языках программирования (классическим примером является язык C / C + +) память освобождает сам программист, в явной форме программируя команды как на создание, так и на удаление объектов. Чтобы предотвратить неизбежным ошибкам программиста при работе с памятью, удаление неиспользуемых объектов, т.е. сборка мусора, стала частью исполнительной среды.


Обработчик исключений. В случаях, когда при вызове некоторой функции (процедуры) оказывается, что она не может корректно выполнить свою работу, исполнительная среда выбрасывает исключение. Выбрасывание исключений наилучшим образом согласовывает процесс программирования с исполнительной средой. В процессе разработки программных систем, организация перехвата выброшенных исключений и их последующая обработка, представляет собой основной рекомендуется реакции программы на нестандартные ситуации.

События. В исполнительной среды существует свое видение того, что является типом каждого объекта. Для этого используется формальное описание общей системы типов CTS — Common Type System. Согласно этому описанию, каждый тип, кроме методов и свойств, может содержать еще и события. При возникновении событий в процессе работы с тем или иным объектом определенного типа, направляются сообщения, которые могут получать и использовать другие объекты. Механизм обмена сообщениями основан на делегатах — функциональном типе.

Общие спецификации. Как уже отмечалось, каркас Framework.Net обеспечивает межъязычное взаимодействие. Чтобы классы, разработанные на разных языках, могли использоваться в рамках одного приложения, то есть их разноязычные потомки могли взаимодействовать, они должны удовлетворять некоторым ограничениям. Эти ограничения задаются набором общеязычной спецификации — CLS (Common Language Specification). Класс, удовлетворяющий спецификациям CLS, называется CLS-совместимым. Он доступен для использования в других языках, классы которых могут быть клиентами или наследниками совместного класса [7].

Спецификации CLS точно определяют, каким набором встроенных типов данных можно пользоваться в совместных модулях. Понятно, что эти типы должны быть общедоступны для всех языков, использующих каркас Framework.Net. В совместных модулях должны использоваться управляемые данные и выполняться некоторые дополнительные ограничения. Обратите внимание, что ограничения касаются только интерфейсной части класса — его открытых свойств и методов. Закрытая часть класса может не удовлетворять общей спецификации. Итак классы, от которых не требуется совместимость, могут использовать специфические особенности языка программирования, на котором они созданы, без ограничений.

1.3 Классификация средств разработки приложений


Классифицировать средства разработки можно с различных позиций, например исходя из поддерживаемого ими языка программирования, или работоспособности созданных приложений на той или иной платформе, или наличия в них тех или иных библиотек и визуальных средств. Мы же попробуем классифицировать средства разработки приложений, исходя из удобства их применения для создания продуктов, представляющих собой пользовательский интерфейс к базе

Средства разработки, ориентированные на конкретные СУБД

Лет десять-двадцать назад во многих приложениях, использующих базы данных, функции клиентского API вызывались из кода, написанного на одном из языков программирования, чаще всего на C. Достаточно взглянуть на описание API клиентской части почти любой серверной СУБД - и вы найдете немало примеров наиболее типичных фрагментов кода, например, для регистрации пользователя, выполнения запросов и т.п. Однако достаточно быстро разработчикам СУБД стало ясно, что трудозатраты, связанные с написанием подобного кода, можно существенно сократить, собрав в библиотеки наиболее типичные фрагменты кода и наиболее часто встречающиеся элементы пользовательского интерфейса (пусть даже и для алфавитно-цифровых терминалов), оформив эти библиотеки в виде отдельного продукта и добавив к нему среду разработки и утилиты проектирования пользовательских форм для просмотра и редактирования данных, а также отчетов. Именно так и появились первые средства разработки, ориентированные на конкретные СУБД, такие, например, как Oracle*Forms (предшественник нынешнего Oracle Forms Developer).

Продукты этого класса на рынке средств разработки имеются и сегодня. Почти все производители серверных СУБД производят и средства разработки приложений. В подавляющем большинстве случаев современные версии этих средств разработки поддерживают доступ к СУБД других производителей как минимум с помощью одного из универсальных механизмов доступа к данным (ODBC, OLE DB, BDE). Однако доступ к "своей" СУБД обычно осуществляется максимально эффективным способом, то есть с помощью клиентских API, объектов, содержащихся в библиотеках клиентской части серверных СУБД, специальных классов для доступа к данным этой СУБД либо за счет реализации драйверов для универсальных механизмов доступа к данным, способной учитывать специфические особенности данной СУБД.

В отдельную категорию можно выделить среды разработки настольных СУБД. В статье данного цикла, посвященной настольным СУБД, мы уже отмечали, что подавляющее большинство настольных СУБД, доживших до сегодняшнего дня, таких как Microsoft Visual FoxPro, Microsoft Access, Corel Paradox, Visual dBase, поддерживают доступ к серверным СУБД, как минимум, с помощью универсальных механизмов доступа к данным, что позволяет условно отнести их и к категории средств разработки. Отметим, однако, что в настоящее время создание приложений в архитектуре "клиент-сервер" с их помощью - явление нечастое. Исключение, пожалуй, составляют пары Microsoft Access - MSDE, Microsoft Access - Microsoft SQL Server и Microsoft Visual FoxPro - Microsoft SQL Server. Здесь налицо результат грамотной политики Microsoft, стремящейся к максимальной совместимости своих продуктов и обеспечивающей наиболее безболезненную для пользователей замену своих настольных СУБД собственными же серверами баз данных (Access->MSDE->Microsoft SQL Server, FoxPro->Visual FoxPro->Microsoft SQL Server).


Средства разработки, универсальные по отношению к СУБД

Средства разработки, универсальные по отношению к СУБД (или претендующие на подобную универсальность), как правило, являются последователями обычных средств разработки приложений, не имеющих прямого отношения к базам данных. Типичные примеры таких средств разработки - Borland Pascal, Borland C++, Microsoft QuickC. Способные использовать библиотеки сторонних производителей, эти средства позволяли обращаться к функциям клиентских API, а с развитием универсальных механизмов доступа к данным (таких как ODBC) - и к функциям API библиотек, реализующих такие механизмы. Отметим, что нередко с помощью этих средств разработки создавались среды настольных СУБД (таких как dBase, FoxBase) или псевдокомпиляторы для языков семейства xBase (например, Clipper).

Более поздние версии означенных средств разработки приобрели библиотеки функций и классов, предназначенных для доступа к данным с помощью тех или иных универсальных механизмов. Дальнейшее развитие средств разработки привело к появлению двух категорий продуктов подобного назначения.

К первой категории относятся средства разработки, обладающие обширными библиотеками классов, большим количеством "мастеров" и кодогенераторов, но ориентированные на "ручное" создание кода и довольно редко применяемые для создания "стандартных" приложений для работы с базами данных (здесь под словосочетанием "стандартное приложение" мы подразумеваем приложение, имеющее непосредственный доступ к базе данных, с которым взаимодействует пользователь, то есть являющееся "классическим" клиентом серверной СУБД). Типичным (и единственным действительно популярным на рынке программного обеспечения) представителем этого класса продуктов является Microsoft Visual C++. С помощью Microsoft Visual C++ и библиотеки MFC (Microsoft Foundation Classes) можно создавать любые приложения, если вы обладаете навыком, знаниями, умением и временем. Тем не менее приложения, обладающие сложным пользовательским интерфейсом (например, использующие базы данных), с его помощью разрабатывают не так часто (хотя примеры подобного его использования можно найти даже в отечественной литературе). В основном этот продукт применяется для создания клиентских приложений в случае предъявления к ним особых требований, таких, например, как высокая производительность, способность осуществлять какие-либо нестандартные операции и пр.

Ко второй категории относятся средства разработки с развитыми визуальными инструментами, позволяющие буквально "рисовать" пользовательский интерфейс, частично стирая различия между работой программиста и пользователя и удешевляя конечный продукт за счет привлечения к проектированию интерфейса разработчиков, обладающих не самой высокой квалификацией (если внимательно изучить программы курсов учебных центров, специализирующихся на обучении средствам разработки Microsoft, Borland и Sybase, то можно обнаружить, что продолжительность курса обучения, прослушав который обычный пользователь Windows должен научиться создавать клиентские приложения для серверных СУБД, составляет от 5 до 10 рабочих дней).


Именно эта категория средств разработки наиболее часто применяется при создании клиентских приложений. К наиболее популярным продуктам подобного класса следует отнести Microsoft Visual Basic, Borland Delphi, Sybase PowerBuilder и Borland C++ Builder. Среды разработки подобных продуктов весьма схожи внешне (с точностью до расположения окон на экране, устанавливаемого "по умолчанию"): как правило, среда разработки такого продукта содержит "заготовку" проектируемой формы (аналога окна), отдельную панель с пиктограммами элементов пользовательского интерфейса и иных используемых в приложении объектов, которые можно выбирать и помещать на форму, окно, в котором отображаются и редактируются свойства одного из выбранных на форме элементов (а иногда и список событий, на которые реагирует данный элемент), окно редактора кода, где можно вводить фрагменты кода, связанные с обработкой тех или иных событий, а также код, реализующий логику работы данного приложения. Как правило, современные средства разработки такого класса позволяют создавать простейшие приложения для редактирования данных практически без написания кода.

Глава 2. Программные средства создания клиентских программ.

2.1 Visual Studio

Visual Studio (Визуал студио) – интегрированная среда разработки программного обеспечения.Позволяет создавать, тестировать и редактировать код, анализировать производительность, а также собирать данные телеметрии.

Функционал Visual Studio

Программа представляет собой набор компонентов для создания консольных приложений, сайтов, веб-служб, программ с графическим интерфейсом и многого другого. Каждому поддерживаемому языку программирования соответствует один инструмент [3]. Среди них:

• VisualBasic.NET

• Visual C++

• Visual C#

• Visual F#

В среде можно разрабатывать приложения для множества платформ, включая Windows, Xbox и MacOS. Для более удобной и быстрой работы в VisualStudio реализованы следующие функции:

• Технология IntelliSense автоматически дописывает функции при вводе первых букв, находит и исправляет неоднозначности в названиях элементов и другие ошибки. Также он рефакторизирует код, делая его проще.

• Отладчик работает на машинном и исходном уровнях кода. Пользователю дается возможность устанавливать интеллектуальные точки прерывания, а историю диагностики опционально сохраняются в специальном журнале.