PowerBuilder FAQ for Migration Issues, New and Obsolete Features by Version
How many times have you been asked…
"Which version of PowerBuilder included support for Unicode"?
"Which version of PowerBuilder started shipping without the PFC"?
No this isn’t Geek Trivia! If you are a long-time PB developer you have been asked at least one of these questions and if you are like me, you don’t always remember the answer. The goal of this article is to answer some of these common questions. I’m specifically targeting questions related to migration issues, new features, or features being removed.
You could use some of these for PowerBuilder job interview questions, however I wouldn’t penalize the developer if he/she doesn’t get the answer correct, instead I’d be looking to hear how the developer responds which should give you an idea about the depth of their PB expertise, plus these questions would not be anticipated like the age-old interview question, “How many buffers are there in a datawindow”?
How many buffers you ask? Most say three, some say four and a few say three and a half! Officially I believe three is the textbook answer, however I’d accept all three answers. The PB Datawindow has a Primary, Deleted and Filtered buffer, and a less known and less accessible Original buffer.
PowerBuilder Migration Considerations By PB Version
Upgrading an application to a newer version of PowerBuilder is usually quite painless, however there are some exceptions notably version 10 when Unicode was introduced.
Migration Issues Version by Version
- PowerBuilder 7.x
– New IDE
– TreeView and ListView changes
- PowerBuilder 8.x
– Workspaces and Targets added
– Source Code Control (SCC) configuration
– SystemError event behavior changes
- PowerBuilder 9.x
– PowerDynamo support removed
– Distributed PowerBuilder removed
- PowerBuilder 10
– Unicode implementation
– Last Sybase delivery of PFC (now Open Source)
– SQL Server native driver removed
- PowerBuilder 10.5
– Byte data type added
– Updated Decimal support
– Rich Text Control implementation enhanced
– Icon changes
– .NET Web Service support added
- PowerBuilder 11
– SySAM license management added
– DataDirect database drivers removed
– SQL Server native driver (SNC) added
- PowerBuilder 12
– SySAM license challenges including runtimes
PowerBuilder Classic (version 12.5 and up) Migration Issues
You can migrate applications from any earlier version of PowerBuilder to PowerBuilder Classic 12.5. But remember to back up libraries and use Migration Assistant to identify obsolete code. Note: The “Migrating PowerBuilder Applications” technical document on the Sybase Web site at http://www.sybase.com/detail?id=1032777 includes information on changes to PowerBuilder since version 6.5 that might affect the conversion of applications to a more recent PowerBuilder version.
- Migrating .NET Targets from Earlier Versions of PowerBuilder
When you migrate older Web Forms applications and .NET Web Service components, you might need to remove or install supporting files on development and deployment computers.
- Migrating EAServer Targets
Migratiing EAServer targets from earlier versions of PowerBuilder to PowerBuilder Classic may require some additional considerations. PowerBuilder .NET does not support EAServer targets.
- System Types as Variable Names in Proxies
In PowerBuilder versions 10.5 and later, system types cannot be used as variable names in Web service proxies.
- OLE DB Performance with Microsoft SQL Server
In PowerBuilder 10.5.2 and later, when you use the OLE DB database interface with a Microsoft SQL Server database and retrieve data into a DataWindow, or use an embedded SQL cursor in a SELECT statement, server-side cursors help to support multiple command execution.
- Change in Behavior of OpenTab
A change was made in PowerBuilder 10.2.1 Build 9716, PowerBuilder 10.5.1 Build 6505, and PowerBuilder 11.0 Build 5021, to correct an anomalous behavior when the SelectedTab property was applied at runtime to a tab for which the Visible property was set to false.
- ImportFile Size Limit
If your application uses the ImportFile method to import very large text files into a DataWindow or DataStore, ImportFile returns the error code -15.
- Migrating to Web Forms Applications
– Windows Web Forms have very poor cross-browser support. Internet Explorer is the only officially supported browser and I have encountered problems with Chrome and Firefox. I have also encountered problems with IE on a server with the enhanced security enabled.
- How to disable the IE ESC – Open your Server Manager via Start, then Administrative Tools. Select your Server Manager (topmost item) and under the security Information section, you should find “Configure IE ESC”.
- Click Configure IE ESC, then you have radio buttons to disable/enable enhanced security for Administrators and other Users.
PowerBuilder .NET (version 12.5 and up) Migration Roadmap
- PowerBuilder 12.5.NET
OLE controls can be migrated but not added or edited.
You can migrate a PowerBuilder Classic application with OLE controls to a WPF application in PowerBuilder .NET. You cannot add or edit OLE controls in the migrated application. Editing controls in the XAML view may cause a full build error (for example, copying and pasting OLE controls in the XAML view). There is a CR created for this issue (634087)
Blank area appears in MDI windows after migration.
In PowerBuilder Classic, the toolbar for an MDI or MDIHelp window occupies an otherwise empty space in the client area of the window. In PowerBuilder .NET, the space occupied by the toolbar is not part of the client area, so when you migrate MDI windows, the space previously occupied by the toolbar appears blank. There is a CR for this issue (621806)
Workaround: After migration, move the controls in MDI windows to cover the client area previously occupied by the toolbar.
Migration to PowerBuilder .NET from PowerBuilder Classic using the WPF Window Application Wizard
This table lists some of the features that require special attention after you migrate applications from PowerBuilder Classic using the wizard.
Feature Effect of migration Accelerator characters Ampersand (&) changed to underscore (_). See Accelerator Characters in Control Labels. Conditionalized (preprocessor) code blocks Invalid code blocks for PowerBuilder .NET are maintained, but ignored. See Conditional Compilation in PowerBuilder .NET Targets. Control handles Controls nested in windows do not have their own handles. See Modified and Unsupported Features in PowerBuilder .NET . Dashes in identifiers Dashes are replaced with a string you can select in the target wizard. See Coding Restrictions. Event sequence May require manual refactoring. See Modified and Unsupported Features in PowerBuilder .NET . GroupBox controls Controls that are inside a GroupBox belong to the GroupBox, not to the container of the GroupBox. SeeSemantic Differences. Large application migration May cause OutOfMemory error. Turn on 3G switch to avoid this error. See Memory Tuning for Large Applications. Menu and toolbar styles Maintained from PowerBuilder Classic. If you migrate PowerBuilder applications earlier than 11.0, menus and toolbars use traditional styles. See Selecting a Toolbar Style and Menu Styles in PowerBuilder .NET. Non-TrueType fonts Visible at design time, but replaced at runtime. See Modified and Unsupported Features in PowerBuilder .NET . Pipeline and Query objects Imported, but ignored at runtime. See Modified and Unsupported Features in PowerBuilder .NET . Resource files Resource directories that you select in the wizard are copied relative to the new target path, based on the relative path to the original target. See Adding Resources to a Target and Project Painter User Interface. Skins Default skins are attributed to migrated applications. See Skin Selection for Applications and Controls,
The WPF Application includes migration options for applications with dashes in identifiers and with right-to-left formatting. If you clickFinish before making a migration option selection, the wizard migrates the application using default settings for these options.