Введение

Инструмент разработки программного обеспечения

PowerBuilder — это интегрированная среда разработки, принадлежащая компании SAP с момента приобретения Sybase в 2010 году. 5 июля 2016 года SAP и Appeon заключили соглашение, в соответствии с которым Appeon, независимая компания, взяла на себя ответственность за разработку, продажу и поддержку PowerBuilder. На протяжении многих лет PowerBuilder обновлялся в соответствии с новыми стандартами. В 2010 году был выпущен крупный релиз PowerBuilder с поддержкой Microsoft .NET Framework. В 2014 году была добавлена поддержка OData, плавающих окон и 64-разрядных нативных приложений. В 2019 году появилась возможность быстрого создания RESTful Web API и невидимых .NET-сборок с использованием языка C# и платформы .NET Core. Разработка клиентских приложений PowerScript была переработана с использованием новых технологий пользовательского интерфейса и облачной архитектуры. Appeon выпускает новые функции каждые 6–12 месяцев, ориентируясь, согласно дорожной карте продукта, на четыре ключевых направления: поддержку основных функций, модернизацию пользовательского интерфейса приложений, повышение производительности разработчиков и интеграцию облачных технологий.

Особенности

PowerBuilder имеет встроенный объект для работы с данными, называемый DataWindow, который позволяет создавать, редактировать и отображать данные из базы данных. Этот объект предоставляет программисту множество инструментов для определения и управления внешним видом и поведением пользовательского интерфейса, а также упрощенный доступ к содержимому базы данных и JSON или XML, получаемым из веб-сервисов. DataWindow в определенной степени избавляет программиста от необходимости учитывать различия между системами управления базами данных разных производителей. DataWindow может отображать данные, используя различные стили представления, и подключаться к разнообразным источникам данных.

Использование

PowerBuilder используется главным образом для разработки бизнес-приложений, реализующих операции создания, чтения, обновления и удаления данных (CRUD). Хотя новые программные продукты редко создаются на PowerBuilder, многие клиент-серверные ERP-системы и корпоративные приложения, разработанные в конце 1980-х – начале 2000-х годов с использованием PowerBuilder, до сих пор обеспечивают основные функции работы с базами данных для крупных организаций в государственном секторе, высшем образовании, производстве, страховании, банковском деле, энергетике и телекоммуникациях. Вакансии для разработчиков PowerBuilder доступны, но зачастую связаны с поддержкой и сопровождением существующих приложений.

Особенности

PowerBuilder — объектно-ориентированный язык программирования. Почти все визуальные и невизуальные объекты поддерживают наследование, полиморфизм и инкапсуляцию. Программист может использовать общую кодовую базу, такую как PowerBuilder Foundation Classes, также известную как PFC, для наследования объектов и повторного использования существующего кода. DataWindow является ключевым компонентом (и главным преимуществом) PowerBuilder. DataWindow предоставляет визуальный редактор SQL, поддерживающий внешние соединения, объединения и операции с подзапросами. Он способен преобразовывать SQL в визуальное представление и обратно, позволяя разработчику использовать нативный SQL при необходимости. Обновления DataWindow выполняются автоматически — он генерирует корректный SQL во время выполнения, исходя из СУБД, к которой подключен пользователь. Эта функция упрощает работу для разработчиков, не имеющих опыта работы с SQL. DataWindow также обладает встроенной возможностью извлечения и обновления данных через хранимые процедуры или REST Web API, а также импорта и экспорта данных в формате JSON. Объект RESTClient, представленный в PowerBuilder 2017, упрощает интеграцию DataWindow с REST Web API, требуя минимального объема кодирования.

Интеграция с сторонним программным обеспечением

PowerBuilder поддерживает элементы управления ActiveX и OCX, как видимые, так и невидимые. Он также может использовать OLE Automation в качестве клиента. Однако PowerBuilder поддерживает только позднее связывание, а не раннее. Следовательно, при использовании OLE Automation список возможных действий не отображается. PowerBuilder также может выступать в роли клиента или сервера DDE, предоставляя дополнительный механизм для взаимодействия с другими приложениями. PowerBuilder способен выполнять вызовы API Windows и сторонних разработчиков и, как правило, хорошо работает со сторонними библиотеками в файлах DLL, но не поддерживает функции обратного вызова напрямую.

Компиляция и отладка

PowerBuilder предлагает переключатель времени выполнения "/pbdebug" (или варианты: "pbdebug", "pbd", "/debug", "debug", "deb"), который создает файл журнала. Это может помочь выявить ошибку непосредственно у пользователя, поскольку пользователь может просто отправить этот файл журнала разработчику по электронной почте. В нем также реализована функция записи всех SQL-запросов в файл. Кроме того, PowerBuilder имеет встроенный профилировщик производительности, интегрированный отладчик, контекстно-зависимую справку и активную группу новостей для поддержки пользователей. Приложения PowerBuilder обычно компилируются в p-код, который затем интерпретируется средой выполнения PowerBuilder. Приложение также может быть скомпилировано в машинный код, что в некоторых случаях может повысить производительность.

Критика

Расширяемость языка была довольно ограничена в старых версиях PowerBuilder. Технологии, предназначенные для решения этой проблемы (например, PowerBuilder Native Interface, или PBNI), достаточно сложны. Разработка решения с использованием внешнего кода C++ может потребовать не только опытного разработчика C++, но и эксперта PowerBuilder, который сможет провести разработчика через множество тонкостей языка и виртуальной машины PowerBuilder. Наследование и объектно-ориентированные возможности ограничены некоторыми типами объектов (окна, пользовательские объекты и меню). В частности, невозможно наследовать от DataWindow. Пользователь PowerBuilder не может одновременно открыть дочерний и родительский объекты в конструкторе, хотя при работе с дочерним объектом он может видеть код всех предков. Чтобы решить эти проблемы, Appeon разработала новую дорожную карту для PowerBuilder, которая открыто опубликована на веб-сайте Appeon. В среде разработчиков (классический) язык PowerScript, который по-прежнему доступен для обеспечения совместимости, известен как "язык, построенный вокруг DataWindow", а PowerBuilder – как "IDE, построенная вокруг DataWindow". В PowerBuilder 2019 была представлена разработка на C#, ориентированная на новый NET DataWindow с автоматической миграцией существующих DataWindow.

Сообщество

После того, как Appeon приобрела PowerBuilder, компания запустила новый официальный веб-сайт сообщества для разработчиков PowerBuilder. На этом веб-сайте сообщества представлены технические статьи, вебинары и раздел вопросов и ответов, созданные участниками сообщества. Appeon также ежегодно проводит конференцию пользователей под названием Appeon Elevate, а записи сессий конференции доступны на сайте мероприятия. По всему миру действует ряд локальных пользовательских групп, которые сотрудничают с Appeon для проведения сокращенных версий конференции в формате семинаров на местном языке. Кроме того, существует множество низовых сообществ и ресурсов, где разработчики PowerBuilder могут обмениваться опытом и встречаться. PowerBuilderTV – это серия вебинаров, проводимых пользователями и поставщиками PowerBuilder, посвященных, как правило, сторонним дополнениям. PowerBuilder Central – это инициатива сообщества, направленная на создание единой платформы для сторонних дополнений и услуг.

Инструменты PowerBuilder

Appeon PowerServer Развертывает существующие или новые проекты PowerBuilder как облачные нативные приложения, работающие на .NET Core с поддержкой практически всех функций PowerBuilder, включая фреймворк PFC. Visual Expert для PowerBuilder Visual Expert помогает обмениваться знаниями о ваших приложениях, автоматизирует анализ влияния изменений и проверяет качество кода. Enable Multilingual Enable позволяет быстро и легко создавать многоязычные приложения PowerBuilder. С помощью Enable разработчикам потребуется внести лишь несколько небольших изменений в исходный код PowerBuilder для перехода от одноязычного к многоязычному приложению. ProDiff для PowerBuilder ProDiff предназначен для выделения различий между версиями исходного кода PowerBuilder. Visual Guard для PowerBuilder Visual Guard – это инструмент управления доступом и разрешениями на уровне приложений, который позволяет централизованно управлять пользователями и их правами в приложениях PowerBuilder. STD Framework for PowerBuilder Бесплатный объектно-ориентированный фреймворк разработки для PowerBuilder Classic, Web Services, Appeon PowerServer Web и Mobile. Ultimate Suite for PB Набор элементов управления, написанных на PowerScript, для модернизации графического интерфейса приложений PowerBuilder; Ultimate Suite for PB придает приложениям современный вид и повышает удобство их использования. AscentialTest Автоматизированное тестирование для PowerBuilder, веб-приложений и других систем. Глубокая интеграция с API виртуальной машины PowerBuilder позволяет AscentialTest видеть и понимать объекты PowerBuilder. PowerGen Автоматизированная сборка и регенерация приложений PowerBuilder с поддержкой сборки непосредственно из систем контроля версий.