Сборка (Assembly) — это фундаментальная единица развертывания и управления кодом в экосистеме .NET. Она представляет собой скомпилированный файл (обычно с расширением .dll или .exe), который объединяет в себе код, метаданные, ресурсы и информацию о зависимостях, необходимую для выполнения приложения.
Основные компоненты сборки
- Скомпилированный код
Сборка содержит скомпилированный машинный код, который может выполняться средой выполнения .NET (CLR). Это могут быть классы, структуры, интерфейсы и другие типы, определённые в исходном коде. - Метаданные
Метаданные включают информацию о типах, членах классов, атрибутах и других элементах, что позволяет среде выполнения и инструментам разработки работать с кодом. Эти данные позволяют обеспечить безопасность, управление версиями и совместимость между различными сборками. - Манифест
Манифест — это специальная часть сборки, содержащая:- Информацию о версии сборки.
- Список всех файлов, входящих в состав сборки (если она состоит из нескольких файлов).
- Данные о зависимостях от других сборок.
- Данные о безопасности и подписке сборки.
- Ресурсы
Помимо кода, сборка может содержать встроенные ресурсы, такие как изображения, строки локализации, файлы конфигурации и другие данные, необходимые для работы приложения.
Роль сборок в .NET
- Развертывание и обновление
Сборки являются единицей развертывания, что упрощает процесс установки и обновления приложений. Благодаря системе управления версиями, можно легко обновлять одну сборку, не затрагивая другие части приложения. - Безопасность и контроль версий
Метаданные и манифест позволяют системе CLR обеспечивать контроль версий и безопасность. Сборки могут быть подписаны цифровой подписью, что гарантирует их подлинность и целостность. - Управление зависимостями
С помощью манифеста сборки определяется, от каких других сборок зависит приложение, что помогает системе правильно загружать необходимые компоненты во время выполнения.
Сборка в .NET — это не просто файл с кодом, а комплексная единица, объединяющая скомпилированный код, метаданные, ресурсы и информацию о зависимостях. Именно благодаря сборкам реализуются принципы модульности, контроля версий и безопасности, что делает их ключевым элементом архитектуры и развертывания .NET-приложений.