Читаем Сущность технологии СОМ. Библиотека программиста полностью

Чтобы помочь разработчику сфокусироваться на этих базовых принципах, я постарался включить в книгу столько кода, сколько это возможно без того, чтобы откровенно снабжать читателей замысловатыми реализациями для простого копирования их в свой исходный код. А чтобы обеспечить в контексте представительство программной методики СОМ, в приложения В содержится одно законченное СОМ-приложение, которое служит примером применения многих концепций, обсуждаемых на протяжении всей этой книги. Кроме того, загружаемый код для этой книги содержит библиотеку кода СОМ-утилит, которые я счел полезными в моих собственных разработках. Некоторые части этой библиотеки детально обсуждаются в книге, но библиотека в целом включена для демонстрации того, как на деле создавать реализации C++. Заметим также, что большая часть кода, появляющегося в каждой главе, использует макрос assert (объявить) из С-библиотеки этапа выполнения (runtime) с целью подчеркнуть тот факт, что могут встретиться определенные условия «до» и «после». В готовом коде многие из этих операторов assert следует заменить каким-либо кодом, более терпимо обрабатывающим ошибки.

Одним из недостатков издаваемых книг является то, что они часто устаревают уже к моменту их появления на книжных прилавках. И эта книга не исключение. В частности, предстоящий выход в свет СОМ+ и Windows NT 5.0 несомненно сделают некоторые аспекты этой книги неверными или по крайней мере неполными. Я старался предугадать, какую эволюцию придется претерпеть модели СОМ из-за выхода Windows NT 5.0, однако в момент написания этого текста Windows NT 5.0 еще не прошла внешнее тестирование, и вся информация подлежит изменениям. СОМ+ сулит усовершенствовать модель еще дальше; но было, однако, невозможно включить охват СОМ+ и в то же время выпустить мой манускрипт в этом году. Я настоятельно рекомендую вам изучать как Windows NT 5.0, так и СОМ+, когда они станут доступны.

Я должен был принять еще одно мучительное решение – как обращаться к различным коммерческим библиотекам, привыкшим реализовывать компоненты СОМ на C++. Заметив в различных группах новостей Интернета одни и те же проблемы, я предпочел игнорировать ATL (и MSC) и вместо этого сосредоточиться на повседневных темах СОМ, с которыми должен справляться каждый разработчик независимо от того, какой библиотекой он пользуется. Все больше и больше разработчиков создают спагетти ATL и удивляются, почему ничего не работает. Я твердо уверен, что невозможно выучить СОМ, программируя в ATL или MSC. Это не значит, что ATL и MSC не являются полезными инструментами для разработки компонентов СОМ. Это просто означает, что они не годятся для демонстрации или изучения принципов и технологий программирования в СОМ. Поэтому ATL не подходит для книги, сосредоточенной на модели программирования СОМ. К счастью, большинство разработчиков находят, что если есть понимание СОМ, то одолеть основы ATL не составит особого труда.

Наконец, цитаты, которыми начинается каждая глава, – это мой шанс написать для малого раздела книги то, что мне хочется. А чтобы сохранить насколько возможно непрерывность моего изложения, я ограничил свои необузданные и отклоняющиеся от темы сюжеты не более чем 15 строками кода C++ на главу. Обыкновенно этот код/цитата отражает доСОМовский подход к проблеме или концепции, представленной в данной главе. Предлагаю читателю в качестве упражнения попытаться на основе этих намеков реконструировать мое душевное состояние при написании каждой конкретной главы.

<p>Благодарности</p>

Написать книгу невероятно трудно – по крайней мере, для меня. Но я определенно знаю, что два человека страдали больше, чем я, – это моя терпеливая жена Барбара и мой снисходительный сын Макс (который, несмотря на свою юность, предпочитает СОМ другим объектным моделям). Мои благодарности им обоим: за то, что терпели мое отсутствие и почти постоянное капризное поведение, пока я пытался писать. К счастью, моя только что появившаяся дочь Эван родилась тогда, когда основная часть этой книги была уже написана, и ее отец стал в достаточной степени и домашним, и приятным. Такие же благодарности – всем сотрудникам DevelopMentor, которые были вынуждены подменять меня, когда я исчезал, чтобы выжать из себя очередную главу.

Большая часть моих ранних размышлений о рассредоточенных системах возникла, когда я в начале 90-х работал на Татсуя Суда (Tatsuya Suda) в университетском колледже в Ирвине. Татсуя учил меня и читать, и писать, и как вести себя с несдержанными пассажирами в токийских поездах. Спасибо и простите.

Благодарю и моего бывшего напарника по офису Дуга Шмидта (Doug Schmidt) – за то, что он представил меня Стэну Липпману (Stan Lippman) из C++ Report. Несмотря на поразительное неприятие Стэном моей первой статьи, мое имя впервые вышло в свет благодаря вам обоим.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных