
- •Лекция №3 Тема: Среда Microsoft Visual c # 2008 Express Edition. Структура программы в языке c#.
- •Общеязыковая исполняющая среда (Common Language Runtime)
- •Утилиты .Net Framework
- •Основные утилиты .Net Framework
- •Утилиты .Net Framework для отладки приложений
- •Утилиты .Net Framework по работе с защитой приложений
- •Утилиты .Net Framework для настройки и установки приложений
- •Сборки в среде clr
- •1 Общие сведения о сборках
- •2 Содержимое сборок
- •3 Манифест сборки
- •4 Размещение сборок
- •Среда Microsoft Visual c# 2005 Express Edition
- •Структура программы в c#.
- •Пример 1. Программа FirstProject
- •Проекты и среда разработки
- •Пространство имен.
Сборки в среде clr
Сборки являются структурными элементами приложений .NET Framework; они составляют основную единицу развертывания, управления версиями, повторного использования, областей действия активации и разрешений безопасности.
Сборка представляет собой коллекцию типов и ресурсов, собранных для совместной работы и образующих логическую функциональную единицу.
Сборка предоставляет среде CLR сведения, необходимые для распознавания реализаций типов.
1 Общие сведения о сборках
Сборка обладает следующими свойствами.
Содержит код, выполняемый средой CLR. При отсутствии манифеста сборки код на промежуточном языке MSIL, находящийся в переносимом исполняемом (PE) файле, выполняться не будет. Каждая сборка может иметь только одну точку входа (т. е. DllMain , WinMain или Main ).
Создает границу безопасности. Сборка представляет собой единицу, для которой запрашиваются и предоставляются разрешения.
Создает границу типов. Каждое удостоверение типа включает имя сборки, в которой располагается данный тип. Тип с именем MyType, загруженный в области действия одной сборки, не совпадает с типом MyType, загруженным в области действия другой сборки.
Создает границу, ограничивающую область действия ссылок. Манифест сборки содержит метаданные, используемые для разрешения типов и для выполнения связанных с ресурсами запросов. В манифесте указываются экспортируемые за пределы сборки типы и ресурсы. Кроме того, в манифесте перечисляются другие сборки, от которых он зависит.
Сборки могут быть:
статическими – такие, которые могут включать в себя типы платформы .NET Framework (интерфейсы и классы), а также ресурсы сборки (рисунки, JPEG-файлы, файлы ресурсов и т.д.). Статические сборки хранятся на диске в виде переносимых исполняемых (PE) файлов.
динамическими - , которые запускаются непосредственно из памяти и не сохраняются на диск перед выполнением, а только после.
2 Содержимое сборок
В общем случае статическая сборка может состоять из четырех элементов.
Манифест сборки, который содержит метаданные сборки.
Метаданные типов.
Реализующий типы код на промежуточном языке MSIL.
Набор ресурсов.
Обязательным является лишь манифест сборки, однако остальные типы ресурсов необходимы для обеспечения нужной функциональности сборки.
Существует несколько способов группировки этих элементов в сборку. Причем сборка может состоять из одного или нескольких файлов.
3 Манифест сборки
Любая сборка, статическая или динамическая, содержит коллекцию данных с описанием того, как ее элементы связаны друг с другом. Эти метаданные содержатся в манифесте сборки.
Манифест сборки содержит все метаданные, необходимые для задания требований сборки к версиям и удостоверения безопасности, а также все метаданные, необходимые для определения области действия сборки и разрешения ссылок на ресурсы и классы.
Манифест сборки может храниться в PE-файле (EXE или DLL) с кодом MSIL или же в отдельном PE-файле, содержащем только данные манифеста.
Для сборки с одним связанным файлом манифест включается в PE-файл, чтобы получить однофайловую сборку. Создать многофайловую сборку можно, включив в нее отдельный файл манифеста или же добавив манифест в один из PE-файлов сборки.
Манифест сборки предназначен для следующих задач:
перечисление файлов, составляющих сборку;
сопоставление ссылок на типы и ресурсы сборки с файлами, содержащими объявления и реализации этих типов и ресурсов;
перечисление других сборок, от которых зависит эта сборка;
обеспечение косвенного обращения пользователей сборки к подробностям ее реализации;
предоставление собственного описания сборки;