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

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 269 270 271 272 273 274 < 275 > 276 277 278 279 280 281 .. 404 >> Следующая


СОМ работает неплохо, однако оиа оказывается очень сложной для изучения и использования (в особенности, если она используется из C+ + ). СОМ налагает требование включать информацию о компонентах в системный реестр Windows, что значительно усложняет инсталляцию компонентов и затрудняет их удаление.

Изначально СОМ разрабатывалась для использования с C/C++; она была расширена таким образом, чтобы Visual Basic мог использовать ее (“Automation”, автоматизация), и все это на самом деле работало замечательно, хотя в результате программистам, работающим на C/C + + , стало даже труднее добиваться совместимости компонентов с Visual Basic (так, например, по-прежнему отсутствовала возможность осуществлять наследование от класса, описанного на другом языке программирования).

Ко всему прочему, по мере того как пользователи начали инсталлировать различные версии DLL и COM-компонентов, созданные компанией Microsoft и другими производителями, стали возникать проблемы, поскольку разные программы использовали разные версии одной и той же DLL общего доступа. Оказалось, что одной программе не составляет никакого труда инсталлировать другую версию той DLL, которая уже используется какой-либо иной программой, что приводило к нарушению работы этой программы (это явление получило название "ад DLL”). Необходимость отслеживать всю информацию о различных DLL, инсталлированных на одной системе, существенно затрудняло процесс обновления н сопровождения компонентов.

В модели программирования .NET определяется новый стандарт, призванный решить эти проблемы.

Самоописание

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

Глава 21

обращаться к реестру или куда-либо еще за информацией относительно содержащихся в модуле объектов,

Самоопнсание в модулях .NET выходит далеко за рамки простого описания имен объектов и методов, а также типов данных, использующихся в качестве параметров; в модулях кроме того содержится информация о том, какова версия данного объекта (представьте себе Shapes 1.0, за которым следует Shapes 1.1 или Shapes 2.0), и обеспечивается безопасное использование содержащихся в них объектов. Вся эта информация содержится непосредственно внутри самого модуля, поэтому нет никакой необходимости осуществлять поиск этой информации где-либо еще, В результате этого инсталляция .NET-компонентов становится намного более простой и понятной процедурой по сравнению со всеми предшествующими технологиями Windows, Она может быть сведена к простому копированию модулей на диск в системе, для которой они предназначены.

Модули .NET и библиотека классов .NET Framework

Каждой программой в .NET, включая программы на С#, широко используется библиотека классов .NET Framework. Эти классы используются каждый раз, когда вызывается какой-либо метод нз пространства имен System с помощью директивы using System—все Пространства нмен System (System,Data, System.Drawing и т. д.) входят в состав библиотеки классов .NET Framework.

Каждый класс, входящий в состав этой библиотеки, представляет собой часть самоопнсывающегося модуля. Классы, предназначенные, например, для рисования, содержатся в модуле syatem.Drawing.dll. Если, работая в Visual Studio.NET, вы включите ссылку на этот модуль, то компилятор включит эту ссылку в модуль, который он будет строить для вашей программы. Система выполнения программ — CLR — считывает метаданные нз модуля вашей программы, для того чтобы извлечь информацию относительно тех модулей, которые ей требуются, а затем осуществляет поиск и загрузку этих модулей для использования их вашей программой. Модули, на которые ссылается ваша программа, могут, в свою очередь, ссылаться на другие модули, поэтому даже самая простая программа, в которой используется единственная директива using, может ссылаться на несколько различных модулей. Самоопнсание каждого модуля отслеживает все ути ссылки, поэтому от вас не требуется даже знать о них.

Здесь необходимо внести определенную ясность, с тем чтобы избежать путаницы в дальнейшем. Пространства имен и модули не всегда в точности соответствуют друг другу. Так, например, в модуле system.Data, dii реализованы некоторые программы, одновременно принадлежащие пространствам имен System.Data и System,xml, хотя другие программы из пространства имен System.xml реализованы в модуле System.xml .dll.

Внутри программы с помощью директивы using вы ссылаетесь на пространство имен; ссылки в проекте Visual Studio.NET определяют конкретные используемые модули.

Одновременное использование разных языков программирования

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

591

включенного в .NET, независимо от того, на каком языке этот компонент был изначально написан.
Предыдущая << 1 .. 269 270 271 272 273 274 < 275 > 276 277 278 279 280 281 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

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

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

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

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