С начала октября этого года на сайтах компании Borland появились анонсы новой
версии весьма популярного среди отечественных разработчиков продукта – Borland
Delphi. При этом анонсировался не один продукт, а сразу три. Компания сообщила о
том, какие новшества ожидают разработчиков, использующих данное средство
разработки, в течение ближайших нескольких лет. Но главной новостью стало то,
что до конца года увидит свет юбилейная десятая версия Delphi, рабочее название
которой – Dexter. Здесь я позволил себе некоторую неточность (впрочем, как и
многие авторы http://blogs.borland.com
разработчики описываемого продукта). Дело в том, что Dexter это не просто
очередная версия Delphi, а новая версия Borland Developer Studio – продукта
включающего в себя C# Builder, C++ Builder, Delphi for Microsoft Win32, Delphi
for Microsoft .NET Framework и ряд других инструментов, в основном служащих для
управления жизненным циклом приложений.

Вслед за анонсами стали появляться демо–ролики и отчеты бета тестеров, и я
приготовился к томительному ожиданию. По традиции между анонсом и выходом
продукта в свет проходит несколько больше времени, чем декларируется изначально.
Однако, я был приятно удивлен, когда стал доступен для скачивания пререлиз BDS
2006.

Далее обычная процедура: скачивание, борьба с битыми архивами. И вот,
наконец, можно посмотреть, что же представляет собою юбилейная версия продукта
на деле.

Прежде всего, выясняем минимальные системные требования для работы продукта:

  • Pentium II 450MHz или более производительный процессор (Pentium III 850+
    MHz рекомендуется);
  • 256 MB RAM (512 MB рекомендуется)
  • CD-ROM привод;
  • Монитор VGA монитор с более высокой разрешающей способностью;
  • Мышь или другое координатно-указательное устройство;

Эти характеристики точно такие же, как и для предыдущей версии.
Кроме того, потребуется 1.2 GB дискового пространства (для BDS 2005
требовалось 821 MB).

Для работы также должны быть предварительно установлены следующие продукты:

  • Microsoft Internet Explorer v6.0 SP1
  • Microsoft .NET Framework v1.1
  • Microsoft .NET Framework v1.1 SP1
  • Microsoft .NET Framework SDK v1.1
  • Microsoft XML Core Services (MSXML) v4.0 SP2
  • Microsoft Visual J# .NET v1.1 Redistributable

Инсталлятор при установке проверяет их наличие.

У меня был установлен пакет BDS 2005, и никаких дополнительных продуктов
устанавливать не потребовалось. Для тех, кто не использует BDS 2005, в состав
инсталляции включен файл prereqs.exe. Установка нового продукта происходит
довольно гладко. Несколько диалогов предлагают выбрать что нужно, а что не нужно
ставить из достаточного большого набора продуктов, включенных разработчиками в
BDS. Сразу после окончания установки, стало очевидно, что
теперь пользователь имеет возможность загрузить каждый из продуктов, входящий в
состав Borland Developer Studio отдельно. Это довольно удобно.

По заверениям разработчиков, новая версия BDS должна грузиться быстрее
предыдущей. Именно на низкую скорость загрузки и работы BDS 2005 жаловалось
большинство моих знакомых Delphi разработчиков. Я сразу решил проверить,
насколько живо грузится новая версия BDS. Загрузка всей BDS дала возможность в
полной мере насладиться новым Splash Screen’ом, а заодно и почитать, что же,
собственно, мы грузим.

В таблице приведено время загрузки обеих версий для ПК следующей конфигурации:
Intel Celeron 2,0; GHz m/b i845PE; 512 MB RAM.

BDS 2006 1 м 12 с
BDS 2005 56 с
BDS 2005 с отключенным Toogether    
 
36 с
Delphi 2006 Win32 23 с
Delphi 2006 .NET 21 с
Delphi 7 Architect 53 с

Для BDS 2005 программисты прибегали к различным ухищрениям, например,
отключали загрузку Together – встроенного средства моделирования. Возможно,
приведенное значение времени загрузки Delphi 7 не совсем объективно, так как,
замеряя его, я считал и время загрузки установленных дополнительных пакетов,
которые использую в работе. К слову, в качестве
эксперимента, я пробовал загружать обе версии BDS одновременно. Загрузка прошла
без проблем. Еще одним показателем, на который часто ссылаются разработчики при
оценке среды разработки, является размер скомпилированного приложения (exe —
файла). Сразу скажу, что размер исполняемого файла не намного превышает размер
exe-шника, скомпилированного Delphi 7.

Предлагаю начать изучение нового продукта с запуска интегрированной среды. После
окончания загрузки, мы видим, что интерфейс не претерпел существенных изменений.
Та же Welcome Page, и примерно тоже расположение панелей. Как и в предыдущей
версии, он напоминает Visual Studio от Microsoft.

Давайте посмотрим, какие проекты мы можем создать. Жмем кнопку New Project и
внимательно изучаем окно создания нового проекта. Помимо того, что появилась
возможность создавать С++ приложения (об этом мы догадались внимательно изучив
splash screen в процессе загрузки), интересным является еще один пункт – Design
Projects, работа с UML моделями приложений. Но об этом
чуть позднее. А пока попробуем создать обычное VCL приложение для Win32.

VCL

Первое, с чего, по крайней мере я,
обычно начинаю оценку новой версии Delphi – палитра компонентов. Категории
компонентов (в ранних версиях это были закладки на палитре компонентов) остались
неизменными. Это косвенно дает возможность сделать предположение о том, что
проекты, созданные в Delphi 2005, без проблем смогут открыться в Delphi 2006 (по
крайне мере, VCL проекты). Однако в некоторых из категорий появились новые
компоненты. Так, в категории Additional добавилось сразу три компонента:
TTrayIcon, TFlowPanel и TGridPanel. Если название первого из них говорит само за
себя, то назначение и возможности новых панелей следует разобрать отдельно.
Переносим TFlowPanel на форму, и… первый сюрприз. Обратите внимание на то, как
выделяется компонент на форме. Очевидно, разработчики просто решили
разнообразить пользовательский интерфейс. Не будем долго экспериментировать с
панелями, а просто прочтем справку. Итак, TFlowPanel отличается от обычной
панели тем, что при размещении элемента управления на обычную панель мы задаем
его положение мышкой. TFlowPanel имеет свойство FlowStyle, значения которого
будут определять местоположение размещаемых на эту панель элементов управления.
TGridPanel, в свою очередь, позволяет размещать элементы управления в
соответствующую ячейку.
Остальные группы компонентов не претерпели существенных изменений. Это не
касается Indy и IntraWeb. Здесь представлены практические новые версии
продуктов. Кроме того, как свидетельствует справка, в VCL добавлено три новых
базовых класса:

  • TCustomTransparentControl
  • TMargins
  • TPadding

Собственно этим изменения в VCL и ограничиваются.
Теперь, когда дань традиции отдана, приступим к более пристальному изучению
самой среды разработки.

Дизайнер форм

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

Еще одна интересная особенность – маленький серый прямоугольник в нижнем правом
углу дизайнера форм. В него вложен прямоугольник белого цвета, позволяющий
позиционировать положение формы в момент запуска относительно экрана. Мы можем
таскать мышкой вложенный прямоугольник и, нажав F9, увидим, что форма при старте
будет размещена относительно экрана так, как и белый прямоугольник относительно
серого.
Несложно догадаться, что описанные выше нововведения работают только для Win32
приложений (Delphi и C++).

IDE

Прежде всего, говоря об IDE, следует упомянуть новый менеджер памяти, который
(со слов разработчиков) позволяет существенно увеличить производительность. Как
я уже говорил, грузиться BDS стала быстрее. Однако, только в том случае, если
запускается только один из инструментов, входящих в состав BDS.
Увеличение скорости компиляции хоть и не сильно, но все же заметно.
Кроме того, увеличилась скорость работы некоторых функций, таких как изменение
параметров или поиска класса. Эти функции IDE впервые появились в предыдущей
версии описываемого продукта. Их назначение достаточно подробно описаны в
последней книге М. Фленова.

Редактор кода

Еще BDS 2005 удивил весьма удобным редактором кода. В новой же версии продукта
редактор кода так же претерпел некоторые изменения. В него добавлено несколько
весьма полезных функций. Прежде всего, теперь в левой части редактора
присутствует цветная полоса. Зеленым цветом подсвечивается сохраненный код, а
желтым – код, который еще не сохранялся. На мой взгляд, это крайне удобная
функция. Во-первых, она напомнит разработчику кода о необходимости
своевременного сохранения, а во-вторых, позволит не запутаться в самом коде, что
особенно актуально для объемных модулей.

Еще одним новшеством стало расширение возможности работы с шаблонами кода.
Создадим новое Delphi Win32 приложение и разместим на форме кнопку. Для
обработчика нажатия кнопки зададим следующий код:

ShowMessage(‘Тест редактора кода’);

Далее выделим этот фрагмент кода и вызовем пункт контекстного меню Surround
/окружить/. В подменю будет предложены несколько шаблонов кода, которые имеют
закрывающие операторы. Если мы выберем, например, ifb, то результат будет
следующим:

if True then
begin
ShowMessage(‘Тест редактора кода’);
end;

Выделенный фрагмент «попадает внутрь» выбранного шаблона. Соответственно, для
каждой из сред разработки, представленных в BDS 2006, существуют свои наборы
шаблонов.

Также в редактор кода были добавлены новые комбинации горячих клавиш. Так,
нажимая CTRL+ALT+UP и CTRL+ALT+DOWN мы можем перескакивать между методами,
размещенными в модуле. CTRL+ALT+HOME и CTRL+ALT+END переместят нас,
соответственно, на первый и последний метод.
Немного видоизменилась полоса нумерации строк кода. Теперь номера идут не
подряд, а через десяток, а также нумеруется активная строка.
Подобные нововведения в редакторе кода могут показаться не существенными,
однако, следует признать, что они делают работу более комфортной и удобной.
А вот следующее новшество может достаточно серьезно облегчить жизнь кодерам.
Теперь функции дебагера можно использовать «на лету», используя всплывающую
подсказку, дающую детальную информацию об исследуемом объекте. При этом, хинты
имеют иерархическую структуру и позволяют осуществлять навигацию.
Что бы посмотреть это в действии поставим в нашем коде breakpoint. Когда
произойдет остановка выполнения программы, поместим курсор мыши на имя объекта.
На экране у нас появится древовидная всплывающая подсказка. В отличии от обычных
хинтов, она не прячется при перемещении курсора, а остается на экране. Далее мы
можем осуществлять навигацию. Как видно из рисунка, кодеру предоставляется
возможность не только отследить значения свойств объекта, но и отследить его
(объекта) иерархию.

Сам же Debug Inspector практически не изменился.

Работа с базами данных

Разработчиков, использующих базы данных, ждет достаточно много нововведений.
Несколько обновлен dbExpress. Напомню, что dbExpress использует более
легковесный подход и фактически не требует какой-либо конфигурации клиентских
компьютеров. Две ключевые характеристики этой библиотеки – легкость и
переносимость. Очевидно, именно поэтому Borland делает акцент именно на развитие
этой технологии.
В новой версии dbExpress поддерживается Unicode (по крайней мере, для MSSQL).
Кроме этого, несколько доработана строка подключения (ConnectionString),
задающая параметры подключения к БД. В новой версии dbExpress поддерживаются
хранимые процедуры для MSSQL.
Изменения были внесены и в BDP.NET. В частности, теперь можно использовать пул
соединений, что позволяет существенно увеличить производительность и
масштабируемость приложений.

Together

Очень серьезные изменения произошли в средстве моделирования Together.
Во-первых, как утверждает документация, код этого инструмента был переписан, что
добавило ему скорости и стабильности. Следует отметить, что Together был самым
нестабильным элементом BDS 2005, и это вызывало сильное недовольство
пользователей. Даже три вышедшие обновления не исправили ситуацию. Так что,
похоже, такой шаг со стороны Borland был вполне оправдан. Кроме этого, теперь
поддерживаются практически все виды диаграмм языка UML и все элементы синтаксиса
как UML 1.5 так и UML 2.0. Фактически теперь Borland Developer Studio обзавелась
полноценным UML редактором. Более того, появилась возможность импорта моделей из
других редакторов, таких как Rational Rose, что является очень важно для полного
перевода управления жизненным циклом проектов в новую среду разработки.
Правда экспорт модели из Rational Rose мне сделать так и не удалось Ошибка
запуска JavaVM.

Borland ECO

В связи со значительной переработкой средств моделирования в BDS 2006, отдельно
стоит остановиться на третьей версии Borland ECO (Enterprise Core Objects).
Несмотря на то, что ECO до сих пор не приобрела широкой популярности среди
отечественных разработчиков, возможности этой технологии весьма впечатляющи.
Насколько ECO упрощает создание приложения, демонстрирует ролик, выложенный на
сайте Borland:
http://bdn.borland.com/article/0,1410,33331,00.html.
Тем не менее, следует понимать, что ECO прежде всего, является MDA – средством,
позволяющим генерировать приложения, основанные на модели (имеется ввиду UML
модель). До настоящего момента модель представлялась исключительно диаграммой
классов, и продукт не вполне соответствовал спецификации MDA. ECO III позволит
разработчикам использовать и диаграммы состояний в модели, на базе которой
генерируется приложение. Очевидно, что в связи с этим, появилось и расширение
языка OCL – ECO Action Language.
Что бы хотя бы в общих чертах представить, что же представляет собою ECO III,
давайте повторим действия девятилетней девочки, которые были представлены нам в
ролике.
Создаем новый проект ECO WinForm Application. Сохраняем его как СhildPlayTask.
В менеджере проекта переключаемся на закладку Model View и в дереве,
представляющем структуру проекта выбираем созданный по умолчанию пакет
(Package_1). Правой кнопкой мыши вызываем контекстное меню и выбираем пункт Open
Diagram.

В открывшемся редакторе модели мы строим диаграмму классов. Из панели
инструментов перетаскиваем на диаграмму пиктограмму ECO Class. Даем новому
классу название Teacher (Преподаватель). Воспользовавшись контекстным меню,
задаем два атрибута для этого класса – Name(Имя) и Subject(Предмет). Тип обоих
атрибутов – String, его можно означить вручную или выбрать в Object Inspector.
Аналогичным образом создаем второй класс Assignment (Задание) с тремя
атрибутами: DateSet (Дата задания), DateDue (Дата сдачи) оба типа DateType и
Title (Название) типа String. Затем связываем эти классы ассоциацией, вновь
воспользовавшись панелью инструментов. Устанавливаем множественность ассоциации
в Object Inspector: End1.Multiplicity ставим 1, а End2.Multiplicity – 1-*. То
есть с одним преподавателем связано одно и более заданий. На этом создание
диаграммы завершено. Регенерируем ECO код (соответствующая кнопка находится в
Project Manager) и в качестве теста пробуем собрать проект (Build Project). Если
все прошло нормально, то переключаемся на форму, в которой размещаем компонент
ExpressionHandle, меняем его имя на Teachers, свойству RootHandle присваиваем
значение rhRoot, а в качестве Expression задаем Teacher.allInstances, используя
при этом OCL редактор. В левой части формы размещаем DataGrid, свойству
DataSource, которого присваиваем значение Teachers. Под гридом размещаем кнопку,
которую подписываем Add, а свойству EcoListAction присваиваем значение Add.
RootHandle для кнопки также задаем как Teachers. Ставим на форму
CurrencyManagerHandle. И для него RootHandle будет Teachers, а BindingContext –
DataGrid1. По аналогии размещаем на форме второй ExpressionHandle и настраиваем
его так: в качестве RootHandle устанавливаем CurrencyManagerHandle, а в качестве
Expression вписываем роль Assigments. Второй DataGrid подключаем ко второму
ExpressionHandle’у. Далее добавляем кнопки Add (она настраивается по аналогии с
первой кнопкой, но ссылается на другой ExpressionHandle) и Update (для этой
кнопки необходимо установить ECOAction — UpdateDatabase). Теперь нам осталось
подключиться к хранилищу данных.

Переходим к модулю СhildPlayTaskEcoSpace, помещаем на него компонент
PersistenceMapperXml и задаем для него свойство FileName. XML –файл будет
сформирован автоматически. Запускаем приложение и смотрим его в работе. Заметьте
– ни строчки кода! Длина деморолика – 9 минут.

Если вы хотите получить сравнение с ECO II – попробуйте проделать те же действия
в BDS 2005.
Мое субъективное мнение – работать с ECO III стал значительно комфортнее. Так
значительным изменениям подвергся и OCL – редактор, но хотя он стал удобнее и
стабильнее, как и старый редактор, унаследованный еще от Bold — первого MDA
средства для Win32 приложений от Borland, практически не позволяет строить
сложных OCL выражений. А вот построение модели значительно упростилось.
Возможность использования пакетов, паттернов, возможность выбора типа атрибутов
из перечня, генерация модели из существующей базы, автоматическая генерация
документации – лишь малая толика того, чем редактор модели в ECO III отличается
от своего предшественника.
Относительно стабильности скажу только, что пока я создавал и параллельно
описывал это маленькое приложение, у меня вылетал только MS Word :).

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

Оставить мнение

Check Also

LUKS container vs Border Patrol Agent. Как уберечь свои данные, пересекая границу

Не секрет, что если ты собрался посетить такие страны как США или Великобританию то, прежд…