Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 276

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 270 271 272 273 274 275 < 276 > 277 278 279 280 281 282 .. 404 >> Следующая


В .NET имеется несколько особенностей, которые делают возможным одновременное использование нескольких различных языков программирования:

? Common Language Runtime (CLR — единый язык выполнения программ), . который управляет выполнением всех модулей в .NET.

? MSIL (Microsoft Intermediate Language — промежуточный язык компании Microsoft), который генерируется компиляторами со всех языков программирования, включенных в .NET. Он представляет собой единый стандарт двоичного кода, генерируемого компиляторами,

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

? Common Language Specification (CLS — единая спецификация языков программирования), которая устроена таким образом, что программы, написанные на С#, Visual Basic, C + + илн любых других СLS-совместимых языках программирования .NET, могут получать общий доступ

к компонентам с наследованием, выходящим за рамки отдельного языка.

В CLS определяются возможности, которые должны поддерживаться языками для обеспечения их совместного использования друг с другом. Существует возможность использовать и другие особенности языков программирования, не входящие в CLS, но в этом случае отсутствует гарантия того, что эти особенности поддерживаются в других языках.

? Common Type System (CTS — единая система типов), которая определяет базовые типы, используемые в языках программирования .NET

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

Это позволяет избегать реализации типа string недопустимым образом.

Следуя CLS-спецификации, вы можете написать на C# некоторый компонент, а модуль, в котором этот компонент содержится, может быть использован из программы, написанной на другом языке программирования .NET, таком как Visual Basic.NET, поскольку оба компонента — и С#, и VB.NET — будут выполняться CLR. В программах, написанных на С#, могут использоваться компоненты, написанные на VB.NET, Managed C + + и т. д. На уровне модулей все классы, объекты и типы данных могут совместно использоваться всеми языками программирования .NET, поэтому классы могут наследоваться, а компоненты полноценно использоваться независимо от того, на каком языке программирования они написаны,

Саноописывающиеся модули для СОМ и другого унаследованного нода

.NET Framework также допускает использование с C# и другими языками программирования .NET компонентов и библиотек, написанных с использованием СОМ и других “унаследованных” технологий.

Этот механизм также предполагает использование самоописывающихся модулей; на самом деле при этом происходит создание модуля, который охватывает доставшийся по наследству код; такой модуль представляет .NET собственное описание, преобразовывает типы данных СОМ в типы данных .NET и обеспечивает возможность вызывать унаследованный код из языков программирования .NET и наоборот.
592

Глава 21

Модуль
,Nt 1 -клиента

В Visual Studio.NET происходит автоматическое создание охватывающего модуля в тот момент, когда вы включаете ссылку на COM-компонент (посредством вкладки СОМ в диалоге Add Reference).

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

чем достигают самого COM-компонента; с точ-сом-коипон*нО кн зрения модуля .NET охватывающий модуль представляет собой обычный компонент.

ОхытыюощиД

модуль

Структура модулей

Манифест (метаданные модуля)

Метаданные типов

MSIL-код

Ресурсы (при необходимости)

> Ссылки на другие модули

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

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

Модули .NET, состоящие из одного файла, обладают общим форматом, представленном на рисунке справа,

В каждом модуле содержится манифест, где описывается содержимое данного модуля.

Манифест также называется метаданными модуля, поскольку он описывает собственный модуль — что в нем содержится, на какие другие модули он ссылается и т. д, Манифест модуля будет подробно рассматриваться ниже в этой главе, когда будет изучаться содержимое созданного модуля. Предыдущие технологии с использованием компонентов, такие как СОМ, не имели встроенных объектов, аналогичных манифесту; манифест — это ядро самоописания, содержащееся в модулях .NET.
Предыдущая << 1 .. 270 271 272 273 274 275 < 276 > 277 278 279 280 281 282 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.