PowerBuilder Deployment Through the Years
PowerBuilder developers who have been around since the early days have seen the IDE change and evolve dramatically during that span of time. The methods and options for regenerating and compiling the application have changed almost as often. Here's a brief recap of the major evolutionary steps of this feature over the ten years of PowerBuilder:
V1 and V2Application Painter
V3PowerBuilder Dynamic Libraries (PBDs) and ORCA
V4The Project Painter
V5Machine code DLLs
V8Workspaces and Targets
Compiling an executable meant creating a single EXE file. This was performed from the Application Painter, and a full regeneration of all the objects was performed for each and every compile.
Version 3 gave developers the option of compiling PBLs to interpreted dynamic runtime libraries, or PBDs for short. These were PowerBuilder's equivalent to a DLL, and they made the resulting EXE file much smaller. This release also introduced the Open Repository CASE API (ORCA), which allowed third-party software vendors of things like CASE tools, Object Browsers, and Code Analyzers to peek inside the PBL and see the object level code.
This new painter gave the developer more control over the build process. It was finally possible to output the generated PBDs and EXEs into a separate folder from their corresponding PBLs, and each PBD could be compiled with a different PBR resource file. The Project became a separate object that could be versioned along with the labeled codebase.
Version 5 was the first release to allow PBLs to compile down to machine code DLLs. This feature was one of the more talked about enhancements of that release, but it never seemed to catch on in the marketplace. The increased processing power of the standard Windows workstation, combined with the performance enhancements in the PB Virtual Machine, resulted in PBD performance that compared favorably with machine code DLLs for typical applications.
Version 8 was the first release to incorporate real Web development, and it introduced the concepts of Workspaces and Targets. "Applications" in prior version of PB became "Targets" in version 8, and several Targets could be combined under a single "Workspace". This release also changed the basic meaning of the word "deploy." Because PB 8 supported different types of Targets, the term deploy meant to take whatever action was necessary to prepare the Target for execution. For PB client-side targets, this meant regeneration and compilation. For PB EAServer components, it added the extra step of "deploying" the component(s) to Jaguar. And for Web targets, it meant copying HTM files to the designated Web server. With a single mouse click, the user could deploy all the Targets of a single Workspace, regardless of the execution platform.
Version 9 introduces a new facility for automating the regen/compile/deploy process for PowerBuilder targets called OrcaScript. This allows the developer to write command-line batch scripts that implement the entire build process. OrcaScript can be used to connect to the Source Code Control provider and sync to the latest version of objects, and then perform a full deployment of the PB targets within a workspace.