Перевод краткой обзорной статьи о всех нововведениях в C++Builder 2007. Описаны новые технологи, изменения среды, компилятор, отладчика, изменения в технологии баз данных, и других классах и компонентах.
RAD Studio 2007 предоставляет новые возможности для разработки приложений написанных на C++.
C++Builder 2007
Следующие средства были введены впервые или значительно изменены.
MSBuild стала новым движком для компиляции проектов: Теперь при компиляции проекта на С++ MSBuild выполняет весь процесс компиляции (билда). Для этих целей была изменена структура файла проекта, он теперь является XML файлом и содержит все необходимые для MSBuild настройки. Расширение файла проекта изменено на .cbproj. Это позволяет производить компиляцию из командной строки используя синтаксис командной строки MSBuild.
Изменен порядок билда: MSBuild производит компиляцию файлов в соответствии с типом файла (расширением), вместо старого порядка, который определялся временем последнего изменения файла. Порядок таков Delphi .pas, C/C++ .c .cpp, Ассемблер .asm, затем ресурсы .rc. Внутри каждой папки или виртуальной папки, файлы компилируются в порядке соответствующем их типу.
Опции компиляции теперь более широкие: Новые опции можно устанавливать на вкладках раздела Project->Options. Опции хранят наборы настроек командной строки для билда, такие как настройки компилятора, компоновщика и MSBuild. Теперь стало возможным создание раздельных настроек для 3х режимов (основная, отладочная, и релизовая).
Новая система конфигурирования устанавливает текущий режим компиляции: Для изменения текущего режима билда достаточно перейти Project->Configuration Manager и выбрать конфигурацию, которую вы намереваетесь использовать для текущего проекта или группы проектов. Configuration Manager заменил старый метод установки конфигураций проектов C++ новым, позволяющим просто устанавливать режим работы.
Диалог Project Options был реорганизован Добавлены новые закладки в раздел Project->Options, и некоторые из существующих были переименованы для лучшей организации настроек. Добавлены такие опции как -Vb. Эта опция поддерживаемая конструкторами С++, но больше не входит в стандарт С++. Project Properties теперь позволяет указывать как компилятор С++ должен управлять путями к библиотекам для проверки зависимостей пакетов, показа зависимостей заголовочных файлов или системы автопроверки зависимостей.
Возможность объединения настроек проекта: Некоторые настройки проекта имеют галочку "Merge". Когда она установлена, то состояние текущей настройки переноситься также и в предыдущую конфигурацию. Опция не меняет состояние текущей конфигурации.
Новые проименованные настройки: Вы можете создавать и сохранять и применять проименованный набор настроек во вкладке build-related раздела Project->Options. Проименованные настройки сохраняются в файлы с расширением .optset.
Настройки событий компиляции: Вы можете установить команды, которые будут исполняться в различных точках во время процесса компиляции (Новые события производимые до компоновки(pre-link); Возможность создания событий до и после компиляции была введена ранее). Нужно сделать клик правый кнопкой мыши по файлу (из числа компилируемых) в Project Manager выбрать Build Events.
Стало возможным в проект добавление файлов .targets: Файл типа .targets представляет собой XML файл, который содержит скрипты MSBuild, подобные списку задач, которые нужно выполнить.
Изменилось расположение папки для демо кода: Она сейчас расположена MyDocuments\RAD Studio\Demos. Папка была перенесена в связи ограничениями Microsoft Vista.
Теперь вы можете откомпилировать пакеты С++ содержащие дельфийские модули: C++ Builder поддерживает компиляцию пакетов типа design-time packages содержащих исходные коды написанные на Delphi. Тем не менее, если дельфийские модули ссылаются на модули предназначенные для работы с IDE, такие как DesignIntf, DesignEditors, и ToolsAPI расположенные в DesignIDE100.bpl, вам необходимо принять меры для разрешения этих зависимостей в пакете.
Поддержка системы юнит тестирования интегрирована в DUnit Testing Framework. DUnit framework основан на JUnit test framework, и включает в себя большую часть его возможностей.
Данная система позволяет быстро генерировать скелетный тестовый проект, который вызовет инициализирующие и финализирующие методы и создаст основные тесты. Допускается изменение шаблонов, путем добавления специфических тестов на логику позволяющих тестировать ваши специфические (дополнительные) методы.
Запуск теста производиться как при помощи консольного Test Runner так и системы DUnit GUI Test Runner. Консольный Test Runner выводит результаты вывода прямо в консоль, а DUnit GUI Test Runner отображает результаты теста в интерактивном режиме в GUI окно, выделяя текст результата разными цветами, благодаря чему можно сразу увидеть какие тесты пройдены успешно, а какие нет.
Веб сервисы C++Builder теперь поддерживают расширения
Веб сервисы C++Builder теперь включают следующее:
Неограниченные элементы
Опциональные элементы
nullable элементы
WSDL and схемы которые импортируют внешние схемы
Эти улучшения позволяют веб службам C++Builder быть совместимыми современными службами, позволяя аналогично Delphi, взаимодействовать с более надежными веб службами, такими как eBay, Amazon, MapPoint, и т.д.
IDE
Следующие ключевые изменения были внесены в среду разработки (IDE):
Поддержка тем Vista и XP: IDE теперь поддерживает темы Windows Vista и XP. Темы теперь включаются по умолчанию, но оставлена возможность их отключения, как для конкретного проекта так и для всей среды.
Дубликаты имен файлов: Теперь стало возможным добавление в проект нескольких модулей с одинаковыми именами, например если включите в проект файлы Common\source1.cpp и Product\source1.cpp. IDE управляет генерацией имен обоих объектных файлов так чтобы не произошло конфликта, и было возможным использование объектов из обоих файлов.
Расширенные возможности менеджера памяти: Новый менеджер памяти, выпущенный с Borland Developer Studio 2006, теперь полностью задокументирован в релизе RAD Studio 2007 (C++Builder 2007). Справка включает: конфигурирование менеджера памяти, мониторинг менеджера памяти, а также использование ShareMem и SimpleShareMem для объединения менеджера памяти (Dll и программы). Описание новых функций и переменных см. ниже.
Возможность множественного выделения в Project Manager: Удерживая клавишу CTRL можно выбрать несколько файлов в диалогах Open, Save, Save As, и Remove from Project и вызывать команды контекстного меню Project Manager.
Новый файловый браузер: Для вызова File Browser и выполнения всех базовых команд или просмотра SVN статуса файла выбираем ViewFile Browser.
Новый тулбар и окно просмотра структуры: Новый тулбар доступен только в С++ и позволяет сортировать элементы в алфавитном порядке, группировать по типу, видимости, показывать тип и видимость элементов.
Виртуальные папки в Project Manager: Виртуальные папки позволяют создавать связи внутри древовидной структуры, которые в свою очередь меняют порядок компиляции файлов.
Debugger
Следующие возможности были введены или значительно изменены:
Ограничение возможности прокрутки в логе событий: Новую опцию можно установить ToolsOptionsDebugger OptionsEvent Log. Она предотвращает авто прокрутку при появлении очередного события в логе.
Окно CPU: Окно было разделено на ряд панелей, которыми теперь можно управлять по отдельности. Введены следующие панели CPU, Disassembly, CPU Stack, и Registers. Как и все панели их можно переносить и скрывать по необходимости (так как сделано в Visual C++ :) ). Панель CPU автоматически скрывается по окончанию сессии отладки. Панель Disassembly содержит теперь две новые опции Show Opcodes и Show Addresses (Показ кодов команд и адресов).
Окно Call Stack: Теперь можно ставить брейкпоинты на любой строчке (в окне Call Stack).
Игнорирование всех точек останова кроме пользовательских: Эта функция позволяет игнорировать брекпоинты не установленные из IDE.
Путь к отладчику: Теперь это глобальная настройка которую можно установить на странице ProjectOptionsDebugger.
Новая кнопка на тулбаре: Команда Notify on Language Exceptions теперь доступна на странице ViewToolbarsCustomizeCommands Categories Run . Для удобства на нее можно кликнуть и перенести на одну из панелей тулбара.
Прозрачные tooltips: Для вклчения прозрачности tooltip, досточно удерживать клавишу CTRL во время показа tooltip. Прозрачность позволит читать текст, который закрывает tooltip при появлении.
Together Modeling
Впервые в С++ введена система Together modeling:
Поддержка быстрого моделирования для Together: В C++ Builder 2007 функция Together modeling, теперь полностью интегрирована в IDE и позволяет визуализацию кода, генерацию документации, построение диаграм.
C++ диаграммы класов Diagrams (Code Visualization): Диаграммы классов не доступны для редактирования. Можно создавать свои диаграммы, но создание диаграмм классов и интерфейсов в Model View недоступно.
Design Diagrams: Полный набор для построения design diagrams доступен только в версии Enterprise edition. Набор включает диаграммы-ряды, collaboration diagrams, диаграмму состояний, deployment diagrams, case diagrams, activity diagrams, и component diagrams.
Печать диаграмм и создание документации: Печать диаграмм доступна как Professional так и Enterprise версиях. Enterprise версия также поддерживает генерацию документации.
Замечание:
В настоящее время все описанные возможности системы Together поддерживаются только в специальном релизу. Набор инструментов текущего релиза ограничен.
Database
Для улучшения поддержки СУБД в C++Builder 2007 введено много изменений.
dbExpress
Поддержка юникода была добавлена в драйвера Oracle, Interbase, и MySQL dbExpress drivers.
Новые клиентские драйвера были добавлены в Interbase 2007 и MySQL 4.1 и 5.
Появился новый dbExpress framework. Данный framework может быть использован как интерфейс для существующих драйверов, так и для написания новых драйверов расширяя абстрактные классы dbExpress framework. Framework можно использовать напрямую как для native так и managed
Делегированный драйвер - это драйвер между приложением и текущим драйвером. Делегированные драйвера позволяют производить действия как перед, так и после выполнения методов т свойств dbExpress 4 framework. Делегированные драйвера полезны также для создания пула соединений, driver profiling, трейсига, и auditing.
API dbExpress VCL компонентов был значительно изменен. Однако эти изменения не повлияют на работу большинства приложений. Тем не менее некоторые из методов, свойств, событий, констант и перечислений били удалены и заменены другими с эквивалентной функциональностью.
Возможно также использование компонентов dbExpress VCL верхнего уровня framework-а как для native так и managed приложений. Есть небольшие изменения в компонентах TSQLConnection (изменены методы), TSQLDataSet (новое свойство), и структурах данных (изменены или заменены на другие).
The dbExpress driver framework:
Используются строго типизированный доступ к данным вместо использования указателей. Например, framework использует строковый тип вместо указателя на строку.
Для драйверов, соединений, команд, ридеров и т.д. используются только абстрактные базовые классы.
Метод обработки ошибок основан на механизме генерации исключений, вместо возврата кода ошибок.
VCL и RTL
AJAX: C++Builder 2007 поддерживает основанную на AJAX RAD VCL систему веб разработки
Совместимость с Microsoft Vista: C++Builder 2007 содержит компоненты, классы, методы и свойства совместимые Вистой и выглядят так как это принято в Висте.
Новые VCL компоненты: Следующие классы были добавленны в VCL:
TFileOpenDialog
TFileSaveDialog
TTaskDialog
TCustomFileDialog
TCustomFileOpenDialog
TCustomFileSaveDialog
TCustomTaskDialog
TFavoriteLinkItem
TFavoriteLinkItems
TFavoriteLinkItemsEnumerator
TFileTypeItem
TFileTypeItems
TTaskDialogBaseButtonItem
TTaskDialogButtonItem
TTaskDialogButtons
TTaskDialogButtonsEnumerator
TTaskDialogProgressBar
TTaskDialogRadioButtonItem
Следующие новые функции и переменные были добавленны в новом менеджере памяти: