Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 286

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 280 281 282 283 284 285 < 286 > 287 288 289 290 291 292 .. 404 >> Следующая


Чтобы убедиться в том, что 3hapes.dll занесен в кэш, попробуйте удалить копию shapes.dll из текущей директории. Запустите файл shapeuser.exe, и вы получите следующее сообщение:

Area of Circle(1.0) is 3.141596
610

Глава 21

Программа по-прежнему работает, несмотря на отсутствие shapes.dll, поскольку загрузка модуля shapes осуществляется из GAC. Для продолжения тестирования воспользуемся gacutil для обратной инсталляции shapes:

gacutil /using shape»

Обратите внимание на то, что для команды обратной инсталляции расширение .dll опускается.

Теперь попробуйте еще раз запустить shapeuser:

C:\shapes>shapeuser

Unhandled Exception: System.lO.FiteNotFoundException: File or assembly name shapes, or one of (Необрабатываемая исключительная ситуация: System,10. FileNotFoundException:

Имя файла или модуля shapes, либо файла) its dependencies, was not found.

(или модуля, на которые они ссылаются, обнаружить не удалось.)

Это свидетельствует о том, что shapes.dll был предварительно загружен из GAC.

Поиск модулей

Система выполнения программ .NET следует набору предварительно описанных правил для определения местонахождения внешнего модуля, если на него имеется ссылка. Мы только что познакомились с тем, каким образом осуществляется поиск общих модулей сначала в локальной директории, а затем в GAC.

Для частных модулей поиск сначала выполняется в локальной директории, а затем система осуществляет поиск в поддиректории с тем же именем, что и сам модуль. Система выполнения программ тате осуществляет поиск файла DLL или EXE, который носит то же имя, что и искомый модуль. Для класса Shapes сочетание этих правил дает следующий перечень просматриваемых директорий:

./shapes-DLL .

./shapes/shapes.dll ./shapes/shapes.exe ./shapes.exe

Дополнительные области поиска и даже адреса URL, по которым данный модуль может быть найден и загружен с удаленного местонахождения, могут задаваться посредством файла конфигурации. Файлы конфигурации для модулей представляют собой файлы в формате XML, определяющие правила, которые система выполнения программ .NET должна применять при поиске модуля. Файлы конфжурации также позволяют предопределять поведение, реализующееся при проверке номеров версий. Детальное описание файлов конфигурации и XML оказывается достаточно сложным и выходит за рамки настоящей книги. Для получения такой информации можно обратиться к документации по .NET Framework, доступной в режиме онлайн, по теме "файлы конфигурации модуля”.

Итоги

Программы на C# и библиотеки классов распространяются в виде модулей, которые обладают большим количеством возможностей, облегчающих распространение компонентов Microsoft .NET Framework. Компоненты предоставляют возможность повторного использования двоичных объектов. Очень важной особенностью .NET-компонентов является их самоописательность; это нх самое главное их отличие от исторических предшественников (например, от СОМ-компонентов).
Свойство самоопнсательностн обладает определенными преимуществами, среди которых простота инсталляции н совместного использования с Common Language Runtime (CLR — единая система выполнения программ), что позволяет одновременно с программированием на C# использовать различные другие языки программирования и унаследованные программы.

Нами был создан компонент, представляющий собой написанную на C# библиотеку классов, который был затем откомпилирован в модуль с использованием как инструментария командной строки .NET, так и Visual Studio.NET, После этого мы создали приложение на С#, в котором данный компонент использовался, а также познакомились с тем, каким образом можно просматривать содержимое модулей с помощью ildasm. Это позволило нам лучше понять структуру модулей. Мы рассмотрели различные составные части модуля, включая манифест, номер версии и другие атрибуты модуля. Кроме лучшего поннмания структуры модулей, это позволило нам научиться выполнять сравнение номеров версий в ссылках на внешние модули с целью отладки программ,

Модули могут быть либо частными, относящимися только к некоторому конкретному приложению, либо общими, которые доступны всем приложениям, работающим в данной системе. Мы познакомились с тем, каким образом можно генерировать общие модули, создавая ключ файла и помечая этим ключом данный модуль, в результате чего создается строгое имя модуля, Мы познакомились также с тем, каким образом осуществляется проверка номеров версий для общих модулей, и рассмотрели понятие кэша глобальных модулей, в котором хранятся общие модули, а также различные инструменты, предназначенные для проемотра и выполнения манипуляцяй над ними.

Мы рассмотрели компромисс между преимуществамя проверки совместимости, обеспечения безопасности и эффективности использования ресурсов с одной стороны, и теми трудностями, к которым это приводит прн создании н инсталляции модулей, с другой. В заключение мы коротко рассмотрели, каким образом система выполнения программ .NET осуществляет поиск модулей, к которым происходит обращение.
Предыдущая << 1 .. 280 281 282 283 284 285 < 286 > 287 288 289 290 291 292 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.