Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
Поиск по сайту


 

   Программирование -> C/C++ -> Самая мощная версия C++ за всю историю языка

Введение
Весь тот ажиотаж, который окружает язык программирования Java, может создать впечатление, что C++ пора включать в список рискованных инструментов. Однако, что бы ни ожидало его в будущем, пока этот язык программирования остается лучшим средством доступа к самым передовым функциям современных платформ Microsoft Windows, включая Windows 98 и Internet Explorer 4.0, и достижения максимальной производительности. Новая версия Microsoft Visual C++ 6.0 Enterprise Edition (1299 $) наглядно иллюстрирует, почему C++, по всей вероятности, будет продолжать играть важную роль в разработке корпоративных приложений на основе Интернета и баз данных. Этот пакет предлагает целый ряд новых функций, и мы настоятельно рекомендуем его пользователям Visual C++ 5.0. Кроме того, в нем имеются беспрецедентные средства упрощения работы для тех, кто только осваивает C++ и Microsoft Foundation Classes (MFC), а также значительные усовершенствования, направленные на корпоративное применение.

Улучшенные мастера
Сильными сторонами Visual C++ традиционно считались <мастера> и библиотека MFC. В новой версии стало значительно проще использовать всю мощь MFC. Многие программисты начинают работу над проектами C++ при помощи инструмента AppWizard. Он позволяет создать <скелет> приложения, который по мере дальнейшей работы над проектом <обрастает мясом>. В новой версии диапазон таких базовых проектов значительно расширился. Например, можно строить прикладные программы с применением <контейнеров активных документов> (Active Document Containers), исключающих архитектуру, основанную на представлениях документов. Кроме того, в приложениях могут присутствовать другие компоненты активных документов (например, из приложений Microsoft Office 97). Их параметрами управляет новый класс MFC - COleClientItem.

При помощи нового AppWizard ничего не стоит написать приложение под браузер, способное использовать функциональные возможности Internet Explorer 4 для отображения веб-контента. В файлах ресурсов проекта теперь можно хранить Dynamic HTML и другие ресурсы Windows, такие, как растровые карты, значки и курсоры, так что в создаваемые программы можно закладывать свой собственный гипертекстовый механизм. (Новый класс MFC CHtmlView позволяет создавать браузероподобные приложения, инкапсулируя функции Internet Explorer.) Посредством AppWizard в любом создаваемом приложении можно автоматически задействовать панели инструментов ReBars, изменяющиеся в размерах и <прилипающие> к краям экрана.

Упрощенние работы
Несмотря на великолепную исходную позицию для создания приложений, обеспечиваемую мастером AppWizard, начинающим и не очень опытным программистам трудно обращаться с непростым языком C++. Тот, кто работает с Windows, должен научиться не только разбираться в дебрях самого языка, но и хорошо ориентироваться в сотнях методов и функций Windows API и MFC. Visual C++ 6 предлагает неоценимую помощь по преодолению этих трудностей. Заимствованная из Office 97 технология IntelliSense станет, вероятно, самым полезным инструментом каждого программиста на С++. Теперь достаточно набрать имя объекта С++, и мастер IntelliSense выведет список всех методов для этого объекта вместе с перезагружаемыми версиями одной и той же функции и всеми ее параметрами. (IntelliSense перечисляет все методы, декларации, идентификаторы и даже комментарии в контексте проекта.)

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

Технология IntelliSense представляет собой реальный шаг в направлении инструментов автоматизированного программирования, хотя отдельные формы динамического отображения параметров уже давно практикуются в продуктах Optima++ компании Sybase и C++Builder компании Inprise. Опытным пользователям этот инструмент не помешает, а тем, кто недостаточно знаком с MFC, окажет неоценимую услугу.

Еще одним препятствием на пути к освоению С++ было отсутствие хорошего браузера классов. Предыдущие версии ClassView далеки от идеала: чтобы откорректировать отображения классов, методов или членов, как правило, приходилось рекомпилировать проект. Теперь браузер ClassView усовершенствован в нескольких направлениях. Во-первых, панель ClassView меняет свой облик по мере набора, благодаря динамическому анализу текста. Во-вторых, теперь ClassView подспудно управляет созданием операторов IDL для работы с объектами Component Object Model (COM). Это гораздо эффективнее при работе с COM на низком уровне, особенно с компонентами библиотеки Active Template Library (ATL) (которые не допускают применения инструмента MFC ClassWizard).

В числе других усовершенствований среды разработки улучшенная система предупреждений об ошибках программирования и усиленные средства макроязыка для попутной записи и воспроизведения часто используемых последовательностей команд.

Несколько новых ключевых слов С++ помогут опытным разработчикам создавать более быстродействующие программы. Ключевое слово _forceinline заставляет компилятор последовательно кодировать заданную функцию, а ключевое слово _assume определяет неизменные выражения, что помогает компилятору оптимизировать код. Сам компилятор теперь поддерживает перезагрузку новых операторов с удалением соответствующих старых. (Новый оператор может перезагружаться, как и в прежних версиях, но теперь в случае ошибок размещения вызывается правильная версия удаленного оператора.) Эти дополнения компилятора высокого уровня сочетаются со следованием стандарту ANSI/ISO C++, включая поддержку всех классов библиотеки Standard Library C++.

Результаты тестирования
Все это хорошо, но как насчет главного - производительности компилятора? Собственное быстродействие и качество работы компилятора Visual C++ 6.0 улучшились. Мы испытывали продукт с использованием подмножества тестов PC Magazine Labs для компиляторов, сравнивая новый Visual C++ 6 с версией 5. Visual C++ 6 продемонстрировал умеренное повышение производительности (примерно на 2,2%) по сравнению с Visual C++ 5 на нескольких синтетических тестах с интенсивными вычислениями. (Важно отметить, что Visual C++ обеспечивает новые виды оптимизации и для процессоров Pentium Pro).

Мы оценивали и процесс компоновки, который в новой версии оптимизирован, но ускорения не заметили. Однако в отдельных случаях, когда в исходный код вносится единственное изменение, после чего приложение воссоздается заново, это время сокращалось почти на 28% (что хорошо согласуется с утверждением Microsoft о 30%-м ускорении компоновки). Объясняется это главным образом оптимизацией прекомпилированных файлов заголовков. Другое преимущество новой версии - более компактные исполняемые файлы: EXE-файл программы, написанной в Visual C++ 5 и рекомпилированной в Visual C++ 6, оказывается на 17% меньше.

Усовершенствования процесса отладки
Visual C++ 6 содержит несколько реальных усовершенствований процесса отладки, наиболее заметное среди которых - функция Edit and Continue. Теперь вместо традиционного цикла редактирования - компиляции - линковки - отладки программист С++, подобно разработчику на Visual Basic, может исправлять действующие исполняемые модули прямо в процессе отладки. Мы нашли это усовершенствование чрезвычайно полезным - оно значительно ускоряет процесс разработки приложений на С++. Но мы обнаружили, что при более или менее крупных изменениях в коде функция Edit and Continue не работает. В таких случаях программу приходится останавливать, заново компоновать и запускать снова. В целом же данная технология - крупный шаг вперед.

Участникам сложных проектов помогут и несколько других функций, облегчающих тестирование и отладку. Прежде всего, новый продукт поддерживает несколько мониторов, так что компоновку можно осуществлять на одном экране, а отладку - на другом. Это существенно облегчает выявление и преодоление проблем при конструировании интерфейса. Кроме того, Visual C++ 6 проявляет больше интеллекта при загрузке модулей DLL; теперь в окне модуля видно, какие DLL загружаются в процессе отладки. (Например, таким образом можно определить, какой DLL вызывает сбой программы.) Теперь можно помечать и откладывать загрузку DLL до тех пор, пока они не потребуются в исполняемом коде - это еще одно преимущество, облегчающее отладку крупных приложений. (Windows-приложения всегда загружали при запуске все свои DLL, если в их программе не были предусмотрены средства управления загрузкой и разрешения конфликтов.)

Отладка на низком уровне в Visual C++ 6.0 также ускорена - за счет введения доступа к регистрам ММХ процессоров Pentium MMX. Шестнадцатиричные числа в формате MASM (например, <4321h>) теперь можно применять во всех выражениях отладчика, что означает заметное упрощение модификации содержимого регистров посредством команд ассемблера. Отладчик ведет себя разумнее и при отображении указателей (а также v-указателей внутри классов). Вместо трудных для восприятия шестнадцатиричных адресов он старается использовать имена методов. Одна из трудностей программирования с MFC заключается в неудобстве доступа к кодам ошибок, получаемых через вызовы GetLastError(). Visual C++ 6.0 значительно облегчает эту процедуру, отображая содержимое сообщений GetLastError() в псевдорегистре с именем ERR, так что разработчик всегда может увидеть последнюю ошибку в данном потоке своего приложения. Еще одна новая особенность MFC - функция AfxCheckError(), позволяющая программно контролировать результаты операций ActiveX/OLE.

Программистам стало легче видеть и содержимое вариантов типов данных. В зависимости от типа данных в варианте (например, строка (BSTR) или типы числовых данных), его содержание отображается и помечается надлежащим образом без необходимости копаться в нем, как это было в прежних версиях. И еще одно облегчение для программистов ActiveX: теперь можно читать идентификаторы GUID и соответствующие им типы по именам, присвоенным системным реестром (если таковые имеются). Подобные функции безусловно помогут шире распространить программирование ActiveX/OLE.

Усовершенствования интерфейса
Одно из традиционных преимуществ Microsoft C++ для программирования Windows-приложений заключается в том, что этот язык предоставляет доступ к самым последним и лучшим элементам управления интерфейсом пользователя. Версия 6.0 продолжает эту традицию. Ее новые классы MFC содержат новые компоненты из Windows 98 и Internet Explorer 4.0. Такие классы, как CDateTimeCtrl (новый элемент управления выбором даты/времени), CMonthCalCtrl (новый элемент управления календарем) и CPropertySheetEx (таблицы свойств в стиле Windows 98), гарантируют доступ к самым последним усовершенствованиям пользовательского интерфейса. Кроме того, новые классы MFC включают поддержку программирования для Интернета. Так, класс CHttpServer теперь поддерживает запись данных на сервер, а класс CInternetSession обладает улучшенной поддержкой программирования с использованием cookies. Около двух дюжин классов MFC модернизированы, а многие распространенные элементы пользовательского интерфейса, такие, как поля со списком, индикаторы процессов и списки изображений, стали иначе выглядеть.

Новая среда программирования Visual C++ 6 сочетает простоту применения с технологией автоматизации процессов IntelliSense, которая позволяет программировать с помощью MFC, ATL или специальных методов, не набирая весь код самостоятельно.

Поддержка Windows DNA
Как и другие инструменты семейства Visual Studio, Visual C++ 6 предлагает великолепную интеграцию с компонентами серверного ПО Microsoft Back Office, в том числе Microsoft SQL Server 6.5 (он входит в состав комплекта Developer Edition), Microsoft Transaction Server и Microsoft Message Queue Server. Эти и другие серверные технологии входят в архитектуру Windows Distributed interNet Application (DNA). Их объекты представляют собой объекты COM/DCOM, и так как Visual C++ отлично поддерживает программирование с использованием модели СОМ, его можно применять для создания приложений, задействующих самые свежие и совершенные технологии Microsoft. Для крупных организаций мастер кластеринга позволяет создавать код, способный эффективно использовать многопроцессорные аппаратные платформы. Кроме того, в распоряжении разработчиков есть модули Microsoft Management Console (MMC - главное средство управления приложениями Back Office в составе Windows NT 4 Option Pack, которое перейдет во все системы администрирования будущей версии Windows NT). Разработчик может написать спецификацию ММС для кода, который будет функционировать с существующей консолью.

Новая поддержка ATL
Даже те, кто поначалу не планирует применять все эти технологии DNA, могут опереться на компоненты для создания кодов многократного использования. Основой компонентного проектирования в Visual C++ служит технология ActiveX, которая в свою очередь опирается на СОМ. Visual C++ - предпочтительный инструмент создания самых компактных и эффективных компонентов с применением ActiveX Template Library (ATL). Он позволяет создавать компоненты ATL нескольких типов - от стандартных элементов веб-приложений до серверных компонентов ATL и даже составных элементов управления (в которых используются другие компоненты). ATL-программирование никогда не было простым делом, однако версия 6 впервые делает его доступным для большинства программистов на С++.

Сначала AppWizard предлагает широкий выбор элементов управления ATL, которые могут быть файлами DLL, EXE и даже службами Windows NT. Затем к этим компонентам добавляются конкретные объекты ATL, в качестве которых могут выступать элементы управления для веба (полные или облегченные) или элементы Internet Explorer. Наконец, можно добавить средства управления базами данных и даже воспользоваться преимуществами новых приложений Microsoft Back Office, таких, как Microsoft Transaction Server.

Дополненный инструмент ClassView автоматически обеспечивает все возможности управления элементами классов, методами, обработчиками сообщений и точками сопряжения. В предыдущих версиях Visual C++ главной трудностью программирования с применением ATL была недоступность инструмента MFC ClassWizard (так как элементы ATL не опираются на традиционные функции управления MFC). При тестировании новой версии мы обнаружили, что программирование с применением ATL столь эффективно обходит инструмент ClassWizard, используемый для MFC, что старый инструмент нам не понадобился. ATL-программирование требует интенсивной работы с СОМ. Однако инструмент ClassView автоматизирует написание интерфейсов IDL и C++-прототипов для создания ATL-компонентов.

Благодаря новому набору ATL-функций, включая исчерпывающий каталог веб-элементов и технологий Microsoft Back Office, программисты станут все чаще и чаще обращаться к библиотеке ATL. Вместо того, чтобы применять ее исключительно для простейших веб-элементов (для чего несколько лет назад и была создана ATL 1.0), разработчики будут рассматривать ATL как универсальную стратегию компонентов для программирования в Windows.

Мощная поддержка Active Template Library в Visual C++ охватывает разнообразные компоненты ATL, включая быстродействующие веб-элементы и компоненты, использующие такие службы Microsoft Back Office, как Microsoft Transaction Server.

Средства работы с базами данных
Чем бы ни занималась организация, важную часть ежедневных забот ее программистов, несомненно, составляют базы данных. Visual C++ 6.0 предлагает способ доступа к разным типам баз данных и технологий. Последним стандартом Microsoft стал OLE DB, и примеры кодов Visual C++ 6.0 позволяют приступить к написанию проводников OLE DB, приложив гораздо меньше усилий. Новый класс форм в MFC, называемый COleDBRecordView, дает возможность просматривать записи базы данных OLE DB в приложениях MFC.

Вкладка Database Explorer в Visual C++ продолжает оставаться мощнейшей функцией, а с введением поддержки Oracle 8 круг разработчиков, использующих продукт для создания и администрирования баз данных, расширится еще больше. Помимо широкой поддержки отображения и моделирования баз данных SQL Server 6.5, в него добавлены средства визуального составления запросов и написания и отладки хранимых процедур. Неоценимую помощь оказывает поддержка отладки SQL-программ. В процессе тестирования мы не встретили трудностей при написании и пошаговом выполнении операторов SQL в среде Visual C++. Кроме того, программа выполняет синтаксический разбор SQL. Опция построения схемы позволяет документировать конструкцию базы данных, и, что еще важнее, этот документ можно применять для создания и управления соответствующими таблицами и отображениями базы данных, включая, где это возможно, объединения и триггеры.

С появлением поддержки баз данных Oracle среда Visual C++ 6 позволяет программистам баз данных проектировать и манипулировать схемами баз данных, включая дистанционную отладку SQL на сервере.

Средства разработки корпоративных приложений
Кроме коллективной разработки, Visual C++ 6 (и Visual Studio) в редакции Enterprise Edition обеспечивает хранилище объектов, которым могут пользоваться все разработчики организации. Это еще один способ извлечь преимущества из компонентов на базе СОМ и средство многоуровневой разработки компонентов.

Разработчики на Visual C++ привыкли к браузеру объектов ClassView; новая редакция Enterprise Edition содержит Microsoft Visual Modeler, полноценный моделировщик компонентов, основанный на опыте известного поставщика CASE-инструментов компании Rational Rose Software. Как и в случае с другими инструментами моделирования, Modeler позволяет создавать иерархию классов и добавлять операции и атрибуты; затем инструмент генерирует каркасный код С++. Благодаря этой возможности, продукт хорошо вписывается в процесс технологичного программирования: вы создаете и документируете иерархию классов и кодируете их по отдельности. При тестировании мы убедились в возможности импортировать в инструмент все классы MFC. Удобный Class Wizard облегчает добавление новых классов, причем классы можно экспортировать в Microsoft Object Repository и импортировать оттуда.

Еще один мощный инструмент, имеющийся в редакции Enterprise Edition, - Visual Studio Analyzer, который позволяет визуализировать (и регистрировать) все компоненты СОМ, исполняемые на данной машине. Поскольку сложность современных многоуровневых систем непрерывно растет, - в особенности тех, в которых реализованы процессы типа Microsoft Transaction Server и других серверов, в комплексе обеспечивающих надежные транзакции, - их отладка быстро становится чрезвычайно трудоемкой. Analyzer делает процесс отладки реального времени сложных компонентов распределенных систем доступным для простых смертных.

Microsoft Visual C++ 6.0 Enterprise Edition включает интегрированный с классами MFS инструмент Visual Modeling для создания и документирования классов и получения других документов, необходимых в процессе анализа и проектирования.

Выводы
Visual C++ 6, сочетающий передовые и простые в применении средства с мощными дополнениями для корпоративного программирования, неизбежно станет обязательным апгрейдом для пользователей предыдущих версий. Он доводит компиляторы и инструменты С++ до совершенства и делает этот язык доступным для более широкого круга программистов и организаций. Пока существует операционная система Windows, такие инструменты, как Visual C++ 6, будут обеспечивать самый быстродействующий код и самый широкий доступ к ее передовым функциям. Так что в обозримом будущем роль С++ вряд ли уменьшится.

 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.
 
Rambler's Top100