Добавлен: 23.04.2023
Просмотров: 251
Скачиваний: 2
4-2. Компоненты .NET. Приложения .NET состоят из компонент. Все .NET-объекты имеют такие важные атрибуты как свойства, методы и события, которые определяют концепцию объектно-ориентированного программирования. Если речь идет о программировании на Visual Basic, то важным вопросом остается реализация программного интерфейса, который будут использовать другие программисты в своих приложениях. Большую часть времени разработки будут занимать проектирование объектов и написание соответствующего программного кода.
Обычно реализация простого объектно-ориентированного приложения .NET заключается в создании класса, добавлении необходимых полей, методов и свойств и использовании этого класса в различных модулях приложения. Компонентное программирование максимально выделяет такую концепцию. Несмотря на то, что компонентный подход подразумевает также написание классов, компоненты, используемые в различных приложениях, идут перед ними.
Компонент - особый тип исполняемого .NET модуля. На такой компонент обычно имеются ссылки из других приложений, которые его используют. Во многих интернетсервисах компоненты применяются для работы с данными, графикой, текстом. В локальных приложениях компоненты играют ту же роль, что и в Интернете, но в более сокращенном варианте.
Компоненты предоставляют программный интерфейс, используемый приложениями. Он обладает набором методов, свойств, классов. Другими словами, компонент компилируется из набора классов, по средствам которых предоставляются необходимые методы и свойства.
Компонента является библиотекой с расширением dll. Во время исполнения такая библиотека подгружается к исполняемому модулю. Обычно компоненты компилируются и тестируются как отдельные проекты, а не в составе использующих их модулей. После компиляции компонент может быть добавлен во многие проекты [5].
4-3. JavaBeans. Еще одним инструментом разработки компонентных модулей служит технология JavaBeans - классы в языке Java, написанные по конкретным правилам. Они применяются для объединения нескольких объектов в один (bean) для удобной передачи данных.
Спецификация Sun Microsystems определяет JavaBeans как «универсальные программные компоненты, которые могут управляться с помощью графического интерфейса» («reusable software components that can be manipulated visually in a builder tool»).
JavaBeans обеспечивает основу для многократно используемых, встраиваемых и модульных компонентов программного обеспечения. Компоненты JavaBeans могут принимать различные формы, но наиболее широко они применяются в элементах графического пользовательского интерфейса. Одна из целей создания JavaBeans - взаимодействие с похожими компонентными структурами. Например, Windows-программа при наличии соответствующего моста или объекта-обёртки может использовать компонент JavaBeans так, будто бы он является компонентом COM или ActiveX [7].
4-4- Достоинства и недостатки COM. COM очень прост для простых небольших приложений и чрезвычайно сложен как инструмент создания комплексных систем. Он содержит большое количество «узких» мест - недостаточно гибкую стандартную схему маршалинга, отсутствие состояния объектов, низкую устойчивость к сбоям. Технология не является объектно-ориентированной в классическом смысле этого слова, что в общем случае не способствует простоте ее применения. Достоинствами технологии являются комплексность и универсальность подходов в рамках COM- модели.
4-5. Использование COM на практике. Во время разработки приложения Capturelt 1.0 [6] были использованы компоненты COM, которые содержали в себе реализацию работы с потоковым видео. Все эти компоненты представляют собой библиотеку Direct Show компании Microsoft.
DirectShow - это API, позволяющий Windows-приложениям управлять широким спектром устройств аудио/видео ввода, включающий (но не ограниченный) DV камеры, веб-камеры, DVD-устройства, карты TV-тюнеров. Оно поддерживает также различные форматы, от WAV и AVI до Windows Media. DirectShow, кроме этого, расширяемо, оно дает возможность поддерживать устройства третьих производителей, форматы и компоненты обработки [9].
Аудио- и видеопотоки могут быть обработаны самыми разными способами. Они могут быть скомбинированы, проанализированы, перемешаны, скопированы, сгенерированы, изменены и т. д. В DirectShow все эти операции скрыты в фильтрах - COM- объектах, имеющих стандартное поведение. Фильтры, читающие файлы, расщепляющие бинарные данные на разные (например, аудио и видео) потоки-демультиплексоры, фильтры-компрессоры и фильтры-декомпрессоры, фильтры, отображающие аудио- или видеоданные, фильтры-драйверы устройств - все это фильтры, которые знают, как они должны взаимодействовать, кроме обработки данных, с другими фильтрами для передачи потоковых данных. Приложения соединяют такие фильтры в необходимом порядке [9]. Библиотека реализована на языке C++.
Приложение Capturelt 1.0 реализовывалось также на С+—+. Существенным неудобством для создания приложения является очень жесткая связь между клиентом и компонентом (объект не может быть удален, пока клиент явно не укажет, что объект больше не нужен). Это является основным неудобством работы с COM.
Приложение Capturelt 2.0 [6] полностью переписано под платформу .NET, но работа с COM-компонентами, тем не менее, остается. При программировании в .NET проблем с технологией COM возникает не много. Для использования компонент нужно всего лишь объявить интерфейс компоненты и используемые его функции. Возникают дополнительные проблемы при проталкивании .NET-объектов в вызываемые из интерфейса функции. Также следует не забывать об освобождении интерфейса после его использования.