О будущем Delphi
Borland Delphi одно из самых популярных в нашей стране средств разработки приложений и продолжает оставаться таковым уже без малого десять лет. Дальнейшая судьба этого продукта волнует многих разработчиков именно этой теме и посвящена настоящая статья.
очти десятилетнее пребывание на IT-рынке срок по нынешним меркам почти рекордный. Не так просто выдержать конкуренцию со стороны более новых инструментов, обеспечивая, с одной стороны, совместимость со старыми версиями, а с другой качественную поддержку новых технологий. Эти два требования нередко вступают в противоречие друг с другом, ставя производителей средств разработки перед нелегким выбором продолжить ли выпуск той или иной линейки продуктов либо создать совершенно новое средство, обеспечив пользователей снятого с производства продукта средствами миграции и технической поддержкой.
Принципиально новый продукт, получивший имя Delphi, появился в 1995 году и сразу же привлек внимание разработчиков всего мира своими невиданными по тем временам возможностями, простотой и удобством создания приложений. Сейчас, конечно, такими возможностями обладают и другие средства разработки, но и количество пользователей Delphi по-прежнему велико.
Выпуск в конце прошлого года восьмой версии этого продукта стал отражением концептуального подхода компании Borland к созданию средств разработки для платформ Microsoft Windows и .NET. Как результат, многие разработчики задумались о будущем разработки для Win32. Дальнейшая судьба Delphi и путь развития этого продукта стали ясны после появления очередной его версии Delphi 2005. Теперь стало очевидно, для каких задач предназначен этот продукт и какие платформы он поддерживает, да и новшеств, подчас уникальных, в нем более чем достаточно. Delphi 2005 по своей сути стал новым поколением Delphi и, как это уже случилось в 1995 году, задает новый уровень интегрированности и широты функциональных возможностей современных инструментальных средств разработки приложений.
А теперь рассмотрим основные новшества Delphi 2005, начав с поддерживаемых платформ, языков программирования и компиляторов.
Поддерживаемые платформы
В комплект поставки Delphi 8 средства, предназначенного исключительно для платформы Microsoft .NET, входил экземпляр Delphi 7 для разработчиков, которым нужно было создавать приложения для платформы Win32. Те, кто помнит, как в комплект поставки 32-разрядного средства разработки Delphi 2 включили 16-разрядную версию Delphi 1 (после этого никаких 16-разрядных версий Delphi уже не выпускалось), вполне могли предположить, что версий Delphi для Win32 больше не предвидится, однако все оказалось совсем не так. Сегодня потребность в создании приложений для платформы Win32 еще весьма велика, поэтому Delphi 2005 предоставляет своим пользователям возможность создавать приложения и для .NET Framework, и для платформы Win32. При этом платформа .NET поддерживается как для языка Delphi, библиотек VCL .NET и Windows Forms/Web Forms, так и для C# (Windows Forms/Web Forms), что является первым шагом в предоставлении разработчикам многоязыковых инструментальных средств Borland.
Приложения для обеих платформ можно создавать внутри единой среды разработки. И это вполне понятно, так как многие разработчики консервативны в своих привычках, особенно когда речь идет об организации среды разработки. Разработчики, которые создают VCL-приложения для Win32 и .NET, могут использовать «классический» вариант размещения инструментов среды с «плавающим» дизайнером форм и модулей данных (рис. 1) наравне с новой «многостраничной» организацией среды разработки, знакомой многим по таким продуктам, как Delphi 8, JBuilder и Visual Studio .NET.
Рис. 1. «Классический» режим работы среды Delphi 2005
По поводу мастеров, присутствующих в среде и предназначенных для упрощения создания приложений для обеих платформ, отметим изменения в средствах импорта в проекты описаний объектов и событий COM+, в средствах создания удаленных модулей данных, библиотек типов, элементов управления ActiveX. Кроме того, в среде Delphi есть инструменты для импорта компонентов .NET в проекты, предназначенные для платформы Win32. К тому же приложения, создаваемые с использованием VCL .NET, могут создаваться и с применением компонентов Windows Forms, для чего в среде Delphi также предусмотрен специальный мастер.
Если говорить о полноте набора инструментов, то среда разработки Delphi 2005 объединяет комплекс средств Delphi 7, Delphi 8, C#Builder и предоставляет ряд таких новых функциональных модулей, как встроенный в среду клиент средства конфигурационного управления StarTeam для обеспечения командной работы, мастер интеграции .NET и J2EE/CORBA на основе Janeva, рефакторинг, блочное тестирование на основе библиотеки классов DUnit (для Win32) и NUnit (.NET), а также многие другие инструменты, качественно повышающие продуктивность разработки. Встроенное в среду Delphi ядро средств проектирования Borland Together (рис. 2) обеспечивает визуализацию кода на основе UML и конструирование приложений на основе UML-моделей с использованием специального комплекса средств Borland ECO II (Enterprise Core Objects), первая версия которых была включена в C#Builder и Delphi 8. Важной особенностью ECO II является возможность создания ECO-приложений для существующих баз данных на основе отображения классов и структуры данных с использованием XML-описателей.
Рис. 2. UML-визуализация в среде Delphi 2005 на основе ядра Borland Together
Язык и компиляторы
Разработчикам, уже имевшим дело с платформой Microsoft .NET и языком C#, будет интересно узнать, что с помощью Delphi 2005 можно создавать .NET-приложения и на языке C#. Таким образом, Delphi 2005 теперь включает всю функциональность другого средства разработки компании Borland C#Builder, выпущенного примерно полтора года назад.
Из изменений в языке Delphi отметим появление синтаксической конструкции for..in..do (именно это мне всегда нравилось в Visual Basic), например:
var
Lines: TStrings;
S: string;
….
for s in Lines do
ListBox1.Items.Add(s);
Компилятор Delphi 2005 поддерживает файлы в кодировках Unicode и UTF-8. Более того, символы Unicode можно использовать в идентификаторах переменных и импортировать из сборок .NET, так что любители именовать переменные по-русски могут теперь позволить себе это удовольствие.
Отладка и рефакторинг
Из средств, повышающих продуктивность разработки, следует в первую очередь назвать средства отладки и инструменты рефакторинга кода.
В Delphi 2005 отлаживать код для обеих платформ можно одновременно, поскольку отлаживаемый код .NET существует внутри обычного процесса Windows. Кроме того, можно редактировать код прямо в процессе отладки и регистрировать в среде разработки несколько отладчиков.
Впечатляют и средства рефакторинга, предоставленные данным продуктом. Так, если нужно переименовать переменную, класс, метод, то можно выделить фрагмент кода и начать переименовывать и тогда во всем выделенном фрагменте произойдет соответствующее переименование всех ссылок (рис. 3).
Рис. 3. Переименование переменной средствами рефакторинга
Извлечение методов еще один из поддерживаемых Delphi 2005 механизмов рефакторинга. Средства извлечения методов этого инструмента позволяют не только создавать новые методы на основе существующих, но и автоматически создавать параметры методов, генерировать локальные переменные, хранить историю изменений (рис. 4).
Рис. 4. Отображение истории изменений кода с помощью средств рефакторинга
XML Doc
Стоит особо отметить и интерактивную справку. Казалось бы, что нового можно изобрести в деле создания справок Windows? Но в Delphi 2005 справка появляется прямо в редакторе кода, причем тогда, когда набирается имя класса. Кстати, авторы кода могут создавать такую справку сами, так как комментарии, начинающиеся с «///», сохраняются компилятором в отдельном XML-файле.
ASP .NET
Определенные изменения претерпели средства создания приложений ASP .NET, например инструменты редактирования кода и HTML-тэгов, средства завершения кода для каскадных таблиц стилей и инструменты форматирования кода (рис. 5). Мастер развертывания приложений Deployment manager wizard, упрощающий развертывание и внедрение приложений данного типа, также является нововведением, характерным для данной версии (рис. 6).
Рис. 5. Delphi 2005 поддерживает визуальную разработку ASP .NET и включает Web-компоненты для работы с базами данных Borland DB Web
Рис. 6. Мастер развертывания ASP .NET
Поддержка баз данных
Изменения в технологии Borland Data Providers включают поддержку манипуляции метаданными. Например, с помощью этого механизма доступа к данным теперь можно выполнять DDL-операторы для создания и удаления индексов, таблиц, представлений, осуществлять автоматическое обновление, в том числе и данных, полученных в результате запроса к нескольким таблицам. Кроме того, внесены и изменения в сами провайдеры данных BDP теперь ими поддерживаются данные типа Boolean в Interbase, пакеты Oracle, таблицы с именами, содержащими не только английские буквы. Появилась и поддержка последних версий серверов компании Sybase.
Из средств построения распределенных приложений, работающих с базами данных, назовем технологию DataRemoting, реализованную с учетом огромного опыта, накопленного компанией со времени использования технологии Midas/DataSnap, появившейся еще в период Delphi 3. Похоже, эта реализация удаленного доступа к данным значительно превосходит своих предшественников.
Интервью с Джейсоном ВоксомВашему вниманию предлагается интервью с Джейсоном Воксом, менеджером европейского отделения Borland, отвечающим за продажи средств разработки для платформы Microsoft .NET в Европе. КомпьютерПресс: Средство разработки приложений Visual Studio .NET известно уже не первый год. Этот продукт стремительно набирает популярность и во многих случаях оказывается прямым конкурентом Delphi for .NET и C#Builder. Что может предложить компания Borland разработчикам и руководителям проектов, чтобы они выбрали именно эти продукты? Джейсон Вокс: Мы только что начали говорить о проекте Diamondback (прежде данное название носил проект создания девятой версии Delphi, получившей позже название Delphi 2005. Н.Е.) и о технологиях, применяемых в этом продукте. Я вижу, как разработчики проявляют заинтересованность в этом. Становится все более очевидным, что дальнейший путь развития C#Builder состоит в том, чтобы стать составной частью проекта Diamondback, поскольку указанный проект использует многие технологии этого продукта. C#Builder это, образно выряжаясь, старший брат проекта Diamondback.
Джейсон Вокс, менеджер европейского отделения Borland Я знаком с Visual Studio, но мы сделали Diamondback именно для клиентов Borland, и он имеет прекрасную репутацию на рынке. Те, кто уже ознакомился с этим продуктом, говорят, что здесь присутствуют именно те технологии, в которых сегодня нуждаются разработчики. Мы работаем и с крупными заказчиками, и с небольшими компаниями и видим, что многие из технологий действительно востребованы, в том числе и те из них, что предоставляются платформой Microsoft .NET. КП: Многие руководители проектов в России относятся к Delphi 8 с опаской. Разработчики тестируют продукт, но пока воздерживаются от применения его в проектах, поскольку пока не все в нем идеально. Так, не весь унаследованный код легко перенести в новую версию продукта, существуют и серьезные проблемы, например, с переносом приложений, использовавших ADO- и VCL-компоненты, реализующие поддержку этого механизма доступа к данным. Будет ли что-то сделано для поддержки таких проектов? Дж.В.: В новой версии продукта пользователям Delphi 7 будет предоставлена возможность перенести в .NET унаследованный код, использовавший компоненты dbGo (ранее они носили название ADO Express), так что эта проблема будет решена. Мы видим развитие .NET, планируем расширение сферы применения этой технологии и постараемся добиться, чтобы Delphi 9 стал самым лучшим средством разработки. Кроме того, мы знаем, что многие компании-разработчики продолжают создавать и поставлять сложные приложения для платформы Win32. А поскольку данная платформа по-прежнему используется наряду с .NET, что также нашло свое отражение в Diamondback, то этот продукт позволит создавать приложения и для Win32. КП: Таким образом, приложения, созданные с помощью Delphi версий 5-7 и использовавшие ADO Express, можно будет перенести на платформу .NET без особых проблем? Дж.В.: Безусловно Diamondback позволит осуществить такой перенос без проблем. КП: А как именно будет обращаться к данным перенесенное приложение? Использует ли оно ADO и средства .NET для работы с COM-объектами (COM Interop) или код приложения преобразуется в код, использующий ADO .NET, как это делает соответствующий мастер в Visual Basic .NET? Дж.В.: Перенесенное приложение будет .NET-приложением, но оно по-прежнему будет использовать ADO. КП: А можем ли мы рассчитывать на поддержку в Delphi Micrоsoft .NET Framework 2.0? Дж.В.: Мы сейчас обсуждаем, что будет после выпуска Diamondback, в том числе и поддержку Micrоsoft .NET Framework 2.0, но здесь очень многое зависит от пожеланий наших заказчиков. Поддержка новой версии платформы это серьезное дело, которое можно обсуждать, когда речь пойдет о конкретной версии платформы, но пока этот вопрос не самый приоритетный. Сегодня для нас абсолютно очевидно, что настало время для выпуска новой версии, которая позволит повысить продуктивность разработки и воспользоваться новыми технологиями, и именно этого ждут разработчики Windows-приложений. Что касается поддержки Micrоsoft .NET Framework 2.0 и Longhorn, то мы находимся в тесном контакте с Microsoft, что позволяет нам поддерживать данную платформу на высоком уровне. Вы можете убедиться, что наши продукты, например Borland Together и Visual Studio .NET, отлично работают вместе. Diamondback не будет поддерживать .NET Framework 2.0, поскольку эта технология пока не готова для реального производства. Но я не исключаю, что через год, к выходу следующей версии Delphi, эта поддержка и появится. КП: За последние годы в России заметно увеличилось количество решений, создаваемых на основе готовых продуктов, например различного серверного или специализированного программного обеспечения, используемого в качестве одного из компонентов такого решения. Если создавать решение на основе какого-то из серверных продуктов Microsoft (в частности, SharePoint Server, Commerce Server), равно как и на основе какого-либо продукта независимых производителей, то в его комплекте поставки можно найти много примеров и шаблонов для пользователей Visual Studio. Если такой же проект создается с помощью Delphi, то часто не оказывается ни примеров, ни шаблонов, ни компонентов. Бывает, что хотя производитель такого продукта продекларировал поддержку Delphi, но на деле даже не протестировал как следует эту совместимость. В результате стоимость реализации такого проекта возрастет по сравнению со стоимостью аналогичного проекта, выполненного с помощью средств разработки Microsoft. Видите ли вы способ решения этой проблемы? И произойдет ли когда-нибудь признание такими производителями Delphi как средства разработки, занимающего достаточно крепкую позицию на рынке, чтобы более серьезно отнестись к вопросам создания решений на основе данных продуктов с помощью Delphi? Дж.В.: Если взглянуть на расширенную платформу Microsoft, включающую не только операционные системы, но и серверные продукты, становится очевидным, что приоритет Microsoft это продвижение именно самой платформы, и поэтому естественно, что Microsoft обеспечивает ее поддержку. Наша компания ориентирована на поддержку наиболее важных потребностей заказчиков и на повышение эффективности их труда. Мы, конечно, собираем информацию о потребностях наших пользователей, в том числе и во время тестирования продукта, чтобы повысить качество примеров и документации для наиболее важных применений продукта, например для Data Remoting или ECO. Отмечу также, что .NET это платформа, в которой есть место всем языкам и в которой переносимость кода достигается достаточно легко. Переход на .NET (или переход к архитектуре, ориентированной на сервисы) действительно поможет решить такие проблемы. Что же касается независимых производителей ПО, то мы находимся в партнерских отношениях с ведущими его производителями, в том числе с Microsoft и IBM, и открыты для сотрудничества. Кроме того, если кто-то из наших клиентов реализует важный проект, который наверняка принесет прибыль, и если у него возникают какие-то сложности с реализацией проекта, в том числе и из-за несовместимости наших продуктов с продуктами других производителей, мы обязаны помочь такому заказчику. И к нам можно и нужно обращаться за помощью. КП: Все это вселяет определенный оптимизм. И в заключение еще один вопрос. Многие наши читатели, ознакомившись с публикациями Константина Грибачева о технологии MDA (Model Driven Architecture архитектура, управляемая моделью) и начав применять эту технологию, интересуются, что произойдет c Borland MDA в следующей версии Delphi? Дж.В.: Если вы посмотрите на основанное на стандартах моделирование и на архитектуру, определенную консорциумом OMG (Object Management Group), на разработку, управляемую дизайном, на технологию ECO (Enterprise Core Objects), то сможете увидеть, что в 9-й версии Delphi эти возможности значительно шире по сравнению с Delphi 8. Пользователям Diamondback доступны расширенные масштабируемые средства поддержки в MDA-технологии ASP .NET, они могут создавать Web-сервисы, управляемые моделью, пользоваться поддержкой инфраструктуры и среды исполнения .NET, служб .NET, функционирующих в масштабах всей компании и взаимодействующих между собой. Новая версия ECO позволяет создать объектную модель на основе уже существующей базы данных, то есть можно взять простую реляционную базу данных, добавить объекты в объектное пространство, скомбинировать их с имеющейся моделью данных и начать работать с корпоративными базами данных так, как вы раньше никогда не работали. Если прежде мы говорили об инкапсуляции данных в объектном слое, то теперь мы можем создавать компоненты для поддержки связей в наших базах данных еще до создания приложения. Вы будете удивлены тем, насколько расширилась и улучшилась поддержка ECO возможностей .NET, например поддержка объектно-реляционного моделирования, в которой нуждаются сейчас многие разработчики. Cейчас это достаточно зрелая технология, как и сама технология UML-моделирования, и мы должны учитывать это, формируя стратегию развития средств разработки для платформы .NET. КП.: Спасибо за интересную беседу. Мы c нетерпением будем ждать выпуска новой версии Delphi. Похоже, этот продукт будет востребован российскими разработчиками. |
||
Средство навигации по базам данных DataExplorer предмет отдельного обсуждения. Этот инструмент позволяет осуществлять миграцию данных из одной базы данных в другую, переносить мышью имя хранимой процедуры в среду разработки не только с автоматической генерацией компонентов, но и с созданием их параметров.
Также отметим новые средства создания типизированных клиентских наборов данных для .NET (Typed datasets). Эти наборы данных можно компилировать в отдельные сборки, поддерживать наборы данных, получаемые от Web-сервисов, редактировать в таких наборах данных связи и таблицы.
Технология dbExpress также усовершенствована внесены улучшения в редактор SQL-запросов, повышена скорость работы некоторых компонентов, реализующих эту технологию, произошли изменения и в драйверах.
Очень важно, что в Delphi 2005 вновь появилась поддержка ADO. Пользователям Delphi 8 она была недоступна в принципе, что удручало всех разработчиков, использовавших технологию ADO в своих прежних проектах. Казалось, что обновить эти проекты уже никогда не удастся, что напрочь уничтожало всякое желание взять Delphi в руки еще раз, но теперь такие проекты можно перенести в Delphi 2005 (по крайней мере, так говорят в Borland). Правда, это именно ADO (c неуправляемым кодом, OLEDB-провайдерами и прочими атрибутами указанной технологии), а не ADO .NET.
Enterprise Core Objects
Особо стоит сказать о поддержке UML-моделирования. Так, ECO теперь поддерживает проекты ASP .NET и Web-сервисы (и есть соответствующие шаблоны приложений); в среде имеется инструмент, позволяющий создать модель на основе схемы базы данных и начать с ней работать уже как с UML-моделью; появились средства автокомпиляции и средства помощи, напоминающие, что уже сделано и что еще нужно сделать в приложении. А уж изменений в ECO run-time более чем достаточно от повышающих скорость выполнения приложений и генерации форм до упрощающих разрешение конфликтов.
Интеграция с J2EE
И наконец, то, чего нет у других производителей средств разработки, интеграция с J2EE/EJB с применением средства Borand Janeva. Создание клиентов для EJB можно осуществлять с помощью Delphi и C#, можно извлекать один EJB из целого архива, можно разбирать автоматически описания Deployment Descriptors для разных серверов приложений (Borland Enterprise Servers, BEA Weblogic или IBM Websphere), можно генерировать клиентские сборки .NET. При этом Janeva позволяет не только создавать клиентские приложения для CORBA-служб на платформе .NET, но и разрабатывать собственные CORBA-серверы.
Полезные мелочи
В Delphi 2005 наличествуют средства размещения компонентов на форме путем перетаскивания мышью (причем для обеих платформ); появилось несколько новых визуальных компонентов типа TButtonGroup и TCategoryButtons; произошли изменения во внешнем виде и в функциональности некоторых окон среды разработки, например, инспектора объектов, панели инструментов, менеджера проектов.
Delphi 2005 поддерживает управление версиями и хранение истории изменений, содержит встроенные средства интеграции со StarTeam, позволяющие работать и с различными версиям файлов, и с запросами на изменения (change requests, включая отчеты об ошибках), и с требованиями и задачами (tasks). Кроме того, пользователи Delphi 2005 Enterprise и Architect получают в составе продукта полнофункциональную редакцию StarTeam Standard.
Заключение
В настоящей статье мы обсудили некоторые особенности Delphi 2005, такие как поддержка двух языков программирования и двух платформ, изменения в языке Delphi и в средствах отладки, новые средства рефакторинга, изменения в средствах работы с базами данных и создания приложений ASP .NET, в инструментах интеграции с приложениями J2EE, а также новшества в технологии Enterprise Core Objects. Нововведений в Delphi 2005, на наш взгляд, вполне достаточно, чтобы обратить на этот продукт самое серьезное внимание.