четверг, 7 февраля 2013 г.

динамическое создание объектов &object> в vbscript

5. Метаданные в .Net конструируемы программно.

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

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

4. Метаданные в .Net расширяемы.

Метаданные настолько подробны, что для создания и использования сборки не нужны никакие заголовочные файлы, IDL-файлы или библиотеки типов. Сборки могут использоваться без процесса регистрации. Разработчики .Net называют это компонентно-ориентированной технологией.

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

3. Метаданные в .Net исчерпывающи.

ПРИМЕЧАНИЕРефлексИя (интроспекция), по Дж. Локку (1632-1704), - это "наблюдение, которому ум подвергает свою деятельность." Другими словами, рефлексия - это взгляд на самого себя, взгляд внутрь себя, способность к самоисследованию.

Сама сборка во время своего исполнения также имеет доступ к собственным метаданным. Отсюда название соответствующей технологии Reflection .

ПРИМЕЧАНИЕДа что там утилиты! Целые языки программирования работают исключительно благодаря метаданным. В среде .Net живут скриптовые, безтиповые языки (JScript и VBScript). Их работа основана на расшифровке и использовании метаданных во время исполнения программы. IDispatch отдыхает.

Доступ к метаданным могут получить любые программные компоненты и любые инструменты программирования. Так, компилятор во время компиляции сборки использует информацию о зависимостях между сборками и проверяет соответствие используемых типов, извлекая нужную для этого информацию из метаданных. Инструменты программирования (в том числе среда программирования IDE), извлекают информацию о типах и в удобном виде представляют структуру классов, а также предоставляют справочную информацию по ним (ObjectBrowser, IntelliSense). Набор утилит, обеспечивающих взаимодействие с COM-компонентами (Regasm, Tlbexp, Tlbimp), целиком опираются в своей работе на метаданные.

2. Метаданные в .Net общедоступны.

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

Каждая программная единица в среде .Net, (сборка), помимо кода на языке MSIL обязательно содержит метаданные, описывающие как её в целом (манифест), так и каждый тип, содержащийся в ней, в отдельности (метаданные). На рисунке 1 показаны составные части однофайловой сборки.

1. Метаданные в .Net обязательны и универсальны.

В различных технологиях программирования используются метаданные разной степени подробности и разной степени универсальности. Но в технологии .Net метаданные играют совершенно особую роль. Это роль "универсального клея", на который возложены функции поставщика информации о типах как во время компиляции программы, так и во время её исполнения. Эта важная роль метaданных обусловлена следующими факторами:

Приставка мета подчеркивает что это данные, описывающие другие данные. "Данные о данных".

Для того, чтобы различные части программ могли взаимодействовать друг с другом, им необходимо обмениваться информацией о предоставляемых ими возможностях, и о том, каким образом эти возможности использовать. Например, если программа использует статическую библиотеку, к библиотеке обычно прилагается заголовочный файл, описывающий экспортируемые данные, процедуры и структуру типов. Другой пример DLL. Чтобы использовать её в своей программе, вы, скорее всего, будете использовать соответствующие заголовочный файл и библиотеку импорта. Ещё один пример COM-компонент. Описание его интерфейса обычно хранится в idl-файле или в виде специальных данных, в виде библиотеки типов. Все эти дополнительные файлы и данные, описывающие программные компоненты, называют метаданными.

Метаданные в среде .NetАвтор: The RSDN GroupИсточник: Опубликовано: 14.03.2003Исправлено: 05.01.2007Версия текста: 1.1.1 Что такое метаданные и зачем они нужны?

Метаданные в среде .Net P PP PP P PP PP PPPОценить P

Комментариев нет:

Отправить комментарий