Sunday, July 31, 2016

Calling WCF web services from PowerBuilder Native through a proxy web service

One of the issues with PowerBuilder Native's support for web services is that it is based on ASP.Net Web Services.  That technology, introduced with .Net 1.0, doesn't provide support for anything other than simple XML over HTTP SOAP services.  Microsoft introduced WCF web services in .Net 3.0 to provide support for a much creater variety of SOAP services.  In particular, WCF web services:

  • Can be accessed through protocols other than HTTP, such as TCP or named pipes.
  • Added support for web services standards such as WS-Security, WS-Addressing, WS-ReliableMessaging, WS-Coordination and WS-AtomicTransaction.
So what can you do if you need to consume a web service that requires support for alternate protocols, those latter web services standards or both?

Wednesday, July 27, 2016

PowerBuilder TV Webcast: PowerGen 2016

Automating the PowerBuilder Build Process with PowerGen 2016
Presenter: Phil Wallingford
Tuesday, October 11, 2016 at 8:00 AM PST (Los Angeles) / 17H00 PM CET (Paris).

An essential tool to automate the building of PowerBuilder applications, it lets you use command line functions to automate the entire build, create libraries from object source. With PowerGen, you can control your builds with predictability and reliability.

PowerBuilder TV Webcast: Bootstrap for PowerBuilder

Bootstrap for PowerBuilder
Presenter: Roland Smith
Tuesday, October 4, 2016 at 8:00 AM PDT (Los Angeles) / 17H00 CEST (Paris)

Download the source files of a PBT from your source control system and import the objects into empty library files that it creates for you. Follow that up with any rebuilds and regenerates that are needed to get all objects to compile successfully. With PowerBuilder Bootstrap:

  • Extract all source code files for a target from a source control system
  • Create new library files for a target and import all the object source code files
  • Generate a new PBC file for a workspace
  • Optimize all libraries for a target
  • Compile the executable files for a target and copy to a deployment folder

PowerBuilder TV Webcast: PowerVCS

PowerBuilder Version and Source Control with PowerVCS
Presenter: Phil Wallingford
Tuesday, September 20, 2016 at 8:00 AM PDT (Los Angeles) / 17H00 CEST (Paris)

A web-based solution where repository data resides on a secure Web server and source control functions are accessible with a browser. For those of you who have reached the limits of “PBNative”, who miss Object Cycle, or who have yet to implement a source control system of any description. See how PowerVCS is an ideal solution for locally and geographically distributed development teams.

Future of PowerBuilder webcast - Part 5 - Low Level Roadmap

Part 5 of the Future of #PowerBuilder webcast (Low Level Roadmap) starts at 9:00 AM PST tomorrow (July 28th). If you have not already signed up, you can still do so at

Monday, July 25, 2016


I created a 12.6 build of PBNISMTP back in April of 2015 but never updated the downloads or source code.  That's been corrected.

More recently, I moved the project to VS2015.  It has also been updated to the most recent version of CPJNSMTPConnection (3.17). The VS2008 code is still available but will no longer be maintained.

Since CPJNSMTPConnection is dependant on CWSocket I updated that to the latest version as well (3.17),  The new version on CPJNSMTPConnection also no longer references OpenSSL, but instead uses SSLWrappers  and CryptoWrappers

I did have to make one minor change to CWSocket. For some reason, CPJNSMTPConnection was still calling a Delete method on CWSocket that had been removed in the latest version. I added a noop Delete method so that the code would continue to compile.

The only PowerBuilder sample provided is for PowerBuilder 12.6. If you want to use the utility with an earlier version of PowerBuilder you will need to download the C++ source and compile it referencing the PBNI/SDK files for that release.

Note that the PBX files are significantly larger than they were when VS2008 was used to compile them. That's because of a change that Microsoft made in the way files that dynamically link to MFC are compiled starting in VS2010.