Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Safonov / AMPN_course_18.pptx
Скачиваний:
101
Добавлен:
16.04.2015
Размер:
418.81 Кб
Скачать

Статические и динамические сборки

Статические сборки

Генерируются компиляторами

Загружаются с диска или из сетиДинамические сборки

Генерируются “на лету”(во время выполнения)

генерируются с использованием

Reflection.Emit API

Могут быть временными (не записываться на диск)

(C)Сафонов В.О. 2012

Сборки

Модуль – единица компиляции

Модуль содержит типы и локальные методыСборки содержат модули

Сборки состоят из модулей и ресурсов

Манифест сборки – ее “инвентарный список”

(C) Сафонов В.О. 2012

Зависимости

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

Сборки могут импортировать общедоступные ресурсы других сборок

Типы

Файлы ресурсов

Зависимости описаны в манифестеРазрешение символов выполняется только во время исполнения (никакой статической линковки)

История: списки импорта и экспорта модуля впервые введены в языке Modula Никлаусом Виртом (1977)

(C) Сафонов В.О. 2012

Зависимости типов

 

 

 

 

Public

External

Public

External

Types

Refs

Types

Assembly

Refs

Types

 

Assembly

 

Types

 

Module3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Module1

Module2

 

 

 

 

 

 

Public

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Types

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Module

 

 

 

 

Public

 

 

 

 

 

 

Types

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Assemb

 

 

 

 

 

 

 

Types

 

 

 

 

 

 

 

 

 

 

 

Module

 

 

 

 

 

 

 

 

 

 

 

 

 

ly Types

 

 

 

 

 

 

Types

 

 

 

 

 

 

 

 

ref: null, TypeA, module1

 

 

 

 

 

 

 

 

ref: null, TypeB, module2

 

 

 

 

Сборка B

 

 

 

ref: AssemblyB, TypeC, module3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сборка A

(C) Сафонов В.О. 2012

 

 

 

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

Пространства имен используются для группировки

именСборка может содержать несколько пространств имен

Пространства имен могут быть разбиты на несколько сборок

Структурно идентичные типы, определенные дважды явным образом, считаются различными

Как сборки, так и пространства имен могут быть

включены в проект независимо:

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

в метаданных) например, C# , а не базовое понятие

.NET (CLI)

Ссылки на сборки указываются в опциях using System.Runtime.Remoting.Services;

компилятора

csc /r:System.Runtime.Remoting.DLL ...

(C) Сафонов В.О. 2012

Сборки, часть 2: Концепции и элементы

Элементы сборки

МанифестИнформация о версии

Полномочия безопасности

Физическое представлениеПолные имена (strong names)

(C) Сафонов В.О. 2012

Манифест – стандартные элементы

Манифест – таблица информационных записейМанифест содержит информацию о:

Имени сборки

Версии

Полном имени сборки

Культуре (т.е. области локализации)

Процессоре и ОС

Файлах, включенных в сборку

Ссылках на типы и ресурсы

Экспортируемых и локальных типах

(C)Сафонов В.О. 2012

Манифест – пользовательские элементы

AssemblyCompanyAssemblyConfigurationAssemblyCopyrightAssemblyDefaultAliasAssemblyDescriptionAssemblyInformationalVersionAssemblyProductAssemblyTitleAssemblyTrademark

(C) Сафонов В.О. 2012

Многофайловые сборки

Связаны между собой на основе метаданных сборки

Физически не объединены в один файл

Module1

Module2

Graph

Assembly Module

Manifest Manifest

Assembly.exe Module2.dll Graph.jpg

(C) Сафонов В.О. 2012

Версии

Манифест содержит информацию о версииНомер версии для совместимости:

Major, minor, build, revision: 2.1.1254.0Информационный номер версии:

Строка, хранимая в AssemblyInformationalVersion

Ссылки на другие сборки содержат информацию об их версиях

(C) Сафонов В.О. 2012

Соседние файлы в папке Safonov