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

С# - Ватсон К.

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


Слово “компонент" может быть определено различными способами. В самом общем смысле этот термин описывает произвольную подпрограмму, представленную в двоичном виде; при таком использовании этого термина любая DLL по определению является компонентом, поскольку она представляет собой подпрограмму, содержащую выполняемый код.

Более строгое определение налагает требование, гласящее, что компонент должен обладать средствами, которые позволяют ему объявлять о собственном содержимом другим программам, В рамках .NET все модули обладают такими средствами объявления.
588

Глава 21

Наиболее строгое определение компонента требует, чтобы компонент обладал определенными интерфейсами, позволяющими освобождать не используемые более системные ресурсы, и поддерживал интеграцию с инструментами, использующимися для разработки. В рамках .NET Framework компонент в таком строгом смысле этого слова должен обладать интерфейсом Syatem.componencModei. icomponent, который обеспечивает реализацию указанных возможностей.

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

Преимущества компонентов

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

Представьте себе класс shapes (фигуры), в котором находятся различные объекты, представляющие окружности, треугольники и другие геометрические фигуры. В нем могут содержаться методы, предназначенные для 'подсчета площади фигур или для выполнения каких-либо других операций над фигурами. Класс shapes может использоваться программами из самых разных областей: рисования/создания графических объектов, разработки технических, архитектурных и строительных чертежей, проектирования с использованием компьютера, а также игровыми н другими программами.

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

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

Более того, возможно какой-то другой программист или компания уже создали некоторый компонент класса shapes, который выполняет необходимые вам операции; в этом случае вы сможете воспользоваться этим компонентом (переписав и/или купив его), и вам не придется создавать его самому. Раз существует возможность обеспечения общего доступа к компонентам, представленным в двоичном виде, то не придется беспокоиться о том, какой язык программирования был использован прн создании данного компонента. .NET Framework и ее модули позволяют пользоваться всеми этими преимуществами.

Краткая история компонентов

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

В Microsoft Windows было введено понятие DLL, что позволило одной или нескольким программам использовать блок кода, хранящийся в виде отдельного файла.
Модули .NET

589

Все это работало на довольно примитипном уровне — только в том случае, если все программы были написаны на одном и том же языке программирования (обычно на С). Прн этом программы должны были обладать большим количеством предварительной информации об используемой DLL, а сами DLL не позволяли программам обмениваться своей информацией.

Для обмена данными между программами была разработана система DDE (Dynamic Data Exchange—динамический обмен данными). В ней определялся формат и механизм передачи данных от одной программы другой, но этой системе не хватало гибкости. Вслед за ней появилась система OLE 1.0 (Object Linking and Embedding — загрузка и встраивание объектов), которая обеспечивала реальную возможность документу нз одной программы (например, Excel) входить в состав другого документа (например, документа Word). Это уже в некотором смысле напоминало компоненты, хотя на самом деле OLE 1.0 не представляла собой настоящий многофункциональный стандарт компонента.

В середине 90-х компания Microsoft описала свой первый стандарт компонента в стандарте COM (Component Object Model — объектная модель компонента), реализованного в среде Windows. OLE версии 2 и множество появившихся впоследствии технологий были построены на основе СОМ. В DCOM (Distributed СОМ — распределенная СОМ) была введена возможность, позволяющая СОМ-компонентак взаимодействовать в сети, а в СОМ+ добавились службы, которые могли вызываться компонентами для обеспечения высокого быстродействия в среде многозвенных приложении.
Предыдущая << 1 .. 268 269 270 271 272 273 < 274 > 275 276 277 278 279 280 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

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

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

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

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