Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Технологии разработки современных информационных систем на платформе Microsoft.NET

Покупка
Новинка
Артикул: 837478.01.99
Доступ онлайн
1 000 ₽
В корзину
В курсе изучаются современные информационные технологии, используемые при разработке windows-приложений с графическим интерфейсом пользователя, web-приложений и приложений для различных устройств, таких как встраиваемые системы, карманные компьютеры и SmartPhone. Курс включает обзорные лекции, посвящённые платформе Microsoft .NET, а также связанным с ней технологиям и программным системам. В курсе даётся общее представление о некоторых современных подходах к разработке программных систем, современных информационных технологиях, используемых при разработке различных приложений: windows-приложений с графическим интерфейсом пользователя, web-приложений и приложений для различных устройств, таких как встраиваемые системы, карманные компьютеры и SmartPhone, о платформах для разработки программ, использующих .NET, о мобильных устройствах, исполняемых на них операционных системах и особенностях разработки программ для таких устройств и технологиях защиты информации.
Павлова, Е. А. Технологии разработки современных информационных систем на платформе Microsoft.NET : краткий курс / Е. А. Павлова. - Москва : ИНТУИТ, 2016. - 95 с. - ISBN 978-5-9963-0003-7. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2161060 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов

                                    
Технологии разработки современных
информационных систем на платформе
Microsoft.NET

2-е издание, исправленное

Павлова Е.А.

Национальный Открытый Университет “ИНТУИТ”
2016

2

УДК 004(07)
ББК 18
П12
Технологии разработки современных информационных систем на платформе Microsoft.NET / Павлова
Е.А. - M.: Национальный Открытый Университет “ИНТУИТ”, 2016 (Основы информационных
технологий)
ISBN 978-5-9963-0003-7

В курсе изучаются современные информационные технологии, используемые при разработке
windows-приложений с графическим интерфейсом пользователя, web-приложений и приложений для
различных устройств, таких как встраиваемые системы, карманные компьютеры и SmartPhone.
Курс включает обзорные лекции, посвящённые платформе Microsoft .NET, а также связанным с ней
технологиям и программным системам. В курсе даётся общее представление о некоторых
современных подходах к разработке программных систем, современных информационных
технологиях, используемых при разработке различных приложений: windows-приложений с
графическим интерфейсом пользователя, web-приложений и приложений для различных устройств,
таких как встраиваемые системы, карманные компьютеры и SmartPhone, о платформах для
разработки программ, использующих .NET, о мобильных устройствах, исполняемых на них
операционных системах и особенностях разработки программ для таких устройств и технологиях
защиты информации.

(c) ООО “ИНТУИТ.РУ”, 2008-2016
(c) Павлова Е.А., 2008-2016

3

Платформа Microsoft .NET. Обзор архитектуры и возможностей

Инициатива Microsoft .NET. Проблемы совместимости, надежности и повторного
использования компонентов. .NET Framework. Общеязыковая исполняющая среда
CLR. Псевдомашинный язык CIL (управляемый assembler). JIT-компилятор. Языки
программирования. Сборки. Метаданные. Сборщик мусора. Библиотека классов .NET
Framework

Проблемы разработки современных информационных систем

Проблемы интеграции

Модулей, написанных на различных языках, использующих разный API (или
версии API) или разный формат представления данных;
Программ, разработанных для различных платформ, в рамках единого
программного комплекса;
Систем, использующих разные программные модели.

Особенно часто возникают проблемы интеграции с унаследованным кодом (legacy).
При решении задач интеграции возникают проблемы несовместимости.

Проблемы переносимости

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

Проблемы версий

Windows-разработчики знают о проблеме совместимости версий, известной под
названием “ад DLL”. Этот “ад” возникает, когда компоненты, устанавливаемые для
нового приложения, заменяют компоненты старого приложения. В итоге старое
приложение начинает работать неправильно или перестает работать.

Управление ресурсами

Одной из проблем программирования является управление и корректное освобождение
ресурсов, файлов, памяти, пространства экрана, сетевых соединений, ресурсов баз
данных и т. д. Некорректное управление этими ресурсами может привести к
некорректному выполнению программы.

Безопасность типов

4

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

Обработка сбоев

При разработке Windows-приложений с использованием Win32 API некоторые
функции возвращают исключения, другие — коды состояний, третьи — HRESULT.
Таким образом, отсутствует согласованный механизм обработки сбоев и есть
возможность игнорировать некоторые исключения, что делает код небезопасным.

Эти и другие проблемы разработки информационных систем помогает решать
платформа Microsoft .NET.

Решение проблем разработки информационных систем в .NET

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

Технология .NET представляет собой способ разработки и развертывания
программного обеспечения, который с помощью таких широко используемых
стандартов, как HTTP и XML, реализует взаимодействие программ и обеспечивает
доступ через Internet к многочисленным программным сервисам. Технология включает
.NET Framework — платформу для разработки и исполнения приложений, которая
упрощает и ускоряет разработку, поддерживает полноценное объектноориентированное программирование для Web, устраняет многие типы наиболее
распространенных программных ошибок, предоставляет общий API для всех языков.

Что составляет Microsoft .NET

.NET Framework — инфраструктура разработки приложений. Ее основные компоненты
— общеязыковая исполняющая среда (Common Language Runtime) и библиотека
классов .NET Framework Class Library.

Общеязыковая исполняющая среда (Common Language Runtime)

5

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

Весь код для платформы .NET преобразуется CLR в промежуточный код на языке CIL.
Поэтому разработчики могут легко интегрировать код, написанный для .NET на
различных языках программирования. Все, что можно сделать на одном .NETсовместимом языке (за редким исключением), можно сделать на любом другом. Код на
этих языках компилируется в код на одном языке — языке CIL.

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

Код для CLR представляет собой команды псевдомашинного языка Common
Intermediate Language (CIL). Эти команды компилируются в машинный код
соответствующего типа процессора по запросу (just-in-time) в период выполнения.
Обычно компиляция метода происходит один раз во время его первого вызова. Затем
результат кэшируется в памяти, чтобы избежать задержек при повторных вызовах. JITкомпилятор выполняет оптимизацию кода специально для процессора, на котором
исполняется этот код.

Преобразуя команды CIL в команды процессора, JIT-компилятор выполняет
верификацию кода на предмет безопасности типов.

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

Ресурсы, выделяемые управляемым кодом, освобождаются сборщиком мусора. Иначе
говоря, программист только выделяет память, но не освобождает ее — это делает CLR.
Сборщик мусора отслеживает все ссылки на объекты, создаваемые программой, и
уничтожает эти объекты, когда занимаемая ими память требуется где-то еще. Таким
образом в приложениях с управляемым кодом разрешается проблема утечек памяти.

Верификация кода также является основой способности CLR выполнять несколько
приложений внутри одного процесса. Процесс разделяется на виртуальные отсеки —
домены приложений (application domain). Таким образом повышается эффективность
использования памяти, выделяемой процессам. Домены приложений не менее
безопасны, чем процессы, так как их границы не могут быть нарушены управляемыми
приложениями.

.NET Framework Class library (FCL)

В .NET включены сборки библиотеки классов .NET Framework Class library (FCL),
содержащие определения нескольких тысяч типов, каждый из которых предоставляет

6

некоторую функциональность. Наборы “родственных” типов собраны в отдельные
пространства имен. Так, пространство имен System содержит базовый класс Object, из
которого в конечном счете порождаются все остальные типы.

Таким образом, всякая сущность в .NET является объектом со своими полями и
методами.

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

Для изменения существующего FCL-типа можно создать свой собственный
производный тип. Можно создавать свои собственные пространства имен. Все это
будет четко соответствовать принципам, предлагаемым платформой .NET

Приведем некоторые наиболее распространенные пространства имен и краткое
описание содержащихся там типов.

Основные пространства имен FCL

Пространство имен
Содержание

System
Фундаментальные типы данных и вспомогательные классы

System.Collections
Хэш-таблицы, массивы переменной размерности и другие
контейнеры

System.Data
Классы ADO .NET для доступа к данным

System.Drawing
Классы для вывода графики (GDI+)

System.IO
Классы файлового и потокового ввода/вывода

System.Net
Классы для работы с сетевыми протоколами, например с
HTTP

System.Reflection
Классы для чтения и записи метаданных

System.Runtime.Remoting Классы для распределенных приложений
System.ServiceProcess
Классы для создания служб Wndows

System.Threading
Классы для создания и управления потоками

System.Web
Классы для поддержки HTTP

System.Web.Services
Классы для разработки web-сервисов

System.Web.Services.
Классы для разработки клиентов web-сервисов Protocols

System.Web.UI
Основные классы, используемые ASP .NET

System.Web.UI.
WebControls

Серверные элементы управления ASP .NET

System.Wndows.Forms
Классы для приложений с графическим интерфейсом
пользователя

System.Xml
Классы для чтения и ввода данных в формате XML

Все управляемые приложения используют библиотеку классов FCL. Это упрощает
интеграцию приложений и позволяет легче переносить приложения с одного языка на

7

другой.

Итоги

Инфраструктура .NET Framework поддерживает разработку и исполнение различных
приложений. .NET Framework ставит своей целью решение следующих задач:

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

.NET Framework состоит из двух основных компонент: общеязыковой исполняющей
среды (CLR) и библиотеки классов .NET Framework.

8

Rotor и Mono

Mono - открытая платформа для разработки кроссплатформенных (Linux, MAC,
Windows) приложений на основе .NET Framework. Rotor - реализация .NET с
открытыми исходными тестами. Компоненты Rotor: компиляторы, CLI, системные и
вспомогательные средства

Mono

Mono - платформа разработки с открытыми исходными кодами, основанная на
Microsoft .NET Framework. Mono позволяет разработчикам, имеющим дело с
платформами UNIX, Linux, FreeBSD, Mac OS X, Solaris и Windows, создавать и
развертывать кроссплатформенные приложения стандарта .NET Проект Mono
спонсируется компанией Novell. Mono включает в себя как средства разработки, так и
инфраструктуру, необходимую для исполнения клиентских и серверных .NETприложений. Mono позиционируется как “средство будущего для разработки Linuxприложений”.

Реализация .NET в Mono основана на стандартах ECMA и включает среди прочего
компилятор C#, общеязыковую исполняющую среду (Common Language Runtime) и
множество библиотек. Библиотеки представляют собой библиотеки Microsoft .NET (в
том числе ADO .NET, System.Windows.Forms и ASP .NET), совместимые с
конкретными платформами, собственные библиотеки Mono и библиотеки классов
сторонних разработчиков. В состав Mono входит Gtk# - множество расширений .NET
для инструментария Gtk+ и различные библиотеки GNOME. Эти библиотеки
позволяют разрабатывать полноценные GNOME-приложения с использованием Mono.
Кроме того, библиотеки поддерживают разработку пользовательских интерфейсов с
использованием GLADE. Проект Mono также включает интегрированную среду
разработки (IDE), визуальные средства отладки и редактирования.

Компоненты Mono

Mono состоит из трех групп компонент: 1) компоненты ядра; 2) стек разработки для
Mono/Linux/GNOME; и 3) стек компонент Microsoft.

К компонентам ядра относятся компилятор C#, виртуальная машина и основные
библиотеки классов. Эти компоненты основаны на стандартах Ecma-334 и Ecma-335.
Таким образом, Mono предоставляет соответствующую стандартам бесплатную версию
виртуальной машины общеязыковой среды (CLI) с открытым исходным кодом.

Стек разработки для Mono/Linux/GNOME предоставляет инструменты для разработки
приложений с использованием библиотек GNOME и других бесплатных библиотек с
открытым исходным кодом. К ним относится: Gtk# для разработки графического
интерфейса пользователя (GUI), библиотеки Mozilla для работы с системой рендеринга
Gecko, библиотеки Unix, библиотеки для работы с базами данных, стек компонент
безопасности и язык описания XML-схем RelaxNG. Gtk# позволяет приложениям Mono

9

интегрироваться в GNOME подобно обычным Linux-приложениям. Библиотеки работы
с базами данных позволяют соединяться с MySQL, SQLite, PostgreSQL, Firebird, Open
Database Connectivity (ODBC), Microsoft SQL Server (MSSQL), Oracle, объектнореляционными базами данных db4o и многими другими.

Стек компонент Microsoft предоставляет средства переноса приложений для Windows
.NET на Linux-платформу К этим компонентам относятся ADO .NET, ASP .NET,
Windows.Forms и другие.

Архитектура среды Mono

Рис. 2.1.  Общая структура Mono

Библиотека классов

Библиотека классов предоставляет самые разные возможности для разработки
приложений. Большинство библиотек написано на C#, но могут быть использованы
приложением на любом .NET-совместимом языке. Библиотеки классов содержат
пространства имен логически связных классов. Библиотеки представляют собой сборки
(assemblies).

Сборки и пространства имен

10

Доступ онлайн
1 000 ₽
В корзину