- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Основы проектирования корпоративных систем - Сергей Зыков
Шрифт:
Интервал:
Закладка:
Рис. 8.1. Архитектурная схема. NET Framework и Visual Studio.NET
Рис. 8.2. Схема компиляции в Common Language Runtime
При компиляции некоторого модуля программного текста, который написан на том или ином языке, запускается компилятор, зависящий от языка программирования, но среда у них общая, и в итоге получается сборка в форме DLL или EXE, который содержит все необходимые метаданные, чтобы развернуть и запустить эту сборку в составе корпоративного приложения.
Естественно, трансляция осуществляется в терминал языка MSIL – это ассемблер высокого уровня, который в 3–5 раз плотнее, чем обычный ассемблер, если рассматривать, например, процессор Intel 8086 или ассемблер Z80.
Рис. 8.3. Схема выполнения CLR
При этом в ряде случаев не представляется возможным осуществить безопасную компиляцию в управляемый код. К сожалению, работа с некоторыми механизмами, например с памятью, небезопасна, и в этом случае программист обязан пометить этот фрагмент кода как неуправляемый код. Он транслируется по другому пути, без MSIL, и объединяется с родным кодом уже как неуправляемый объект – и в этом случае ответственность за безопасность лежит на программисте. В любом другом случае компилятор преобразует сборку в исходный текст. После чего осуществляется сборка с использованием JIT-компилятора на платформе CLR, и, по сути, идет работа в терминах операционной системы, т. е. взаимодействие со средой Windows уже скомпилированного и собранного приложения.
Основные возможности, которые предоставляет среда CLR:
• поддержка стандартных типов и правил создания новых типов;
• межъязыковая интеграция:
– включение в код на одном ЯП классов на другом ЯП;
– обработка исключений из программы на одном ЯП программой на другом ЯП;
– и т. д.
• единый набор библиотек классов для всех поддерживаемых ЯП;
• самоописываемые компоненты – не требуют дополнительных файлов (IDL, TLB, Proxy/Stub и т. п.); компонент является самодостаточным, имеет всю необходимую информацию для встраивания его в программный продукт и разворачивания;
• поддержка версий компонентов и сборок кода;
• сервисы безопасности (запрет неавторизованного доступа к ресурсам для пользователей – Role-Based Security, доступ на основе безопасности кода – Code-Based Security и автор кода, версия сборки и др.).
Рассмотрим работу универсальной системы типизации (рис. 8.4).
В основе лежит понятие базисного типа, который в. NET называется System.Object (это очень похоже на Java). Он делится на две категории – типы-ссылки и типы-значения, при этом типы-значения и типы-ссылки различным образом хранятся и используются. Типы-значения при создании экземпляра класса каждый раз вводятся в память и т. д.
Типы-ссылки – это классы, интерфейсы, массивы, делегаты и т. д.
Типы-значения – это перечислимые типы структуры и простые типы, такие как целочисленный, логический и т. д. Все типы, определяемые пользователями, фактически являются типами-ссылками. Таким образом, имеет место строгая иерархия классов.
Рис. 8.4. Универсальная система типизации (UTS)
В основе архитектуры. NET лежит понятие «сборка».
Сборка кода (assembly) – группа ресурсов, типов и метаданные, описывающие эти ресурсы и типы, необходимые для функционирования компонентов. Сборка реализуется как единое целое. Сборка – это самодостаточная единица кода.
К особенностям сборок кода прежде всего относятся следующие:
• сборка распространяется и реализуется как единое целое;
• метаданные сборки содержат информацию о зависимостях между ресурсами, версиях и т. п.;
• сборка характеризуется номером версии (последняя, специфичная и т. п.).
На уровне сервисов архитектура выглядит следующим образом:
• принцип. NET – «ПО как сервис»;
• следующий уровень архитектуры – уровень сервисов (рис. 8.5);
• сервисы доступны на уровне классов любого ЯП для. NET.
На нижнем уровне архитектуры существуют системные сервисы Microsoft Windows. На более высоких уровнях – различные надстройки, сервисы для работы с данными, сервисы интерфейсные и т. д. Сервисы. NET находятся на более высоком уровне, чем сервисы для Windows.
Рис. 8.5. Архитектура. NET – уровень сервисов
И для любого языка программирования, который реализован для. NET, мы можем использовать эти системные сервисы. NET, это фактически просто элементы классов. NET, которые доступны для любого языка.
Абстрактная машина. NET. CLR располагается над уровнем сервисов ОС (Windows CE, Windows ME, Windows 2000, Windows.NET).
Системные сервисы располагаются над CLR (доступ – через библиотеки классов): доступ к функциям ОС, управление данными, отладка, другие сервисы и т. п.; еще выше – компоненты и сервисы для разработки веб-узлов, веб-сервисов, пользовательских интерфейсов (GUI).
Веб-приложения – архитектура клиент – сервер с доступом пользователей к данным через веб-браузер (технология ASP.NET).
Распределенные приложения на основе иных механизмов удаленного взаимодействия компонентов XML Web Services – на основе открытых стандартов, NET Remoting – на основе внутренних протоколов Microsoft и целый ряд других подходов.
По сути, NET представляет собой виды базовых классов для сервисов:
• доступ к сервисам ОС (Windows CE, ME, 2000, NET);
• доступ к графическим функциям (двумерная графика, обработка изображений, шрифты, в том числе технология ClearType, интеграция с GDI и DirectX);
• сетевые функции;
• управление потоками;
• глобализация;
• криптография;
• доступ к данным (библиотека классов ADO+ и OLE DB-драйверы);
• классы для средств разработки (отладка, трассировка, управление ресурсами, компиляция, установка ПО, протоколирование событий и т. д.);
• другие классы (в том числе поддержка протокола SOAP).
Назначение Windows Forms – обеспечение разработки традиционных Windows-приложений на основе сервисов Microsoft.NET и соответствующих библиотек классов.
Особенности разработки – унификация доступа:
• к библиотекам классов;
• механизмам распространения сервисов;
• механизмам поддержки версий;
• сервисам безопасности.
Вывод: создание Windows-приложений в архитектуре Microsoft.NET дает разработчикам существенные преимущества, поскольку огромное количество классов уже реализовано, и остается заполнить пробелы только с реализацией бизнес-логики по сравнению с традиционным API-ориентированным подходом.
Назначение Web Forms — основа веб-сервисов и веб-приложений в архитектуре Microsoft.NET.

