В одной из своих предыдущих статей я писал о новой линии продуктов от Borland, под общим названием Turbo. Как и было анонсировано на
официальном сайте, все четыре средства разработки (Turbo Delphi, Turbo Delphi for .Net, Turbo C# Builder и Turbo C++ Builder) увидели свет пятого сентября этого года, опоздав с выходом релиза всего лишь на пару часов. Теперь мы сможем посмотреть, чем же являются эти продукты в действительности. Мне бы, прежде всего, хотелось коснуться темы ограничений бесплатных версий Turbo продуктов, того, насколько эти ограничения существенны, и можно ли их обойти.
В обзоре я ограничусь детальным рассмотрением лишь двух из четырех представленных в линии Turbo продуктов, а именно Delphi for Win32 и Delphi for .Net. На мой взгляд, именно эти два продукта являются ключевыми. Дело в том, что, C++ Builder, как и Win32 версия Delphi использует VCL и никаких расширений библиотеки классов в этом продукте не представлено. Что же касается C# Builder, то эта среда отличается от Delphi for .Net только языком программирования и тем, что она не поддерживает VCL .Net. Поэтому все отличительные особенности Turbo продуктов можно проследить на примере двух вариантов Delphi.
За несколько дней до официального выхода рассматриваемых продуктов, Borland опубликовал FAQ, в котором дал достаточно детальные ответы на многие из тех вопросов, которыми задавались разработчики в ожидании релиза. На сайте ][
уже писалось об этом, но я позволю себе выделить ключевые моменты.
Итак, каждое из четырех средств разработки выпускается в двух вариантах – Explorer (бесплатно) и Professional ($399, для студентов - $80). В принципе, распространяется одна версия – Explorer, активация функций Professional производится вводом соответствующего ключа. Иными словами, вся Professional функциональность не вырезана из Explorer версии, а просто заблокирована.
С точки зрения лицензии нет никаких ограничений на
коммерческое использование продукта. Триальные ключи Professional версии не выдаются, так как для ознакомления со всеми возможностями полнофункциональных Turbo продуктов можно использовать
BDS.
Основным отличием бесплатной версии от платной
является возможность использования сторонних компонентов.
Любой из Turbo продуктов, в том числе Delphi for Win32 и C++ Builder требуют для своей работы .Net, хотя Win32 приложения, написанные с их помощью, будут работать и без
.Net. Еще одним интересным моментом является то, что при установке Turbo устанавливаются и все патчи BDS. В дальнейшем все апдейты будут «сквозными», т.е. они будут подходить как для BDS, так и для
Turbo.
Первые несколько дней после выхода релиза, для скачивания были доступны только архивы с инсталляциями продуктов и пакет prereqs (также в zip архиве), содержащий необходимые для работы дополнительные продукты:
- 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
Позднее были выложены образы установочных CD, и даже макеты их обложек. Интересно отметить, что доступными для закачки стали сразу несколько локализаций Turbo, так что если вам не нравится английское меню Delphi, вы запросто сможете воспользоваться немецкой или японской
🙂 версией.
Прежде чем добраться до ссылки на закачку, вам придется зарегистрироваться и заполнить небольшую анкету (в принципе это стандартная для всех продуктов от Borland процедура). На почту придет письмо, содержащее регистрационный ключ. При этом для каждого из четырех продуктов требуется свой ключ.
Первым из четырех продуктов, который я решил опробовать, был Turbo Delphi. Инсталлятор распаковал самораспаковывающийся архив и запустил диалог установки. До того, как я попытался его инсталлировать, у меня была установлена BDS2006. Как и следовало ожидать, Turbo Delphi в этом случае отказался устанавливаться. Поэтому для ознакомления с Turbo мне пришлось удалить BDS. В списке компонентов, доступных для установки, я нашел практически все то, что входило в состав BDS (естественно, речь идет только о компонентах,
предназначенных для работы под Win32). Как ни странно, инсталлятор предложил установить Indy и IntraWeb. Сама установка прошла гладко. Перед первым запуском продукта был спрошен регистрационный ключ. Как и было
рекомендовано в письме с подтверждением регистрации, я сохранил файл (у меня он назывался reg736.txt) в системный каталог с профилем пользователя (в общем случае для Win XP это C:\Documents and
Settings\User).
Запуск Turbo Delphi прошел достаточно быстро. По крайней мере, визуально значительно быстрей, чем запуск любого из профилей BDS. Напомню, что в BDS 2006 появилась возможность запускать как полную интегрированную среду разработки, так и среды ориентированные на создание приложений с использованием лишь одного из входящих в состав студии продукта – так называемые профили продуктов.
Заставка появляющаяся при загрузке Turbo Delphi любезно рассказала мне, что я запускаю именно Turbo продукт и именно Explorer редакцию. Так же выяснилось, что я являюсь счастливым обладателем зарегистрированной версии, и срок регистрации составляет 36520 дней, т.е. 100 лет. Честно говоря, я не собираюсь жить вечно, но если Borland рассчитывает протянуть еще как минимум одно столетие, готов пожелать им удачи. По крайней мере, посредствам такого не хитрого способа мне намекнули, что слухи о скорой гибели Delphi не имеют под собою основания.
Сама среда разработки на первый взгляд абсолютно не изменилась по сравнению с BDS2006. Единственное, что сразу же бросилось в глаза – значительно меньшее количество категорий в Tool Palette. Тестовое приложение, написанное на скорую руку, показало, что среда работает относительно быстро и стабильно, вероятно сказалось то, что в новую систему были включены все обновления. Все особенности редактора кода BDS сохранились. Да и, в общем, особых отличий от продукта входящего в состав студии я не заметил.
Но, как вы помните, для бесплатной версии Turbo Delphi должны все же иметься некоторые существенные ограничения, прежде всего – невозможность создавать собственные компоненты и подключать уже написанные. Действительно, меню Component имеет всего лишь три пункта: New VCL Component, Create Component Template и Install
Packages. Если активировать Install Packages, то на экране появится в точности такое же, как и в BDS 2006 диалоговое окно. Но некоторые пакеты, входящие в базовую поставку продукта, не активны. К их числу относятся пакеты с компонентами InterBase Express, Indy, IntraWeb, TeeChart и, почему-то, Borland Samples. Попытка включить эти пакеты привела к появлению сообщения, гласящего, что лицензия данной версии не позволяет загрузить сторонние компоненты или расширения IDE. Иными словами, при установке Delphi все эти пакеты были выбраны, распакованы и «сложены» в нужное место, но использовать их посредствам палитры компонентов бесплатная версия отказалась. И действительно, если заглянуть в директорию с установленным Turbo Delphi, то все вышеперечисленные пакеты присутствуют. Кроме того, присутствуют и их исходники.
После того, как я обнаружил данный факт, мне пришло в голову провести маленький эксперимент. Я создал новый VCL компонент, наследник TButton, и сохранил его в отдельном модуле. Я назвал свой компонент TButtonTurbo. Функциональность TButton в наследнике я не изменял.
Естественно, мне не удалось инсталлировать свой компонент, пакет в который я его добавил успешно компилировался, но инсталлироваться отказался. Опять же происходило это из-за того, что у меня не было соответствующей лицензии на подобную операцию. Зато, нажав кнопку Details на окне сообщения об ошибке, я увидел отладочную информацию, которая возможно помогла бы мне сделать keygen. Однако такой целью я не задавался.
Я создал новый проект и скопировал модуль, содержащий TButtonTurbo в тот же каталог. После этого я объявил в секции uses главной формы проекта модуль ButtonTurbo, описал экземпляр унаследованной кнопки в разделе private и при загрузке формы создал кнопку динамически.
unit Unit1;
.
.
.
private
{ Private declarations }
BT: TButtonTurbo;
.
.
.
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
begin
BT:=TButtonTurbo.Create(self);
self.InsertControl(BT);
end;
end.
Все заработало без проблем. Таким образом стало ясно, что сторонние компоненты блокируются только в Design Time. В Run Time их можно использовать. Далее я решил отредактировать dfm файл в надежде на то, что если вписать соответствующий код руками, то можно будет увидеть на форме в режиме разработки один из компонентов Indy (я не пытался добавить TButtonTurbo, поскольку этот компонент не был добавлен ни в один пакет). Тут меня поджидало разочарование. Я добавил к описанию класса следующие строки:
object IdTCPClient1: TIdTCPClient
MaxLineAction = maException
ReadTimeout = 0
Port = 0
Left = 35
Top = 35
End
Но при загрузке проекта вместо соответствующего Indy компонента на форме я прочел сообщение об ошибке - класс IdTCPClient1 не найден. Тем не менее, проект собрался и даже запустился (правда, для того, что бы он не вылетал на каждом шагу, настройки TIdTCPClient пришлось немного поменять).
Но мне все же удалось установить собственный компонент. Для этого пришлось добавить его в существующий пакет dclusr100.dpk. В этом, и только в этом пакете мне удалось произвести не только компиляцию, но и инсталляцию компонента. После уведомления о регистрации нового компонента, ButtonTurbo честно появился на отдельной вкладе панели инструментов.
Проанализировав все вышесказанное, можно сделать некоторые выводы относительно возможностей использования бесплатной версии. Итак, лицензия не накладывает какие-либо ограничения на коммерческое применение Explorer версии Turbo Delphi. Поэтому то, насколько полно вы сможете использовать возможности этого продукта, зависит только от ваших знаний и умений. Бесспорно, что некоторые технические ограничения потребуют от вас некоторых дополнительных трудозатрат и более глубокого знания структуры Delphi приложений. Вполне вероятно, что отсутствие некоторых возможностей, все же заставит вас отказаться от использования Turbo Delphi Explorer и перейти (или вернуться) к другому продукту.
Если задуматься о том, где реально может понадобиться лицензионное средство разработки (имеется ввиду, в собственности разработчика, а не работодателя), то видится несколько вариантов. Во-первых, это, так называемый фриланс, т.е. исполнение проектов на заказ. Во-вторых, это Shareware – разработка и продажа собственных программных продуктов.
Лично мне не приходилось сталкиваться со случаями, когда заказчик требовал наличия у исполнителя лицензионного ПО, но по слухам такие прецеденты имеют место. Если вы планируете исполнить заказы на Turbo Delphi, то очевидно, что вам следует избегать тех проектов, которые требуют применения пакетов сторонних компонентов. И, прежде всего, визуальных. Так, скажем, если создать и настроить в run time компоненты доступа к БД относительно несложно, то выравнивание на форме всевозможных диковинных кнопок может стать проблемой. Что же касается Shareware, то и тут Turbo Delphi можно отлично использовать, хотя обычно к таким программам предъявляются повышенные требования по части визуального оформления. С точки зрения защиты программ, то особых проблем быть не должно. А вот при написании собственных коммерческих компонентов могут возникнуть реальные проблемы. Все же поведение компонентов в режиме создания (design time) тоже требует отладки. Да и защищенный пакет компонентов создать, вероятнее всего не удастся.
Не смотря ни на что, я считаю, что даже Turbo Delphi Explorer можно вполне успешно использовать, не смотря на некоторые ограничения.
Следующим продуктом, который я решил посмотреть стал Turbo Delphi .Net. Изначально предполагалось, что под одной ОС могла функционировать только одна среда разработки из серии Turbo. Но буквально спустя несколько дней после выпуска рассматриваемых продуктов вышла одна интересная утилита – TurboMerger. Она позволяла снять это ограничение и, как выражаются ее авторы, сделать свою Turbo Studio. Ввиду того, что ссылки на нее публиковались на многих сайтах, посвященных Turbo и Borland не высказал по этому поводу своих претензий, я сделал вывод, что использование утилиты не является нарушением авторских прав. В новостных конференциях представители Borland заявили, что невозможность запуска одновременно нескольких Turbo продуктов является, прежде всего, технической проблемой, которая в последствии должна быть решена. Как видно, сторонние разработчики нашли решение более оперативно. TurboMerger можно скачать по адресу :
http://andy.jgknet.de/blog/exit.php?url_id=74&entry_id=31.
Утилита достаточно проста в обращении. После того как установлен первый из Turbo продуктов, необходимо распаковать интсталлятор следующего продукта в отдельную директорию. После этого следует запустить TurboMerger и указать путь к инсталлятору очередного продукта (к файлу setup.exe). Далее инсталлятор будет запущен автоматически, и все будет происходить обычным образом. С каждым следующим продуктом следует поступить аналогичным образом. При этом инсталлировать все Turbo нужно в один и тот же каталог. Инсталляция проблем не вызвала. Единственное, что я отметил, это появление еще одного пункта в списке доступных продуктов – NUnit unit test framework. В перечне доступных компонентов, как и в прошлый раз, значились Intraweb и Indy, но использовать
Как и в случае с предыдущим продуктом, особых визуальных отличий от BDS 2006 я практически не обнаружил. Напомню, что в Delphi for .Net можно создавать как обычные (WinForms) .Net приложения, так и приложения, использующие VCL for .Net. Как и в случае с предыдущим продуктом закладок с компонентами оказалось несколько меньше чем в BDS. Тем не менее, Turbo Delphi for .Net позволяет настроить подключение к таким СУБД как Interbase, MS SQL, MS Access и My SQL с использованием BDP. Кроме этого можно использовать BDE и
DBExpress.
Что касается ограничений, то меня, прежде всего, интересовало смогу ли я подключить сторонние .Net сборки. Ответ на этот вопрос я нашел достаточно быстро. Нет.
Так же сильно урезанным оказался ECO. Помимо невозможности создавать State Machine диаграммы, отсутствует возможность создания ASP .Net ECO приложений.
В остальном же Delphi for .Net можно назвать полноценным средством разработки. Если вы до этого работали с Delphi, но желаете переключиться на программирование для .Net, то Turbo Delphi for .Net - тот продукт, который вам нужен.
Turbo C# Builder оказался практически полным аналогом Turbo Delphi for .Net с той лишь разницей, что VCL for .Net там не используется, и, естественно, поддерживается С#, а не Delphi language.
Что качается C++ Builder, то даже в состав BDS 2006 он вошел в последнюю очередь, оставаясь при этом слегка не доведенным. Тоже впечатление оставила и Turbo версия продукта.
Буквально через несколько дней после выхода в свет Turbo продуктов, Borland выложил компиляторы командной строки для них. Но они стали доступными для скачивания только обладателям Professional лицензии.
В заключение я упомяну о планах развития средств разработки от Borland на ближайшее время. В этом году планируется выпуск новой версии Delphi – Highlander. Вероятнее всего, речь идет о BDS, а не об отдельном продукте. Основным отличием новой версии от предыдущей будет поддержка .Net 2.0. А на следующий год намечен выпуск Delphi Longhorn – среды, которая будет полностью адаптирована под Windows
Vista. И хотя об этом и рано еще говорить, вероятнее всего, для каждого из этих продуктов будет выпущена Turbo версия.