1. Oscar Naranjo
  2. SnapObjects
  3. Tuesday, 4 June 2019 17:42 PM UTC

Hi Everyone, 


I am wondering if I can install SnapObjects from PowerBuilder 2019, we have a web application in PowerBuilder 2017 R3 that for now does not to be migrated. If I understood right SnapObjects allows me to migrate script from PowerScript to C# .NET and turn it into a web APIs that I can take advantage from our web R3 2017 applications?  


Best Regards,

Oscar Naranjo  

Michael Kramer Accepted Answer Pending Moderation
  1. Tuesday, 4 June 2019 19:24 PM UTC
  2. SnapObjects
  3. # 1

I very much agre with Roland but wanted to add some details to enlighten your decisions even further.

The C# feature of PowerBuilder 2019 is the option to write RESTful web APIs in C# running on .NET Core! You may reuse your DataWindow objects without modifications (modifications to the DataWindow objects).

PowerBuilder 2017 R3 can call RESTful web APIs much more easily than prior versions, but PB 2019 has even wider support.

SnapDevelop is an IDE to write C# code - albeit a tool that is designed by people understanding PowerBuilder.


PowerBuilder 2019 provides several options to manage data in the server-side C# code. One option is reusing the DataWindow objects "as is". To make this an even greater experience, Appeon designed the .NET API for this option to align with the PowerScript DataStore as much as possible.

You can therefore copy PowerScript code from PowerBuilder IDE to SnapDevelop (or your C# IDE of choice) - but you still have to massage it into C# code. For 15 years I have looked for automated conversion - I just haven't found it because PowerScript language has some utterly unique features. EX 1: Call Some-Ancestor::ue_MyEvent. EX 2: GOTO towards an outer scope.

There are other data management options that gradually depart from the DataWindow object moving towards a generic C#/.NET model though still benefiting from a higher performing ORM than .NET Entity Framework or similar.

NOTE - a word of caution: You actually rearchitect your physical app structure when you move code into server-side components accessed through web APIs. This is turning client/server into modern day distributed architecture leveraging modern-day open standards - and this *WILL* impact performance, reliability, and security. So you have to consider how you apply the new tools. You may end up shooting yourself in the foot if you convert code blindfolded.

HTH /Michael


  1. Armeen Mazda @Appeon
  2. Tuesday, 4 June 2019 22:36 PM UTC
Wow, Michael knows this stuff as well as Appeon!
  1. Helpful
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Tuesday, 4 June 2019 19:14 PM UTC
  2. SnapObjects
  3. # 2

Hi Roland;

  Just an FYI ...  You are 99% correct ... however, PB 2019 has some new & extended features in its RESTFulClient,  HTTPClient & JSONxxxx related objects that the PB App developer may require (depending on what the app is doing in those areas).

Regards ... Chris

There are no comments made yet.
Roland Smith Accepted Answer Pending Moderation
  1. Tuesday, 4 June 2019 18:05 PM UTC
  2. SnapObjects
  3. # 3

You should be able to call the web service from a desktop app written in any version of PowerBuilder or in any other non-PowerBuilder language.


  1. Roland Smith
  2. Tuesday, 4 June 2019 18:32 PM UTC
Also, you can install PB 2017 and 2019 at the same time, the runtime DLL files have the version number in them.
  1. Helpful
There are no comments made yet.
  • Page :
  • 1

There are no replies made for this question yet.
However, you are not allowed to reply to this question.