PowerBuilder

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Appeon PowerBuilder
PowerBuilder 2017 Logo.png
Developer(s)SAP/Appeon
Initial releaseJuly 1992
Stable release
PowerBuilder 2019 R2 / April 3, 2020
Preview release
None
Written inC++ and C#
Operating systemMicrosoft Windows
Available inEnglish, Japanese for the IDE (numerous languages supported for deployed applications)
TypeIDE
LicenseCommercial
Websitewww.appeon.com Edit this on Wikidata

PowerBuilder is an integrated development environment owned by SAP since the acquisition of Sybase in 2010. On July 5, 2016, SAP and Appeon entered into an agreement whereby Appeon would be responsible for developing, selling, and supporting PowerBuilder.[1]

Over the years, PowerBuilder has been updated with new standards. In 2010, a major upgrade of PowerBuilder was released to provide support for the Microsoft .NET Framework.[2] In 2014, support was added for OData, dockable windows, and 64-bit native applications.[3] In 2017, support was added for iOS and Android app development.[4]

PowerBuilder 2019 provides new targets to enable developers to rapidly create RESTful Web APIs and non-visual .NET assemblies, in a test-driven manner, using the C# language and the .NET Core framework. And PowerScript client app development was revamped with new UI technologies and cloud architecture.[5]

Features[edit]

PowerBuilder has a native data-handling object called a DataWindow, which can be used to create, edit, and display data from the database. This object gives the programmer a number of tools for specifying and controlling user interface appearance and behavior, and also provides simplified access to database content and JSON or XML from Web services. To some extent, the DataWindow frees the programmer from considering the differences between Database Management Systems from different vendors. DataWindow can display data using multiple presentation styles and can connect to various data sources.

Usage[edit]

PowerBuilder is used primarily for building business CRUD applications.

Although new software products are rarely built with PowerBuilder, many client-server ERP products and line-of-business applications built in the late 1980s to early 2000s with PowerBuilder still provide core database functions for large enterprises in government[6][7][8], higher education,[9], manufacturing, insurance, banking[10], energy, and telecommunications.

Job openings for PowerBuilder developers are readily available but often revolve around maintaining existing applications.

History[edit]

In December 2013 SAP announced the new version going directly to number 15 and released a beta version.[11] Key features included support for the .NET Framework v4.5, SQL Server 2012, Oracle 12, Windows 8, OData and Dockable Windows. SAP later released this as version 12.6.

On May 31, 2019 PowerBuilder 2019 was launched by Appeon. This release supports C# development. It provides a new C# IDE, .NET data access objects, C# migration solution, Web API client, and UI themes.[12]

On April 3, 2020 PowerBuilder 2019 R2 was launched by Appeon. This release include a first-ever PowerScript-to-C# code converter, which can automatically migrate 80-95% of PowerBuilder business logic and DataWindows to C#.[13] Interoperability between PowerScript and .NET programming languages is also now supported. Many existing features have also been enhanced.

Features[edit]

PowerBuilder is an object-oriented programming language. Nearly all of the visual and non-visual objects support inheritance, polymorphism, and encapsulation. The programmer may utilize a common code framework such as PowerBuilder Foundation Classes, also known as PFC, to inherit objects from and leverage pre-existing code.[14]

The DataWindow is the key component (and selling point) of PowerBuilder. The DataWindow offers a visual SQL painter which supports outer joins, unions and subquery operations. It can convert SQL to visual representation and back, so the developer can use native SQL if desired. DataWindow updates are automatic — it produces the proper SQL at runtime based on the DBMS to which the user is currently connected. This feature makes it easier for developers who are not experienced with SQL.

The DataWindow also has the built-in ability to both retrieve data and update data via stored procedures or REST Web APIs as well as import/export JSON data. The RESTClient object introduced in PowerBuilder 2017 facilitates bridging the DataWindow with REST Web APIs and requiring minimal coding.[15]

RDBMS interfaces[edit]

PowerBuilder offers native interfaces to all major databases, as well as ODBC and OLE-DB, in the Enterprise version. There are many connectivity options that allow performance monitoring and tuning, such as:

  1. Integrated security
  2. Tracing of all SQL
  3. Isolation level
  4. Password expiration dialog
  5. Blocking factor
  6. Number of SQL statements to cache
  7. Use connection pool
  8. Thread safety
  9. Trace ODBC API calls

Due to the information about the database schema (such as primary key information) that are stored in PowerBuilder's data dictionary, the code required to implement data display and browsing is greatly simplified, because the dictionary information allows generation of the appropriate SQL behind the scenes.

PowerBuilder supports the following ways of interacting with a database:

DataWindow: this is the simplest approach, relying on automatically generated SQL.

"Embedded SQL"
Embedded SQL supports SELECT, INSERT, UPDATE, DELETE and cursors. This option is used when the developer desires more control than is available with the DataWindow option. Example:
 UPDATE my_employee SET STATUS = 'A';
 IF sqlca.sqlcode<>0 THEN ...
"Dynamic SQL"
This is a form of parameterized SQL, where the user builds a string that may optionally have bind variables. Dynamic SQL may be used to create cursors as well.

Integration with third-party software[edit]

PowerBuilder supports ActiveX and OCX controls, both visible and non-visible. It also can use OLE Automation as a client. However, PowerBuilder supports only late binding, not early binding. Therefore, when using OLE Automation, a dropdown of possible actions is not provided. PowerBuilder can also act as a DDE client or server, providing a further mechanism to interoperate with other applications.

PowerBuilder can make Windows and third-party API calls, and, in general, works well with third-party libraries in DLL files, however it does not directly support callback functions.

Compilation and debugging[edit]

PowerBuilder offers a "/pbdebug" (or variants: "-pbdebug", "-pbd", "/debug", "-debug", "-deb") runtime switch, which creates a log file. This can help track down a bug "in the field", as the user simply emails this log file to the developer. It has another feature which can log all SQL statements to a file. It also has built-in performance profiling, an integrated debugger, context-sensitive help, and an active newsgroup to provide support.

PowerBuilder applications are typically compiled to p-code, which is then interpreted by the PowerBuilder run time. Although it can be compiled to machine code (called c-code), a typical business application does not run a lot faster. However, applications which do an unusually large number of CPU-intensive computations are likely to benefit up to 4,000x faster from compiling to machine code. The main reason why compiling to machine code was not used is an enormous number of errors in PowerBuilder especially in machine code generation.

Criticism[edit]

Extensibility of the language was rather limited for older versions of PowerBuilder. The technologies provided to overcome this (ex. PowerBuilder Native Interface, or PBNI) is rather tricky. To develop a solution that includes external C++ code may not only require a competent C++ developer, but also a PowerBuilder expert to guide the developer through the myriad subtleties of the language and the PowerBuilder Virtual Machine.

Inheritance and object-oriented features are limited to some object types (Windows, Userobjects and Menus). In particular, it is not possible to inherit from a DataWindow. A PowerBuilder user cannot open a descendant and a parent at the same time in the painter, though they can see all ancestors' code while working on the descendant.

To address these criticisms, Appeon has set a new roadmap for PowerBuilder, which it publishes openly on the Appeon Website.[16] The (classic) PowerScript language itself, which is still available for compatibility reasons, is known as "a language built around the DataWindow" amongst developers with PowerBuilder being the "IDE built around the DataWindow". C# development centered around a new .NET DataWindow with automated migration of existing DataWindows was introduced in PowerBuilder 2019.[17]

Community[edit]

Since Appeon took over PowerBuilder, it has launched a new official community website for PowerBuilder developers. This community website offers technical articles, webinars, and Q&A, which are authored by community users. Appeon also hosts an annual user conference called Appeon Elevate, and recordings of the conference sessions are available from the conference website. There are a number of local user groups around the world that cooperate with Appeon to deliver abridged versions of the conference in seminar format and local language. [18]

There are also a variety of grass roots community groups and resources for PowerBuilder developers to share and convene. PowerBuilderTV[19] is series of webinars by PowerBuilder users and vendors that tend to focus on third party add-ons. PowerBuilder Central[20] is a community initiative to create a single source for third party add-ons and services.

PowerBuilder Tools[edit]

  • Appeon PowerServer Mobile - Develop native mobile applications with PowerBuilder that runs on iOS (iPad and iPhone) and Android (tablets and phones) with support for the mobile device APIs and Apache Cordova plugins.[21]
  • Appeon PowerServer Web - Deploys existing or new PowerBuilder projects as Web applications that runs natively on either .NET or Java servers with support for most PowerBuilder features.[22]
  • Visual Expert for PowerBuilder - Visual Expert helps in sharing the knowledge of your applications. It also automates impact analysis and checks code quality.[23]
  • Enable Multilingual - Enable makes PowerBuilder applications multilingual quickly and easily. Using Enable, developers can only need to make a few small changes to the original PowerBuilder code to go from monolingual to multilingual.[24]
  • ProDiff for PowerBuilder - ProDiff is designed to highlight the differences between versions of PowerBuilder development source code.[25]
  • Visual Guard for PowerBuilder - Visual Guard is an access control and application-level permissions tool. It helps you centralize view and control of users and their rights in PowerBuilder applications.[26]
  • STD Framework for PowerBuilder - A Free object oriented development framework for PowerBuilder Classic, Web Services, Appeon PowerServer Web and Mobile.[27]
  • Ultimate Suite for PB - A suite of controls, written in PowerScript, that modernizes the GUI of PowerBuilder applications; Ultimate Suite for PB gives applications a contemporary look and makes them more user-friendly.[28]
  • AscentialTest - Automated testing for PowerBuilder, web, and others. Deep integration with the PowerBuilder VM api's allow AT to see and understand PB objects.
  • PowerGen - Automated build and regeneration of PowerBuilder applications. Supports building directly from Source Control.[29]

References[edit]

  1. ^ Martin Berner. "Appeon Signs Agreement with SAP to Bring Major Innovations to PowerBuilder". SAP Community Network.
  2. ^ "Sybase PowerBuilder tool readied for Microsoft's .Net". Sybase.
  3. ^ "SAP releases PowerBuilder version 12.6". SAP.
  4. ^ "Appeon Launches PowerBuilder 2017 With Cross-Platform Mobile Development Capability". Appeon.
  5. ^ "PowerBuilder 2019 Press Release". Appeon.
  6. ^ "PowerBuilder History - How Did It Evolve? | PowerBuilder Journal". pbdj.sys-con.com.
  7. ^ "PowerBuilder World Tour". powerbuilder-world-tour.com.
  8. ^ "Superior Court of Orange County Applications Developer I/II - Traffic and Criminal Case Management System Developer Job in Orange, CA". Glassdoor.
  9. ^ "PowerCampus™ by Ellucian". Ellucian | The leader in higher education technology.
  10. ^ "The Bank of New York Mellon Specialist Developer (Mainframe DB2/IMS, CICS, IMS/DC, Powerbuilder, .Net) Job in New York, NY". Glassdoor.
  11. ^ "PowerBuilder 15 beta is here!". sap.com.
  12. ^ "PowerBuilder 2019 Press Release". Appeon.
  13. ^ "PowerBuilder 2019 R2 Press Release". Appeon.
  14. ^ http://www.ecocion.com/about-us/publications/it-development/sybase-powerbuilder/powerbuilder-foundation-class-help
  15. ^ "RESTClient Tutorial - Calling Web APIs". Appeon.
  16. ^ "PowerBuilder Roadmap". Appeon.
  17. ^ "PowerBuilder .NET API Reference". Appeon.
  18. ^ "PowerBuilder User Group Meeting in Germany". Appeon.
  19. ^ "PowerBuilderTV". PowerBuilderTV.
  20. ^ "PowerBuilder Central - About Us". powerbuildercentral.com.
  21. ^ "Appeon PowerServer Mobile Product Page". Appeon.
  22. ^ "Appeon PowerServer Web Product Page". Appeon.
  23. ^ "Visual Expert Product Page". Novalys.
  24. ^ "Enable Multilingual Product Page". Novalys.
  25. ^ "ProDiff Product Page". PBDR Ltd.
  26. ^ "Visual Guard Product Page". Novalys.
  27. ^ Chris Pollach. "STD Framework Download Page".
  28. ^ "PB Ultimate Suite Product Page". Novalys.
  29. ^ https://ecrane.com/index.php/powergen-our-flagship-product/powergen-overview

29. Ultimate Suite for PowerBuilder Product Page

External links[edit]