Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 113

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 107 108 109 110 111 112 < 113 > 114 115 116 117 118 119 .. 320 >> Следующая

Еще одна проблема, которую также можно отнести к проблеме версий, заключается в том, что в самоописании (при помощи двоичного сервера СОМ нет списка внешних зависимостей — модулей, от которых зависит нормальное функционирование данного сервера. Если какой-либо внешний модуль будет перемещен, переименован или удален (например, программой деинсталляции другого приложения), наш СОМ-сервер перестанет работать.
В .NET возникновение подобных проблем исключено — во-первых, за счет того, что на пользовательском компьютере могут сосуществовать разные
версии одной и той же сборки, а во-вторых, поскольку в манифесте сборки явным
образом указываются все внешние модули, необходимые для нормальной работы этой сборки.
Обзор сборок .NET 269
У каждой сборки есть свой идентификатор версии (version idehti!тег), который применяется ко всем типам и ресурсам внутри каждого модуля сборки. Используя информацию об этом идентификаторе, среда выполнения .NET гарантирует загрузку нужной версии сборки. Идентификатор версии сборки состоит из двух частей: дружественной текстовой строки (называемой информационной версией —
informational version) и цифрового идентификатора (версией совместимости — compatibility version).
Предположим, что вы создали новую сборку с информационной версией MyIn teresti ngString. Естественно, у каждой сборки должна быть и версия совместимости. Пусть в нашем случае она выглядит так: і 0. 7fi Версия совместимости 2? гда состоит из четырех цифр, разделенных точками. Что же означают эти цифры?
Первая цифра - основной номер версии (majorversion), в нашем случае 1.
Вторая цифра - дополнительный номер версии (minor version), в нашем случае
Третья цифра — номер сборки (build number), в нашем примере — 70.
Четвертая цифра - номер редакции (revision number), у нас - 3.
Ниже в этой главе мы рассмотрим, каким образом среда выполнения использует номер версии сборки для загрузки именно тех двоичных файлов, которые нужны вызывающему их клиенту (речь идет о сборке общего пользования).
Кроме того, мы также увидим, что поскольку в манифесте есть информация о всех внешних зависимостях для (борю:, на основании нее среда выполнения определяет и использует «последнюю известную рабочую конфигурацию» — набор
сборок, которые нужны для правильной работы ассамблеи.
Сборки определяют контекст безопасности
Сборки могут также содержать информацию о безопасности. В мире
основные параметры безопасности определяются именно на уровне сборки. Например, если сборка А хочет получить доступ к классу, расположенному внутри сборки В, то именно сборка В определяет, предоставлять такой доступ или нет. Ограничения системы безопасности, определенные в сборке, явно прописываются в ее манифесте. Мы не будем в этой книге подробно рассматривать систему безопасности — отметим только, что доступ к содержимому сборки регулируется при помощи информации, находящейся в метаданных сборки.
Разные версии сборок могут выполняться параллельно
Возможно, одно из главных преимуществ сборок заключается в том, что среда выполнения может одновременно загружать и обеспечивать выполнение разных версий одной и той же сборки. Таким образом, на клиентском компьютере не только могут быть установлены разные версии сборок, но они еще и могут использоваться разными приложениями одновременно.
Определить нужную вашему приложению версию сборки можно при помощи
конфигурационных файлов приложений. Эти текстовые файлы (точнее, файлы в
формате XML) описывают нужную версию сборки, а также определяют местонахождение нужной приложению сборки. Мы научимся работать с файлами конфигурации приложений в этой главе.
270 Глава 6 • Сборки, потоки и домены приложений
Создание тестовой однофайловой сборки
Теперь, после знакомства с теорией, посвященной сборкам наша зада-
ча — создать библиотеку кода на С#. Физически эта библиотека кода будет представлять собой однофайловую сборку с именем CarLibrary. Чтобы приступить к созданию библиотеки, выберите в интегрированной среде разработки Visual Studio.NET новый проект Class Library (библиотека классов), как показано на рис. 6.6.
New Project
project Types:
. O Visual Basic Projects ]• ?3 C# Projects m о Visual C++ Projects : Q Visual FoxPro Projects : 0 Setup and Deployment Projects [B-CTJ Other Projects ¦¦ -Cu Visual Studio Solutions
Windows Application
Console Application
Control Class Library
ASP+ Web
Application
CarLibrary
J Di\CSh»pBook\LabsV:hapler 6
Location!
Project will be created at
3
Browse...

OK Cancel Help
Рис. 6.6. Создание нового проекта Class Library (библиотека классов)
Первое, что мы сделаем — создадим абстрактный класс Саг, в котором будет определен набор внутренних членов, определенных как protected. Доступ к этим внутренним членам будет осуществляться через свойства класса. Пусть в нашем
классе будет единственный абстрактный класс с именем TurboBoostO. Кроме того, в классе будет использоваться перечисление EngirieState. Изначальное определение нашего класса будет выглядеть следующим образом:
Предыдущая << 1 .. 107 108 109 110 111 112 < 113 > 114 115 116 117 118 119 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100