dotSITE
Шаблоны проектирования Work in Murano Software. Вопросы/Ответы
новости материалы решения форумы группы настройки/о проекте
Логин/Регистрация
Логин:
Пароль:
Запомнить вас:
Регистрация
Забыли пароль?

Комментарии

Введение в Assemblies

Assemblies(сборки).

Новая платформа .NET несет в себе новые принципы разработки программного обеспечения. Общеязыковая среда выполнения (CLR, Common Language Runtime) манипулирует управляемыми типами .NET (интерфейсы и классы). В то же время существующие механизмы работы dll не устраивали разработчиков.
Требовалось создать структуру, объединяющую классы, позволяющую использовать контроль версий, следить за безопасностью, поставлять ресурсы, необходимые приложению, использовать динамическую загрузку и другие, необходимые для работы приложения возможности. Данные механизмы объединяют в себе сборки. Еще одна из важнейших целей сборки - предоставлять пространство для разрешения типов.

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

При написании приложений с помощью VS.NET вам может не понадобиться детальное знание манифестов и механизмов обработки сборок, но чтобы хорошо спроектировать приложение и понять механизмы выполнения таких систем, как ASP.NET, нужно представлять, что из себя представляет сборка.
Сборка - самостоятельный, функциональный модуль, "логическая" dll (dll, динамически подгружаемая библиотека - windows стандарт программных модулей). Сборки бывают двух типов - статические и динамические. Статическая сборка физически состоит из одного или нескольких файлов. Эти файлы объединены манифестом. Манифест - часть сборки, декларирующая метаданные, то есть описывающая сборку и параметры для ее использования.
Если сборка состоит из одного файла, манифест встраивается в PE (portable executable) код, формируя однофайловую сборку. Если же сборка не ограничена одним фалом, то вы можете как включить манифест в один из файлов с PE кодом, так и разместить его в отдельном файле.Среда выполнения выполняет программный код, только если с ним ассоциировани манифест. Сборка может иметь только одну точку входа (Main, WinMain, DllMain).

Динамические сборки генерируются машиной сценариев с использованием интерфесов прикладного программирования, предоставляемых обзеязыковой средой выполнения. Эти сборки генерируются в память и выполняются, чтобы сохранить их в файлы, вы должны указать соответсвующие параметры CLR. System.Reflection.Emit предоставляет API для создания динамических сборок. В MSDN для VS.NET есть примеры использования типов этого пространства имен.

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

Сборки могут включать в себя как классы и типы, так и ресурсы(bitmap изображения, JPEG файлы и другие).

Файлы, составляющие сборку объединены логически, независимо от их физического положения, связывает их манифест. Среда выполнения расценивает сборку, как цельный модуль. При разработке программного продукта важно разумно разбить его на сборки. Часто хватает одной сборки. Сборки автоматически создаются вашей средой разработки (например, VS.NET), также можно манипулировать ими с помощью утилит из .NET Framework SDK.

Сборка формирует приложение, причем приложение может динамически закачивать(или получать иным способом), сборки, необходимые для выполнения. Это, в рамках системы контроля версий, делает компонентно-ориентированную разработку удобнее.
Система контроля версий позволяет не только автоматически выполнять последнюю совместимую версию, но и выполнять разные версии одной сборки на одной машине и даже в одном процессе.

Манифест содержит: имя сборки; номер версии (состоит из основного и доплнительного номеров продукта, номера ревизии и билда); разделенное имя (открытый ключ, и созданный с помощью секретного ключа хэш файла, содержащего манифест); информацию о культуре(средство .NET для локализации приложений); информация о поддерживаемых процессорах и операционных системах(игнорируется в текущей версии); имена файлов, образующих сборку и их хэши (к файлам указывается относительный путь, они должны быть в том же каталоге, что и манифест или его подкаталогах); информация, связывающая типы с содержащими их файлами; также в манифесте содержится информация о сборках, испольуемых данной - название, часть метаданных, их открытый ключ,в случае применения разделенных сборок. Аттрибуты этого типа доступны с помощью System.Runtime.CompilerServices.

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

В продолжении читайте про разделенные имена, контроль


Контакт Реклама на сайте Спонсорам Веб мастерам

Лицензионное соглашение - © 2000-2012 dotSITE
Хостинг .NET предоставлен PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development