Компонентный подход к разработке приложений

 

Отвлечемся от стилей, подходов, методов разработки приложений (процедурное, структурное программирование, объектно-ориентированное …) и рассмотрим проблемы, возникающие при использовании и сопровождении приложений

 

Обычно приложение состоит из одного монолитного двоичного файла. После того, как приложение сгенерировано компилятором, оно остается неизменным — пока не будет скомпилирована и поставлена пользователю новая версия. Чтобы учесть изменения в операционных системах, аппаратуре и желаниях пользователей, необходимо перекомпилировать приложение.

И по мере того, как вся индустрия программирования стремительно уходит все дальше в будущее, оно стареет — и устаревает. При современных темпах развития индустрии программирования приложениям нельзя оставаться застывшими. Разработчики должны найти способ вдохнуть новую жизнь в программы, которые уже поставлены пользователям. Решение состоит в том, чтобы разбить монолитное приложение на отдельные части, или компоненты (рис. 1-1).

 

 
 

 


Рис. 1-1.Разбиение монолитного приложения (слева) на компоненты (справа) облегчает адаптацию

 

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

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

 

 
 

 


Рис. 1-2.Замена компонента D на новую, улучшенную версию.

Для того, чтобы разбить монолитное приложение на компоненты, необходим мощный инструмент. Инструмент, который мы будем использовать, называется СОМ. СОМ — модель компонентных объектов (Component Object Model) — это спецификация метода создания компонентов и построения из них приложений. СОМ была разработана в Microsoft, чтобы сделать программный продукты фирмы более гибкими, динамичными и настраиваемыми. Практически все продаваемые сегодня приложения Microsoft используют СОМ. Технология ActiveX этой фирмы построена на основе компонентов СОМ. Прежде чем перейти к подробному изучению СОМ, посмотрим, какие выгоды дает компонентная архитектура и что необходимо для создания приложений из компонентов.