- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Основы проектирования корпоративных систем - Сергей Зыков
Шрифт:
Интервал:
Закладка:
Теперь рассмотрим, какого рода функции выполняет среда CLR и как осуществляется работа библиотеки классов. NET. Естественно, CLR загружает и выполняет код, при этом существует понятие управляемого кода. В случае управляемого кода обеспечивается повышенный уровень безопасности, в частности контроль выхода за границы массива, управление динамической памятью, сборка мусора и т. д. CLR в любом случае следит за памятью при размещении объектов, но при безопасном коде ответственность за использование кода лежит на разработчике, а не на пользователе. Изолируются области памяти, в которых выполняются отдельные приложения или процессы приложения. Осуществляется проверка безопасности кода, в основном на основе механизмов сборок, а также подлинности сборки – на основе номера сборки, цифровой подписи автора и т. д. Кроме того, существует политика безопасности, которая определяет форму сборки.
Поговорим более подробно о том, какого рода окружение может функционировать и какого рода операции могут выполняться. Естественно, осуществляется преобразование промежуточного языка MSIL в машинный код. Поддерживается доступ к метаданным, это понятие будет рассмотрено чуть позже. Осуществляется поддержка обработки исключительных ситуаций, в том числе и межъязыковых. Существует иерархия исключений, которая находится в пространстве имен System.Exceptions. И все нестандартные ситуации, которые могут возникать в том или ином языке приложения, который реализован для среды. NET, отслеживаются CLR и обрабатываются стандартным образом. Можно также создавать и свои пользовательские исключения и обрабатывать их. CLR позволяет осуществить взаимодействие между как управляемым, так и неуправляемым кодом, включая COM-объекты (более подробно об этом будет говориться в разделе, который связан с офисными приложениями). Поддерживаются сервисные возможности для приложений, для разработки программных систем. При этом независимо от того языка, который реализован для платформы. NET, все сервисные возможности поддерживаются в полной мере. Это и отладка кода, и тестирование, и профилирование, и кодирование, и документирование и т. д.
Если говорить о другом аспекте платформы. NET – FCL, то это объектно-ориентированная библиотека, которая включает описание классов, интерфейсов и внутренней системы типов. NET – Common Type System (CTS). Важно, что интерфейсы этой библиотеки классов могут использовать абсолютно все приложения, написанные для платформы. NET, независимо от языка программирования и конкретики программной архитектуры этих приложений. Естественно, это касается и встроенных типов, таких как целый, булевский, вещественный, символьный и т. д., а также типов, которые представлены в виде классов. Если говорить о платформе. NET, то постулируется принцип – каждая сущность является объектом. Поэтому все стандартные типы являются классовыми структурами. Кроме того, классы FCL могут использовать все классы Windows Forms (ранее говорилось об этом подходе к построению интерактивного пользовательского интерфейса), классы, предназначенные для разработки веб-сервисов и других приложений, основанных, например, на ESP.NET, это веб-формы, в частности. Классы, которые базируются на стандартных протоколах, предназначены для приложений в сервисно-ориентированной архитектуре, например Windows Communication Foundation, которая основана на стандартных протоколах XML, FTP, HTTP, SML и Soid и, естественно, протоколе, который поддерживает сервисно-ориентированную архитектуру. Кроме того, со стандартным. NET Framework взаимодействуют все классы, предназначенные для разработки приложений, в том числе и офисных, приложений, которые работают с базами данных, в том числе на основе технологии. NET, и ряд других классов.
Еще одним важным аспектом, о котором необходимо говорить в связи с компонентными приложениями, являются сборки. Понятие «сборка» во многом аналогично понятию «компонент», если говорить о среде. NET. Для CLR-среды выполнения сборка является нейтральной, независимой от языка программирования, на котором она была написана, будь это родной язык. NET С#, или F#, или какой-то другой язык, важно чтобы обеспечивалось соответствие CLS и CTS, т. е. системе типизации, системе описания языка, которая погружает язык в виртуальную машину. NET. Сборка – это базовый строительный блок приложения на основе. NET Framework, это некая самодостаточная единица или логическая группа одного или нескольких модулей или файлов-ресурсов. При этом модули в составе сборок выполняются под управлением CLR, и сборка может быть самостоятельным приложением, скажем EXE-файлом или динамически подключаемым библиотечным модулем. О DLL-библиотеках уже говорилось, и это тоже формат представления сборки.
Важным понятием является также манифест, или декларация сборки, по сути, это совокупность всех метаданных сборки. То есть служебная информация, которая описывает все ресурсы, необходимые для того, чтобы сборка могла функционировать в среде. NET. Манифест включает все классы и ресурсы, т. е. внешние по отношению к сборке элементы, которые необходимо привлечь, а также те ресурсы, которые экспортируются из сборки наружу, перечисляет зависимости от других сборок, т. е. каким образом сборка функционирует в среде, указывает набор прав, необходимых для корректной работы сборки, цифровую подпись, имя и версию сборки. Приведенная ниже схема (рис. 13.2) иллюстрирует трансляцию и выполнение приложения или сборки, поскольку приложение строится на основе сборок и является совокупностью сборок в среде CLR.
Рис. 13.2. Схема выполнения. NET-приложения в среде CLR
Исходным пунктом является текст, код на одном из языков, который поддерживается CLS и, скажем так, сертифицирован для. NET. Используется стандартный компилятор. NET или внешний компилятор, разработанный для. NET. И происходит трансляция в сборку. Подобная схема уже была рассмотрена, в ней присутствовали фрагменты кода, фрагменты приложений на языках C#, SML, F#, Visual Basic и т. д. В итоге получаются сборки в формате либо DLL, либо EXE. Внутрь этих файлов включены фрагменты кода на MSIL и необходимые метаданные сборки: классы, ресурсы, цифровые подписи, автор, версия и т. д. Далее осуществляется взаимодействие этих метаданных. Загрузчик объединяет их вместе с требуемыми ресурсами из библиотек базовых классов стандартного. NET Framework. Затем JIT компилятор осуществляет финальную трансляцию и сборку этих элементов в среде выполнения и собственно выполнение приложения.
При этом важным понятием является домен приложения, ранее говорилось о доменах в связи с технологией Remoting и другими технологиями, которые осуществляют создание и поддержку распределенных приложений в среде. NET, в частности WCF, веб-сервисы. Речь идет о логическом контейнере сборок, который применяется для осуществления локализации или изоляции приложения внутри процесса. Какие важные свойства доменов нужно запомнить, говоря о компонентных приложениях? Во-первых, что домены изолированы друг от друга. CLR может осуществлять загрузку и выгрузку домена со всеми сборками, которые участвуют в этих доменах. Возможно осуществление дополнительных конфигурационных настроек и надстроек, связанных с обеспечением безопасности, применительно к каждому из доменов. Технологии маршаллинга, о которых уже упоминалось, – это передача данных между границами доменов или процессов. При этом такой обмен данными осуществляется в безопасном режиме. Известно, что существует маршаллинг по имени, по значению, по ссылке. Кроме того, доменная модель поддержана на уровне. NET Framework, существует компонентная модель, в которой основными элементами являются сборки. А если берется более широкая модель COM-объектов, в частности, как это, скажем, происходит при работе с офисными или другими приложениями, что используются внутренние механизмы, которые называются COM InterOP и обеспечивают интероперабельность, взаимодействие. NET-объектов с COM-объектами, по сути, NET-сборок с COM-объектами, и наоборот. При этом не требуется регистрации компонентов в реестре Windows, если речь идет о. NET-приложении.

