320 likes | 530 Views
Session No. IA364 Improving Software Configuration Management Practices for PowerBuilder Applications. Phil Wallingford E. Crane Computing, Inc. philw@ecrane.com. Topic 1 - Source Traceable Builds Topic 2 - Source Control for PowerBuilder Development Topic 3 - Build Automation Demonstration.
E N D
Session No. IA364 Improving Software Configuration Management Practices for PowerBuilder Applications • Phil Wallingford • E. Crane Computing, Inc. • philw@ecrane.com
Topic 1 - Source Traceable Builds Topic 2 - Source Control for PowerBuilder Development Topic 3 - Build Automation Demonstration Topics of Discussion
What’s Different about Software Configuration Management (SCM) for PB? In a nutshell the PowerBuilder Library (PBL) First…Some Background
A Proprietary, Binary Formatted File Includes many kinds of information Object source P-Code Source Control Attributes for Objects Housekeeping information Free sector map Directory The PBL
They are fragile Information gets out-of-sync. Objects must be regenerate-able when they are saved (or imported) Can’t save work-in-progress Can’t easily reconstruct PBLs from objects Don’t accommodate standard SCM interfaces Source control attributes conflict with external source management system The Troubles with PBLs
Source Traceable Builds Creating release versions from controlled PowerBuilder source
Plain text Individual files Should represent “modular” elements of design Use to build deliverables What is Source?
PBLs Plain text - No Individual files - Yes Should represent “modular” elements of design - No Use to build deliverables - Yes PowerBuilderSource?
PowerBuilderBuild Process PBLs Deliverables EXE PBD PBD PBD
Exported Objects Plain text - Yes Individual files - Yes Should represent “modular” elements of design - Yes Use to build deliverables - No PowerBuilderSource?
PowerBuilder SourceBuild Process PowerBuilder Objects PBLs Deliverables EXE ? PBD PBD PBD
PB Objects must be able to be Regenerated (without errors) to be Imported The Problem • Order (of import) dependencies • Circular reference problem
Circular Reference Problem Circular Reference Problem Circular Reference Problem PB Object 1 Object 2 function a ... b ( ) ... end function b ... a ( ) ... end Import Object 1 - Error can’t find function b, import fails Import Object 2 - Error can’t find function a, import fails
“Bootstrap Import” Reconstitutes application from exported object source Creates PBLs and imports all objects, using a unique, multi-pass import process Enables source-traceable builds A SolutionPowerGen Feature
PowerBuilder SourceBuild Process PowerBuilder Objects PBLs Deliverables EXE PBD PBD Bootstrap Import PBD
Bootstrap Import Folder 1 PBL1 Objects.sr* Folder 2 PBL2 Objects.sr* ...\Folder 1\*.sr*, ...\PBL1.PBL ...\Folder 2\*.sr*, ...\PBL2.PBL
Source Control for PB Development Managing Object Check-in/Check-out in PowerBuilder
Source Control Problems • PB “Native” function for source control lacks many required features • Interface to third-party tools (SCC-API) is architecturally flawed
PB SCC Interface Architecture Check-In “Registered” PBLs Source Archive PB “Objects” Check-Out Working Library List • Keeping objects in Registered PBLs in sync. with archive • Registered objects in sync. with Working copy • File locking “Working” PBLs
Improved Architecture Source Archive PB “Objects” Check-In Check-Out Import/Export Working Library List “Working” PBL’s
Build Automation Producing PowerBuilder deliverables (EXEs and PBDs) with an automated repeatable process
PowerBuilder (PB) applications are difficult to build Can build only one application at a time Many manual steps Little control over the build process Not robust Cannot be integrated with other build operations The Problem
PowerGen Define “project” to build many applications Can specify in detail how to build the applications Command line interface Logs detailed information about build Proven with the largest PB applications The Solution
Application builds Regeneration PBD/DLL creation EXE creation PBL optimization Duplicate object detection Automatic PBR scanning for missing resources All PB code generation options Features
Build process control Specify which libraries are regenerated Specify when and if dynamic libraries will be created Use PBDs or write-protected PBLs in a library list Specify directory to save created dynamic libraries More Features
Build Process Control Application B Application A Application C Third-Party Common PBLs
Tool Demonstration PowerGen PBExplorer PBRescue
Supports PowerBuilder Versions 4, 5, 6, and 7 Enterprise and Professional All Windows platforms Uses PowerBuilder’s ORCA interface Began shipping more than 4 years ago PowerGen Specs.
600+ customers 2000+ installations Many site licenses Recommended by TeamPS and Powersoft Tech. Support Customer Acceptance
PowerBuilder is a great development environment Holes in performing and managing releases PowerGen and CCC/Harvest have filled the holes Session Summary